Mercurial > hg > xemacs-beta
changeset 367:a4f53d9b3154 r21-1-13
Import from CVS: tag r21-1-13
line wrap: on
line diff
--- a/ChangeLog Mon Aug 13 11:00:13 2007 +0200 +++ b/ChangeLog Mon Aug 13 11:01:07 2007 +0200 @@ -1,3 +1,59 @@ +2001-01-07 XEmacs Build Bot <builds@cvs.xemacs.org> + + * XEmacs 21.1.13 is released + +2000-12-26 Stephen J. Turnbull <stephen@xemacs.org> + + * PROBLEMS (Running/Linux): Mandrake, use Alt for M-, color-gcc. + +1999-11-17 Isaac Hollander <ysh@mindspring.com> + + * Makefile.in: add and use TAR macro. Sometimes tar only copies + symlinks instead of the actual files + +2000-11-01 Martin Buchholz <martin@xemacs.org> + + * configure.in: Handle alloca with Compaq C on Alpha Linux. + +2000-11-19 Vin Shelton <acs@xemacs.org> + + * 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 <stephen@xemacs.org> + + * README.packages: Add "uninstalled package" FAQ. + + * etc/PACKAGES: Add details on os-utils contents. + +2000-09-13 Martin Buchholz <martin@xemacs.org> + + * 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 <aichner@ecf.teradyne.com> + + * find-paths.el (paths-decode-directory-path): Trivial typo fix. + * simple.el (display-warning-suppressed-classes): Ditto. + +2000-08-22 Stephen J. Turnbull <stephen@xemacs.org> + + * etc/Emacs.ad (Fonts.): Fix typo and clarify. + +2000-08-22 SL Baur <steve@turbolinux.co.jp> + + * configure.in (after_morecore_hook_exists): Don't add /usr/shlib + to link path if compiling on Alpha/Linux. + +2000-08-31 Martin Buchholz <martin@xemacs.org> + + * configure.in: Make Balloon Help conditional on finding shape.h + 2000-08-04 XEmacs Build Bot <builds@cvs.xemacs.org> * XEmacs 21.1.12 is released @@ -823,7 +879,7 @@ Sat Apr 24 1998 Andy Piper <andyp@parallax.co.uk> - * 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 <andyp@parallax.co.uk> @@ -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 <mly@adoc.xerox.com> +Fri Dec 27 20:34:58 1996 Richard Mlynarik <Mly@POBox.COM> * etc/yow.lines: 20k of new zippy quotes.
--- a/INSTALL Mon Aug 13 11:00:13 2007 +0200 +++ b/INSTALL Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/Makefile.in Mon Aug 13 11:00:13 2007 +0200 +++ b/Makefile.in Mon Aug 13 11:01:07 2007 +0200 @@ -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 \#* *~) ; \
--- a/PROBLEMS Mon Aug 13 11:00:13 2007 +0200 +++ b/PROBLEMS Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/README.packages Mon Aug 13 11:00:13 2007 +0200 +++ b/README.packages Mon Aug 13 11:01:07 2007 +0200 @@ -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 -----------------
--- a/configure Mon Aug 13 11:00:13 2007 +0200 +++ b/configure Mon Aug 13 11:01:07 2007 +0200 @@ -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 - -cat > conftest.$ac_ext <<EOF -#line 5637 "configure" +echo "configure:5636: checking for X11/Intrinsic.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 5639 "configure" #include "confdefs.h" #include <X11/Intrinsic.h> 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 <<EOF -#line 5671 "configure" +#line 5673 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -5678,7 +5680,7 @@ XOpenDisplay() ; return 0; } EOF -if { (eval echo configure:5682: \"$ac_link\") 1>&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 <<EOF -#line 5712 "configure" +#line 5714 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -5719,7 +5721,7 @@ XGetFontProperty() ; return 0; } EOF -if { (eval echo configure:5723: \"$ac_link\") 1>&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 <<EOF -#line 5755 "configure" +#line 5757 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -5762,7 +5764,7 @@ XShapeSelectInput() ; return 0; } EOF -if { (eval echo configure:5766: \"$ac_link\") 1>&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 <<EOF -#line 5794 "configure" +#line 5796 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -5801,7 +5803,7 @@ XtOpenDisplay() ; return 0; } EOF -if { (eval echo configure:5805: \"$ac_link\") 1>&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 <<EOF -#line 5830 "configure" +#line 5832 "configure" #include "confdefs.h" #include <X11/Intrinsic.h> 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 - -cat > conftest.$ac_ext <<EOF -#line 5863 "configure" +echo "configure:5862: checking for $ac_hdr" >&5 + +cat > conftest.$ac_ext <<EOF +#line 5865 "configure" #include "confdefs.h" #include <$ac_hdr> 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 <<EOF -#line 5924 "configure" +#line 5926 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -5931,7 +5933,7 @@ XmuReadBitmapDataFromFile() ; return 0; } EOF -if { (eval echo configure:5935: \"$ac_link\") 1>&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 <<EOF -#line 5979 "configure" +#line 5981 "configure" #include "confdefs.h" int main() { main() ; return 0; } EOF -if { (eval echo configure:5986: \"$ac_link\") 1>&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 <<EOF -#line 6031 "configure" +#line 6033 "configure" #include "confdefs.h" int main() { main() ; return 0; } EOF -if { (eval echo configure:6038: \"$ac_link\") 1>&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 <<EOF -#line 6104 "configure" +#line 6106 "configure" #include "confdefs.h" #include <fcntl.h> 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 +#line 6183 "configure" +#include "confdefs.h" +#include <X11/extensions/shape.h> +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 - -cat > conftest.$ac_ext <<EOF -#line 6207 "configure" +echo "configure:6250: checking for X11/Xauth.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 6253 "configure" #include "confdefs.h" #include <X11/Xauth.h> 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 <<EOF -#line 6240 "configure" +#line 6286 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -6247,7 +6293,7 @@ XauGetAuthByAddr() ; return 0; } EOF -if { (eval echo configure:6251: \"$ac_link\") 1>&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 - -cat > conftest.$ac_ext <<EOF -#line 6299 "configure" +echo "configure:6342: checking for ${dir}tt_c.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 6345 "configure" #include "confdefs.h" #include <${dir}tt_c.h> 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 <<EOF -#line 6345 "configure" +#line 6391 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -6352,7 +6398,7 @@ tt_message_create() ; return 0; } EOF -if { (eval echo configure:6356: \"$ac_link\") 1>&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 - -cat > conftest.$ac_ext <<EOF -#line 6416 "configure" +echo "configure:6459: checking for Dt/Dt.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 6462 "configure" #include "confdefs.h" #include <Dt/Dt.h> 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 <<EOF -#line 6449 "configure" +#line 6495 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -6456,7 +6502,7 @@ DtDndDragStart() ; return 0; } EOF -if { (eval echo configure:6460: \"$ac_link\") 1>&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 - -cat > conftest.$ac_ext <<EOF -#line 6556 "configure" +echo "configure:6599: checking for ldap.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 6602 "configure" #include "confdefs.h" #include <ldap.h> 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 - -cat > conftest.$ac_ext <<EOF -#line 6587 "configure" +echo "configure:6630: checking for lber.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 6633 "configure" #include "confdefs.h" #include <lber.h> 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 <<EOF -#line 6621 "configure" +#line 6667 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -6628,7 +6674,7 @@ ldap_search() ; return 0; } EOF -if { (eval echo configure:6632: \"$ac_link\") 1>&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 <<EOF -#line 6662 "configure" +#line 6708 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -6669,7 +6715,7 @@ ldap_open() ; return 0; } EOF -if { (eval echo configure:6673: \"$ac_link\") 1>&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 <<EOF -#line 6703 "configure" +#line 6749 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -6710,7 +6756,7 @@ ldap_open() ; return 0; } EOF -if { (eval echo configure:6714: \"$ac_link\") 1>&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 <<EOF -#line 6744 "configure" +#line 6790 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -6751,7 +6797,7 @@ ldap_open() ; return 0; } EOF -if { (eval echo configure:6755: \"$ac_link\") 1>&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 - -cat > conftest.$ac_ext <<EOF -#line 6809 "configure" +echo "configure:6852: checking for $ac_func" >&5 + +cat > conftest.$ac_ext <<EOF +#line 6855 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6828,7 +6874,7 @@ ; return 0; } EOF -if { (eval echo configure:6832: \"$ac_link\") 1>&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 <<EOF -#line 6873 "configure" +#line 6919 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -6880,7 +6926,7 @@ __T_9__nothrow() ; return 0; } EOF -if { (eval echo configure:6884: \"$ac_link\") 1>&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 <<EOF -#line 6911 "configure" +#line 6957 "configure" #include "confdefs.h" #include <X11/xpm.h> 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 <<EOF -#line 6964 "configure" +#line 7010 "configure" #include "confdefs.h" int main() { XpmCreatePixmapFromData() ; return 0; } EOF -if { (eval echo configure:6971: \"$ac_link\") 1>&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 <<EOF -#line 7018 "configure" +#line 7064 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -7025,7 +7071,7 @@ inflate() ; return 0; } EOF -if { (eval echo configure:7029: \"$ac_link\") 1>&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 <<EOF -#line 7053 "configure" +#line 7099 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -7060,7 +7106,7 @@ inflate() ; return 0; } EOF -if { (eval echo configure:7064: \"$ac_link\") 1>&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 <<EOF -#line 7088 "configure" +#line 7134 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -7095,7 +7141,7 @@ inflate() ; return 0; } EOF -if { (eval echo configure:7099: \"$ac_link\") 1>&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 - -cat > conftest.$ac_ext <<EOF -#line 7132 "configure" +echo "configure:7175: checking for jpeglib.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 7178 "configure" #include "confdefs.h" #include <jpeglib.h> 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 <<EOF -#line 7165 "configure" +#line 7211 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -7172,7 +7218,7 @@ jpeg_destroy_decompress() ; return 0; } EOF -if { (eval echo configure:7176: \"$ac_link\") 1>&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 - -cat > conftest.$ac_ext <<EOF -#line 7215 "configure" +echo "configure:7258: checking for pow" >&5 + +cat > conftest.$ac_ext <<EOF +#line 7261 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char pow(); below. */ @@ -7234,7 +7280,7 @@ ; return 0; } EOF -if { (eval echo configure:7238: \"$ac_link\") 1>&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 - -cat > conftest.$ac_ext <<EOF -#line 7262 "configure" +echo "configure:7305: checking for png.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 7308 "configure" #include "confdefs.h" #include <png.h> 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 <<EOF -#line 7295 "configure" +#line 7341 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -7302,7 +7348,7 @@ png_read_image() ; return 0; } EOF -if { (eval echo configure:7306: \"$ac_link\") 1>&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 <<EOF -#line 7332 "configure" +#line 7378 "configure" #include "confdefs.h" #include <png.h> 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 - -cat > conftest.$ac_ext <<EOF -#line 7386 "configure" +echo "configure:7429: checking for tiffio.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 7432 "configure" #include "confdefs.h" #include <tiffio.h> 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 <<EOF -#line 7419 "configure" +#line 7465 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -7426,7 +7472,7 @@ TIFFClientOpen() ; return 0; } EOF -if { (eval echo configure:7430: \"$ac_link\") 1>&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 - -cat > conftest.$ac_ext <<EOF -#line 7476 "configure" +echo "configure:7519: checking for compface.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 7522 "configure" #include "confdefs.h" #include <compface.h> 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 <<EOF -#line 7509 "configure" +#line 7555 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -7516,7 +7562,7 @@ UnGenFace() ; return 0; } EOF -if { (eval echo configure:7520: \"$ac_link\") 1>&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 <<EOF -#line 7561 "configure" +#line 7607 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -7568,7 +7614,7 @@ XawScrollbarSetThumb() ; return 0; } EOF -if { (eval echo configure:7572: \"$ac_link\") 1>&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 - -cat > conftest.$ac_ext <<EOF -#line 7599 "configure" +echo "configure:7642: checking for Xm/Xm.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 7645 "configure" #include "confdefs.h" #include <Xm/Xm.h> 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 <<EOF -#line 7626 "configure" +#line 7672 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -7633,7 +7679,7 @@ XmStringFree() ; return 0; } EOF -if { (eval echo configure:7637: \"$ac_link\") 1>&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 <<EOF -#line 7668 "configure" +#line 7714 "configure" #include "confdefs.h" #include <Xm/Xm.h> #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 - -cat > conftest.$ac_ext <<EOF -#line 7980 "configure" +echo "configure:8023: checking for $ac_hdr" >&5 + +cat > conftest.$ac_ext <<EOF +#line 8026 "configure" #include "confdefs.h" #include <$ac_hdr> 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 <<EOF -#line 8021 "configure" +#line 8067 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -8028,7 +8074,7 @@ strerror() ; return 0; } EOF -if { (eval echo configure:8032: \"$ac_link\") 1>&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 <<EOF -#line 8076 "configure" +#line 8122 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -8083,7 +8129,7 @@ XOpenIM() ; return 0; } EOF -if { (eval echo configure:8087: \"$ac_link\") 1>&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 <<EOF -#line 8116 "configure" +#line 8162 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -8123,7 +8169,7 @@ XmImMbLookupString() ; return 0; } EOF -if { (eval echo configure:8127: \"$ac_link\") 1>&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 <<EOF -#line 8200 "configure" +#line 8246 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -8207,7 +8253,7 @@ XmbDrawString() ; return 0; } EOF -if { (eval echo configure:8211: \"$ac_link\") 1>&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 - -cat > conftest.$ac_ext <<EOF -#line 8254 "configure" +echo "configure:8297: checking for wnn/jllib.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 8300 "configure" #include "confdefs.h" #include <wnn/jllib.h> 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 - -cat > conftest.$ac_ext <<EOF -#line 8287 "configure" +echo "configure:8330: checking for $ac_func" >&5 + +cat > conftest.$ac_ext <<EOF +#line 8333 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -8306,7 +8352,7 @@ ; return 0; } EOF -if { (eval echo configure:8310: \"$ac_link\") 1>&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 <<EOF -#line 8344 "configure" +#line 8390 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -8351,7 +8397,7 @@ crypt() ; return 0; } EOF -if { (eval echo configure:8355: \"$ac_link\") 1>&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 <<EOF -#line 8395 "configure" +#line 8441 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -8402,7 +8448,7 @@ jl_dic_list_e() ; return 0; } EOF -if { (eval echo configure:8406: \"$ac_link\") 1>&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 <<EOF -#line 8429 "configure" +#line 8475 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -8436,7 +8482,7 @@ jl_dic_list_e() ; return 0; } EOF -if { (eval echo configure:8440: \"$ac_link\") 1>&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 <<EOF -#line 8463 "configure" +#line 8509 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -8470,7 +8516,7 @@ jl_dic_list_e() ; return 0; } EOF -if { (eval echo configure:8474: \"$ac_link\") 1>&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 <<EOF -#line 8497 "configure" +#line 8543 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -8504,7 +8550,7 @@ dic_list_e() ; return 0; } EOF -if { (eval echo configure:8508: \"$ac_link\") 1>&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 <<EOF -#line 8561 "configure" +#line 8607 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -8568,7 +8614,7 @@ jl_fi_dic_list() ; return 0; } EOF -if { (eval echo configure:8572: \"$ac_link\") 1>&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 - -cat > conftest.$ac_ext <<EOF -#line 8610 "configure" +echo "configure:8653: checking for canna/jrkanji.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 8656 "configure" #include "confdefs.h" #include <canna/jrkanji.h> 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 - -cat > conftest.$ac_ext <<EOF -#line 8645 "configure" +echo "configure:8688: checking for canna/jrkanji.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 8691 "configure" #include "confdefs.h" #include <canna/jrkanji.h> 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 - -cat > conftest.$ac_ext <<EOF -#line 8681 "configure" +echo "configure:8724: checking for canna/RK.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 8727 "configure" #include "confdefs.h" #include <canna/RK.h> 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 <<EOF -#line 8714 "configure" +#line 8760 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -8721,7 +8767,7 @@ RkBgnBun() ; return 0; } EOF -if { (eval echo configure:8725: \"$ac_link\") 1>&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 <<EOF -#line 8753 "configure" +#line 8799 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -8760,7 +8806,7 @@ jrKanjiControl() ; return 0; } EOF -if { (eval echo configure:8764: \"$ac_link\") 1>&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 <<EOF -#line 8818 "configure" +#line 8864 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -8825,7 +8871,7 @@ layout_object_getvalue() ; return 0; } EOF -if { (eval echo configure:8829: \"$ac_link\") 1>&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 - -cat > conftest.$ac_ext <<EOF -#line 8918 "configure" +echo "configure:8961: checking for $ac_func" >&5 + +cat > conftest.$ac_ext <<EOF +#line 8964 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -8937,7 +8983,7 @@ ; return 0; } EOF -if { (eval echo configure:8941: \"$ac_link\") 1>&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 - -cat > conftest.$ac_ext <<EOF -#line 8978 "configure" +echo "configure:9021: checking for $ac_func" >&5 + +cat > conftest.$ac_ext <<EOF +#line 9024 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -8997,7 +9043,7 @@ ; return 0; } EOF -if { (eval echo configure:9001: \"$ac_link\") 1>&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 - -cat > conftest.$ac_ext <<EOF -#line 9045 "configure" +echo "configure:9088: checking for $ac_func" >&5 + +cat > conftest.$ac_ext <<EOF +#line 9091 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -9064,7 +9110,7 @@ ; return 0; } EOF -if { (eval echo configure:9068: \"$ac_link\") 1>&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 -cat > conftest.$ac_ext <<EOF -#line 9104 "configure" +echo "configure:9148: checking whether netdb declares h_errno" >&5 +cat > conftest.$ac_ext <<EOF +#line 9150 "configure" #include "confdefs.h" #include <netdb.h> 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 -cat > conftest.$ac_ext <<EOF -#line 9133 "configure" +echo "configure:9177: checking for sigsetjmp" >&5 +cat > conftest.$ac_ext <<EOF +#line 9179 "configure" #include "confdefs.h" #include <setjmp.h> 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 <<EOF -#line 9164 "configure" +#line 9210 "configure" #include "confdefs.h" #include <time.h> #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 -cat > conftest.$ac_ext <<EOF -#line 9231 "configure" +echo "configure:9275: checking whether gettimeofday accepts one or two arguments" >&5 +cat > conftest.$ac_ext <<EOF +#line 9277 "configure" #include "confdefs.h" #ifdef TIME_WITH_SYS_TIME @@ -9249,7 +9295,7 @@ ; return 0; } EOF -if { (eval echo configure:9253: \"$ac_link\") 1>&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 <<EOF -#line 9280 "configure" +#line 9326 "configure" #include "confdefs.h" int main() { } $ac_kw foo() { ; return 0; } EOF -if { (eval echo configure:9287: \"$ac_compile\") 1>&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 - -cat > conftest.$ac_ext <<EOF -#line 9340 "configure" +echo "configure:9384: checking for working alloca.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 9387 "configure" #include "confdefs.h" #include <alloca.h> 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 - -cat > conftest.$ac_ext <<EOF -#line 9374 "configure" +echo "configure:9418: checking for alloca" >&5 + +cat > conftest.$ac_ext <<EOF +#line 9421 "configure" #include "confdefs.h" #ifdef __GNUC__ @@ -9398,7 +9445,7 @@ char *p = (char *) alloca(1); ; return 0; } EOF -if { (eval echo configure:9402: \"$ac_link\") 1>&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 - -cat > conftest.$ac_ext <<EOF -#line 9444 "configure" +echo "configure:9488: checking whether alloca needs Cray hooks" >&5 + +cat > conftest.$ac_ext <<EOF +#line 9491 "configure" #include "confdefs.h" #if defined(CRAY) && ! defined(CRAY2) webecray @@ -9464,10 +9511,10 @@ if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:9468: checking for $ac_func" >&5 - -cat > conftest.$ac_ext <<EOF -#line 9471 "configure" +echo "configure:9515: checking for $ac_func" >&5 + +cat > conftest.$ac_ext <<EOF +#line 9518 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -9490,7 +9537,7 @@ ; return 0; } EOF -if { (eval echo configure:9494: \"$ac_link\") 1>&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 - -cat > conftest.$ac_ext <<EOF -#line 9527 "configure" +echo "configure:9571: checking stack direction for C alloca" >&5 + +cat > conftest.$ac_ext <<EOF +#line 9574 "configure" #include "confdefs.h" find_stack_direction () { @@ -9542,7 +9589,7 @@ exit (find_stack_direction() < 0); } EOF -if { (eval echo configure:9546: \"$ac_link\") 1>&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 - -cat > conftest.$ac_ext <<EOF -#line 9578 "configure" +echo "configure:9623: checking for vfork.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 9626 "configure" #include "confdefs.h" #include <vfork.h> 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 - -cat > conftest.$ac_ext <<EOF -#line 9614 "configure" +echo "configure:9659: checking for working vfork" >&5 + +cat > conftest.$ac_ext <<EOF +#line 9662 "configure" #include "confdefs.h" /* Thanks to Paul Eggert for this test. */ #include <stdio.h> @@ -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 - -cat > conftest.$ac_ext <<EOF -#line 9738 "configure" +echo "configure:9783: checking for working strcoll" >&5 + +cat > conftest.$ac_ext <<EOF +#line 9786 "configure" #include "confdefs.h" #include <string.h> 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 - -cat > conftest.$ac_ext <<EOF -#line 9779 "configure" +echo "configure:9824: checking for $ac_func" >&5 + +cat > conftest.$ac_ext <<EOF +#line 9827 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -9798,7 +9846,7 @@ ; return 0; } EOF -if { (eval echo configure:9802: \"$ac_link\") 1>&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 - -cat > conftest.$ac_ext <<EOF -#line 9833 "configure" +echo "configure:9878: checking whether getpgrp takes no argument" >&5 + +cat > conftest.$ac_ext <<EOF +#line 9881 "configure" #include "confdefs.h" /* @@ -9884,7 +9932,7 @@ } EOF -if { (eval echo configure:9888: \"$ac_link\") 1>&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 <<EOF -#line 9918 "configure" +#line 9966 "configure" #include "confdefs.h" #include <stdio.h> #include <unistd.h> @@ -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 - -cat > conftest.$ac_ext <<EOF -#line 9989 "configure" +echo "configure:10034: checking for termios.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 10037 "configure" #include "confdefs.h" #include <termios.h> 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 - -cat > conftest.$ac_ext <<EOF -#line 10040 "configure" +echo "configure:10085: checking for termio.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 10088 "configure" #include "confdefs.h" #include <termio.h> 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 - -cat > conftest.$ac_ext <<EOF -#line 10080 "configure" +echo "configure:10125: checking for socket" >&5 + +cat > conftest.$ac_ext <<EOF +#line 10128 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char socket(); below. */ @@ -10099,7 +10147,7 @@ ; return 0; } EOF -if { (eval echo configure:10103: \"$ac_link\") 1>&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 - -cat > conftest.$ac_ext <<EOF -#line 10121 "configure" +echo "configure:10166: checking for netinet/in.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 10169 "configure" #include "confdefs.h" #include <netinet/in.h> 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 - -cat > conftest.$ac_ext <<EOF -#line 10146 "configure" +echo "configure:10191: checking for arpa/inet.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 10194 "configure" #include "confdefs.h" #include <arpa/inet.h> 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 <<EOF -#line 10178 "configure" +#line 10226 "configure" #include "confdefs.h" #include <sys/types.h> @@ -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 <<EOF -#line 10209 "configure" +#line 10257 "configure" #include "confdefs.h" #include <sys/types.h> @@ -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 - -cat > conftest.$ac_ext <<EOF -#line 10253 "configure" +echo "configure:10298: checking for msgget" >&5 + +cat > conftest.$ac_ext <<EOF +#line 10301 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char msgget(); below. */ @@ -10272,7 +10320,7 @@ ; return 0; } EOF -if { (eval echo configure:10276: \"$ac_link\") 1>&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 - -cat > conftest.$ac_ext <<EOF -#line 10294 "configure" +echo "configure:10339: checking for sys/ipc.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 10342 "configure" #include "confdefs.h" #include <sys/ipc.h> 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 - -cat > conftest.$ac_ext <<EOF -#line 10319 "configure" +echo "configure:10364: checking for sys/msg.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 10367 "configure" #include "confdefs.h" #include <sys/msg.h> 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 - -cat > conftest.$ac_ext <<EOF -#line 10365 "configure" +echo "configure:10410: checking for dirent.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 10413 "configure" #include "confdefs.h" #include <dirent.h> 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 - -cat > conftest.$ac_ext <<EOF -#line 10400 "configure" +echo "configure:10445: checking for sys/dir.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 10448 "configure" #include "confdefs.h" #include <sys/dir.h> 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 - -cat > conftest.$ac_ext <<EOF -#line 10441 "configure" +echo "configure:10486: checking for nlist.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 10489 "configure" #include "confdefs.h" #include <nlist.h> 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 - -cat > conftest.$ac_ext <<EOF -#line 10490 "configure" +echo "configure:10535: checking for multimedia/audio_device.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 10538 "configure" #include "confdefs.h" #include <multimedia/audio_device.h> 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 - -cat > conftest.$ac_ext <<EOF -#line 10546 "configure" +echo "configure:10591: checking for audio.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 10594 "configure" #include "confdefs.h" #include <audio.h> 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 <<EOF -#line 10574 "configure" +#line 10622 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -10581,7 +10629,7 @@ ALopenport() ; return 0; } EOF -if { (eval echo configure:10585: \"$ac_link\") 1>&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 <<EOF -#line 10626 "configure" +#line 10674 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -10633,7 +10681,7 @@ AOpenAudio() ; return 0; } EOF -if { (eval echo configure:10637: \"$ac_link\") 1>&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 - -cat > conftest.$ac_ext <<EOF -#line 10678 "configure" +echo "configure:10723: checking for ${dir}/soundcard.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 10726 "configure" #include "confdefs.h" #include <${dir}/soundcard.h> 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 -#line 10753 "configure" +#line 10801 "configure" #include "confdefs.h" #include <audio/Xtutil.h> EOF @@ -10770,7 +10818,7 @@ rm -f conftest* cat > conftest.$ac_ext <<EOF -#line 10774 "configure" +#line 10822 "configure" #include "confdefs.h" #include <audio/fileutil.h> #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 <<EOF -#line 10824 "configure" +#line 10872 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -10831,7 +10879,7 @@ tgetent() ; return 0; } EOF -if { (eval echo configure:10835: \"$ac_link\") 1>&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 - -cat > conftest.$ac_ext <<EOF -#line 10871 "configure" +echo "configure:10916: checking for ncurses/curses.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 10919 "configure" #include "confdefs.h" #include <ncurses/curses.h> 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 - -cat > conftest.$ac_ext <<EOF -#line 10901 "configure" +echo "configure:10946: checking for ncurses/term.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 10949 "configure" #include "confdefs.h" #include <ncurses/term.h> 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 - -cat > conftest.$ac_ext <<EOF -#line 10939 "configure" +echo "configure:10984: checking for ncurses/curses.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 10987 "configure" #include "confdefs.h" #include <ncurses/curses.h> 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 <<EOF -#line 10984 "configure" +#line 11032 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -10991,7 +11039,7 @@ tgetent() ; return 0; } EOF -if { (eval echo configure:10995: \"$ac_link\") 1>&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 <<EOF -#line 11031 "configure" +#line 11079 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -11038,7 +11086,7 @@ tgetent() ; return 0; } EOF -if { (eval echo configure:11042: \"$ac_link\") 1>&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 <<EOF -#line 11065 "configure" +#line 11113 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -11072,7 +11120,7 @@ tgetent() ; return 0; } EOF -if { (eval echo configure:11076: \"$ac_link\") 1>&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 - -cat > conftest.$ac_ext <<EOF -#line 11127 "configure" +echo "configure:11172: checking for gpm.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 11175 "configure" #include "confdefs.h" #include <gpm.h> 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 <<EOF -#line 11160 "configure" +#line 11208 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -11167,7 +11215,7 @@ Gpm_Open() ; return 0; } EOF -if { (eval echo configure:11171: \"$ac_link\") 1>&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 - -cat > conftest.$ac_ext <<EOF -#line 11228 "configure" +echo "configure:11273: checking for ndbm.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 11276 "configure" #include "confdefs.h" #include <ndbm.h> 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 <<EOF -#line 11268 "configure" +#line 11316 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -11275,7 +11323,7 @@ dbm_open() ; return 0; } EOF -if { (eval echo configure:11279: \"$ac_link\") 1>&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 - -cat > conftest.$ac_ext <<EOF -#line 11310 "configure" +echo "configure:11355: checking for dbm_open" >&5 + +cat > conftest.$ac_ext <<EOF +#line 11358 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char dbm_open(); below. */ @@ -11329,7 +11377,7 @@ ; return 0; } EOF -if { (eval echo configure:11333: \"$ac_link\") 1>&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 <<EOF -#line 11357 "configure" +#line 11405 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -11364,7 +11412,7 @@ dbm_open() ; return 0; } EOF -if { (eval echo configure:11368: \"$ac_link\") 1>&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 <<EOF -#line 11413 "configure" +#line 11461 "configure" #include "confdefs.h" #include <stdlib.h> @@ -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 <<EOF -#line 11453 "configure" +#line 11501 "configure" #include "confdefs.h" #include <$db_h_path> #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 - -cat > conftest.$ac_ext <<EOF -#line 11475 "configure" +echo "configure:11520: checking for $dbfunc" >&5 + +cat > conftest.$ac_ext <<EOF +#line 11523 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $dbfunc(); below. */ @@ -11494,7 +11542,7 @@ ; return 0; } EOF -if { (eval echo configure:11498: \"$ac_link\") 1>&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 <<EOF -#line 11522 "configure" +#line 11570 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -11529,7 +11577,7 @@ $dbfunc() ; return 0; } EOF -if { (eval echo configure:11533: \"$ac_link\") 1>&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 <<EOF -#line 11602 "configure" +#line 11650 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -11609,7 +11657,7 @@ SOCKSinit() ; return 0; } EOF -if { (eval echo configure:11613: \"$ac_link\") 1>&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 - -cat > conftest.$ac_ext <<EOF -#line 11675 "configure" +echo "configure:11720: checking for $ac_hdr" >&5 + +cat > conftest.$ac_ext <<EOF +#line 11723 "configure" #include "confdefs.h" #include <$ac_hdr> 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 <<EOF -#line 11716 "configure" +#line 11764 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -11723,7 +11771,7 @@ dlopen() ; return 0; } EOF -if { (eval echo configure:11727: \"$ac_link\") 1>&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 <<EOF -#line 11761 "configure" +#line 11809 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -11768,7 +11816,7 @@ _dlopen() ; return 0; } EOF -if { (eval echo configure:11772: \"$ac_link\") 1>&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 <<EOF -#line 11806 "configure" +#line 11854 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -11813,7 +11861,7 @@ dlopen() ; return 0; } EOF -if { (eval echo configure:11817: \"$ac_link\") 1>&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 <<EOF -#line 11851 "configure" +#line 11899 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -11858,7 +11906,7 @@ shl_load() ; return 0; } EOF -if { (eval echo configure:11862: \"$ac_link\") 1>&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 <<EOF -#line 11896 "configure" +#line 11944 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -11903,7 +11951,7 @@ dld_init() ; return 0; } EOF -if { (eval echo configure:11907: \"$ac_link\") 1>&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 - -cat > conftest.$ac_ext <<EOF -#line 12051 "configure" +echo "configure:12096: checking for $ac_func" >&5 + +cat > conftest.$ac_ext <<EOF +#line 12099 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -12070,7 +12118,7 @@ ; return 0; } EOF -if { (eval echo configure:12074: \"$ac_link\") 1>&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 <<EOF -#line 12110 "configure" +#line 12158 "configure" #include "confdefs.h" int main(int c,char *v[]){return 0;} EOF -if { (eval echo configure:12114: \"$ac_link\") 1>&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
--- a/configure.in Mon Aug 13 11:00:13 2007 +0200 +++ b/configure.in Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/dynodump/dynodump.c Mon Aug 13 11:00:13 2007 +0200 +++ b/dynodump/dynodump.c Mon Aug 13 11:01:07 2007 +0200 @@ -68,12 +68,12 @@ * 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. */ -#pragma ident "@(#) $Id: dynodump.c,v 1.6 1998/03/31 20:10:55 steve Exp $ - SMI" +#pragma ident "@(#) $Id: dynodump.c,v 1.7 2000/11/17 03:21:17 vins Exp $ - SMI" #define __EXTENSIONS__ 1
--- a/etc/Emacs.ad Mon Aug 13 11:00:13 2007 +0200 +++ b/etc/Emacs.ad Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/etc/NEWS Mon Aug 13 11:00:13 2007 +0200 +++ b/etc/NEWS Mon Aug 13 11:01:07 2007 +0200 @@ -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)
--- a/etc/PACKAGES Mon Aug 13 11:00:13 2007 +0200 +++ b/etc/PACKAGES Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/etc/etags.1 Mon Aug 13 11:00:13 2007 +0200 +++ b/etc/etags.1 Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/etc/xemacs-fe.sh Mon Aug 13 11:00:13 2007 +0200 +++ b/etc/xemacs-fe.sh Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/etc/xemacs-ja.1 Mon Aug 13 11:00:13 2007 +0200 +++ b/etc/xemacs-ja.1 Mon Aug 13 11:01:07 2007 +0200 @@ -680,7 +680,7 @@ .PP .B XEmacs ¤Ï¡¢Chuck Thompson <cthomp@xemacs.org>¡¢Ben Wing <ben@xemacs.org>¡¢ -Jamie Zawinski <jwz@netscape.com>¡¢Richard Mlynarik <mly@adoc.xerox.com>¡¢ +Jamie Zawinski <jwz@netscape.com>¡¢Richard Mlynarik <Mly@POBox.COM>¡¢ Martin Buchholz <mrb@eng.sun.com> ¾¡¢¤Ë¤è¤Ã¤Æ½ñ¤«¤ì¤Þ¤·¤¿¡£ Free Software Foundation ¤Î Richard Stallman ¤Î½ñ¤¤¤¿ .B "GNU Emacs "
--- a/etc/xemacs.1 Mon Aug 13 11:00:13 2007 +0200 +++ b/etc/xemacs.1 Mon Aug 13 11:01:07 2007 +0200 @@ -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 <steve@xemacs.org>, Martin Buchholz <martin@xemacs.org>, -Richard Mlynarik <mly@adoc.xerox.com>, +Richard Mlynarik <Mly@POBox.COM>, Hrvoje Niksic <hniksic@srce.hr>, Chuck Thompson <cthomp@xemacs.org>, Ben Wing <wing@666.com>,
--- a/lib-src/ChangeLog Mon Aug 13 11:00:13 2007 +0200 +++ b/lib-src/ChangeLog Mon Aug 13 11:01:07 2007 +0200 @@ -1,3 +1,7 @@ +2001-01-07 XEmacs Build Bot <builds@cvs.xemacs.org> + + * XEmacs 21.1.13 is released + 2000-08-04 XEmacs Build Bot <builds@cvs.xemacs.org> * XEmacs 21.1.12 is released
--- a/lib-src/etags.c Mon Aug 13 11:00:13 2007 +0200 +++ b/lib-src/etags.c Mon Aug 13 11:01:07 2007 +0200 @@ -3730,7 +3730,7 @@ /* * Postscript tag functions * Just look for lines where the first character is '/' - * Richard Mlynarik <mly@adoc.xerox.com> + * Richard Mlynarik <Mly@POBox.COM> */ void Postscript_functions (inf)
--- a/lib-src/ootags.c Mon Aug 13 11:00:13 2007 +0200 +++ b/lib-src/ootags.c Mon Aug 13 11:01:07 2007 +0200 @@ -4076,7 +4076,7 @@ /* * Postscript tag functions * Just look for lines where the first character is '/' - * Richard Mlynarik <mly@adoc.xerox.com> + * Richard Mlynarik <Mly@POBox.COM> */ void Postscript_functions (inf)
--- a/lisp/ChangeLog Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/ChangeLog Mon Aug 13 11:01:07 2007 +0200 @@ -1,3 +1,149 @@ +2001-01-07 XEmacs Build Bot <builds@cvs.xemacs.org> + + * XEmacs 21.1.13 is released + +2000-12-08 Adrian Aichner <adrian@xemacs.org> + + * 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 <stephen@xemacs.org> + + * 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 <didier@xemacs.org> + + * mouse.el (default-mouse-track-set-point-in-window): remove + spurious '+' operation detected by Martin. + +2000-12-01 Martin Bucholz <martin@xemacs.org> + + * cl-extra.el (coerce): + Implement char to integer coercion. + Remove extraneous (numberp) test. + +2000-11-02 Stephen J. Turnbull <stephen@xemacs.org> + + * cus-face.el: Typo fixes and tiny clarifications. + +2000-10-24 Didier Verna <didier@xemacs.org> + + * 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 <jorma.laaksonen@hut.fi> + + * package-admin.el: Allow package removal from + early-package-load-path. + +2000-10-16 Yoshiki Hayashi <yoshiki@xemacs.org> + + * byte-optimize.el (byte-after-unbind-pos): Remove byte-equal. + +2000-10-26 Yoshiki Hayashi <yoshiki@xemacs.org> + + * 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 <hniksic@iskon.hr> + + * code-files.el (convert-mbox-coding-system): Deleted. + (file-coding-system-alist): Removed reference to + convert-mbox-coding-system. + +1999-10-29 Hrvoje Niksic <hniksic@iskon.hr> + + * font-lock.el (font-lock-lisp-like): New function. + (font-lock-fontify-syntactically-region): Use it. + +2000-10-11 Martin Buchholz <martin@xemacs.org> + + * 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 <adrian@xemacs.org> + + * 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 <oscar@xemacs.org> + + * subr.el (split-string): Avoid infinite looping + +2000-10-12 Daniel Pittman <daniel@rimspace.net> + + * 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 <carney@scubadoo.com> + + * etags.el: Prevent tag-search from going compute-bound. + +2000-09-19 Martin Buchholz <martin@xemacs.org> + + * 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 <martin@xemacs.org> + + * 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 <martin@xemacs.org> + + * cl-macs.el (cl-do-proclaim): + Fix (declare (special ...)) warning suppression syntax. + +2000-08-22 Stephen J. Turnbull <stephen@xemacs.org> + + * mule/mule-init.el (auto-language-alist): Distinguish zh_CN, zh_TW. + 2000-08-04 XEmacs Build Bot <builds@cvs.xemacs.org> * 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 <jj@asu.edu> @@ -2729,7 +2875,7 @@ 1998-04-19 Oscar Figueiredo <Oscar.Figueiredo@di.epfl.ch> - * 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 <steve@altair.xemacs.org>
--- a/lisp/ChangeLog.1 Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/ChangeLog.1 Mon Aug 13 11:01:07 2007 +0200 @@ -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 <petersen@kurims.kyoto-u.ac.jp> - * 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 <petersen@kurims.kyoto-u.ac.jp> @@ -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 <mly@adoc.xerox.com> +Thu Feb 13 17:58:09 1997 Richard Mlynarik <Mly@POBox.COM> * 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 <mly@adoc.xerox.com> +Fri Dec 27 12:30:37 1996 Richard Mlynarik <Mly@POBox.COM> * prim/sort.el (sort-subr): Document use of `sort-fold-case'. (sort-lines): Ditto.
--- a/lisp/about.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/about.el Mon Aug 13 11:01:07 2007 +0200 @@ -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")
--- a/lisp/byte-optimize.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/byte-optimize.el Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/lisp/bytecomp.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/bytecomp.el Mon Aug 13 11:01:07 2007 +0200 @@ -3,13 +3,14 @@ ;;; Copyright (C) 1985-1987, 1991-1994 Free Software Foundation, Inc. ;;; Copyright (C) 1996 Ben Wing. -;; Author: Jamie Zawinski <jwz@netscape.com> -;; Hallvard Furuseth <hbf@ulrik.uio.no> -;; Keywords: internal - -;; Subsequently modified by RMS and others. - -(defconst byte-compile-version (purecopy "2.25 XEmacs; 22-Mar-96.")) +;; Authors: Jamie Zawinski <jwz@jwz.org> +;; Hallvard Furuseth <hbf@ulrik.uio.no> +;; Ben Wing <ben@xemacs.org> +;; Martin Buchholz <martin@xemacs.org> +;; Richard Stallman <rms@gnu.org> +;; 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))
--- a/lisp/cl-extra.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/cl-extra.el Mon Aug 13 11:01:07 2007 +0200 @@ -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))))
--- a/lisp/cl-macs.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/cl-macs.el Mon Aug 13 11:01:07 2007 +0200 @@ -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))
--- a/lisp/cl-seq.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/cl-seq.el Mon Aug 13 11:01:07 2007 +0200 @@ -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*'."
--- a/lisp/cl.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/cl.el Mon Aug 13 11:01:07 2007 +0200 @@ -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))
--- a/lisp/code-files.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/code-files.el Mon Aug 13 11:01:07 2007 +0200 @@ -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"
--- a/lisp/cus-face.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/cus-face.el Mon Aug 13 11:01:07 2007 +0200 @@ -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]....
--- a/lisp/custom.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/custom.el Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/lisp/easymenu.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/easymenu.el Mon Aug 13 11:01:07 2007 +0200 @@ -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 <inge@nada.kth.se> ;; 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))))
--- a/lisp/etags.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/etags.el Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/lisp/faces.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/faces.el Mon Aug 13 11:01:07 2007 +0200 @@ -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.")
--- a/lisp/find-paths.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/find-paths.el Mon Aug 13 11:01:07 2007 +0200 @@ -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))
--- a/lisp/font-lock.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/font-lock.el Mon Aug 13 11:01:07 2007 +0200 @@ -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.
--- a/lisp/gnuserv.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/gnuserv.el Mon Aug 13 11:01:07 2007 +0200 @@ -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.
--- a/lisp/info.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/info.el Mon Aug 13 11:01:07 2007 +0200 @@ -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' (`\\<help-mode-map>\\[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' +(`\\<help-mode-map>\\[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[.<suffix>] + (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)
--- a/lisp/minibuf.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/minibuf.el Mon Aug 13 11:01:07 2007 +0200 @@ -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)
--- a/lisp/mouse.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/mouse.el Mon Aug 13 11:01:07 2007 +0200 @@ -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")
--- a/lisp/mule/mule-cmds.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/mule/mule-cmds.el Mon Aug 13 11:01:07 2007 +0200 @@ -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)
--- a/lisp/mule/mule-coding.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/mule/mule-coding.el Mon Aug 13 11:01:07 2007 +0200 @@ -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)
--- a/lisp/mule/mule-init.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/mule/mule-init.el Mon Aug 13 11:01:07 2007 +0200 @@ -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).
--- a/lisp/mwheel.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/mwheel.el Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/lisp/obsolete.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/obsolete.el Mon Aug 13 11:01:07 2007 +0200 @@ -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.
--- a/lisp/package-admin.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/package-admin.el Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/lisp/paragraphs.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/paragraphs.el Mon Aug 13 11:01:07 2007 +0200 @@ -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)
--- a/lisp/simple.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/simple.el Mon Aug 13 11:01:07 2007 +0200 @@ -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.
--- a/lisp/startup.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/startup.el Mon Aug 13 11:01:07 2007 +0200 @@ -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))
--- a/lisp/subr.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/subr.el Mon Aug 13 11:01:07 2007 +0200 @@ -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))))
--- a/lisp/term/internal.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/term/internal.el Mon Aug 13 11:01:07 2007 +0200 @@ -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])
--- a/lisp/term/sun-mouse.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/term/sun-mouse.el Mon Aug 13 11:01:07 2007 +0200 @@ -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)
--- a/lisp/toolbar-items.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/toolbar-items.el Mon Aug 13 11:01:07 2007 +0200 @@ -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:
--- a/lisp/wid-edit.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/wid-edit.el Mon Aug 13 11:01:07 2007 +0200 @@ -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))))
--- a/lisp/winnt.el Mon Aug 13 11:00:13 2007 +0200 +++ b/lisp/winnt.el Mon Aug 13 11:01:07 2007 +0200 @@ -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))))
--- a/lisp/xpm-button.el Mon Aug 13 11:00:13 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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
--- a/lwlib/ChangeLog Mon Aug 13 11:00:13 2007 +0200 +++ b/lwlib/ChangeLog Mon Aug 13 11:01:07 2007 +0200 @@ -1,3 +1,7 @@ +2001-01-07 XEmacs Build Bot <builds@cvs.xemacs.org> + + * XEmacs 21.1.13 is released + 2000-08-04 XEmacs Build Bot <builds@cvs.xemacs.org> * XEmacs 21.1.12 is released
--- a/lwlib/lwlib.h Mon Aug 13 11:00:13 2007 +0200 +++ b/lwlib/lwlib.h Mon Aug 13 11:01:07 2007 +0200 @@ -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;
--- a/man/ChangeLog Mon Aug 13 11:00:13 2007 +0200 +++ b/man/ChangeLog Mon Aug 13 11:01:07 2007 +0200 @@ -1,3 +1,91 @@ +2001-01-07 XEmacs Build Bot <builds@cvs.xemacs.org> + + * XEmacs 21.1.13 is released + +2001-01-03 Adrian Aichner <adrian@xemacs.org> + + * texinfo.texi (First Node): fixing grammar. + * texinfo.texi (Other Info Files): changing reference from (emacs) + to (xemacs). + +2000-11-02 Stephen J. Turnbull <stephen@xemacs.org> + + * xemacs/menus.texi: + * widget.texi: + Typo fixes and tiny clarifications. + +2000-11-13 Adrian Aichner <adrian@xemacs.org> + + * 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 <adrian@xemacs.org> + + * 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 <adrian@xemacs.org> + + * 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 <adrian@xemacs.org> + + * 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 <stephen@xemacs.org> + + * 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 <martin@xemacs.org> + + * xemacs/startup.texi (Startup Paths): Minor fixes. + +2000-08-24 Martin Buchholz <martin@xemacs.org> + + * lispref/databases.texi (Connecting to a Database): + s/berkeley_db/berkeley-db/. Too much C programming. + 2000-08-04 XEmacs Build Bot <builds@cvs.xemacs.org> * 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.
--- a/man/info-stnd.texi Mon Aug 13 11:00:13 2007 +0200 +++ b/man/info-stnd.texi Mon Aug 13 11:01:07 2007 +0200 @@ -9,7 +9,7 @@ @synindex fn cp @synindex ky cp @comment %**end of header -@comment $Id: info-stnd.texi,v 1.3 1998/06/30 06:35:28 steve Exp $ +@comment $Id: info-stnd.texi,v 1.4 2000/12/17 02:08:28 vins Exp $ @dircategory Texinfo documentation system @direntry @@ -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})
--- a/man/info.texi Mon Aug 13 11:00:13 2007 +0200 +++ b/man/info.texi Mon Aug 13 11:01:07 2007 +0200 @@ -3,7 +3,7 @@ @setfilename ../info/info.info @settitle Info 1.0 @comment %**end of header -@comment $Id: info.texi,v 1.5 2000/07/15 00:44:53 vins Exp $ +@comment $Id: info.texi,v 1.7 2000/12/17 02:08:28 vins Exp $ @dircategory Texinfo documentation system @direntry @@ -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.
--- a/man/internals/internals.texi Mon Aug 13 11:00:13 2007 +0200 +++ b/man/internals/internals.texi Mon Aug 13 11:01:07 2007 +0200 @@ -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),
--- a/man/lispref/abbrevs.texi Mon Aug 13 11:00:13 2007 +0200 +++ b/man/lispref/abbrevs.texi Mon Aug 13 11:01:07 2007 +0200 @@ -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.
--- a/man/lispref/backups.texi Mon Aug 13 11:00:13 2007 +0200 +++ b/man/lispref/backups.texi Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/man/lispref/consoles-devices.texi Mon Aug 13 11:00:13 2007 +0200 +++ b/man/lispref/consoles-devices.texi Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/man/lispref/databases.texi Mon Aug 13 11:00:13 2007 +0200 +++ b/man/lispref/databases.texi Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/man/lispref/display.texi Mon Aug 13 11:00:13 2007 +0200 +++ b/man/lispref/display.texi Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/man/lispref/help.texi Mon Aug 13 11:00:13 2007 +0200 +++ b/man/lispref/help.texi Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/man/lispref/keymaps.texi Mon Aug 13 11:00:13 2007 +0200 +++ b/man/lispref/keymaps.texi Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/man/lispref/locals.texi Mon Aug 13 11:00:13 2007 +0200 +++ b/man/lispref/locals.texi Mon Aug 13 11:01:07 2007 +0200 @@ -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}
--- a/man/lispref/modes.texi Mon Aug 13 11:00:13 2007 +0200 +++ b/man/lispref/modes.texi Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/man/lispref/positions.texi Mon Aug 13 11:00:13 2007 +0200 +++ b/man/lispref/positions.texi Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/man/lispref/searching.texi Mon Aug 13 11:00:13 2007 +0200 +++ b/man/lispref/searching.texi Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/man/lispref/symbols.texi Mon Aug 13 11:00:13 2007 +0200 +++ b/man/lispref/symbols.texi Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/man/lispref/tips.texi Mon Aug 13 11:00:13 2007 +0200 +++ b/man/lispref/tips.texi Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/man/lispref/windows.texi Mon Aug 13 11:00:13 2007 +0200 +++ b/man/lispref/windows.texi Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/man/texinfo.texi Mon Aug 13 11:00:13 2007 +0200 +++ b/man/texinfo.texi Mon Aug 13 11:01:07 2007 +0200 @@ -1,5 +1,5 @@ \input texinfo.tex @c -*-texinfo-*- -@c $Id: texinfo.texi,v 1.11 1999/12/06 04:31:14 vins Exp $ +@c $Id: texinfo.texi,v 1.13 2001/01/07 03:21:58 vins Exp $ @c %**start of header @c All text is ignored before the setfilename. @@ -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
--- a/man/widget.texi Mon Aug 13 11:00:13 2007 +0200 +++ b/man/widget.texi Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/man/xemacs-faq.texi Mon Aug 13 11:00:13 2007 +0200 +++ b/man/xemacs-faq.texi Mon Aug 13 11:01:07 2007 +0200 @@ -7,7 +7,7 @@ @finalout @titlepage @title XEmacs FAQ -@subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2000/08/02 01:33:39 $ +@subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2000/12/17 02:08:31 $ @sp 1 @author Tony Rossini <rossini@@biostat.washington.edu> @author Ben Wing <ben@@xemacs.org> @@ -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 <br><img src="mrb.jpeg" alt="Portrait of Martin Buchholz"><br> -@end ifhtml +@end html @item @email{steve@@xemacs.org, Steve Baur} -@ifhtml +@html <br><img src="steve.gif" alt="Portrait of Steve Baur"><br> -@end ifhtml +@end html @item @email{hniksic@@xemacs.org, Hrvoje Niksic} -@ifhtml +@html <br><img src="hniksic.jpeg" alt="Portrait of Hrvoje Niksic"><br> -@end ifhtml +@end html @end itemize @@ -811,32 +814,32 @@ @itemize @bullet @item @email{cthomp@@xemacs.org, Chuck Thompson} -@ifhtml +@html <br><img src="cthomp.jpeg" alt="Portrait of Chuck Thompson"><br> -@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 <br><img src="wing.gif" alt="Portrait of Ben Wing"><br> -@end ifhtml +@end html @end itemize @itemize @bullet @item @email{jwz@@jwz.org, Jamie Zawinski} -@ifhtml +@html <br><img src="jwz.gif" alt="Portrait of Jamie Zawinski"><br> -@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 <tarballname> | 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:
--- a/man/xemacs/abbrevs.texi Mon Aug 13 11:00:13 2007 +0200 +++ b/man/xemacs/abbrevs.texi Mon Aug 13 11:01:07 2007 +0200 @@ -1,5 +1,5 @@ -@node Abbrevs, Picture, Packages, Top +@node Abbrevs, Picture, Running, Top @chapter Abbrevs @cindex abbrevs @cindex expansion (of abbrevs)
--- a/man/xemacs/basic.texi Mon Aug 13 11:00:13 2007 +0200 +++ b/man/xemacs/basic.texi Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/man/xemacs/building.texi Mon Aug 13 11:00:13 2007 +0200 +++ b/man/xemacs/building.texi Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/man/xemacs/calendar.texi Mon Aug 13 11:00:13 2007 +0200 +++ b/man/xemacs/calendar.texi Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/man/xemacs/menus.texi Mon Aug 13 11:00:13 2007 +0200 +++ b/man/xemacs/menus.texi Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/man/xemacs/packages.texi Mon Aug 13 11:00:13 2007 +0200 +++ b/man/xemacs/packages.texi Mon Aug 13 11:01:07 2007 +0200 @@ -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 +
--- a/man/xemacs/search.texi Mon Aug 13 11:00:13 2007 +0200 +++ b/man/xemacs/search.texi Mon Aug 13 11:01:07 2007 +0200 @@ -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}.
--- a/man/xemacs/startup.texi Mon Aug 13 11:00:13 2007 +0200 +++ b/man/xemacs/startup.texi Mon Aug 13 11:01:07 2007 +0200 @@ -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{<root>}, 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
--- a/man/xemacs/xemacs.texi Mon Aug 13 11:00:13 2007 +0200 +++ b/man/xemacs/xemacs.texi Mon Aug 13 11:01:07 2007 +0200 @@ -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. @@ -500,13 +507,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.
--- a/nt/ChangeLog Mon Aug 13 11:00:13 2007 +0200 +++ b/nt/ChangeLog Mon Aug 13 11:01:07 2007 +0200 @@ -1,3 +1,16 @@ +2001-01-07 XEmacs Build Bot <builds@cvs.xemacs.org> + + * XEmacs 21.1.13 is released + +2000-12-18 Andy Piper <andy@xemacs.org> + + * runemacs.c (WinMain): force a trailing 0 on the filename. + +2000-10-07 Adrian Aichner <aichner@ecf.teradyne.com> + + * xemacs.mak (default): Enforce running nmake from xemacs.mak's + directory to avoid problems with relative paths. + 2000-08-04 XEmacs Build Bot <builds@cvs.xemacs.org> * XEmacs 21.1.12 is released
--- a/nt/PROBLEMS Mon Aug 13 11:00:13 2007 +0200 +++ b/nt/PROBLEMS Mon Aug 13 11:01:07 2007 +0200 @@ -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.
--- a/nt/README Mon Aug 13 11:00:13 2007 +0200 +++ b/nt/README Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/nt/runemacs.c Mon Aug 13 11:00:13 2007 +0200 +++ b/nt/runemacs.c Mon Aug 13 11:01:07 2007 +0200 @@ -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, " "); }
--- a/nt/xemacs.mak Mon Aug 13 11:00:13 2007 +0200 +++ b/nt/xemacs.mak Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/src/ChangeLog Mon Aug 13 11:00:13 2007 +0200 +++ b/src/ChangeLog Mon Aug 13 11:01:07 2007 +0200 @@ -1,3 +1,184 @@ +2001-01-07 XEmacs Build Bot <builds@cvs.xemacs.org> + + * XEmacs 21.1.13 is released + +2000-12-16 Stephen J. Turnbull <stephen@xemacs.org> + + * 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 <yoshiki@xemacs.org> + + * 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 <stephen@xemacs.org> + + * lwlib.h: Typo fixes and tiny clarifications. + +2000-11-22 Stephen J. Turnbull <turnbull@xemacs.org> + + * mule-charset.c (Fcharset_property): improve type checking. + +2000-11-14 Yoshiki Hayashi <yoshiki@xemacs.org> + + * event-Xt.c: + * event-stream.c: + * fileio.c: + * menubar-msw.c: UNGCPRO before return. + +2000-11-01 Martin Buchholz <martin@xemacs.org> + + * 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 <martin@xemacs.org> + + * unexelfsgi.c: Sync from 21.2. + +2000-11-19 Golubev I. N. <gin@mo.msk.ru> + + * doprnt.c: fix minwidth bug in format + +2000-10-03 Yoshiki Hayashi <yoshiki@xemacs.org> + + * search.c (Freplace_match): Set newtext to an empty string. + +2000-10-02 Stephen J. Turnbull <stephen@xemacs.org> + + * 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 <martin@xemacs.org> + + * Makefile.in.in: Recent purify's require absolute paths for cache-dir. + +2000-09-14 Martin Buchholz <martin@xemacs.org> + + * make-src-depend: Fix typo. + +2000-09-14 Martin Buchholz <martin@xemacs.org> + + * s/gnu.h: + * s/linux.h: + * s/hpux.h: + Use EMACS_BLOCK_SIGNAL instead of sigblock. + From "Golubev I. N." <gin@mo.msk.ru>. + +2000-08-23 Yoshiki Hayashi <yoshiki@xemacs.org> + + * 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 <jhar@tardis.ed.ac.uk> + + * event-msw.c (mswindows_key_to_emacs_keysym): + Add "pause" key, fix "menu" key. + +2000-05-09 Ben Wing <ben@xemacs.org> + + * ntheap.c (recreate_heap): Changed unknown (VC6 only?) SIZE_T to + DWORD. + +2000-09-09 Martin Buchholz <martin@xemacs.org> + + * 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 <martin@xemacs.org> + + * event-Xt.c (x_to_emacs_keysym): Increase size of `buffer' to 513. + From Kenichi Handa. + +2000-11-14 Golubev I. N. <gin@mo.msk.ru> + + * faces.c (get_extent_fragment_face_cache_index): + Fix cachel.merged_faces memory leak. + +2000-11-14 "Alec Wolman" <wolman@cs.washington.edu> + + * emacs.c (kill-emacs): Kill auto-save list on normal exit. + +2000-10-27 Martin Buchholz <martin@xemacs.org> + + * sgiplay.c: #include <unistd.h> + +2000-09-14 Martin Buchholz <martin@xemacs.org> + + * 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 <martin@xemacs.org> + + * sysdep.c (get_pty_max_bytes): + Support pty input lines longer than 512 bytes on HP-UX 10.20. + +2000-08-12 Alexandre Oliva <aoliva@redhat.com> + + * s/hpux.h: Don't use undefined function sigunblock(). + +2000-08-31 Martin Buchholz <martin@xemacs.org> + + * 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 <ge204@eng.cam.ac.uk> + + * eval.c (Ffunction_min_args): + (Ffunction_max_args): GCPRO function. + +2000-08-06 Gunnar Evermann <ge204@eng.cam.ac.uk> + + * 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 <builds@cvs.xemacs.org> * XEmacs 21.1.12 is released @@ -1503,7 +1684,7 @@ 1998-07-17 Olivier Galibert <galibert@pobox.com> * 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 <hagiwara@ie.niigata-u.ac.jp> 1998-07-18 SL Baur <steve@altair.xemacs.org>
--- a/src/ChangeLog.1 Mon Aug 13 11:00:13 2007 +0200 +++ b/src/ChangeLog.1 Mon Aug 13 11:01:07 2007 +0200 @@ -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 <jhar@tardis.ed.ac.uk> - * 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
--- a/src/Makefile.in.in Mon Aug 13 11:00:13 2007 +0200 +++ b/src/Makefile.in.in Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/src/callproc.c Mon Aug 13 11:00:13 2007 +0200 +++ b/src/callproc.c Mon Aug 13 11:01:07 2007 +0200 @@ -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. */ + current_dir = current_buffer->directory; NGCPRO2 (current_dir, path); /* Caller gcprotects args[] */ - current_dir = current_buffer->directory; current_dir = Funhandled_file_name_directory (current_dir); current_dir = expand_and_dir_to_file (current_dir, Qnil); #if 0
--- a/src/config.h.in Mon Aug 13 11:00:13 2007 +0200 +++ b/src/config.h.in Mon Aug 13 11:01:07 2007 +0200 @@ -33,7 +33,10 @@ #ifndef NOT_C_CODE #ifdef __GNUC__ #define alloca __builtin_alloca -#elif HAVE_ALLOCA_H +#elif defined __DECC +#include <alloca.h> +#pragma intrinsic(alloca) +#elif defined HAVE_ALLOCA_H #include <alloca.h> #elif defined(_AIX) #pragma alloca @@ -161,6 +164,8 @@ #undef THIS_IS_X11R5 #undef THIS_IS_X11R6 +#undef HAVE_BALLOON_HELP + /* Where do we find bitmaps? */ #undef BITMAPDIR
--- a/src/depend Mon Aug 13 11:00:13 2007 +0200 +++ b/src/depend Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/src/dialog-msw.c Mon Aug 13 11:00:13 2007 +0200 +++ b/src/dialog-msw.c Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/src/doprnt.c Mon Aug 13 11:00:13 2007 +0200 +++ b/src/doprnt.c Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/src/editfns.c Mon Aug 13 11:00:13 2007 +0200 +++ b/src/editfns.c Mon Aug 13 11:01:07 2007 +0200 @@ -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)))
--- a/src/emacs.c Mon Aug 13 11:00:13 2007 +0200 +++ b/src/emacs.c Mon Aug 13 11:01:07 2007 +0200 @@ -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 (); @@ -2207,6 +2212,12 @@ 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; #endif
--- a/src/eval.c Mon Aug 13 11:00:13 2007 +0200 +++ b/src/eval.c Mon Aug 13 11:01:07 2007 +0200 @@ -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 ();
--- a/src/event-Xt.c Mon Aug 13 11:00:13 2007 +0200 +++ b/src/event-Xt.c Mon Aug 13 11:01:07 2007 +0200 @@ -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;
--- a/src/event-msw.c Mon Aug 13 11:00:13 2007 +0200 +++ b/src/event-msw.c Mon Aug 13 11:01:07 2007 +0200 @@ -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");
--- a/src/event-stream.c Mon Aug 13 11:00:13 2007 +0200 +++ b/src/event-stream.c Mon Aug 13 11:01:07 2007 +0200 @@ -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; }
--- a/src/events.h Mon Aug 13 11:00:13 2007 +0200 +++ b/src/events.h Mon Aug 13 11:01:07 2007 +0200 @@ -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.
--- a/src/faces.c Mon Aug 13 11:00:13 2007 +0200 +++ b/src/faces.c Mon Aug 13 11:01:07 2007 +0200 @@ -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; } }
--- a/src/file-coding.c Mon Aug 13 11:00:13 2007 +0200 +++ b/src/file-coding.c Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/src/file-coding.h Mon Aug 13 11:00:13 2007 +0200 +++ b/src/file-coding.h Mon Aug 13 11:01:07 2007 +0200 @@ -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 \
--- a/src/fileio.c Mon Aug 13 11:00:13 2007 +0200 +++ b/src/fileio.c Mon Aug 13 11:01:07 2007 +0200 @@ -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;
--- a/src/frame.c Mon Aug 13 11:00:13 2007 +0200 +++ b/src/frame.c Mon Aug 13 11:01:07 2007 +0200 @@ -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; - - /* If this frame is dead, it won't be in frame_list, and we'll loop - forever. Forestall that. */ + Lisp_Object last = Qnil; + 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 (frame, Qvisible, Qt); if (NILP (next) || EQ (next, frame)) - next = next_frame_internal (frame, Qvisible, Qt, - called_from_delete_device); + next = next_frame (frame, Qt, device); if (NILP (next) || EQ (next, frame)) - next = next_frame_internal (frame, Qt, device, - called_from_delete_device); + next = next_frame (frame, Qt, console); if (NILP (next) || EQ (next, frame)) - next = next_frame_internal (frame, Qt, console, - called_from_delete_device); - 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
--- a/src/frame.h Mon Aug 13 11:00:13 2007 +0200 +++ b/src/frame.h Mon Aug 13 11:01:07 2007 +0200 @@ -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);
--- a/src/keymap.c Mon Aug 13 11:00:13 2007 +0200 +++ b/src/keymap.c Mon Aug 13 11:01:07 2007 +0200 @@ -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.
--- a/src/lisp.h Mon Aug 13 11:00:13 2007 +0200 +++ b/src/lisp.h Mon Aug 13 11:01:07 2007 +0200 @@ -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,
--- a/src/m/alpha.h Mon Aug 13 11:00:13 2007 +0200 +++ b/src/m/alpha.h Mon Aug 13 11:01:07 2007 +0200 @@ -19,10 +19,6 @@ Boston, MA 02111-1307, USA. */ -#ifdef LINUX -# define SYSTEM_MALLOC -#endif - #ifdef OSF1 # define ORDINARY_LINK #endif
--- a/src/make-src-depend Mon Aug 13 11:00:13 2007 +0200 +++ b/src/make-src-depend Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/src/menubar-msw.c Mon Aug 13 11:00:13 2007 +0200 +++ b/src/menubar-msw.c Mon Aug 13 11:01:07 2007 +0200 @@ -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;
--- a/src/mule-charset.c Mon Aug 13 11:00:13 2007 +0200 +++ b/src/mule-charset.c Mon Aug 13 11:01:07 2007 +0200 @@ -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 */
--- a/src/mule-coding.c Mon Aug 13 11:00:13 2007 +0200 +++ b/src/mule-coding.c Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/src/nt.c Mon Aug 13 11:00:13 2007 +0200 +++ b/src/nt.c Mon Aug 13 11:01:07 2007 +0200 @@ -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! */
--- a/src/ntheap.c Mon Aug 13 11:00:13 2007 +0200 +++ b/src/ntheap.c Mon Aug 13 11:01:07 2007 +0200 @@ -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);
--- a/src/ntproc.c Mon Aug 13 11:00:13 2007 +0200 +++ b/src/ntproc.c Mon Aug 13 11:01:07 2007 +0200 @@ -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. */
--- a/src/redisplay.c Mon Aug 13 11:00:13 2007 +0200 +++ b/src/redisplay.c Mon Aug 13 11:01:07 2007 +0200 @@ -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.
--- a/src/regex.c Mon Aug 13 11:00:13 2007 +0200 +++ b/src/regex.c Mon Aug 13 11:01:07 2007 +0200 @@ -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 */
--- a/src/s/gnu.h Mon Aug 13 11:00:13 2007 +0200 +++ b/src/s/gnu.h Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/src/s/hpux.h Mon Aug 13 11:00:13 2007 +0200 +++ b/src/s/hpux.h Mon Aug 13 11:01:07 2007 +0200 @@ -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. */
--- a/src/s/linux.h Mon Aug 13 11:00:13 2007 +0200 +++ b/src/s/linux.h Mon Aug 13 11:01:07 2007 +0200 @@ -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
--- a/src/scrollbar.c Mon Aug 13 11:00:13 2007 +0200 +++ b/src/scrollbar.c Mon Aug 13 11:01:07 2007 +0200 @@ -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)
--- a/src/search.c Mon Aug 13 11:00:13 2007 +0200 +++ b/src/search.c Mon Aug 13 11:01:07 2007 +0200 @@ -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, @@ -2036,6 +2041,10 @@ newtext = accum; } + /* newtext can be nil. */ + if (NILP (newtext)) + newtext = build_string (""); + if (case_action == all_caps) newtext = Fupcase (newtext, buffer); else if (case_action == cap_initial)
--- a/src/sgiplay.c Mon Aug 13 11:00:13 2007 +0200 +++ b/src/sgiplay.c Mon Aug 13 11:01:07 2007 +0200 @@ -29,6 +29,7 @@ #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> +#include <unistd.h> #include <string.h> #include <netinet/in.h> /* for ntohl() etc. */
--- a/src/sound.c Mon Aug 13 11:00:13 2007 +0200 +++ b/src/sound.c Mon Aug 13 11:01:07 2007 +0200 @@ -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.
--- a/src/syntax.c Mon Aug 13 11:00:13 2007 +0200 +++ b/src/syntax.c Mon Aug 13 11:01:07 2007 +0200 @@ -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;
--- a/src/syntax.h Mon Aug 13 11:00:13 2007 +0200 +++ b/src/syntax.h Mon Aug 13 11:01:07 2007 +0200 @@ -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);
--- a/src/sysdep.c Mon Aug 13 11:00:13 2007 +0200 +++ b/src/sysdep.c Mon Aug 13 11:01:07 2007 +0200 @@ -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);
--- a/src/unexelfsgi.c Mon Aug 13 11:00:13 2007 +0200 +++ b/src/unexelfsgi.c Mon Aug 13 11:01:07 2007 +0200 @@ -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 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. + 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 XEmacs; see the file COPYING. If not, write to -the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ + 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: FSF 19.31. */ + 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. + * void + * unexec (char *new_name, + * char *old_name, + * uintptr_t data_start, + * uintptr_t bss_start, + * uintptr_t entry_address) * - * 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 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. * - * 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. + * 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. * - * "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 - - + * 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 +#ifndef emacs +#define fatal(a, b, c) fprintf (stderr, a, b, c), exit (1) +#include <string.h> +#else +#include <config.h> +extern void fatal (const char *, ...); +#endif -[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 <jackr@sgi.com>, Fri Aug 11 15:45:52 1995 - - 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 <sys/types.h> #include <stdio.h> #include <sys/stat.h> #include <memory.h> -#include <string.h> #include <errno.h> #include <unistd.h> #include <fcntl.h> #include <elf.h> -#include <sym.h> /* for HDRR declaration */ #include <sys/mman.h> -#include <config.h> -#include "lisp.h" +#if defined (__sony_news) && defined (_SYSTYPE_SYSV) +#include <sys/elf_mips.h> +#include <sym.h> +#endif /* __sony_news && _SYSTYPE_SYSV */ +#if __sgi +#include <syms.h> /* 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 <link.h> /* 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; + int old_file; - /* Pointers to the base of the image of the two files. */ + struct stat stat_buf; 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; + 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; - 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 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; - int n, nn, old_bss_index, old_data_index; - int old_mdebug_index, old_sbss_index; - struct stat stat_buf; - - /* 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); + /* 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); - - 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); + fatal ("Can't fstat (%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 + /* 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); - /* 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; + 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 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); + /* 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 (old_sbss_index != -1 && (OLD_SECTION_H (old_sbss_index).sh_type == SHT_PROGBITS)) - old_sbss_index = -1; - - /* Find the old .bss section. */ + 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; + } + } + } - old_bss_index = find_section (".bss", old_section_names, - old_name, old_file_h, old_section_h, 0); - - /* 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 ( new_bss_addr < old_bss_addr + growme->sh_size ) + fatal (".bss shrank when undumping???\n", 0, 0); - 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. */ + /* 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 = 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 */ + 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); - - -#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; + } - if (NEW_PROGRAM_H (n).p_offset >= new_data2_offset) - NEW_PROGRAM_H (n).p_offset += new_offsets_shift; - } -#endif + if (n < 0) + fatal ("Couldn't find segment which covers %s", + old_section_names + growme->sh_name); - /* 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 < (int) old_file_h->e_shnum; n++, nn++) { + ElfW(Shdr) * nsec = & NEW_SECTION_H(nn); + ElfW(Shdr) * osec = & OLD_SECTION_H(n); - /* 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; + /* 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); - /* 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; + memcpy (nsec, od, new_file_h->e_shentsize); - /* 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, + nsec->sh_addr = new_data2_addr; + nsec->sh_offset = new_data2_offset; + nsec->sh_size = new_data2_size; + nsec->sh_addralign = osec->sh_addralign; + + /* Copy over what we have in memory now. */ + memcpy (nsec->sh_offset + new_base, (caddr_t) osec->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. */ + grown = nsec++; + } + + 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; - if (NEW_SECTION_H (nn).sh_offset >= new_base_offset) - NEW_SECTION_H (nn).sh_offset += new_offsets_shift; - + /* 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; + + /* 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); - } + * 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; + } + } - /* 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); + 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); - /* 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) - { + 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); - } - } - } + } + } + } +#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); + } + } + } - /* 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; - - PATCH_INDEX (sym->st_shndx); - } - } - } + /* 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); }
--- a/src/window.c Mon Aug 13 11:00:13 2007 +0200 +++ b/src/window.c Mon Aug 13 11:01:07 2007 +0200 @@ -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 - -If optional third arg ALL-FRAMES t means include windows on all frames. +the minibuffer does not count, only windows from WINDOW's frame count. + +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),
--- a/src/winslots.h Mon Aug 13 11:00:13 2007 +0200 +++ b/src/winslots.h Mon Aug 13 11:01:07 2007 +0200 @@ -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);
--- a/version.sh Mon Aug 13 11:00:13 2007 +0200 +++ b/version.sh Mon Aug 13 11:01:07 2007 +0200 @@ -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