From 8b2e8ef2dee7da2f0d4cea712b0fc55902c3cff7 Mon Sep 17 00:00:00 2001 From: tomo Date: Mon, 3 Sep 2007 07:45:17 +0000 Subject: [PATCH] XEmacs 21.4.20 "Double Solitaire". --- ChangeLog | 20 + PROBLEMS | 10 + configure | 877 ++++++++++++++++++++------------------- configure.in | 19 +- lib-src/ChangeLog | 23 + lib-src/etags.c | 2 +- lib-src/gnuclient.c | 23 +- lib-src/gnuslib.c | 12 +- lib-src/pop.c | 283 ++++++++----- lib-src/pop.h | 12 +- lisp/ChangeLog | 32 ++ lisp/auto-autoloads.el | 4 +- lisp/font-lock.el | 7 +- lisp/info.el | 14 +- lisp/obsolete.el | 3 + lisp/package-get.el | 3 + lwlib/ChangeLog | 11 + lwlib/lwlib-Xlw.c | 4 +- lwlib/xlwmenu.c | 4 +- man/ChangeLog | 22 + man/lispref/os.texi | 4 +- man/new-users-guide/edit.texi | 22 +- man/xemacs-faq.texi | 17 +- netinstall/ChangeLog | 4 + nt/ChangeLog | 14 + nt/config.inc.samp | 3 +- nt/xemacs.mak | 43 +- src/ChangeLog | 101 +++++ src/EmacsShell-sub.c | 17 +- src/buffer.c | 13 +- src/bytecode.c | 3 +- src/device-x.c | 6 +- src/dgif_lib.c | 6 +- src/dialog-msw.c | 4 +- src/dialog-x.c | 2 +- src/dumper.c | 4 +- src/editfns.c | 11 +- src/extents.c | 7 +- src/fileio.c | 77 ++++ src/fns.c | 124 ++++-- src/glyphs-msw.c | 6 +- src/glyphs-widget.c | 8 +- src/input-method-xlib.c | 11 +- src/keymap.c | 2 + src/md5.c | 2 +- src/nas.c | 2 +- src/redisplay-gtk.c | 4 +- src/redisplay-msw.c | 4 +- src/redisplay-output.c | 4 +- src/redisplay-tty.c | 4 +- src/redisplay-x.c | 4 +- src/regex.c | 6 +- src/scrollbar-gtk.c | 14 +- src/scrollbar-msw.c | 6 +- src/scrollbar-x.c | 22 +- src/sound.c | 4 +- tests/ChangeLog | 15 + tests/automated/mule-tests.el | 3 +- tests/automated/tag-tests.el | 9 +- tests/automated/test-harness.el | 62 ++- version.sh | 4 +- 61 files changed, 1322 insertions(+), 741 deletions(-) diff --git a/ChangeLog b/ChangeLog index ebbbab5..cf1f2ea 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,23 @@ +2006-12-09 Vin Shelton + + * XEmacs 21.4.20 is released + +2006-12-07 Vin Shelton + + * configure.in: Find relocated xpm library under cygwin. + Patch lifted from Rick Rankin's 21.5 version of the patch. + +2006-05-17 Stephen J. Turnbull + + * PROBLEMS: X11R7 loses x11/bitmaps/gray. + +2006-01-28 Vin Shelton + + * configure.in: Simplify cygwin include and nox/Xpm handling. + As of cygwin-1.5.19, 'gcc -print-file-name=libc.a' (effectively) + returns '/lib' instead of '/usr/lib', so we'll use + 'gcc -print-search-dirs' instead. + 2006-01-28 Vin Shelton * XEmacs 21.4.19 is released diff --git a/PROBLEMS b/PROBLEMS index 93f8825..7abb978 100644 --- a/PROBLEMS +++ b/PROBLEMS @@ -44,6 +44,16 @@ General advice: Much general information is in INSTALL. If it's covered in INSTALL, we don't repeat it here. +*** X11/bitmaps/gray (or other X11-related file) not found. + +The X11R6 distribution was monolithic, but the X11R7 distribution is +much more modular. Many OS distributions omit these bitmaps (assuming +nobody uses them, evidently). Your OS distribution should have a +developer's package containing these files, probably with a name +containing the string "bitmap". Known package names (you may need to +add an extension such as .deb or .rpm) include x11/xbitmaps (Ubuntu) +and xorg-x11-xbitmaps (Fedora Core 5). + *** How do I configure to get the buffer tabs/progress bars? These features depend on support for "native widgets". Use the diff --git a/configure b/configure index 1fc9ae0..d9fd03f 100755 --- a/configure +++ b/configure @@ -2731,9 +2731,9 @@ test "$extra_verbose" = "yes" && \ for var in libs_machine libs_system libs_termcap libs_standard objects_machine objects_system c_switch_machine c_switch_system ld_switch_machine ld_switch_system unexec ld_switch_shared ld lib_gcc ld_text_start_addr start_files ordinary_link have_terminfo mail_use_flock mail_use_lockf; do eval "echo \"$var = '\$$var'\""; done && echo "" case "$opsys" in mingw* | cygwin*) - cygwin_include=`eval "gcc -print-file-name=libc.a"` ; - cygwin_include=`eval "dirname $cygwin_include"` ; - cygwin_include="-I$cygwin_include/../include" ; + cygwin_include=`eval gcc -print-search-dirs | sed -ne s'/install: //p'` + cygwin_include=`eval "cd $cygwin_include/../../../..; pwd"` + cygwin_include="-I$cygwin_include/include" ; extra_includes="$cygwin_include/mingw $cygwin_include" ; case "$opsys" in mingw*) c_switch_system="$c_switch_system $extra_includes" && if test "$extra_verbose" = "yes"; then echo " Appending \"$extra_includes\" to \$c_switch_system"; fi ;; @@ -8429,15 +8429,16 @@ echo "configure:8429: checking for graphics libraries" >&5 libpath_xpm= incpath_xpm= + libname_xpm="-lXpm" case "$opsys" in cygwin*) - cygwin_top=`eval "gcc -print-file-name=libc.a"` ; - cygwin_top=`eval "dirname ${cygwin_top}"`; - cygwin_top="${cygwin_top}/.."; + cygwin_top=`eval gcc -print-search-dirs | sed -ne s'/install: //p'` + cygwin_top=`eval "cd $cygwin_top/../../../..; pwd"` case "$window_system" in x11) ;; msw) libpath_xpm="-L${cygwin_top}/lib/noX" incpath_xpm="-I${cygwin_top}/include/noX" + libname_xpm="-lXpm-noX" ;; gtk) ;; none) ;; @@ -8451,10 +8452,10 @@ echo "configure:8429: checking for graphics libraries" >&5 CFLAGS=""$incpath_xpm" $CFLAGS" && if test "$extra_verbose" = "yes"; then echo " Prepending \""$incpath_xpm"\" to \$CFLAGS"; fi LDFLAGS=""$libpath_xpm" $LDFLAGS" && if test "$extra_verbose" = "yes"; then echo " Prepending \""$libpath_xpm"\" to \$LDFLAGS"; fi echo $ac_n "checking for Xpm - no older than 3.4f""... $ac_c" 1>&6 -echo "configure:8455: checking for Xpm - no older than 3.4f" >&5 - xe_check_libs=-lXpm +echo "configure:8456: checking for Xpm - no older than 3.4f" >&5 + xe_check_libs="$libname_xpm" cat > conftest.$ac_ext < @@ -8463,7 +8464,7 @@ echo "configure:8455: checking for Xpm - no older than 3.4f" >&5 XpmIncludeVersion != XpmLibraryVersion() ? 1 : XpmIncludeVersion < 30406 ? 2 : 0 ;} EOF -if { (eval echo configure:8467: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:8468: \"$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 @@ -8504,20 +8505,20 @@ EOF } LDFLAGS=""$libpath_xpm" $LDFLAGS" && if test "$extra_verbose" = "yes"; then echo " Prepending \""$libpath_xpm"\" to \$LDFLAGS"; fi - libs_x="-lXpm $libs_x" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-lXpm\" to \$libs_x"; fi + libs_x=""$libname_xpm" $libs_x" && if test "$extra_verbose" = "yes"; then echo " Prepending \""$libname_xpm"\" to \$libs_x"; fi CFLAGS=""$incpath_xpm" $CFLAGS" && if test "$extra_verbose" = "yes"; then echo " Prepending \""$incpath_xpm"\" to \$CFLAGS"; fi echo $ac_n "checking for \"FOR_MSW\" xpm""... $ac_c" 1>&6 -echo "configure:8511: checking for \"FOR_MSW\" xpm" >&5 - xe_check_libs=-lXpm +echo "configure:8512: checking for \"FOR_MSW\" xpm" >&5 + xe_check_libs="$libname_xpm" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8522: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* xpm_for_msw=no else @@ -8543,15 +8544,15 @@ EOF test -z "$with_xface" && { ac_safe=`echo "compface.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for compface.h""... $ac_c" 1>&6 -echo "configure:8547: checking for compface.h" >&5 +echo "configure:8548: checking for compface.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8555: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8556: \"$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* @@ -8574,12 +8575,12 @@ fi } test -z "$with_xface" && { echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6 -echo "configure:8578: checking for UnGenFace in -lcompface" >&5 +echo "configure:8579: checking for UnGenFace in -lcompface" >&5 ac_lib_var=`echo compface'_'UnGenFace | sed 'y%./+-%__p_%'` xe_check_libs=" -lcompface " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8595: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8642,12 +8643,12 @@ EOF if test "$with_png $with_tiff" != "no no"; then echo $ac_n "checking for inflate in -lc""... $ac_c" 1>&6 -echo "configure:8646: checking for inflate in -lc" >&5 +echo "configure:8647: checking for inflate in -lc" >&5 ac_lib_var=`echo c'_'inflate | sed 'y%./+-%__p_%'` xe_check_libs=" -lc " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8663: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8677,12 +8678,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for inflate in -lz""... $ac_c" 1>&6 -echo "configure:8681: checking for inflate in -lz" >&5 +echo "configure:8682: checking for inflate in -lz" >&5 ac_lib_var=`echo z'_'inflate | sed 'y%./+-%__p_%'` xe_check_libs=" -lz " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8698: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8712,12 +8713,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for inflate in -lgz""... $ac_c" 1>&6 -echo "configure:8716: checking for inflate in -lgz" >&5 +echo "configure:8717: checking for inflate in -lgz" >&5 ac_lib_var=`echo gz'_'inflate | sed 'y%./+-%__p_%'` xe_check_libs=" -lgz " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8733: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8758,15 +8759,15 @@ fi test -z "$with_jpeg" && { ac_safe=`echo "jpeglib.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for jpeglib.h""... $ac_c" 1>&6 -echo "configure:8762: checking for jpeglib.h" >&5 +echo "configure:8763: checking for jpeglib.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8770: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8771: \"$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* @@ -8789,12 +8790,12 @@ fi } test -z "$with_jpeg" && { echo $ac_n "checking for jpeg_destroy_decompress in -ljpeg""... $ac_c" 1>&6 -echo "configure:8793: checking for jpeg_destroy_decompress in -ljpeg" >&5 +echo "configure:8794: checking for jpeg_destroy_decompress in -ljpeg" >&5 ac_lib_var=`echo jpeg'_'jpeg_destroy_decompress | sed 'y%./+-%__p_%'` xe_check_libs=" -ljpeg " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure: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 @@ -8841,10 +8842,10 @@ EOF png_problem="" test -z "$with_png" && { echo $ac_n "checking for pow""... $ac_c" 1>&6 -echo "configure:8845: checking for pow" >&5 +echo "configure:8846: checking for pow" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8872: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_pow=yes" else @@ -8888,15 +8889,15 @@ fi } test -z "$with_png" && { ac_safe=`echo "png.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for png.h""... $ac_c" 1>&6 -echo "configure:8892: checking for png.h" >&5 +echo "configure:8893: checking for png.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8900: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8901: \"$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* @@ -8919,12 +8920,12 @@ fi } test -z "$with_png" && { echo $ac_n "checking for png_read_image in -lpng""... $ac_c" 1>&6 -echo "configure:8923: checking for png_read_image in -lpng" >&5 +echo "configure:8924: checking for png_read_image in -lpng" >&5 ac_lib_var=`echo png'_'png_read_image | sed 'y%./+-%__p_%'` xe_check_libs=" -lpng " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8940: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8958,10 +8959,10 @@ fi } if test -z "$with_png"; then echo $ac_n "checking for workable png version information""... $ac_c" 1>&6 -echo "configure:8962: checking for workable png version information" >&5 +echo "configure:8963: checking for workable png version information" >&5 xe_check_libs="-lpng -lz" cat > conftest.$ac_ext < int main(int c, char **v) { @@ -8969,7 +8970,7 @@ echo "configure:8962: checking for workable png version information" >&5 if (strcmp(png_libpng_ver, PNG_LIBPNG_VER_STRING) != 0) return 1; return (PNG_LIBPNG_VER < 10002) ? 2 : 0 ;} EOF -if { (eval echo configure:8973: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:8974: \"$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 @@ -9012,15 +9013,15 @@ EOF test -z "$with_tiff" && { ac_safe=`echo "tiffio.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for tiffio.h""... $ac_c" 1>&6 -echo "configure:9016: checking for tiffio.h" >&5 +echo "configure:9017: checking for tiffio.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9024: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9025: \"$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* @@ -9043,12 +9044,12 @@ fi } test -z "$with_tiff" && { echo $ac_n "checking for TIFFClientOpen in -ltiff""... $ac_c" 1>&6 -echo "configure:9047: checking for TIFFClientOpen in -ltiff" >&5 +echo "configure:9048: checking for TIFFClientOpen in -ltiff" >&5 ac_lib_var=`echo tiff'_'TIFFClientOpen | sed 'y%./+-%__p_%'` xe_check_libs=" -ltiff " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9064: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9098,15 +9099,15 @@ fi if test "$with_gtk" = "yes"; then test -z "$with_xface" && { ac_safe=`echo "compface.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for compface.h""... $ac_c" 1>&6 -echo "configure:9102: checking for compface.h" >&5 +echo "configure:9103: checking for compface.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9110: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9111: \"$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* @@ -9129,12 +9130,12 @@ fi } test -z "$with_xface" && { echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6 -echo "configure:9133: checking for UnGenFace in -lcompface" >&5 +echo "configure:9134: checking for UnGenFace in -lcompface" >&5 ac_lib_var=`echo compface'_'UnGenFace | sed 'y%./+-%__p_%'` xe_check_libs=" -lcompface " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9150: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9184,12 +9185,12 @@ fi if test "$with_x11" = "yes"; then echo "checking for X11 graphics libraries" 1>&6 -echo "configure:9188: checking for X11 graphics libraries" >&5 +echo "configure:9189: checking for X11 graphics libraries" >&5 fi if test "$with_x11" = "yes"; then echo "checking for the Athena widgets" 1>&6 -echo "configure:9193: checking for the Athena widgets" >&5 +echo "configure:9194: checking for the Athena widgets" >&5 case "$with_athena" in "xaw" | "") athena_variant=Xaw athena_3d=no ;; @@ -9205,12 +9206,12 @@ echo "configure:9193: checking for the Athena widgets" >&5 if test "$athena_3d" = "no"; then echo $ac_n "checking for XawScrollbarSetThumb in -l$athena_variant""... $ac_c" 1>&6 -echo "configure:9209: checking for XawScrollbarSetThumb in -l$athena_variant" >&5 +echo "configure:9210: checking for XawScrollbarSetThumb in -l$athena_variant" >&5 ac_lib_var=`echo $athena_variant'_'XawScrollbarSetThumb | sed 'y%./+-%__p_%'` xe_check_libs=" -l$athena_variant " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9226: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9237,12 +9238,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for $athena_3d_function in -l$athena_variant""... $ac_c" 1>&6 -echo "configure:9241: checking for $athena_3d_function in -l$athena_variant" >&5 +echo "configure:9242: checking for $athena_3d_function in -l$athena_variant" >&5 ac_lib_var=`echo $athena_variant'_'$athena_3d_function | sed 'y%./+-%__p_%'` xe_check_libs=" -l$athena_variant " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9258: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9284,12 +9285,12 @@ fi else echo $ac_n "checking for $athena_3d_function in -l$athena_variant""... $ac_c" 1>&6 -echo "configure:9288: checking for $athena_3d_function in -l$athena_variant" >&5 +echo "configure:9289: checking for $athena_3d_function in -l$athena_variant" >&5 ac_lib_var=`echo $athena_variant'_'$athena_3d_function | sed 'y%./+-%__p_%'` xe_check_libs=" -l$athena_variant " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9305: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9318,12 +9319,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for $athena_3d_function in -lXaw""... $ac_c" 1>&6 -echo "configure:9322: checking for $athena_3d_function in -lXaw" >&5 +echo "configure:9323: checking for $athena_3d_function in -lXaw" >&5 ac_lib_var=`echo Xaw'_'$athena_3d_function | sed 'y%./+-%__p_%'` xe_check_libs=" -lXaw " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9339: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9365,15 +9366,15 @@ fi if test "$athena_3d" = "no"; then ac_safe=`echo "X11/Xaw/ThreeD.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Xaw/ThreeD.h""... $ac_c" 1>&6 -echo "configure:9369: checking for X11/Xaw/ThreeD.h" >&5 +echo "configure:9370: checking for X11/Xaw/ThreeD.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9377: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9378: \"$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* @@ -9393,15 +9394,15 @@ else echo "$ac_t""no" 1>&6 ac_safe=`echo "X11/Xaw/XawInit.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Xaw/XawInit.h""... $ac_c" 1>&6 -echo "configure:9397: checking for X11/Xaw/XawInit.h" >&5 +echo "configure:9398: checking for X11/Xaw/XawInit.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9405: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9406: \"$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* @@ -9427,15 +9428,15 @@ fi else ac_safe=`echo "X11/$athena_variant/XawInit.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/$athena_variant/XawInit.h""... $ac_c" 1>&6 -echo "configure:9431: checking for X11/$athena_variant/XawInit.h" >&5 +echo "configure:9432: checking for X11/$athena_variant/XawInit.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9439: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9440: \"$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* @@ -9452,15 +9453,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_safe=`echo "X11/$athena_variant/ThreeD.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/$athena_variant/ThreeD.h""... $ac_c" 1>&6 -echo "configure:9456: checking for X11/$athena_variant/ThreeD.h" >&5 +echo "configure:9457: checking for X11/$athena_variant/ThreeD.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9464: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9465: \"$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* @@ -9488,15 +9489,15 @@ fi if test -z "$athena_h_path"; then ac_safe=`echo "$athena_variant/XawInit.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $athena_variant/XawInit.h""... $ac_c" 1>&6 -echo "configure:9492: checking for $athena_variant/XawInit.h" >&5 +echo "configure:9493: checking for $athena_variant/XawInit.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9500: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9501: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9513,15 +9514,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_safe=`echo "$athena_variant/ThreeD.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $athena_variant/ThreeD.h""... $ac_c" 1>&6 -echo "configure:9517: checking for $athena_variant/ThreeD.h" >&5 +echo "configure:9518: checking for $athena_variant/ThreeD.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9525: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9526: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9550,15 +9551,15 @@ fi if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then ac_safe=`echo "X11/Xaw3d/XawInit.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Xaw3d/XawInit.h""... $ac_c" 1>&6 -echo "configure:9554: checking for X11/Xaw3d/XawInit.h" >&5 +echo "configure:9555: checking for X11/Xaw3d/XawInit.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9562: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9563: \"$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* @@ -9575,15 +9576,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_safe=`echo "X11/Xaw3d/ThreeD.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Xaw3d/ThreeD.h""... $ac_c" 1>&6 -echo "configure:9579: checking for X11/Xaw3d/ThreeD.h" >&5 +echo "configure:9580: checking for X11/Xaw3d/ThreeD.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9587: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9588: \"$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* @@ -9615,15 +9616,15 @@ fi if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then ac_safe=`echo "Xaw3d/XawInit.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for Xaw3d/XawInit.h""... $ac_c" 1>&6 -echo "configure:9619: checking for Xaw3d/XawInit.h" >&5 +echo "configure:9620: checking for Xaw3d/XawInit.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9627: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9628: \"$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* @@ -9640,15 +9641,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_safe=`echo "Xaw3d/ThreeD.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for Xaw3d/ThreeD.h""... $ac_c" 1>&6 -echo "configure:9644: checking for Xaw3d/ThreeD.h" >&5 +echo "configure:9645: checking for Xaw3d/ThreeD.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9652: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9653: \"$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* @@ -9680,15 +9681,15 @@ fi if test -z "$athena_h_path"; then ac_safe=`echo "X11/Xaw/ThreeD.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Xaw/ThreeD.h""... $ac_c" 1>&6 -echo "configure:9684: checking for X11/Xaw/ThreeD.h" >&5 +echo "configure:9685: checking for X11/Xaw/ThreeD.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9692: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9693: \"$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* @@ -9727,15 +9728,15 @@ fi if test "$with_x11" = "yes"; then ac_safe=`echo "Xm/Xm.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for Xm/Xm.h""... $ac_c" 1>&6 -echo "configure:9731: checking for Xm/Xm.h" >&5 +echo "configure:9732: checking for Xm/Xm.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9739: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9740: \"$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* @@ -9752,12 +9753,12 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for XmStringFree in -lXm""... $ac_c" 1>&6 -echo "configure:9756: checking for XmStringFree in -lXm" >&5 +echo "configure:9757: checking for XmStringFree in -lXm" >&5 ac_lib_var=`echo Xm'_'XmStringFree | sed 'y%./+-%__p_%'` xe_check_libs=" -lXm " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9773: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9797,9 +9798,9 @@ fi if test "$have_motif" = "yes"; then echo $ac_n "checking for Lesstif""... $ac_c" 1>&6 -echo "configure:9801: checking for Lesstif" >&5 +echo "configure:9802: checking for Lesstif" >&5 cat > conftest.$ac_ext < #ifdef LESSTIF_VERSION @@ -10245,7 +10246,7 @@ fi if test "$with_mule" = "yes" ; then echo "checking for Mule-related features" 1>&6 -echo "configure:10249: checking for Mule-related features" >&5 +echo "configure:10250: checking for Mule-related features" >&5 { test "$extra_verbose" = "yes" && cat << \EOF Defining MULE EOF @@ -10270,15 +10271,15 @@ EOF do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:10274: checking for $ac_hdr" >&5 +echo "configure:10275: checking for $ac_hdr" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10282: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10283: \"$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* @@ -10309,12 +10310,12 @@ done echo $ac_n "checking for strerror in -lintl""... $ac_c" 1>&6 -echo "configure:10313: checking for strerror in -lintl" >&5 +echo "configure:10314: checking for strerror in -lintl" >&5 ac_lib_var=`echo intl'_'strerror | sed 'y%./+-%__p_%'` xe_check_libs=" -lintl " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10330: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10358,18 +10359,18 @@ fi echo "checking for Mule input methods" 1>&6 -echo "configure:10362: checking for Mule input methods" >&5 +echo "configure:10363: checking for Mule input methods" >&5 case "$with_xim" in "" | "yes" ) echo "checking for XIM" 1>&6 -echo "configure:10365: checking for XIM" >&5 +echo "configure:10366: checking for XIM" >&5 echo $ac_n "checking for XOpenIM in -lX11""... $ac_c" 1>&6 -echo "configure:10368: checking for XOpenIM in -lX11" >&5 +echo "configure:10369: checking for XOpenIM in -lX11" >&5 ac_lib_var=`echo X11'_'XOpenIM | sed 'y%./+-%__p_%'` xe_check_libs=" -lX11 " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10385: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10404,12 +10405,12 @@ fi if test "$need_motif $have_lesstif" = "yes no"; then echo $ac_n "checking for XmImMbLookupString in -lXm""... $ac_c" 1>&6 -echo "configure:10408: checking for XmImMbLookupString in -lXm" >&5 +echo "configure:10409: checking for XmImMbLookupString in -lXm" >&5 ac_lib_var=`echo Xm'_'XmImMbLookupString | sed 'y%./+-%__p_%'` xe_check_libs=" -lXm " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10425: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10443,12 +10444,12 @@ fi elif test "$have_motif $have_lesstif $with_xim" = "yes no no"; then echo $ac_n "checking for XmImMbLookupString in -lXm""... $ac_c" 1>&6 -echo "configure:10447: checking for XmImMbLookupString in -lXm" >&5 +echo "configure:10448: checking for XmImMbLookupString in -lXm" >&5 ac_lib_var=`echo Xm'_'XmImMbLookupString | sed 'y%./+-%__p_%'` xe_check_libs=" -lXm " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10464: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10524,15 +10525,15 @@ EOF if test "$with_xfs" = "yes" ; then echo "checking for XFontSet" 1>&6 -echo "configure:10528: checking for XFontSet" >&5 +echo "configure:10529: checking for XFontSet" >&5 echo $ac_n "checking for XmbDrawString in -lX11""... $ac_c" 1>&6 -echo "configure:10531: checking for XmbDrawString in -lX11" >&5 +echo "configure:10532: checking for XmbDrawString in -lX11" >&5 ac_lib_var=`echo X11'_'XmbDrawString | sed 'y%./+-%__p_%'` xe_check_libs=" -lX11 " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10548: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10583,15 +10584,15 @@ EOF test "$with_wnn6" = "yes" && with_wnn=yes # wnn6 implies wnn support test -z "$with_wnn" && { ac_safe=`echo "wnn/jllib.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for wnn/jllib.h""... $ac_c" 1>&6 -echo "configure:10587: checking for wnn/jllib.h" >&5 +echo "configure:10588: checking for wnn/jllib.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10595: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10596: \"$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* @@ -10614,15 +10615,15 @@ fi } test -z "$with_wnn" && { ac_safe=`echo "wnn/commonhd.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for wnn/commonhd.h""... $ac_c" 1>&6 -echo "configure:10618: checking for wnn/commonhd.h" >&5 +echo "configure:10619: checking for wnn/commonhd.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10626: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10627: \"$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* @@ -10647,10 +10648,10 @@ fi for ac_func in crypt do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:10651: checking for $ac_func" >&5 +echo "configure:10652: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10678: \"$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 @@ -10702,12 +10703,12 @@ done test "$ac_cv_func_crypt" != "yes" && { echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6 -echo "configure:10706: checking for crypt in -lcrypt" >&5 +echo "configure:10707: checking for crypt in -lcrypt" >&5 ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'` xe_check_libs=" -lcrypt " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10723: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10753,12 +10754,12 @@ fi if test -z "$with_wnn" -o "$with_wnn" = "yes"; then echo $ac_n "checking for jl_dic_list_e in -lwnn""... $ac_c" 1>&6 -echo "configure:10757: checking for jl_dic_list_e in -lwnn" >&5 +echo "configure:10758: checking for jl_dic_list_e in -lwnn" >&5 ac_lib_var=`echo wnn'_'jl_dic_list_e | sed 'y%./+-%__p_%'` xe_check_libs=" -lwnn " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10774: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10787,12 +10788,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for jl_dic_list_e in -lwnn4""... $ac_c" 1>&6 -echo "configure:10791: checking for jl_dic_list_e in -lwnn4" >&5 +echo "configure:10792: checking for jl_dic_list_e in -lwnn4" >&5 ac_lib_var=`echo wnn4'_'jl_dic_list_e | sed 'y%./+-%__p_%'` xe_check_libs=" -lwnn4 " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10808: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10821,12 +10822,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for jl_dic_list_e in -lwnn6""... $ac_c" 1>&6 -echo "configure:10825: checking for jl_dic_list_e in -lwnn6" >&5 +echo "configure:10826: checking for jl_dic_list_e in -lwnn6" >&5 ac_lib_var=`echo wnn6'_'jl_dic_list_e | sed 'y%./+-%__p_%'` xe_check_libs=" -lwnn6 " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10842: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10855,12 +10856,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for dic_list_e in -lwnn6_fromsrc""... $ac_c" 1>&6 -echo "configure:10859: checking for dic_list_e in -lwnn6_fromsrc" >&5 +echo "configure:10860: checking for dic_list_e in -lwnn6_fromsrc" >&5 ac_lib_var=`echo wnn6_fromsrc'_'dic_list_e | sed 'y%./+-%__p_%'` xe_check_libs=" -lwnn6_fromsrc " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10876: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10919,12 +10920,12 @@ EOF if test "$with_wnn6" != "no"; then echo $ac_n "checking for jl_fi_dic_list in -l$libwnn""... $ac_c" 1>&6 -echo "configure:10923: checking for jl_fi_dic_list in -l$libwnn" >&5 +echo "configure:10924: checking for jl_fi_dic_list in -l$libwnn" >&5 ac_lib_var=`echo $libwnn'_'jl_fi_dic_list | sed 'y%./+-%__p_%'` xe_check_libs=" -l$libwnn " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10940: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10970,15 +10971,15 @@ EOF if test "$with_canna" != "no"; then ac_safe=`echo "canna/jrkanji.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for canna/jrkanji.h""... $ac_c" 1>&6 -echo "configure:10974: checking for canna/jrkanji.h" >&5 +echo "configure:10975: checking for canna/jrkanji.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10982: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10983: \"$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* @@ -11005,15 +11006,15 @@ fi c_switch_site="$c_switch_site -I/usr/local/canna/include" ac_safe=`echo "canna/jrkanji.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for canna/jrkanji.h""... $ac_c" 1>&6 -echo "configure:11009: checking for canna/jrkanji.h" >&5 +echo "configure:11010: checking for canna/jrkanji.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11017: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11018: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -11041,15 +11042,15 @@ fi test -z "$with_canna" && { ac_safe=`echo "canna/RK.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for canna/RK.h""... $ac_c" 1>&6 -echo "configure:11045: checking for canna/RK.h" >&5 +echo "configure:11046: checking for canna/RK.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11053: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11054: \"$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* @@ -11072,12 +11073,12 @@ fi } test -z "$with_canna" && { echo $ac_n "checking for RkBgnBun in -lRKC""... $ac_c" 1>&6 -echo "configure:11076: checking for RkBgnBun in -lRKC" >&5 +echo "configure:11077: checking for RkBgnBun in -lRKC" >&5 ac_lib_var=`echo RKC'_'RkBgnBun | sed 'y%./+-%__p_%'` xe_check_libs=" -lRKC " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11093: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11111,12 +11112,12 @@ fi } test -z "$with_canna" && { echo $ac_n "checking for jrKanjiControl in -lcanna""... $ac_c" 1>&6 -echo "configure:11115: checking for jrKanjiControl in -lcanna" >&5 +echo "configure:11116: checking for jrKanjiControl in -lcanna" >&5 ac_lib_var=`echo canna'_'jrKanjiControl | sed 'y%./+-%__p_%'` xe_check_libs=" -lcanna " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11132: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11176,12 +11177,12 @@ if test "$need_motif" = "yes" ; then libs_x="-lXm $libs_x" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-lXm\" to \$libs_x"; fi echo $ac_n "checking for layout_object_getvalue in -li18n""... $ac_c" 1>&6 -echo "configure:11180: checking for layout_object_getvalue in -li18n" >&5 +echo "configure:11181: checking for layout_object_getvalue in -li18n" >&5 ac_lib_var=`echo i18n'_'layout_object_getvalue | sed 'y%./+-%__p_%'` xe_check_libs=" -li18n " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11197: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11279,10 +11280,10 @@ fi for ac_func in cbrt closedir dup2 eaccess fmod fpathconf frexp ftime getaddrinfo gethostname getnameinfo getpagesize gettimeofday getcwd getwd logb lrand48 matherr mkdir mktime perror poll random rename res_init rint rmdir select setitimer setpgid setlocale setsid sigblock sighold sigprocmask snprintf stpcpy strerror tzset ulimit usleep waitpid vsnprintf fsync ftruncate umask do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:11283: checking for $ac_func" >&5 +echo "configure:11284: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11310: \"$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 @@ -11346,10 +11347,10 @@ fi for ac_func in getpt _getpty grantpt unlockpt ptsname killpg tcgetpgrp do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:11350: checking for $ac_func" >&5 +echo "configure:11351: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11377: \"$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 @@ -11401,10 +11402,10 @@ done echo $ac_n "checking for openpty""... $ac_c" 1>&6 -echo "configure:11405: checking for openpty" >&5 +echo "configure:11406: checking for openpty" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11432: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_openpty=yes" else @@ -11446,12 +11447,12 @@ else echo $ac_n "checking for openpty in -lutil""... $ac_c" 1>&6 -echo "configure:11450: checking for openpty in -lutil" >&5 +echo "configure:11451: checking for openpty in -lutil" >&5 ac_lib_var=`echo util'_'openpty | sed 'y%./+-%__p_%'` xe_check_libs=" -lutil " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11467: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11497,15 +11498,15 @@ EOF do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11501: checking for $ac_hdr" >&5 +echo "configure:11502: checking for $ac_hdr" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11509: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11510: \"$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* @@ -11541,15 +11542,15 @@ for ac_hdr in stropts.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11545: checking for $ac_hdr" >&5 +echo "configure:11546: checking for $ac_hdr" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11553: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11554: \"$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* @@ -11582,10 +11583,10 @@ if test "$ac_cv_header_stropts_h" = "yes"; then for ac_func in isastream do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:11586: checking for $ac_func" >&5 +echo "configure:11587: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11613: \"$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 @@ -11639,15 +11640,15 @@ done do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11643: checking for $ac_hdr" >&5 +echo "configure:11644: checking for $ac_hdr" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11651: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11652: \"$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* @@ -11684,10 +11685,10 @@ extra_objs="$extra_objs realpath.o" && if test "$extra_verbose" = "yes"; then for ac_func in getloadavg do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:11688: checking for $ac_func" >&5 +echo "configure:11689: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11715: \"$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 @@ -11743,15 +11744,15 @@ if test "$ac_cv_func_getloadavg" = "yes"; then do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11747: checking for $ac_hdr" >&5 +echo "configure:11748: checking for $ac_hdr" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11755: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11756: \"$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* @@ -11787,12 +11788,12 @@ else echo $ac_n "checking for kstat_open in -lkstat""... $ac_c" 1>&6 -echo "configure:11791: checking for kstat_open in -lkstat" >&5 +echo "configure:11792: checking for kstat_open in -lkstat" >&5 ac_lib_var=`echo kstat'_'kstat_open | sed 'y%./+-%__p_%'` xe_check_libs=" -lkstat " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11808: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11838,15 +11839,15 @@ fi do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11842: checking for $ac_hdr" >&5 +echo "configure:11843: checking for $ac_hdr" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11850: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11851: \"$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* @@ -11878,12 +11879,12 @@ done echo $ac_n "checking for kvm_read in -lkvm""... $ac_c" 1>&6 -echo "configure:11882: checking for kvm_read in -lkvm" >&5 +echo "configure:11883: checking for kvm_read in -lkvm" >&5 ac_lib_var=`echo kvm'_'kvm_read | sed 'y%./+-%__p_%'` xe_check_libs=" -lkvm " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11899: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11928,16 +11929,16 @@ fi fi echo $ac_n "checking whether netdb declares h_errno""... $ac_c" 1>&6 -echo "configure:11932: checking whether netdb declares h_errno" >&5 +echo "configure:11933: checking whether netdb declares h_errno" >&5 cat > conftest.$ac_ext < int main() { return h_errno; ; return 0; } EOF -if { (eval echo configure:11941: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11942: \"$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 @@ -11957,16 +11958,16 @@ fi rm -f conftest* echo $ac_n "checking for sigsetjmp""... $ac_c" 1>&6 -echo "configure:11961: checking for sigsetjmp" >&5 +echo "configure:11962: checking for sigsetjmp" >&5 cat > conftest.$ac_ext < int main() { sigjmp_buf bar; sigsetjmp (bar, 0); ; return 0; } EOF -if { (eval echo configure:11970: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11971: \"$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 @@ -11986,11 +11987,11 @@ fi rm -f conftest* echo $ac_n "checking whether localtime caches TZ""... $ac_c" 1>&6 -echo "configure:11990: checking whether localtime caches TZ" >&5 +echo "configure:11991: checking whether localtime caches TZ" >&5 if test "$ac_cv_func_tzset" = "yes"; then cat > conftest.$ac_ext < #if STDC_HEADERS @@ -12025,7 +12026,7 @@ main() exit (0); } EOF -if { (eval echo configure:12029: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:12030: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then emacs_cv_localtime_cache=no else @@ -12055,9 +12056,9 @@ fi if test "$HAVE_TIMEVAL" = "yes"; then echo $ac_n "checking whether gettimeofday accepts one or two arguments""... $ac_c" 1>&6 -echo "configure:12059: checking whether gettimeofday accepts one or two arguments" >&5 +echo "configure:12060: checking whether gettimeofday accepts one or two arguments" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12083: \"$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 @@ -12100,19 +12101,19 @@ fi echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:12104: checking for inline" >&5 +echo "configure:12105: checking for inline" >&5 ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:12117: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -12153,17 +12154,17 @@ if test "$__DECC" != "yes"; then # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 -echo "configure:12157: checking for working alloca.h" >&5 +echo "configure:12158: checking for working alloca.h" >&5 cat > conftest.$ac_ext < int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF -if { (eval echo configure:12167: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12168: \"$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 @@ -12187,10 +12188,10 @@ EOF fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:12191: checking for alloca" >&5 +echo "configure:12192: checking for alloca" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12223: \"$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 @@ -12257,10 +12258,10 @@ EOF echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:12261: checking whether alloca needs Cray hooks" >&5 +echo "configure:12262: checking whether alloca needs Cray hooks" >&5 cat > conftest.$ac_ext <&6 if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:12288: checking for $ac_func" >&5 +echo "configure:12289: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12315: \"$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 @@ -12340,10 +12341,10 @@ done fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:12344: checking stack direction for C alloca" >&5 +echo "configure:12345: checking stack direction for C alloca" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:12367: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_c_stack_direction=1 else @@ -12392,15 +12393,15 @@ fi ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for vfork.h""... $ac_c" 1>&6 -echo "configure:12396: checking for vfork.h" >&5 +echo "configure:12397: checking for vfork.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12404: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12405: \"$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* @@ -12428,10 +12429,10 @@ else fi echo $ac_n "checking for working vfork""... $ac_c" 1>&6 -echo "configure:12432: checking for working vfork" >&5 +echo "configure:12433: checking for working vfork" >&5 cat > conftest.$ac_ext < @@ -12526,7 +12527,7 @@ main() { } } EOF -if { (eval echo configure:12530: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:12531: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_vfork_works=yes else @@ -12552,10 +12553,10 @@ fi echo $ac_n "checking for working strcoll""... $ac_c" 1>&6 -echo "configure:12556: checking for working strcoll" >&5 +echo "configure:12557: checking for working strcoll" >&5 cat > conftest.$ac_ext < main () @@ -12565,7 +12566,7 @@ main () strcoll ("123", "456") >= 0); } EOF -if { (eval echo configure:12569: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:12570: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_strcoll_works=yes else @@ -12593,10 +12594,10 @@ fi for ac_func in getpgrp do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:12597: checking for $ac_func" >&5 +echo "configure:12598: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12624: \"$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 @@ -12647,10 +12648,10 @@ fi done echo $ac_n "checking whether getpgrp takes no argument""... $ac_c" 1>&6 -echo "configure:12651: checking whether getpgrp takes no argument" >&5 +echo "configure:12652: checking whether getpgrp takes no argument" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:12710: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_getpgrp_void=yes else @@ -12732,10 +12733,10 @@ fi echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:12736: checking for working mmap" >&5 +echo "configure:12737: checking for working mmap" >&5 case "$opsys" in ultrix* ) have_mmap=no ;; *) cat > conftest.$ac_ext < #include @@ -12768,7 +12769,7 @@ int main (int argc, char *argv[]) return 1; } EOF -if { (eval echo configure:12772: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:12773: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then have_mmap=yes else @@ -12797,9 +12798,9 @@ test "$GNU_MALLOC" != "yes" -a "$have_mmap" != "yes" && rel_alloc=no if test "$rel_alloc $have_mmap" = "default yes"; then if test "$doug_lea_malloc" = "yes"; then echo $ac_n "checking for M_MMAP_THRESHOLD""... $ac_c" 1>&6 -echo "configure:12801: checking for M_MMAP_THRESHOLD" >&5 +echo "configure:12802: checking for M_MMAP_THRESHOLD" >&5 cat > conftest.$ac_ext < int main() { @@ -12811,7 +12812,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:12815: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:12816: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* rel_alloc=no; echo "$ac_t""yes" 1>&6; else @@ -12836,15 +12837,15 @@ EOF ac_safe=`echo "termios.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for termios.h""... $ac_c" 1>&6 -echo "configure:12840: checking for termios.h" >&5 +echo "configure:12841: checking for termios.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12848: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12849: \"$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* @@ -12887,15 +12888,15 @@ else echo "$ac_t""no" 1>&6 ac_safe=`echo "termio.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for termio.h""... $ac_c" 1>&6 -echo "configure:12891: checking for termio.h" >&5 +echo "configure:12892: checking for termio.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12899: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12900: \"$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* @@ -12927,10 +12928,10 @@ fi echo $ac_n "checking for socket""... $ac_c" 1>&6 -echo "configure:12931: checking for socket" >&5 +echo "configure:12932: checking for socket" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12958: \"$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 @@ -12968,15 +12969,15 @@ if eval "test \"`echo '$ac_cv_func_'socket`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_safe=`echo "netinet/in.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for netinet/in.h""... $ac_c" 1>&6 -echo "configure:12972: checking for netinet/in.h" >&5 +echo "configure:12973: checking for netinet/in.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12980: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12981: \"$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* @@ -12993,15 +12994,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_safe=`echo "arpa/inet.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for arpa/inet.h""... $ac_c" 1>&6 -echo "configure:12997: checking for arpa/inet.h" >&5 +echo "configure:12998: checking for arpa/inet.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:13005: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13006: \"$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* @@ -13026,9 +13027,9 @@ EOF } echo $ac_n "checking "for sun_len member in struct sockaddr_un"""... $ac_c" 1>&6 -echo "configure:13030: checking "for sun_len member in struct sockaddr_un"" >&5 +echo "configure:13031: checking "for sun_len member in struct sockaddr_un"" >&5 cat > conftest.$ac_ext < @@ -13039,7 +13040,7 @@ int main() { static struct sockaddr_un x; x.sun_len = 1; ; return 0; } EOF -if { (eval echo configure:13043: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13044: \"$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 @@ -13057,9 +13058,9 @@ else fi rm -f conftest* echo $ac_n "checking "for ip_mreq struct in netinet/in.h"""... $ac_c" 1>&6 -echo "configure:13061: checking "for ip_mreq struct in netinet/in.h"" >&5 +echo "configure:13062: checking "for ip_mreq struct in netinet/in.h"" >&5 cat > conftest.$ac_ext < @@ -13069,7 +13070,7 @@ int main() { static struct ip_mreq x; ; return 0; } EOF -if { (eval echo configure:13073: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13074: \"$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 @@ -13100,10 +13101,10 @@ fi echo $ac_n "checking for msgget""... $ac_c" 1>&6 -echo "configure:13104: checking for msgget" >&5 +echo "configure:13105: checking for msgget" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13131: \"$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 @@ -13141,15 +13142,15 @@ if eval "test \"`echo '$ac_cv_func_'msgget`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_safe=`echo "sys/ipc.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for sys/ipc.h""... $ac_c" 1>&6 -echo "configure:13145: checking for sys/ipc.h" >&5 +echo "configure:13146: checking for sys/ipc.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:13153: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13154: \"$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* @@ -13166,15 +13167,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_safe=`echo "sys/msg.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for sys/msg.h""... $ac_c" 1>&6 -echo "configure:13170: checking for sys/msg.h" >&5 +echo "configure:13171: checking for sys/msg.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:13178: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13179: \"$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* @@ -13212,15 +13213,15 @@ fi ac_safe=`echo "dirent.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for dirent.h""... $ac_c" 1>&6 -echo "configure:13216: checking for dirent.h" >&5 +echo "configure:13217: checking for dirent.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:13224: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13225: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -13247,15 +13248,15 @@ else echo "$ac_t""no" 1>&6 ac_safe=`echo "sys/dir.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for sys/dir.h""... $ac_c" 1>&6 -echo "configure:13251: checking for sys/dir.h" >&5 +echo "configure:13252: checking for sys/dir.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:13259: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13260: \"$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* @@ -13288,15 +13289,15 @@ fi ac_safe=`echo "nlist.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for nlist.h""... $ac_c" 1>&6 -echo "configure:13292: checking for nlist.h" >&5 +echo "configure:13293: checking for nlist.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:13300: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13301: \"$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* @@ -13326,22 +13327,22 @@ fi echo "checking "for sound support"" 1>&6 -echo "configure:13330: checking "for sound support"" >&5 +echo "configure:13331: checking "for sound support"" >&5 test -z "$with_native_sound" -a -n "$native_sound_lib" && with_native_sound=yes if test "$with_native_sound" != "no"; then if test -n "$native_sound_lib"; then ac_safe=`echo "multimedia/audio_device.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for multimedia/audio_device.h""... $ac_c" 1>&6 -echo "configure:13337: checking for multimedia/audio_device.h" >&5 +echo "configure:13338: checking for multimedia/audio_device.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:13345: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13346: \"$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* @@ -13397,12 +13398,12 @@ fi if test -z "$native_sound_lib"; then echo $ac_n "checking for ALopenport in -laudio""... $ac_c" 1>&6 -echo "configure:13401: checking for ALopenport in -laudio" >&5 +echo "configure:13402: checking for ALopenport in -laudio" >&5 ac_lib_var=`echo audio'_'ALopenport | sed 'y%./+-%__p_%'` xe_check_libs=" -laudio " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13418: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -13444,12 +13445,12 @@ fi if test -z "$native_sound_lib"; then echo $ac_n "checking for AOpenAudio in -lAlib""... $ac_c" 1>&6 -echo "configure:13448: checking for AOpenAudio in -lAlib" >&5 +echo "configure:13449: checking for AOpenAudio in -lAlib" >&5 ac_lib_var=`echo Alib'_'AOpenAudio | sed 'y%./+-%__p_%'` xe_check_libs=" -lAlib " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13465: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -13505,15 +13506,15 @@ fi for dir in "machine" "sys" "linux"; do ac_safe=`echo "${dir}/soundcard.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ${dir}/soundcard.h""... $ac_c" 1>&6 -echo "configure:13509: checking for ${dir}/soundcard.h" >&5 +echo "configure:13510: checking for ${dir}/soundcard.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:13517: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13518: \"$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* @@ -13567,15 +13568,15 @@ fi if test "$with_nas_sound" != "no"; then ac_safe=`echo "audio/audiolib.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for audio/audiolib.h""... $ac_c" 1>&6 -echo "configure:13571: checking for audio/audiolib.h" >&5 +echo "configure:13572: checking for audio/audiolib.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:13579: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13580: \"$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* @@ -13593,12 +13594,12 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo $ac_n "checking for AuOpenServer in -laudio""... $ac_c" 1>&6 -echo "configure:13597: checking for AuOpenServer in -laudio" >&5 +echo "configure:13598: checking for AuOpenServer in -laudio" >&5 ac_lib_var=`echo audio'_'AuOpenServer | sed 'y%./+-%__p_%'` xe_check_libs=" -laudio " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13614: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -13648,7 +13649,7 @@ EOF fi libs_x="-laudio $libs_x" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-laudio\" to \$libs_x"; fi cat > conftest.$ac_ext < EOF @@ -13679,7 +13680,7 @@ if test "$with_esd_sound" != "no"; then # Extract the first word of "esd-config", so it can be a program name with args. set dummy esd-config; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:13683: checking for $ac_word" >&5 +echo "configure:13684: checking for $ac_word" >&5 if test -n "$have_esd_config"; then ac_cv_prog_have_esd_config="$have_esd_config" # Let the user override the test. @@ -13708,10 +13709,10 @@ fi c_switch_site="$c_switch_site `esd-config --cflags`" && if test "$extra_verbose" = "yes"; then echo " Appending \"`esd-config --cflags`\" to \$c_switch_site"; fi LIBS="`esd-config --libs` $LIBS" && if test "$extra_verbose" = "yes"; then echo " Prepending \"`esd-config --libs`\" to \$LIBS"; fi echo $ac_n "checking for esd_play_stream""... $ac_c" 1>&6 -echo "configure:13712: checking for esd_play_stream" >&5 +echo "configure:13713: checking for esd_play_stream" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13739: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_esd_play_stream=yes" else @@ -13785,7 +13786,7 @@ test -z "$with_tty" && with_tty=yes if test "$with_tty" = "yes" ; then echo "checking for TTY-related features" 1>&6 -echo "configure:13789: checking for TTY-related features" >&5 +echo "configure:13790: checking for TTY-related features" >&5 { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_TTY EOF @@ -13801,12 +13802,12 @@ EOF if test -z "$with_ncurses"; then echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6 -echo "configure:13805: checking for tgetent in -lncurses" >&5 +echo "configure:13806: checking for tgetent in -lncurses" >&5 ac_lib_var=`echo ncurses'_'tgetent | sed 'y%./+-%__p_%'` xe_check_libs=" -lncurses " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13822: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -13850,15 +13851,15 @@ EOF ac_safe=`echo "ncurses/curses.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ncurses/curses.h""... $ac_c" 1>&6 -echo "configure:13854: checking for ncurses/curses.h" >&5 +echo "configure:13855: checking for ncurses/curses.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:13862: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13863: \"$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* @@ -13880,15 +13881,15 @@ fi ac_safe=`echo "ncurses/term.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ncurses/term.h""... $ac_c" 1>&6 -echo "configure:13884: checking for ncurses/term.h" >&5 +echo "configure:13885: checking for ncurses/term.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:13892: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13893: \"$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* @@ -13918,15 +13919,15 @@ fi c_switch_site="$c_switch_site -I/usr/include/ncurses" ac_safe=`echo "ncurses/curses.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ncurses/curses.h""... $ac_c" 1>&6 -echo "configure:13922: checking for ncurses/curses.h" >&5 +echo "configure:13923: checking for ncurses/curses.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:13930: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13931: \"$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* @@ -13961,12 +13962,12 @@ fi for lib in curses termlib termcap; do echo $ac_n "checking for tgetent in -l$lib""... $ac_c" 1>&6 -echo "configure:13965: checking for tgetent in -l$lib" >&5 +echo "configure:13966: checking for tgetent in -l$lib" >&5 ac_lib_var=`echo $lib'_'tgetent | sed 'y%./+-%__p_%'` xe_check_libs=" -l$lib " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13982: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -14002,12 +14003,12 @@ fi else if test -n "$libs_termcap" -a "$opsys" = "openbsd"; then echo $ac_n "checking for tgoto in -ltermcap""... $ac_c" 1>&6 -echo "configure:14006: checking for tgoto in -ltermcap" >&5 +echo "configure:14007: checking for tgoto in -ltermcap" >&5 ac_lib_var=`echo termcap'_'tgoto | sed 'y%./+-%__p_%'` xe_check_libs=" -ltermcap " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14023: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -14063,12 +14064,12 @@ fi else echo $ac_n "checking for tgetent in -lcurses""... $ac_c" 1>&6 -echo "configure:14067: checking for tgetent in -lcurses" >&5 +echo "configure:14068: checking for tgetent in -lcurses" >&5 ac_lib_var=`echo curses'_'tgetent | sed 'y%./+-%__p_%'` xe_check_libs=" -lcurses " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14084: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -14097,12 +14098,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6 -echo "configure:14101: checking for tgetent in -ltermcap" >&5 +echo "configure:14102: checking for tgetent in -ltermcap" >&5 ac_lib_var=`echo termcap'_'tgetent | sed 'y%./+-%__p_%'` xe_check_libs=" -ltermcap " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14118: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -14162,15 +14163,15 @@ EOF if test "$with_gpm" != "no"; then ac_safe=`echo "gpm.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for gpm.h""... $ac_c" 1>&6 -echo "configure:14166: checking for gpm.h" >&5 +echo "configure:14167: checking for gpm.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:14174: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:14175: \"$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* @@ -14188,12 +14189,12 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6 -echo "configure:14192: checking for Gpm_Open in -lgpm" >&5 +echo "configure:14193: checking for Gpm_Open in -lgpm" >&5 ac_lib_var=`echo gpm'_'Gpm_Open | sed 'y%./+-%__p_%'` xe_check_libs=" -lgpm " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14209: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -14263,20 +14264,20 @@ test "$with_x11" = "yes" -o "$with_tty" = "yes" -o "$need_event_unixoid" = "yes" test "$with_database_gdbm $with_database_dbm $with_database_berkdb" \ != "no no no" && echo "checking for database support" 1>&6 -echo "configure:14267: checking for database support" >&5 +echo "configure:14268: checking for database support" >&5 if test "$with_database_gdbm $with_database_dbm" != "no no"; then ac_safe=`echo "ndbm.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ndbm.h""... $ac_c" 1>&6 -echo "configure:14272: checking for ndbm.h" >&5 +echo "configure:14273: checking for ndbm.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:14280: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:14281: \"$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* @@ -14306,12 +14307,12 @@ fi if test "$with_database_gdbm" != "no"; then echo $ac_n "checking for dbm_open in -lgdbm""... $ac_c" 1>&6 -echo "configure:14310: checking for dbm_open in -lgdbm" >&5 +echo "configure:14311: checking for dbm_open in -lgdbm" >&5 ac_lib_var=`echo gdbm'_'dbm_open | sed 'y%./+-%__p_%'` xe_check_libs=" -lgdbm " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14327: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -14350,10 +14351,10 @@ fi if test "$with_database_dbm" != "no"; then echo $ac_n "checking for dbm_open""... $ac_c" 1>&6 -echo "configure:14354: checking for dbm_open" >&5 +echo "configure:14355: checking for dbm_open" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14381: \"$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 @@ -14395,12 +14396,12 @@ else echo $ac_n "checking for dbm_open in -ldbm""... $ac_c" 1>&6 -echo "configure:14399: checking for dbm_open in -ldbm" >&5 +echo "configure:14400: checking for dbm_open in -ldbm" >&5 ac_lib_var=`echo dbm'_'dbm_open | sed 'y%./+-%__p_%'` xe_check_libs=" -ldbm " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14416: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -14451,10 +14452,10 @@ EOF echo $ac_n "checking for u_int8_t""... $ac_c" 1>&6 -echo "configure:14455: checking for u_int8_t" >&5 +echo "configure:14456: checking for u_int8_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -14495,10 +14496,10 @@ EOF fi echo $ac_n "checking for u_int16_t""... $ac_c" 1>&6 -echo "configure:14499: checking for u_int16_t" >&5 +echo "configure:14500: checking for u_int16_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -14539,10 +14540,10 @@ EOF fi echo $ac_n "checking for u_int32_t""... $ac_c" 1>&6 -echo "configure:14543: checking for u_int32_t" >&5 +echo "configure:14544: checking for u_int32_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -14583,10 +14584,10 @@ EOF fi echo $ac_n "checking for u_int64_t""... $ac_c" 1>&6 -echo "configure:14587: checking for u_int64_t" >&5 +echo "configure:14588: checking for u_int64_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -14629,12 +14630,12 @@ fi if test "$with_database_berkdb" != "no"; then echo $ac_n "checking for Berkeley db.h""... $ac_c" 1>&6 -echo "configure:14633: checking for Berkeley db.h" >&5 +echo "configure:14634: checking for Berkeley db.h" >&5 for header in "db/db.h" "db.h"; do case "$opsys" in *freebsd*) cat > conftest.$ac_ext < @@ -14650,7 +14651,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:14654: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14655: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* db_h_file="$header"; break else @@ -14661,7 +14662,7 @@ rm -f conftest* ;; *) cat > conftest.$ac_ext < @@ -14691,7 +14692,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:14695: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14696: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* db_h_file="$header"; break else @@ -14709,9 +14710,9 @@ rm -f conftest* if test "$with_database_berkdb" != "no"; then echo $ac_n "checking for Berkeley DB version""... $ac_c" 1>&6 -echo "configure:14713: checking for Berkeley DB version" >&5 +echo "configure:14714: checking for Berkeley DB version" >&5 cat > conftest.$ac_ext < #if DB_VERSION_MAJOR > 1 @@ -14723,7 +14724,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | egrep "yes" >/dev/null 2>&1; then rm -rf conftest* cat > conftest.$ac_ext < #if DB_VERSION_MAJOR > 2 @@ -14750,10 +14751,10 @@ fi rm -f conftest* echo $ac_n "checking for $dbfunc""... $ac_c" 1>&6 -echo "configure:14754: checking for $dbfunc" >&5 +echo "configure:14755: checking for $dbfunc" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14781: \"$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 @@ -14795,12 +14796,12 @@ else echo $ac_n "checking for $dbfunc in -ldb""... $ac_c" 1>&6 -echo "configure:14799: checking for $dbfunc in -ldb" >&5 +echo "configure:14800: checking for $dbfunc in -ldb" >&5 ac_lib_var=`echo db'_'$dbfunc | sed 'y%./+-%__p_%'` xe_check_libs=" -ldb " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14816: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -14875,12 +14876,12 @@ fi if test "$with_socks" = "yes"; then echo $ac_n "checking for SOCKSinit in -lsocks""... $ac_c" 1>&6 -echo "configure:14879: checking for SOCKSinit in -lsocks" >&5 +echo "configure:14880: checking for SOCKSinit in -lsocks" >&5 ac_lib_var=`echo socks'_'SOCKSinit | sed 'y%./+-%__p_%'` xe_check_libs=" -lsocks " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14896: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -14946,7 +14947,7 @@ fi if test "$with_modules" != "no"; then echo "checking for module support" 1>&6 -echo "configure:14950: checking for module support" >&5 +echo "configure:14951: checking for module support" >&5 if test "$with_msw" = "yes"; then have_dl=yes; @@ -14962,15 +14963,15 @@ EOF ;; *) ac_safe=`echo "dlfcn.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for dlfcn.h""... $ac_c" 1>&6 -echo "configure:14966: checking for dlfcn.h" >&5 +echo "configure:14967: checking for dlfcn.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:14974: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:14975: \"$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* @@ -14987,16 +14988,16 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for dlopen in -lc""... $ac_c" 1>&6 -echo "configure:14991: checking for dlopen in -lc" >&5 +echo "configure:14992: checking for dlopen in -lc" >&5 cat > conftest.$ac_ext < int main() { dlopen ("", 0); ; return 0; } EOF -if { (eval echo configure:15000: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15001: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* have_dl=yes else @@ -15005,18 +15006,18 @@ else rm -rf conftest* echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 -echo "configure:15009: checking for dlopen in -ldl" >&5 +echo "configure:15010: checking for dlopen in -ldl" >&5 ac_save_LIBS="$LIBS" LIBS="-ldl $LIBS" cat > conftest.$ac_ext < int main() { dlopen ("", 0); ; return 0; } EOF -if { (eval echo configure:15020: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15021: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* have_dl=yes else @@ -15045,12 +15046,12 @@ EOF else echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 -echo "configure:15049: checking for shl_load in -ldld" >&5 +echo "configure:15050: checking for shl_load in -ldld" >&5 ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'` xe_check_libs=" -ldld " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15066: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -15088,12 +15089,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for dld_init in -ldld""... $ac_c" 1>&6 -echo "configure:15092: checking for dld_init in -ldld" >&5 +echo "configure:15093: checking for dld_init in -ldld" >&5 ac_lib_var=`echo dld'_'dld_init | sed 'y%./+-%__p_%'` xe_check_libs=" -ldld " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15109: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -15151,7 +15152,7 @@ xehost=$canonical xealias=$internal_configuration echo "checking how to build dynamic libraries for ${xehost}" 1>&6 -echo "configure:15155: checking how to build dynamic libraries for ${xehost}" >&5 +echo "configure:15156: checking how to build dynamic libraries for ${xehost}" >&5 # Transform *-*-linux* to *-*-linux-gnu*, to support old configure scripts. case "$xehost" in *-*-linux-gnu*) ;; @@ -15179,9 +15180,9 @@ if test "$GCC" = "yes"; then XEGCC=yes else echo $ac_n "checking checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:15183: checking checking whether we are using GNU C" >&5 +echo "configure:15184: checking checking whether we are using GNU C" >&5 cat > conftest.$ac_ext <&6 -echo "configure:15207: checking how to produce PIC code" >&5 +echo "configure:15208: checking how to produce PIC code" >&5 wl= can_build_shared=yes @@ -15304,18 +15305,18 @@ if test -n "$dll_cflags"; then # Check to make sure the dll_cflags actually works. echo $ac_n "checking if PIC flag ${dll_cflags} really works""... $ac_c" 1>&6 -echo "configure:15308: checking if PIC flag ${dll_cflags} really works" >&5 +echo "configure:15309: checking if PIC flag ${dll_cflags} really works" >&5 save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $dll_cflags -DPIC" cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:15320: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* # On HP-UX, the stripped-down bundled CC doesn't accept +Z, but also @@ -15346,7 +15347,7 @@ cc_produces_so=no xldf= xcldf= echo $ac_n "checking if C compiler can produce shared libraries""... $ac_c" 1>&6 -echo "configure:15350: checking if C compiler can produce shared libraries" >&5 +echo "configure:15351: checking if C compiler can produce shared libraries" >&5 if test "$XEGCC" = yes -o "$__ICC" = yes; then xcldf="-shared" xldf="-shared" @@ -15397,14 +15398,14 @@ if test -n "$xcldf"; then xe_libs= ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ext '"$xe_libs"' 1>&5' cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15409: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cc_produces_so=yes else @@ -15429,7 +15430,7 @@ if test -z "$LTLD"; then if test "$XEGCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6 -echo "configure:15433: checking for ld used by GCC" >&5 +echo "configure:15434: checking for ld used by GCC" >&5 ac_prog=`($CC -print-prog-name=ld) 2>&5` case "$ac_prog" in # Accept absolute paths. @@ -15455,7 +15456,7 @@ echo "configure:15433: checking for ld used by GCC" >&5 esac else echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 -echo "configure:15459: checking for GNU ld" >&5 +echo "configure:15460: checking for GNU ld" >&5 fi if test -z "$LTLD"; then @@ -15493,7 +15494,7 @@ ld_dynamic_link_flags= # Check to see if it really is or isn't GNU ld. echo $ac_n "checking if the linker is GNU ld""... $ac_c" 1>&6 -echo "configure:15497: checking if the linker is GNU ld" >&5 +echo "configure:15498: checking if the linker is GNU ld" >&5 # I'd rather use --version here, but apparently some GNU ld's only accept -v. if $LTLD -v 2>&1 &5; then xe_gnu_ld=yes @@ -15521,7 +15522,7 @@ else # OK - only NOW do we futz about with ld. # See if the linker supports building shared libraries. echo $ac_n "checking whether the linker supports shared libraries""... $ac_c" 1>&6 -echo "configure:15525: checking whether the linker supports shared libraries" >&5 +echo "configure:15526: checking whether the linker supports shared libraries" >&5 dll_ld=$CC dll_ldflags=$LDFLAGS ld_shlibs=yes @@ -15732,10 +15733,10 @@ EOF for ac_func in dlerror _dlerror do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:15736: checking for $ac_func" >&5 +echo "configure:15737: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15763: \"$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 @@ -15797,11 +15798,11 @@ done fi cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:15806: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then : else diff --git a/configure.in b/configure.in index a0f9f4d..6cda856 100644 --- a/configure.in +++ b/configure.in @@ -1895,9 +1895,9 @@ dnl We only cope with headers in mingw, not mingw32: no previous version of dnl XEmacs supported mingw and cygnus have made this incompatible change dnl so we just go with the flow. case "$opsys" in mingw* | cygwin*) - cygwin_include=`eval "gcc -print-file-name=libc.a"` ; - cygwin_include=`eval "dirname $cygwin_include"` ; - cygwin_include="-I$cygwin_include/../include" ; + cygwin_include=`eval gcc -print-search-dirs | sed -ne s'/install: //p'` + cygwin_include=`eval "cd $cygwin_include/../../../..; pwd"` + cygwin_include="-I$cygwin_include/include" ; extra_includes="$cygwin_include/mingw $cygwin_include" ; case "$opsys" in mingw*) XE_APPEND($extra_includes, c_switch_system) ;; @@ -3359,17 +3359,18 @@ if test "$window_system" != "none"; then dnl -- should only happen if CYGWIN && WITH_XPM && WITH_MSW && !WITH_X libpath_xpm= incpath_xpm= + libname_xpm="-lXpm" case "$opsys" in cygwin*) - cygwin_top=`eval "gcc -print-file-name=libc.a"` ; - cygwin_top=`eval "dirname ${cygwin_top}"`; - cygwin_top="${cygwin_top}/.."; + cygwin_top=`eval gcc -print-search-dirs | sed -ne s'/install: //p'` + cygwin_top=`eval "cd $cygwin_top/../../../..; pwd"` case "$window_system" in dnl use "standard" search pattern x11) ;; dnl hardcode "standard" non-X11 xpm lib/inc dirs msw) libpath_xpm="-L${cygwin_top}/lib/noX" incpath_xpm="-I${cygwin_top}/include/noX" + libname_xpm="-lXpm-noX" ;; dnl not supported on cygwin (yet?) gtk) ;; @@ -3388,7 +3389,7 @@ if test "$window_system" != "none"; then XE_PREPEND("$incpath_xpm", CFLAGS) XE_PREPEND("$libpath_xpm", LDFLAGS) AC_MSG_CHECKING(for Xpm - no older than 3.4f) - xe_check_libs=-lXpm + xe_check_libs="$libname_xpm" AC_TRY_RUN([#define XPM_NUMBERS #include int main(int c, char **v) { @@ -3423,10 +3424,10 @@ if test "$window_system" != "none"; then dnl #### but doesn't actually verify this assumption. AC_DEFINE(HAVE_XPM) XE_PREPEND("$libpath_xpm", LDFLAGS) - XE_PREPEND(-lXpm, libs_x) + XE_PREPEND("$libname_xpm", libs_x) XE_PREPEND("$incpath_xpm", CFLAGS) AC_MSG_CHECKING(for \"FOR_MSW\" xpm) - xe_check_libs=-lXpm + xe_check_libs="$libname_xpm" AC_TRY_LINK(, [XpmCreatePixmapFromData()], [xpm_for_msw=no], [xpm_for_msw=yes]) diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index 3675816..184dc6d 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -1,3 +1,26 @@ +2006-12-09 Vin Shelton + + * XEmacs 21.4.20 is released + +2006-08-11 Jerry James + + * gnuslib.c (disconnect_from_server): shutdown() has been fine on + Linux for a long time now; use it. Also, don't use length to + access the buffer unless it is positive, not just nonzero. + * gnuclient.c (filename_expand): Initialize the last array element + to get a valid C string in case of overflow. Use strncat to avoid + buffer overruns. + * gnuclient.c (main): Use strncpy to avoid buffer overruns. + +2006-08-11 Jerry James + + * pop.h: Sync with Emacs. + * pop.c: Ditto. + +2006-07-21 Stephen J. Turnbull + + * etags.c: Xemacs -> XEmacs + 2006-01-28 Vin Shelton * XEmacs 21.4.19 is released diff --git a/lib-src/etags.c b/lib-src/etags.c index d59e2e8..e1b6aeb 100644 --- a/lib-src/etags.c +++ b/lib-src/etags.c @@ -64,7 +64,7 @@ char pot_etags_version[] = "@(#) pot revision number is 14.15"; # define _GNU_SOURCE 1 /* enables some compiler checks on GNU */ #endif -/* WIN32_NATIVE is for Xemacs. +/* WIN32_NATIVE is for XEmacs. MSDOS, WINDOWSNT, DOS_NT are for Emacs. */ #ifdef WIN32_NATIVE # undef MSDOS diff --git a/lib-src/gnuclient.c b/lib-src/gnuclient.c index aaec46a..311249e 100644 --- a/lib-src/gnuclient.c +++ b/lib-src/gnuclient.c @@ -198,7 +198,7 @@ filename_expand (char *fullpath, char *filename) #endif int len; - fullpath[0] = '\0'; + fullpath[0] = fullpath[MAXPATHLEN] = '\0'; #ifdef CYGWIN /* @@ -211,7 +211,7 @@ filename_expand (char *fullpath, char *filename) if (filename[0] && filename[0] == '/') { /* Absolute (unix-style) pathname. Do nothing */ - strcat (fullpath, filename); + strncat (fullpath, filename, MAXPATHLEN); } else { @@ -219,15 +219,18 @@ filename_expand (char *fullpath, char *filename) and prepend it. FIXME: need to fix the case of DOS paths like "\foo", where we need to get the current drive. */ - strcat (fullpath, get_current_working_directory ()); + strncat (fullpath, get_current_working_directory (), MAXPATHLEN); len = strlen (fullpath); - if (len > 0 && fullpath[len-1] == '/') /* trailing slash already? */ - ; /* yep */ - else - strcat (fullpath, "/"); /* nope, append trailing slash */ + /* If no trailing slash, add one */ + if (len <= 0 || (fullpath[len - 1] != '/' && len < MAXPATHLEN)) + { + strcat (fullpath, "/"); + len++; + } + /* Don't forget to add the filename! */ - strcat (fullpath,filename); + strncat (fullpath, filename, MAXPATHLEN - len); } } /* filename_expand */ @@ -439,7 +442,7 @@ main (int argc, char *argv[]) break; case 'r': GET_ARGUMENT (remotearg, "-r"); - strcpy (remotepath, remotearg); + strncpy (remotepath, remotearg, MAXPATHLEN); rflg = 1; break; #endif /* INTERNET_DOMAIN_SOCKETS */ @@ -594,7 +597,7 @@ main (int argc, char *argv[]) * to this machine */ if ((ptr = getenv ("GNU_NODE")) != NULL) /* user specified a path */ - strcpy (remotepath, ptr); + strncpy (remotepath, ptr, MAXPATHLEN); } #if 0 /* This is really bogus... re-enable it if you must have it! */ #if defined (hp9000s300) || defined (hp9000s800) diff --git a/lib-src/gnuslib.c b/lib-src/gnuslib.c index ba5a96c..8951b26 100644 --- a/lib-src/gnuslib.c +++ b/lib-src/gnuslib.c @@ -411,13 +411,11 @@ disconnect_from_server (int s, int echo) send_string(s,EOT_STR); /* make sure server gets string */ -#if !defined (linux) && !defined (_SCO_DS) +#if !defined (_SCO_DS) /* - * shutdown is completely hozed under linux. If s is a unix domain socket, - * you'll get EOPNOTSUPP back from it. If s is an internet socket, you get - * a broken pipe when you try to read a bit later. The latter - * problem is fixed for linux versions >= 1.1.46, but the problem - * with unix sockets persists. Sigh. + * There used to be a comment here complaining about ancient Linux + * versions. It is no longer relevant. I don't know why _SCO_DS is + * verboten here, as the original comment did not say. */ if (shutdown(s,1) == -1) { @@ -436,7 +434,7 @@ disconnect_from_server (int s, int echo) #else while ((length = read(s,buffer,GSERV_BUFSZ)) > 0 || (length == -1 && errno == EINTR)) { - if (length) { + if (length > 0) { buffer[length] = '\0'; if (echo) { fputs(buffer,stdout); diff --git a/lib-src/pop.c b/lib-src/pop.c index 0bf05de..164eb6e 100644 --- a/lib-src/pop.c +++ b/lib-src/pop.c @@ -1,5 +1,7 @@ /* pop.c: client routines for talking to a POP3-protocol post-office server - Copyright (c) 1991, 1993, 1996 Free Software Foundation, Inc. + Copyright (C) 1991, 1993, 1996, 1997, 1999, 2002, 2003, 2004, + 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 2001 Ben Wing. Written by Jonathan Kamens, jik@security.ov.com. This file is part of GNU Emacs. @@ -16,8 +18,10 @@ 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. */ +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +Boston, MA 02110-1301, USA. */ + +/* Synched up with: FSF 22.0.50. */ #ifdef HAVE_CONFIG_H #define NO_SHORTNAMES /* Tell config not to load remap.h */ @@ -95,7 +99,7 @@ extern struct servent *hes_getservbyname (/* char *, char * */); #ifdef KERBEROS #ifndef KRB5 extern int krb_sendauth (/* long, int, KTEXT, char *, char *, char *, - unsigned long, MSG_DAT *, CREDENTIALS *, Key_schedule, + u_long, MSG_DAT *, CREDENTIALS *, Key_schedule, struct sockaddr_in *, struct sockaddr_in *, char * */); extern char *krb_realmofhost (/* char * */); @@ -109,7 +113,7 @@ extern int h_errno; #endif static int socket_connection (char *, int); -static char *pop_getline (popserver); +static int pop_getline (popserver, char **); static int sendline (popserver, char *); static int fullwrite (int, char *, int); static int getok (popserver); @@ -117,9 +121,11 @@ static int getok (popserver); static int gettermination (popserver); #endif static void pop_trash (popserver); -static char *find_crlf (char *); +static char *find_crlf (char *, int); -#define ERROR_MAX 80 /* a pretty arbitrary size */ +#define ERROR_MAX 160 /* a pretty arbitrary size, but needs + to be bigger than the original + value of 80 */ #define POP_PORT 110 #define KPOP_PORT 1109 #if defined(WIN32_NATIVE) || defined(CYGWIN) @@ -129,7 +135,7 @@ static char *find_crlf (char *); #endif #ifdef KERBEROS #ifdef KRB5 -#define KPOP_SERVICE "k5pop"; +#define KPOP_SERVICE "k5pop" #else #define KPOP_SERVICE "kpop" #endif @@ -355,7 +361,7 @@ pop_stat (popserver server, int *count, int *size) return (-1); } - if (sendline (server, "STAT") || (! (fromserver = pop_getline (server)))) + if (sendline (server, "STAT") || (pop_getline (server, &fromserver) < 0)) return (-1); if (strncmp (fromserver, "+OK ", 4)) @@ -447,7 +453,7 @@ pop_list (popserver server, int message, int **IDs, int **sizes) free ((char *) *sizes); return (-1); } - if (! (fromserver = pop_getline (server))) + if (pop_getline (server, &fromserver) < 0) { free ((char *) *IDs); free ((char *) *sizes); @@ -492,7 +498,7 @@ pop_list (popserver server, int message, int **IDs, int **sizes) } for (i = 0; i < how_many; i++) { - if (pop_multi_next (server, &fromserver)) + if (pop_multi_next (server, &fromserver) <= 0) { free ((char *) *IDs); free ((char *) *sizes); @@ -511,7 +517,7 @@ pop_list (popserver server, int message, int **IDs, int **sizes) } (*sizes)[i] = atoi (fromserver); } - if (pop_multi_next (server, &fromserver)) + if (pop_multi_next (server, &fromserver) < 0) { free ((char *) *IDs); free ((char *) *sizes); @@ -541,14 +547,17 @@ pop_list (popserver server, int message, int **IDs, int **sizes) * markfrom * If true, then mark the string "From " at the beginning * of lines with '>'. + * msg_buf Output parameter to which a buffer containing the + * message is assigned. * - * Return value: A string pointing to the message, if successful, or - * null with pop_error set if not. + * Return value: The number of bytes in msg_buf, which may contain + * embedded nulls, not including its final null, or -1 on error + * with pop_error set. * * Side effects: May kill connection on error. */ -char * -pop_retrieve (popserver server, int message, int markfrom) +int +pop_retrieve (popserver server, int message, int markfrom, char **msg_buf) { int *IDs, *sizes, bufsize, fromcount = 0, cp = 0; char *ptr, *fromserver; @@ -561,11 +570,11 @@ pop_retrieve (popserver server, int message, int markfrom) } if (pop_list (server, message, &IDs, &sizes)) - return (0); + return (-1); if (pop_retrieve_first (server, message, &fromserver)) { - return (0); + return (-1); } /* @@ -583,17 +592,16 @@ pop_retrieve (popserver server, int message, int markfrom) { strcpy (pop_error, "Out of memory in pop_retrieve"); pop_retrieve_flush (server); - return (0); + return (-1); } - while (! (ret = pop_retrieve_next (server, &fromserver))) + while ((ret = pop_retrieve_next (server, &fromserver)) >= 0) { - int linesize; - if (! fromserver) { ptr[cp] = '\0'; - return (ptr); + *msg_buf = ptr; + return (cp); } if (markfrom && fromserver[0] == 'F' && fromserver[1] == 'r' && fromserver[2] == 'o' && fromserver[3] == 'm' && @@ -607,25 +615,19 @@ pop_retrieve (popserver server, int message, int markfrom) { strcpy (pop_error, "Out of memory in pop_retrieve"); pop_retrieve_flush (server); - return (0); + return (-1); } fromcount = 0; } ptr[cp++] = '>'; } - linesize = strlen (fromserver); - memcpy (&ptr[cp], fromserver, linesize); - cp += linesize; + memcpy (&ptr[cp], fromserver, ret); + cp += ret; ptr[cp++] = '\n'; } - if (ret) - { - free (ptr); - /* return (0); */ - } - /* This function used to fall off the end, but that doesn't make any sense */ - return (0); + free (ptr); + return (-1); } int @@ -635,6 +637,14 @@ pop_retrieve_first (popserver server, int message, char **response) return (pop_multi_first (server, pop_error, response)); } +/* + Returns a negative number on error, 0 to indicate that the data has + all been read (i.e., the server has returned a "." termination + line), or a positive number indicating the number of bytes in the + returned buffer (which is null-terminated and may contain embedded + nulls, but the returned bytecount doesn't include the final null). + */ + int pop_retrieve_next (popserver server, char **line) { @@ -654,6 +664,14 @@ pop_top_first (popserver server, int message, int lines, char **response) return (pop_multi_first (server, pop_error, response)); } +/* + Returns a negative number on error, 0 to indicate that the data has + all been read (i.e., the server has returned a "." termination + line), or a positive number indicating the number of bytes in the + returned buffer (which is null-terminated and may contain embedded + nulls, but the returned bytecount doesn't include the final null). + */ + int pop_top_next (popserver server, char **line) { @@ -676,7 +694,7 @@ pop_multi_first (popserver server, char *command, char **response) return (-1); } - if (sendline (server, command) || (! (*response = pop_getline (server)))) + if (sendline (server, command) || (pop_getline (server, response) < 0)) { return (-1); } @@ -700,10 +718,20 @@ pop_multi_first (popserver server, char *command, char **response) } } +/* + Read the next line of data from SERVER and place a pointer to it + into LINE. Return -1 on error, 0 if there are no more lines to read + (i.e., the server has returned a line containing only "."), or a + positive number indicating the number of bytes in the LINE buffer + (not including the final null). The data in that buffer may contain + embedded nulls, but does not contain the final CRLF. When returning + 0, LINE is set to null. */ + int pop_multi_next (popserver server, char **line) { char *fromserver; + int ret; if (! server->in_multi) { @@ -711,8 +739,7 @@ pop_multi_next (popserver server, char **line) return (-1); } - fromserver = pop_getline (server); - if (! fromserver) + if ((ret = pop_getline (server, &fromserver)) < 0) { return (-1); } @@ -728,13 +755,13 @@ pop_multi_next (popserver server, char **line) else { *line = fromserver + 1; - return (0); + return (ret - 1); } } else { *line = fromserver; - return (0); + return (ret); } } @@ -742,21 +769,22 @@ int pop_multi_flush (popserver server) { char *line; + int ret; if (! server->in_multi) { return (0); } - while (! pop_multi_next (server, &line)) + while ((ret = pop_multi_next (server, &line))) { - if (! line) + if (ret < 0) { - return (0); + return (-1); } } - return (-1); + return (0); } /* Function: pop_delete @@ -843,7 +871,7 @@ pop_last (popserver server) if (sendline (server, "LAST")) return (-1); - if (! (fromserver = pop_getline (server))) + if (pop_getline (server, &fromserver) < 0) return (-1); if (! strncmp (fromserver, "-ERR", 4)) @@ -961,6 +989,8 @@ socket_connection (char *host, int flags) #ifdef KERBEROS #ifdef KRB5 krb5_error_code rem; + krb5_context kcontext = 0; + krb5_auth_context auth_context = 0; krb5_ccache ccdef; krb5_principal client, server; krb5_error *err_ret; @@ -971,6 +1001,7 @@ socket_connection (char *host, int flags) CREDENTIALS cred; Key_schedule schedule; int rem; + char *realhost; #endif /* KRB5 */ #endif /* KERBEROS */ @@ -984,21 +1015,6 @@ socket_connection (char *host, int flags) } #endif - do - { - hostent = gethostbyname (host); - try_count++; - if ((! hostent) -#ifndef BROKEN_CYGWIN - && ((h_errno != TRY_AGAIN) || (try_count == 5)) -#endif - ) - { - strcpy (pop_error, "Could not determine POP server's address"); - return (-1); - } - } while (! hostent); - memset (&addr, 0, sizeof (addr)); addr.sin_family = AF_INET; @@ -1037,18 +1053,33 @@ socket_connection (char *host, int flags) } } -#define SOCKET_ERROR "Could not create socket for POP connection: " +#define POP_SOCKET_ERROR "Could not create socket for POP connection: " sock = socket (PF_INET, SOCK_STREAM, 0); if (sock < 0) { - strcpy (pop_error, SOCKET_ERROR); + strcpy (pop_error, POP_SOCKET_ERROR); strncat (pop_error, strerror (errno), - ERROR_MAX - sizeof (SOCKET_ERROR)); + ERROR_MAX - sizeof (POP_SOCKET_ERROR)); return (-1); } + do + { + hostent = gethostbyname (host); + try_count++; + if ((! hostent) +#ifndef BROKEN_CYGWIN + && ((h_errno != TRY_AGAIN) || (try_count == 5)) +#endif + ) + { + strcpy (pop_error, "Could not determine POP server's address"); + return (-1); + } + } while (! hostent); + while (*hostent->h_addr_list) { memcpy (&addr.sin_addr, *hostent->h_addr_list, hostent->h_length); @@ -1074,11 +1105,13 @@ socket_connection (char *host, int flags) if (! (flags & POP_NO_KERBEROS)) { #ifdef KRB5 - krb5_init_ets (); - - if (rem = krb5_cc_default (&ccdef)) + if ((rem = krb5_init_context (&kcontext))) { krb5error: + if (auth_context) + krb5_auth_con_free (kcontext, auth_context); + if (kcontext) + krb5_free_context (kcontext); strcpy (pop_error, KRB_ERROR); strncat (pop_error, error_message (rem), ERROR_MAX - sizeof(KRB_ERROR)); @@ -1086,10 +1119,14 @@ socket_connection (char *host, int flags) return (-1); } - if (rem = krb5_cc_get_principal (ccdef, &client)) - { - goto krb5error; - } + if ((rem = krb5_auth_con_init (kcontext, &auth_context))) + goto krb5error; + + if (rem = krb5_cc_default (kcontext, &ccdef)) + goto krb5error; + + if (rem = krb5_cc_get_principal (kcontext, ccdef, &client)) + goto krb5error; for (cp = hostent->h_name; *cp; cp++) { @@ -1099,22 +1136,20 @@ socket_connection (char *host, int flags) } } - if (rem = krb5_sname_to_principal (hostent->h_name, POP_SERVICE, - FALSE, &server)) - { - goto krb5error; - } + if (rem = krb5_sname_to_principal (kcontext, hostent->h_name, + POP_SERVICE, FALSE, &server)) + goto krb5error; - rem = krb5_sendauth ((krb5_pointer) &sock, "KPOPV1.0", client, server, + rem = krb5_sendauth (kcontext, &auth_context, + (krb5_pointer) &sock, "KPOPV1.0", client, server, AP_OPTS_MUTUAL_REQUIRED, 0, /* no checksum */ 0, /* no creds, use ccache instead */ ccdef, - 0, /* don't need seq # */ - 0, /* don't need subsession key */ &err_ret, + 0, /* don't need subsession key */ 0); /* don't need reply */ - krb5_free_principal (server); + krb5_free_principal (kcontext, server); if (rem) { if (err_ret && err_ret->text.length) @@ -1137,20 +1172,23 @@ socket_connection (char *host, int flags) ERROR_MAX - sizeof (KRB_ERROR)); } if (err_ret) - krb5_free_error (err_ret); + krb5_free_error (kcontext, err_ret); + krb5_auth_con_free (kcontext, auth_context); + krb5_free_context (kcontext); CLOSESOCKET (sock); return (-1); } #else /* ! KRB5 */ ticket = (KTEXT) malloc (sizeof (KTEXT_ST)); - rem = krb_sendauth (0L, sock, ticket, "pop", hostent->h_name, - (char *) krb_realmofhost (hostent->h_name), + rem = krb_sendauth (0L, sock, ticket, "pop", realhost, + (char *) krb_realmofhost (realhost), (unsigned long) 0, &msg_data, &cred, schedule, (struct sockaddr_in *) 0, (struct sockaddr_in *) 0, "KPOPV0.1"); free ((char *) ticket); + free (realhost); if (rem != KSUCCESS) { strcpy (pop_error, KRB_ERROR); @@ -1177,15 +1215,20 @@ socket_connection (char *host, int flags) * Arguments: * server The server from which to get the line of text. * - * Returns: A non-null pointer if successful, or a null pointer on any - * error, with an error message copied into pop_error. + * Returns: The number of characters in the line, which is returned in + * LINE, not including the final null. A return value of 0 + * indicates a blank line. A negative return value indicates an + * error (in which case the contents of LINE are undefined. In + * case of error, an error message is copied into pop_error. * * Notes: The line returned is overwritten with each call to pop_getline. * * Side effects: Closes the connection on error. + * + * THE RETURNED LINE MAY CONTAIN EMBEDDED NULLS! */ -static char * -pop_getline (popserver server) +static int +pop_getline (popserver server, char **line) { #define GETLINE_ERROR "Error reading from server: " @@ -1194,7 +1237,8 @@ pop_getline (popserver server) if (server->data) { - char *cp = find_crlf (server->buffer + server->buffer_index); + char *cp = find_crlf (server->buffer + server->buffer_index, + server->data); if (cp) { int found; @@ -1208,8 +1252,11 @@ pop_getline (popserver server) server->buffer_index += data_used; if (pop_debug) + /* Embedded nulls will truncate this output prematurely, + but that's OK because it's just for debugging anyway. */ fprintf (stderr, "<<< %s\n", server->buffer + found); - return (server->buffer + found); + *line = server->buffer + found; + return (data_used - 2); } else { @@ -1245,7 +1292,7 @@ pop_getline (popserver server) { strcpy (pop_error, "Out of memory in pop_getline"); pop_trash (server); - return (0); + return (-1); } } ret = RECV (server->file, server->buffer + server->data, @@ -1256,13 +1303,13 @@ pop_getline (popserver server) strncat (pop_error, strerror (errno), ERROR_MAX - sizeof (GETLINE_ERROR)); pop_trash (server); - return (0); + return (-1); } else if (ret == 0) { strcpy (pop_error, "Unexpected EOF from server in pop_getline"); pop_trash (server); - return (0); + return (-1); } else { @@ -1270,7 +1317,8 @@ pop_getline (popserver server) server->data += ret; server->buffer[server->data] = '\0'; - cp = find_crlf (server->buffer + search_offset); + cp = find_crlf (server->buffer + search_offset, + server->data - search_offset); if (cp) { int data_used = (cp + 2) - server->buffer; @@ -1280,9 +1328,12 @@ pop_getline (popserver server) if (pop_debug) fprintf (stderr, "<<< %s\n", server->buffer); - return (server->buffer); + *line = server->buffer; + return (data_used - 2); } - search_offset += ret; + /* As above, the "- 1" here is to account for the fact that + we may have read a CR without its accompanying LF. */ + search_offset += ret - 1; } } @@ -1312,12 +1363,24 @@ sendline (popserver server, char *line) { #define SENDLINE_ERROR "Error writing to POP server: " int ret; - + char *buf; + + /* Combine the string and the CR-LF into one buffer. Otherwise, two + reasonable network stack optimizations, Nagle's algorithm and + delayed acks, combine to delay us a fraction of a second on every + message we send. (Movemail writes line without \r\n, client + kernel sends packet, server kernel delays the ack to see if it + can combine it with data, movemail writes \r\n, client kernel + waits because it has unacked data already in its outgoing queue, + client kernel eventually times out and sends.) + + This can be something like 0.2s per command, which can add up + over a few dozen messages, and is a big chunk of the time we + spend fetching mail from a server close by. */ + buf = alloca (strlen (line) + 3); + strcpy (buf, line); + strcat (buf, "\r\n"); ret = fullwrite (server->file, line, strlen (line)); - if (ret >= 0) - { /* 0 indicates that a blank line was written */ - ret = fullwrite (server->file, "\r\n", 2); - } if (ret < 0) { @@ -1346,10 +1409,10 @@ static int fullwrite (int fd, char *buf, int nbytes) { char *cp; - int ret; + int ret = 0; cp = buf; - while ((ret = SEND (fd, cp, nbytes, 0)) > 0) + while (nbytes && ((ret = SEND (fd, cp, nbytes, 0)) > 0)) { cp += ret; nbytes -= ret; @@ -1377,7 +1440,7 @@ getok (popserver server) { char *fromline; - if (! (fromline = pop_getline (server))) + if (pop_getline (server, &fromline) < 0) { return (-1); } @@ -1415,8 +1478,7 @@ gettermination (popserver server) { char *fromserver; - fromserver = pop_getline (server); - if (! fromserver) + if (pop_getline (server, &fromserver) < 0) return (-1); if (strcmp (fromserver, ".")) @@ -1487,17 +1549,16 @@ pop_trash (popserver server) #endif } -/* Return a pointer to the first CRLF in IN_STRING, - or 0 if it does not contain one. */ +/* Return a pointer to the first CRLF in IN_STRING, which can contain + embedded nulls and has LEN characters in it not including the final + null, or 0 if it does not contain one. */ static char * -find_crlf (char *in_string) +find_crlf (char *in_string, int len) { - while (1) + while (len--) { - if (! *in_string) - return (0); - else if (*in_string == '\r') + if (*in_string == '\r') { if (*++in_string == '\n') return (in_string - 1); @@ -1505,7 +1566,7 @@ find_crlf (char *in_string) else in_string++; } - /* NOTREACHED */ + return (0); } #endif /* MAIL_USE_POP */ diff --git a/lib-src/pop.h b/lib-src/pop.h index 9121425..c18b623 100644 --- a/lib-src/pop.h +++ b/lib-src/pop.h @@ -1,5 +1,6 @@ /* pop.h: Header file for the "pop.c" client POP3 protocol. - Copyright (c) 1991,1993 Free Software Foundation, Inc. + Copyright (C) 1991, 1993, 2002, 2003, 2004, + 2005, 2006 Free Software Foundation, Inc. Written by Jonathan Kamens, jik@security.ov.com. This file is part of GNU Emacs. @@ -16,8 +17,10 @@ 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. */ +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +Boston, MA 02110-1301, USA. */ + +/* Synched up with: FSF 22.0.50. */ #include @@ -59,7 +62,8 @@ extern popserver pop_open _ARGS((char *host, char *username, char *password, extern int pop_stat _ARGS((popserver server, int *count, int *size)); extern int pop_list _ARGS((popserver server, int message, int **IDs, int **size)); -extern char *pop_retrieve _ARGS((popserver server, int message, int markfrom)); +extern int pop_retrieve _ARGS((popserver server, int message, int markfrom, + char **)); extern int pop_retrieve_first _ARGS((popserver server, int message, char **response)); extern int pop_retrieve_next _ARGS((popserver server, char **line)); diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 2d65942..d89637d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,35 @@ +2006-12-09 Vin Shelton + + * XEmacs 21.4.20 is released + +2006-10-14 Jeff Miller + + * info.el (Info-find-emacs-command-nodes): fix regex for find command node. + +2006-11-14 Stephen J. Turnbull + + * info.el (Info-find-file-node, Info-insert-dir) + (Info-read-subfile, Info-insert-file-contents): Maintain invariant + `(equal buffer-file-truename (file-truename buffer-file-name))'. + Thanks to Nelson Ferreira for report + and discussion. + +2006-05-20 Ville Skyttä + + * obsolete.el (line-beginning-position): New, from 21.5.x. + (line-end-position): Ditto. + +2006-06-03 Adrian Aichner + + * package-get.el (package-get-download-sites): Welcome + nl.xemacs.org and Thanks! + * package-get.el (package-get-pre-release-download-sites): Ditto. + +2004-01-19 Martin Buchholz + + * font-lock.el: Add support for not-so recent changes in Java to + java-mode. + 2006-01-28 Vin Shelton * XEmacs 21.4.19 is released diff --git a/lisp/auto-autoloads.el b/lisp/auto-autoloads.el index d0afd32..4410de6 100644 --- a/lisp/auto-autoloads.el +++ b/lisp/auto-autoloads.el @@ -1506,9 +1506,9 @@ one version of a package available.") (defcustom package-get-install-to-user-init-directory nil "*If non-nil install packages under `user-init-directory'." :type 'boolean :group 'package-get) -(defcustom package-get-download-sites '(("US (Main XEmacs Site)" "ftp.xemacs.org" "pub/xemacs/packages") ("Argentina (xmundo.net)" "xemacs.xmundo.net" "pub/mirrors/xemacs/packages") ("Australia (aarnet.edu.au)" "mirror.aarnet.edu.au" "pub/xemacs/packages") ("Australia (au.xemacs.org)" "ftp.au.xemacs.org" "pub/xemacs/packages") ("Austria (at.xemacs.org)" "ftp.at.xemacs.org" "editors/xemacs/packages") ("Belgium (be.xemacs.org)" "ftp.be.xemacs.org" "xemacs/packages") ("Brazil (br.xemacs.org)" "ftp.br.xemacs.org" "pub/xemacs/packages") ("Canada (ca.xemacs.org)" "ftp.ca.xemacs.org" "pub/Mirror/xemacs/packages") ("Canada (crc.ca)" "ftp.crc.ca" "pub/packages/editors/xemacs/packages") ("Canada (nrc.ca)" "ftp.nrc.ca" "pub/packages/editors/xemacs/packages") ("Czech Republic (cz.xemacs.org)" "ftp.cz.xemacs.org" "MIRRORS/ftp.xemacs.org/pub/xemacs/packages") ("Denmark (dk.xemacs.org)" "ftp.dk.xemacs.org" "pub/emacs/xemacs/packages") ("Finland (fi.xemacs.org)" "ftp.fi.xemacs.org" "pub/mirrors/ftp.xemacs.org/pub/tux/xemacs/packages") ("France (fr.xemacs.org)" "ftp.fr.xemacs.org" "pub/xemacs/packages") ("France (mirror.cict.fr)" "mirror.cict.fr" "xemacs/packages") ("France (pasteur.fr)" "ftp.pasteur.fr" "pub/computing/xemacs/packages") ("Germany (de.xemacs.org)" "ftp.de.xemacs.org" "pub/ftp.xemacs.org/tux/xemacs/packages") ("Hong Kong (hk.xemacs.org)" "ftp.hk.xemacs.org" "pub/xemacsftp/packages") ("Iceland (is.xemacs.org)" "ftp.is.xemacs.org" "pub/xemacs/packages") ("Ireland (ie.xemacs.org)" "ftp.ie.xemacs.org" "mirrors/ftp.xemacs.org/pub/xemacs/packages") ("Ireland (heanet.ie)" "ftp.heanet.ie" "mirrors/ftp.xemacs.org/packages") ("Italy (it.xemacs.org)" "ftp.it.xemacs.org" "unix/packages/XEMACS/packages") ("Japan (aist.go.jp)" "ring.aist.go.jp" "pub/text/xemacs/packages") ("Japan (asahi-net.or.jp)" "ring.asahi-net.or.jp" "pub/text/xemacs/packages") ("Japan (dti.ad.jp)" "ftp.dti.ad.jp" "pub/unix/editor/xemacs/packages") ("Japan (sut.ac.jp)" "sunsite.sut.ac.jp" "pub/archives/packages/xemacs/packages") ("Korea (kr.xemacs.org)" "ftp.kr.xemacs.org" "pub/tools/emacs/xemacs/packages") ("New Zealand (nz.xemacs.org)" "ftp.nz.xemacs.org" "mirror/ftp.xemacs.org/packages") ("Norway (no.xemacs.org)" "ftp.no.xemacs.org" "pub/xemacs/packages") ("Poland (pl.xemacs.org)" "ftp.pl.xemacs.org" "pub/unix/editors/xemacs/packages") ("Portugal (pt.xemacs.org)" "ftp.pt.xemacs.org" "pub/MIRRORS/ftp.xemacs.org/packages") ("Russia (ru.xemacs.org)" "ftp.ru.xemacs.org" "pub/emacs/xemacs/packages") ("Sweden (se.xemacs.org)" "ftp.se.xemacs.org" "pub/gnu/xemacs/packages") ("Switzerland (ch.xemacs.org)" "ftp.ch.xemacs.org" "mirror/xemacs/packages") ("Taiwan (ftp.tw.xemacs.org)" "ftp.tw.xemacs.org" "Unix/Editors/XEmacs/packages") ("UK (uk.xemacs.org)" "ftp.uk.xemacs.org" "sites/ftp.xemacs.org/pub/xemacs/packages") ("US (ibiblio.org)" "mirrors.ibiblio.org" "pub/mirrors/xemacs/packages") ("US (stealth.net)" "ftp.stealth.net" "pub/mirrors/ftp.xemacs.org/pub/xemacs/packages") ("US (unc.edu)" "metalab.unc.edu" "pub/packages/editors/xemacs/packages") ("US (us.xemacs.org)" "ftp.us.xemacs.org" "pub/xemacs/packages")) "*List of remote sites available for downloading packages.\nList format is '(site-description site-name directory-on-site).\nSITE-DESCRIPTION is a textual description of the site. SITE-NAME\nis the internet address of the download site. DIRECTORY-ON-SITE\nis the directory on the site in which packages may be found.\nThis variable is used to initialize `package-get-remote', the\nvariable actually used to specify package download sites." :tag "Package download sites" :type '(repeat (list (string :tag "Name") host-name directory)) :group 'package-get) +(defcustom package-get-download-sites '(("US (Main XEmacs Site)" "ftp.xemacs.org" "pub/xemacs/packages") ("Argentina (xmundo.net)" "xemacs.xmundo.net" "pub/mirrors/xemacs/packages") ("Australia (aarnet.edu.au)" "mirror.aarnet.edu.au" "pub/xemacs/packages") ("Australia (au.xemacs.org)" "ftp.au.xemacs.org" "pub/xemacs/packages") ("Austria (at.xemacs.org)" "ftp.at.xemacs.org" "editors/xemacs/packages") ("Belgium (be.xemacs.org)" "ftp.be.xemacs.org" "xemacs/packages") ("Brazil (br.xemacs.org)" "ftp.br.xemacs.org" "pub/xemacs/packages") ("Canada (ca.xemacs.org)" "ftp.ca.xemacs.org" "pub/Mirror/xemacs/packages") ("Canada (crc.ca)" "ftp.crc.ca" "pub/packages/editors/xemacs/packages") ("Canada (nrc.ca)" "ftp.nrc.ca" "pub/packages/editors/xemacs/packages") ("Czech Republic (cz.xemacs.org)" "ftp.cz.xemacs.org" "MIRRORS/ftp.xemacs.org/pub/xemacs/packages") ("Denmark (dk.xemacs.org)" "ftp.dk.xemacs.org" "pub/emacs/xemacs/packages") ("Finland (fi.xemacs.org)" "ftp.fi.xemacs.org" "pub/mirrors/ftp.xemacs.org/pub/tux/xemacs/packages") ("France (fr.xemacs.org)" "ftp.fr.xemacs.org" "pub/xemacs/packages") ("France (mirror.cict.fr)" "mirror.cict.fr" "xemacs/packages") ("France (pasteur.fr)" "ftp.pasteur.fr" "pub/computing/xemacs/packages") ("Germany (de.xemacs.org)" "ftp.de.xemacs.org" "pub/ftp.xemacs.org/tux/xemacs/packages") ("Hong Kong (hk.xemacs.org)" "ftp.hk.xemacs.org" "pub/xemacsftp/packages") ("Iceland (is.xemacs.org)" "ftp.is.xemacs.org" "pub/xemacs/packages") ("Ireland (ie.xemacs.org)" "ftp.ie.xemacs.org" "mirrors/ftp.xemacs.org/pub/xemacs/packages") ("Ireland (heanet.ie)" "ftp.heanet.ie" "mirrors/ftp.xemacs.org/packages") ("Italy (it.xemacs.org)" "ftp.it.xemacs.org" "unix/packages/XEMACS/packages") ("Japan (aist.go.jp)" "ring.aist.go.jp" "pub/text/xemacs/packages") ("Japan (asahi-net.or.jp)" "ring.asahi-net.or.jp" "pub/text/xemacs/packages") ("Japan (dti.ad.jp)" "ftp.dti.ad.jp" "pub/unix/editor/xemacs/packages") ("Japan (sut.ac.jp)" "sunsite.sut.ac.jp" "pub/archives/packages/xemacs/packages") ("Korea (kr.xemacs.org)" "ftp.kr.xemacs.org" "pub/tools/emacs/xemacs/packages") ("Netherlands (nl.xemacs.org)" "ftp.nl.xemacs.org" "pub/xemacs/ftp/packages") ("New Zealand (nz.xemacs.org)" "ftp.nz.xemacs.org" "mirror/ftp.xemacs.org/packages") ("Norway (no.xemacs.org)" "ftp.no.xemacs.org" "pub/xemacs/packages") ("Poland (pl.xemacs.org)" "ftp.pl.xemacs.org" "pub/unix/editors/xemacs/packages") ("Portugal (pt.xemacs.org)" "ftp.pt.xemacs.org" "pub/MIRRORS/ftp.xemacs.org/packages") ("Russia (ru.xemacs.org)" "ftp.ru.xemacs.org" "pub/emacs/xemacs/packages") ("Sweden (se.xemacs.org)" "ftp.se.xemacs.org" "pub/gnu/xemacs/packages") ("Switzerland (ch.xemacs.org)" "ftp.ch.xemacs.org" "mirror/xemacs/packages") ("Taiwan (ftp.tw.xemacs.org)" "ftp.tw.xemacs.org" "Unix/Editors/XEmacs/packages") ("UK (uk.xemacs.org)" "ftp.uk.xemacs.org" "sites/ftp.xemacs.org/pub/xemacs/packages") ("US (ibiblio.org)" "mirrors.ibiblio.org" "pub/mirrors/xemacs/packages") ("US (stealth.net)" "ftp.stealth.net" "pub/mirrors/ftp.xemacs.org/pub/xemacs/packages") ("US (unc.edu)" "metalab.unc.edu" "pub/packages/editors/xemacs/packages") ("US (us.xemacs.org)" "ftp.us.xemacs.org" "pub/xemacs/packages")) "*List of remote sites available for downloading packages.\nList format is '(site-description site-name directory-on-site).\nSITE-DESCRIPTION is a textual description of the site. SITE-NAME\nis the internet address of the download site. DIRECTORY-ON-SITE\nis the directory on the site in which packages may be found.\nThis variable is used to initialize `package-get-remote', the\nvariable actually used to specify package download sites." :tag "Package download sites" :type '(repeat (list (string :tag "Name") host-name directory)) :group 'package-get) -(defcustom package-get-pre-release-download-sites '(("US Pre-Releases (Main XEmacs Site)" "ftp.xemacs.org" "pub/xemacs/beta/experimental/packages") ("Argentina Pre-Releases (xmundo.net)" "xemacs.xmundo.net" "pub/mirrors/xemacs/beta/experimental/packages") ("Australia Pre-Releases (aarnet.edu.au)" "mirror.aarnet.edu.au" "pub/xemacs/beta/experimental/packages") ("Australia Pre-Releases (au.xemacs.org)" "ftp.au.xemacs.org" "pub/xemacs/beta/experimental/packages") ("Austria Pre-Releases (at.xemacs.org)" "ftp.at.xemacs.org" "editors/xemacs/beta/experimental/packages") ("Belgium (be.xemacs.org)" "ftp.be.xemacs.org" "xemacs/beta/experimental/packages") ("Brazil Pre-Releases (br.xemacs.org)" "ftp.br.xemacs.org" "pub/xemacs/xemacs-21.5/experimental/packages") ("Canada Pre-Releases (ca.xemacs.org)" "ftp.ca.xemacs.org" "pub/Mirror/xemacs/beta/experimental/packages") ("Canada Pre-Releases (crc.ca)" "ftp.crc.ca" "pub/packages/editors/xemacs/beta/experimental/packages") ("Canada Pre-Releases (nrc.ca)" "ftp.nrc.ca" "pub/packages/editors/xemacs/beta/experimental/packages") ("Czech Republic Pre-Releases (cz.xemacs.org)" "ftp.cz.xemacs.org" "MIRRORS/ftp.xemacs.org/pub/xemacs/xemacs-21.5/experimental/packages") ("Denmark Pre-Releases (dk.xemacs.org)" "ftp.dk.xemacs.org" "pub/emacs/xemacs/beta/experimental/packages") ("Finland Pre-Releases (fi.xemacs.org)" "ftp.fi.xemacs.org" "pub/mirrors/ftp.xemacs.org/pub/tux/xemacs/beta/experimental/packages") ("France Pre-Releases (fr.xemacs.org)" "ftp.fr.xemacs.org" "pub/xemacs/beta/experimental/packages") ("France Pre-Releases (mirror.cict.fr)" "mirror.cict.fr" "xemacs/beta/experimental/packages") ("France Pre-Releases (pasteur.fr)" "ftp.pasteur.fr" "pub/computing/xemacs/beta/experimental/packages") ("Germany Pre-Releases (de.xemacs.org)" "ftp.de.xemacs.org" "pub/ftp.xemacs.org/tux/xemacs/beta/experimental/packages") ("Hong Kong Pre-Releases (hk.xemacs.org)" "ftp.hk.xemacs.org" "pub/xemacsftp/beta/experimental/packages") ("Iceland Pre-Releases (is.xemacs.org)" "ftp.is.xemacs.org" "pub/xemacs/beta/experimental/packages") ("Ireland Pre-Releases (ie.xemacs.org)" "ftp.ie.xemacs.org" "mirrors/ftp.xemacs.org/pub/xemacs/beta/experimental/packages") ("Ireland Pre-Releases (heanet.ie)" "ftp.heanet.ie" "mirrors/ftp.xemacs.org/beta/experimental/packages") ("Italy Pre-Releases (it.xemacs.org)" "ftp.it.xemacs.org" "unix/packages/XEMACS/beta/experimental/packages") ("Japan Pre-Releases (aist.go.jp)" "ring.aist.go.jp" "pub/text/xemacs/beta/experimental/packages") ("Japan Pre-Releases (asahi-net.or.jp)" "ring.asahi-net.or.jp" "pub/text/xemacs/beta/experimental/packages") ("Japan Pre-Releases (dti.ad.jp)" "ftp.dti.ad.jp" "pub/unix/editor/xemacs/beta/experimental/packages") ("Japan Pre-Releases (sut.ac.jp)" "sunsite.sut.ac.jp" "pub/archives/packages/xemacs/xemacs-21.5/experimental/packages") ("Korea (kr.xemacs.org)" "ftp.kr.xemacs.org" "pub/tools/emacs/xemacs/beta/experimental/packages") ("New Zealand Pre-Releases (nz.xemacs.org)" "ftp.nz.xemacs.org" "mirror/ftp.xemacs.org/packages") ("Norway Pre-Releases (no.xemacs.org)" "ftp.no.xemacs.org" "pub/xemacs/beta/experimental/packages") ("Poland Pre-Releases (pl.xemacs.org)" "ftp.pl.xemacs.org" "pub/unix/editors/xemacs/beta/experimental/packages") ("Portugal Pre-Releases (pt.xemacs.org)" "ftp.pt.xemacs.org" "pub/MIRRORS/ftp.xemacs.org/beta/experimental/packages") ("Russia Pre-Releases (ru.xemacs.org)" "ftp.ru.xemacs.org" "pub/emacs/xemacs/beta/experimental/packages") ("Sweden Pre-Releases (se.xemacs.org)" "ftp.se.xemacs.org" "pub/gnu/xemacs/beta/experimental/packages") ("Switzerland Pre-Releases (ch.xemacs.org)" "ftp.ch.xemacs.org" "mirror/xemacs/beta/experimental/packages") ("Taiwan Pre-Releases (ftp.tw.xemacs.org)" "ftp.tw.xemacs.org" "Unix/Editors/XEmacs/beta/experimental/packages") ("UK Pre-Releases (uk.xemacs.org)" "ftp.uk.xemacs.org" "sites/ftp.xemacs.org/pub/xemacs/beta/experimental/packages") ("US Pre-Releases (ibiblio.org)" "mirrors.ibiblio.org" "pub/mirrors/xemacs/beta/experimental/packages") ("US Pre-Releases (stealth.net)" "ftp.stealth.net" "pub/mirrors/ftp.xemacs.org/pub/xemacs/beta/experimental/packages") ("US Pre-Releases (unc.edu)" "metalab.unc.edu" "pub/packages/editors/xemacs/beta/experimental/packages") ("US Pre-Releases (us.xemacs.org)" "ftp.us.xemacs.org" "pub/xemacs/beta/experimental/packages")) "*List of remote sites available for downloading \"Pre-Release\" packages.\nList format is '(site-description site-name directory-on-site).\nSITE-DESCRIPTION is a textual description of the site. SITE-NAME\nis the internet address of the download site. DIRECTORY-ON-SITE\nis the directory on the site in which packages may be found.\nThis variable is used to initialize `package-get-remote', the\nvariable actually used to specify package download sites." :tag "Pre-Release Package download sites" :type '(repeat (list (string :tag "Name") host-name directory)) :group 'package-get) +(defcustom package-get-pre-release-download-sites '(("US Pre-Releases (Main XEmacs Site)" "ftp.xemacs.org" "pub/xemacs/beta/experimental/packages") ("Argentina Pre-Releases (xmundo.net)" "xemacs.xmundo.net" "pub/mirrors/xemacs/beta/experimental/packages") ("Australia Pre-Releases (aarnet.edu.au)" "mirror.aarnet.edu.au" "pub/xemacs/beta/experimental/packages") ("Australia Pre-Releases (au.xemacs.org)" "ftp.au.xemacs.org" "pub/xemacs/beta/experimental/packages") ("Austria Pre-Releases (at.xemacs.org)" "ftp.at.xemacs.org" "editors/xemacs/beta/experimental/packages") ("Belgium (be.xemacs.org)" "ftp.be.xemacs.org" "xemacs/beta/experimental/packages") ("Brazil Pre-Releases (br.xemacs.org)" "ftp.br.xemacs.org" "pub/xemacs/xemacs-21.5/experimental/packages") ("Canada Pre-Releases (ca.xemacs.org)" "ftp.ca.xemacs.org" "pub/Mirror/xemacs/beta/experimental/packages") ("Canada Pre-Releases (crc.ca)" "ftp.crc.ca" "pub/packages/editors/xemacs/beta/experimental/packages") ("Canada Pre-Releases (nrc.ca)" "ftp.nrc.ca" "pub/packages/editors/xemacs/beta/experimental/packages") ("Czech Republic Pre-Releases (cz.xemacs.org)" "ftp.cz.xemacs.org" "MIRRORS/ftp.xemacs.org/pub/xemacs/xemacs-21.5/experimental/packages") ("Denmark Pre-Releases (dk.xemacs.org)" "ftp.dk.xemacs.org" "pub/emacs/xemacs/beta/experimental/packages") ("Finland Pre-Releases (fi.xemacs.org)" "ftp.fi.xemacs.org" "pub/mirrors/ftp.xemacs.org/pub/tux/xemacs/beta/experimental/packages") ("France Pre-Releases (fr.xemacs.org)" "ftp.fr.xemacs.org" "pub/xemacs/beta/experimental/packages") ("France Pre-Releases (mirror.cict.fr)" "mirror.cict.fr" "xemacs/beta/experimental/packages") ("France Pre-Releases (pasteur.fr)" "ftp.pasteur.fr" "pub/computing/xemacs/beta/experimental/packages") ("Germany Pre-Releases (de.xemacs.org)" "ftp.de.xemacs.org" "pub/ftp.xemacs.org/tux/xemacs/beta/experimental/packages") ("Hong Kong Pre-Releases (hk.xemacs.org)" "ftp.hk.xemacs.org" "pub/xemacsftp/beta/experimental/packages") ("Iceland Pre-Releases (is.xemacs.org)" "ftp.is.xemacs.org" "pub/xemacs/beta/experimental/packages") ("Ireland Pre-Releases (ie.xemacs.org)" "ftp.ie.xemacs.org" "mirrors/ftp.xemacs.org/pub/xemacs/beta/experimental/packages") ("Ireland Pre-Releases (heanet.ie)" "ftp.heanet.ie" "mirrors/ftp.xemacs.org/beta/experimental/packages") ("Italy Pre-Releases (it.xemacs.org)" "ftp.it.xemacs.org" "unix/packages/XEMACS/beta/experimental/packages") ("Japan Pre-Releases (aist.go.jp)" "ring.aist.go.jp" "pub/text/xemacs/beta/experimental/packages") ("Japan Pre-Releases (asahi-net.or.jp)" "ring.asahi-net.or.jp" "pub/text/xemacs/beta/experimental/packages") ("Japan Pre-Releases (dti.ad.jp)" "ftp.dti.ad.jp" "pub/unix/editor/xemacs/beta/experimental/packages") ("Japan Pre-Releases (sut.ac.jp)" "sunsite.sut.ac.jp" "pub/archives/packages/xemacs/xemacs-21.5/experimental/packages") ("Korea (kr.xemacs.org)" "ftp.kr.xemacs.org" "pub/tools/emacs/xemacs/beta/experimental/packages") ("Netherlands (nl.xemacs.org)" "ftp.nl.xemacs.org" "pub/xemacs/ftp/beta/experimental/packages") ("New Zealand Pre-Releases (nz.xemacs.org)" "ftp.nz.xemacs.org" "mirror/ftp.xemacs.org/packages") ("Norway Pre-Releases (no.xemacs.org)" "ftp.no.xemacs.org" "pub/xemacs/beta/experimental/packages") ("Poland Pre-Releases (pl.xemacs.org)" "ftp.pl.xemacs.org" "pub/unix/editors/xemacs/beta/experimental/packages") ("Portugal Pre-Releases (pt.xemacs.org)" "ftp.pt.xemacs.org" "pub/MIRRORS/ftp.xemacs.org/beta/experimental/packages") ("Russia Pre-Releases (ru.xemacs.org)" "ftp.ru.xemacs.org" "pub/emacs/xemacs/beta/experimental/packages") ("Sweden Pre-Releases (se.xemacs.org)" "ftp.se.xemacs.org" "pub/gnu/xemacs/beta/experimental/packages") ("Switzerland Pre-Releases (ch.xemacs.org)" "ftp.ch.xemacs.org" "mirror/xemacs/beta/experimental/packages") ("Taiwan Pre-Releases (ftp.tw.xemacs.org)" "ftp.tw.xemacs.org" "Unix/Editors/XEmacs/beta/experimental/packages") ("UK Pre-Releases (uk.xemacs.org)" "ftp.uk.xemacs.org" "sites/ftp.xemacs.org/pub/xemacs/beta/experimental/packages") ("US Pre-Releases (ibiblio.org)" "mirrors.ibiblio.org" "pub/mirrors/xemacs/beta/experimental/packages") ("US Pre-Releases (stealth.net)" "ftp.stealth.net" "pub/mirrors/ftp.xemacs.org/pub/xemacs/beta/experimental/packages") ("US Pre-Releases (unc.edu)" "metalab.unc.edu" "pub/packages/editors/xemacs/beta/experimental/packages") ("US Pre-Releases (us.xemacs.org)" "ftp.us.xemacs.org" "pub/xemacs/beta/experimental/packages")) "*List of remote sites available for downloading \"Pre-Release\" packages.\nList format is '(site-description site-name directory-on-site).\nSITE-DESCRIPTION is a textual description of the site. SITE-NAME\nis the internet address of the download site. DIRECTORY-ON-SITE\nis the directory on the site in which packages may be found.\nThis variable is used to initialize `package-get-remote', the\nvariable actually used to specify package download sites." :tag "Pre-Release Package download sites" :type '(repeat (list (string :tag "Name") host-name directory)) :group 'package-get) (defcustom package-get-site-release-download-sites nil "*List of remote sites available for downloading \"Site Release\" packages.\nList format is '(site-description site-name directory-on-site).\nSITE-DESCRIPTION is a textual description of the site. SITE-NAME\nis the internet address of the download site. DIRECTORY-ON-SITE\nis the directory on the site in which packages may be found.\nThis variable is used to initialize `package-get-remote', the\nvariable actually used to specify package download sites." :tag "Site Release Package download sites" :type '(repeat (list (string :tag "Name") host-name directory)) :group 'package-get) diff --git a/lisp/font-lock.el b/lisp/font-lock.el index 1734010..e2ed681 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el @@ -2503,9 +2503,10 @@ The name is assumed to begin with a capital letter.") (list (concat "\\<\\(" + "assert\\|" "break\\|byvalue\\|" "case\\|cast\\|catch\\|class\\|continue\\|" - "do\\|else\\|extends\\|" + "do\\|else\\|enum\\|extends\\|" "finally\\|for\\|future\\|" "generic\\|goto\\|" "if\\|implements\\|import\\|" @@ -2691,10 +2692,10 @@ The name is assumed to begin with a capital letter.") '("\\(@beaninfo\\)" 0 font-lock-keyword-face t) ;; Doc tag - Links - '("{ *@link\\s +\\([^}]+\\)}" + '("{ *@link\\(?:plain\\)?\\s +\\([^}]+\\)}" 0 font-lock-keyword-face t) ;; Doc tag - Links - '("{ *@link\\s +\\(\\(\\S +\\)\\|\\(\\S +\\s +\\S +\\)\\) *}" + '("{ *@link\\(?:plain\\)?\\s +\\(\\(\\S +\\)\\|\\(\\S +\\s +\\S +\\)\\) *}" 1 font-lock-function-name-face t) ))) diff --git a/lisp/info.el b/lisp/info.el index 41cfc46..a83a578 100644 --- a/lisp/info.el +++ b/lisp/info.el @@ -699,7 +699,8 @@ further (recursive) error recovery. TRYFILE is ??" Info-current-subfile nil Info-current-file-completions nil Info-index-alternatives nil - buffer-file-name nil) + buffer-file-name nil + buffer-file-truename nil) (erase-buffer) (if (string= "dir" (file-name-nondirectory filename)) (Info-insert-dir) @@ -1034,7 +1035,8 @@ actually get any text from." (message "Composing main Info directory...done")) (setq Info-dir-contents (buffer-string))) (setq default-directory (file-name-as-directory Info-dir-contents-directory)) - (setq buffer-file-name (caar Info-dir-file-attributes))) + (setq buffer-file-name (caar Info-dir-file-attributes) + buffer-file-truename (file-truename buffer-file-name))) (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. @@ -1405,7 +1407,8 @@ invoke \"xemacs -batch -f Info-batch-rebuild-dir /usr/local/info\"." (throw 'foo t))))) (or (equal Info-current-subfile lastfilename) (let ((buffer-read-only nil)) - (setq buffer-file-name nil) + (setq buffer-file-name nil + buffer-file-truename nil) (widen) (erase-buffer) (Info-insert-file-contents (Info-suffixed-file @@ -1513,7 +1516,8 @@ versions of NAME. Only the suffixes are tried." (call-process shell-file-name nil t nil shell-command-switch command) (message "") (when visit - (setq buffer-file-name file) + (setq buffer-file-name file + buffer-file-truename (file-truename buffer-file-name)) (set-buffer-modified-p nil) (clear-visited-file-modtime))) (insert-file-contents file visit)))) @@ -3035,7 +3039,7 @@ The locations are of the format used in Info-history, i.e. \(FILENAME NODENAME BUFFERPOS\)." (let ((where '()) (cmd-desc (concat "^\\* " (regexp-quote (symbol-name command)) - ":\\s *\\(.*\\)\\.$"))) + ":\\s *\\(.*\\)\\."))) (save-excursion (Info-find-node "XEmacs" "Command Index") ;; Take the index node off the Info history. diff --git a/lisp/obsolete.el b/lisp/obsolete.el index 4d8f2eb..37dc081 100644 --- a/lisp/obsolete.el +++ b/lisp/obsolete.el @@ -269,6 +269,9 @@ set Info-directory-list.") (define-compatible-function-alias 'assq-delete-all 'remassq) ;GNU 21.1 +(define-compatible-function-alias 'line-beginning-position 'point-at-bol) +(define-compatible-function-alias 'line-end-position 'point-at-eol) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;; modeline (define-compatible-function-alias 'redraw-mode-line 'redraw-modeline) diff --git a/lisp/package-get.el b/lisp/package-get.el index 33d5802..0d97982 100644 --- a/lisp/package-get.el +++ b/lisp/package-get.el @@ -233,6 +233,7 @@ directory." ; ("Japan (nucba.ac.jp)" "mirror.nucba.ac.jp" "mirror/xemacs/packages") ("Japan (sut.ac.jp)" "sunsite.sut.ac.jp" "pub/archives/packages/xemacs/packages") ("Korea (kr.xemacs.org)" "ftp.kr.xemacs.org" "pub/tools/emacs/xemacs/packages") + ("Netherlands (nl.xemacs.org)" "ftp.nl.xemacs.org" "pub/xemacs/ftp/packages") ("New Zealand (nz.xemacs.org)" "ftp.nz.xemacs.org" "mirror/ftp.xemacs.org/packages") ("Norway (no.xemacs.org)" "ftp.no.xemacs.org" "pub/xemacs/packages") ("Poland (pl.xemacs.org)" "ftp.pl.xemacs.org" "pub/unix/editors/xemacs/packages") @@ -323,6 +324,8 @@ variable actually used to specify package download sites." "pub/archives/packages/xemacs/xemacs-21.5/experimental/packages") ("Korea (kr.xemacs.org)" "ftp.kr.xemacs.org" "pub/tools/emacs/xemacs/beta/experimental/packages") + ("Netherlands (nl.xemacs.org)" "ftp.nl.xemacs.org" + "pub/xemacs/ftp/beta/experimental/packages") ("New Zealand Pre-Releases (nz.xemacs.org)" "ftp.nz.xemacs.org" "mirror/ftp.xemacs.org/packages") ("Norway Pre-Releases (no.xemacs.org)" "ftp.no.xemacs.org" diff --git a/lwlib/ChangeLog b/lwlib/ChangeLog index 259cf54..43763b1 100644 --- a/lwlib/ChangeLog +++ b/lwlib/ChangeLog @@ -1,3 +1,14 @@ +2006-12-09 Vin Shelton + + * XEmacs 21.4.20 is released + +2006-06-22 Jerry James + + * lwlib-Xlw.c (xlw_scrollbar_callback): Do not dereference + instance before checking whether it is NULL. + * xlwmenu.c (xlw_map_menu): Prevent uninitialized access to root + and waste. + 2006-01-28 Vin Shelton * XEmacs 21.4.19 is released diff --git a/lwlib/lwlib-Xlw.c b/lwlib/lwlib-Xlw.c index 1e909b6..712a62b 100644 --- a/lwlib/lwlib-Xlw.c +++ b/lwlib/lwlib-Xlw.c @@ -163,13 +163,13 @@ xlw_scrollbar_callback (Widget widget, XtPointer closure, XtPointer call_data) XlwScrollBarCallbackStruct *data = (XlwScrollBarCallbackStruct *) call_data; scroll_event event_data; - scrollbar_values *val = - (scrollbar_values *) instance->info->val->scrollbar_data; + scrollbar_values *val; double percent; if (!instance || widget->core.being_destroyed) return; + val = (scrollbar_values *) instance->info->val->scrollbar_data; id = instance->info->id; percent = (double) (data->value - 1) / (double) (INT_MAX - 1); diff --git a/lwlib/xlwmenu.c b/lwlib/xlwmenu.c index cd013c8..eff3d24 100644 --- a/lwlib/xlwmenu.c +++ b/lwlib/xlwmenu.c @@ -3412,8 +3412,8 @@ xlw_map_menu (Time t) if (!mw->menu.pointer_grabbed) { XWindowAttributes ret; - Window parent,root; - Window *waste; + Window parent,root = 0UL; + Window *waste = NULL; unsigned int num_waste; lw_menu_active = True; diff --git a/man/ChangeLog b/man/ChangeLog index d6c5abe..4342f7f 100644 --- a/man/ChangeLog +++ b/man/ChangeLog @@ -1,3 +1,25 @@ +2006-12-09 Vin Shelton + + * XEmacs 21.4.20 is released + +2006-11-07 Robert Pluim + + * lispref/os.texi (User Identification): The code uses HOMEPATH, + not HOMEDIR. + +2006-07-19 Stephen J. Turnbull + + * new-users-guide/edit.texi (Insert): Document bogosity in + vendor labeling of DEL key. + (Numeric Argument): Remove spurious RETs from keystroke examples. + Thanks to Michael C. Wescott . + +2006-05-17 Stephen J. Turnbull + + * xemacs-faq.texi (Q2.2.3): New node. + (Q2.2.2, Q2.3.1): Fix navigation references. + (Top, Installation): Add to menus. + 2006-01-28 Vin Shelton * XEmacs 21.4.19 is released diff --git a/man/lispref/os.texi b/man/lispref/os.texi index 67d1ff3..9376868 100644 --- a/man/lispref/os.texi +++ b/man/lispref/os.texi @@ -866,10 +866,10 @@ Under MS Windows, this is done: Return the value of ``@code{(getenv "HOME")}'', if set. @item -If the environment variables @code{HOMEDRIVE} and @code{HOMEDIR} are +If the environment variables @code{HOMEDRIVE} and @code{HOMEPATH} are both set, return the concatenation (the following description uses MS Windows environment variable substitution syntax): -@code{%HOMEDRIVE%%HOMEDIR%}. +@code{%HOMEDRIVE%%HOMEPATH%}. @item Return ``C:\'', as a fallback, but issue a warning. diff --git a/man/new-users-guide/edit.texi b/man/new-users-guide/edit.texi index 022a5df..0efac03 100644 --- a/man/new-users-guide/edit.texi +++ b/man/new-users-guide/edit.texi @@ -71,10 +71,20 @@ the cursor). The cursor and all characters after it move backwards. Therefore, if you type a printing character and then type @key{DEL}, they cancel out. + Unfortunately, computer and keyboard manufacturers differ over the +name of the @key{DEL} key. This is the key at the far right of the row +of keys containing the digits, usually immediately above the @kbd{RET} +key. It is usually labelled ``Backspace'' or ``Delete'' or some +abbreviation. Modern keyboards will often have another key labelled +``Del'' in the @emph{edit keypad} (along with an ``Ins'' key and perhaps +some others). This is not the @kbd{DEL} key referred to here. It +usually deletes @emph{forward} in Emacs. + @kindex RET @cindex newline @findex auto-fill-mode - To end a line and start typing a new one, type @key{RET}. This + To end a line and start typing a new one, type @key{RET}. On some +keyboards, this key is labelled ``Enter''. This inserts a newline character in the buffer. If point is in the middle of a line, @key{RET} splits the line. Typing @key{DEL} when the cursor is at the beginning of a line rubs out the newline before the line, thus @@ -241,24 +251,24 @@ forward one character). Negative arguments are also allowed. Often they tell a command to move or act backwards. For example, if you want to move down ten lines, type the following: @example -C-u 10 C-n RET +C-u 10 C-n @end example @noindent -After you press @key{RET} key, the cursor will move ten lines +After you press the @kbd{C-n} key, the cursor will move ten lines downward. You can also type: @example -M-10 C-n RET +M-10 C-n @end example @noindent Both @kbd{C-u} and @kbd{M-} allow you to give numeric arguments. If you want to move ten lines backward, you can also give negative arguments, like: @example -C-u -10 C-n RET +C-u -10 C-n @end example @noindent OR you could also type: @example -M--10 C-n RET +M--10 C-n @end example @noindent You can obviously use @kbd{C-b} to move backward rather than giving diff --git a/man/xemacs-faq.texi b/man/xemacs-faq.texi index 1c2ea47..404f853 100644 --- a/man/xemacs-faq.texi +++ b/man/xemacs-faq.texi @@ -293,6 +293,7 @@ library directory>/info/}. For example in 2.2: Unix/Mac OS X Installation (Also Relevant to Cygwin, MinGW) * Q2.2.1:: Libraries in non-standard locations * Q2.2.2:: Why can't I strip XEmacs? +* Q2.2.3:: X11/bitmaps/gray (or other X11-related file) not found. 2.3: Windows Installation (Windows, Cygwin, MinGW) * Q2.3.1:: What exactly are all the different ways to build XEmacs under Windows? @@ -3090,6 +3091,7 @@ section is devoted to Installation, Maintenance and Troubleshooting. 2.2: Unix/Mac OS X Installation (Also Relevant to Cygwin, MinGW) * Q2.2.1:: Libraries in non-standard locations * Q2.2.2:: Why can't I strip XEmacs? +* Q2.2.3:: X11/bitmaps/gray (or other X11-related file) not found. 2.3: Windows Installation (Windows, Cygwin, MinGW) * Q2.3.1:: What exactly are all the different ways to build XEmacs under Windows? @@ -3580,7 +3582,7 @@ or for 21.5: --with-site-prefixes=WHATEVER @end example -@node Q2.2.2, Q2.3.1, Q2.2.1, Installation +@node Q2.2.2, Q2.2.3, Q2.2.1, Installation @unnumberedsubsec Q2.2.2: Why can't I strip XEmacs? @email{cognot@@fronsac.ensg.u-nancy.fr, Richard Cognot} writes: @@ -3635,9 +3637,20 @@ cp lib-src/DOC-19.16-XEmacs @end enumerate @end quotation +@node Q2.2.3, Q2.3.1, Q2.2.2, Installation +@unnumberedsubsec Q2.2.3: X11/bitmaps/gray (or other X11-related file) not found. + +The X11R6 distribution was monolithic, but the X11R7 distribution is +much more modular. Many OS distributions omit these bitmaps (assuming +nobody uses them, evidently). Your OS distribution should have a +developer's package containing these files, probably with a name +containing the string "bitmap". Known package names (you may need to +add an extension such as .deb or .rpm) include x11/xbitmaps (Ubuntu) +and xorg-x11-xbitmaps (Fedora Core 5). + @unnumberedsec 2.3: Windows Installation (Windows, Cygwin, MinGW) -@node Q2.3.1, Q2.3.2, Q2.2.2, Installation +@node Q2.3.1, Q2.3.2, Q2.2.3, Installation @unnumberedsubsec Q2.3.1: What exactly are all the different ways to build XEmacs under Windows? XEmacs can be built in several ways in the MS Windows environment. diff --git a/netinstall/ChangeLog b/netinstall/ChangeLog index cad132a..bed827a 100644 --- a/netinstall/ChangeLog +++ b/netinstall/ChangeLog @@ -1,3 +1,7 @@ +2006-12-09 Vin Shelton + + * XEmacs 21.4.20 is released + 2006-01-28 Vin Shelton * XEmacs 21.4.19 is released diff --git a/nt/ChangeLog b/nt/ChangeLog index 91ea3c7..833f1fa 100644 --- a/nt/ChangeLog +++ b/nt/ChangeLog @@ -1,3 +1,17 @@ +2006-12-09 Vin Shelton + + * XEmacs 21.4.20 is released + +2006-03-04 Vin Shelton + + * config.inc.samp: Comment out PACKAGE_PREFIX. + * xemacs.mak: Do not set a value for PACKAGE_PATH unless + PACKAGE_PATH or PACKAGE_PREFIX was specified in config.inc. + +2006-01-28 Vin Shelton + + * XEmacs.iss: Erase old code. + 2006-01-28 Vin Shelton * XEmacs 21.4.19 is released diff --git a/nt/config.inc.samp b/nt/config.inc.samp index bd49704..397dac7 100644 --- a/nt/config.inc.samp +++ b/nt/config.inc.samp @@ -4,7 +4,8 @@ INSTALL_DIR=c:\Program Files\XEmacs\XEmacs-$(XEMACS_VERSION_STRING) -PACKAGE_PREFIX=c:\Program Files\XEmacs +# Set this if your packages are installed in an unusal place. +#PACKAGE_PREFIX=c:\Program Files\XEmacs ############################################################################ diff --git a/nt/xemacs.mak b/nt/xemacs.mak index e1f5ad5..13a88d9 100644 --- a/nt/xemacs.mak +++ b/nt/xemacs.mak @@ -108,17 +108,24 @@ INSTALL_DIR=c:\Program Files\XEmacs\XEmacs-$(XEMACS_VERSION_STRING) !if !defined(HAVE_MULE) HAVE_MULE=0 !endif + +# If PACKAGE_PATH was defined, use it. If PACKAGE_PATH was not defined, +# but PACKAGE_PREFIX was, use PACKAGE_PREFIX to generate a package path. +# If neither PACKAGE_PATH nor PACKAGE_PREFIX was defined, +# do not define a package path. !if !defined(PACKAGE_PATH) -! if !defined(PACKAGE_PREFIX) -PACKAGE_PREFIX=c:\Program Files\XEmacs -! endif -! if $(HAVE_MULE) +! if defined(PACKAGE_PREFIX) +! if $(HAVE_MULE) PACKAGE_PATH=~\.xemacs;;$(PACKAGE_PREFIX)\site-packages;$(PACKAGE_PREFIX)\mule-packages;$(PACKAGE_PREFIX)\xemacs-packages -! else +! else PACKAGE_PATH=~\.xemacs;;$(PACKAGE_PREFIX)\site-packages;$(PACKAGE_PREFIX)\xemacs-packages +! endif ! endif !endif +!if defined(PACKAGE_PATH) PATH_PACKAGEPATH="$(PACKAGE_PATH:\=\\)" +!endif + !if !defined(HAVE_MS_WINDOWS) HAVE_MS_WINDOWS=1 !endif @@ -541,8 +548,10 @@ CONFIG_VALUES = $(LIB_SRC)\config.values !endif !if [echo LISPDIR>>$(CONFIG_VALUES) && echo "$(MAKEDIR:\=\\)\\$(LISP:\=\\)">>$(CONFIG_VALUES)] !endif +!if defined(PATH_PACKAGEPATH) # PATH_PACKAGEPATH is already a quoted string. -!if [echo PACKAGE_PATH>>$(CONFIG_VALUES) && echo $(PATH_PACKAGEPATH)>>$(CONFIG_VALUES)] +! if [echo PACKAGE_PATH>>$(CONFIG_VALUES) && echo $(PATH_PACKAGEPATH)>>$(CONFIG_VALUES)] +! endif !endif # Inferred rule @@ -875,8 +884,10 @@ TEMACS_CPP_FLAGS=-c \ $(EMACS_BETA_VERSION) \ $(EMACS_PATCH_LEVEL) \ -DXEMACS_CODENAME=\"$(xemacs_codename:&=and)\" \ - -DEMACS_CONFIGURATION=\"$(EMACS_CONFIGURATION)\" \ - -DPATH_PACKAGEPATH=\"$(PATH_PACKAGEPATH)\" +!if defined(PATH_PACKAGEPATH) + -DPATH_PACKAGEPATH=\"$(PATH_PACKAGEPATH)\" \ +!endif + -DEMACS_CONFIGURATION=\"$(EMACS_CONFIGURATION)\" !if $(HAVE_X_WINDOWS) TEMACS_X_OBJS=\ @@ -1363,7 +1374,11 @@ docfile :: $(DOC) $(DOC): $(LIB_SRC)\make-docfile.exe $(DOC_SRC1) $(DOC_SRC2) $(DOC_SRC3) $(DOC_SRC4) $(DOC_SRC5) $(DOC_SRC6) $(DOC_SRC7) $(DOC_SRC8) $(DOC_SRC9) $(DOC_SRC10) $(DOC_SRC11) if exist $(DOC) del $(DOC) +!if defined(PACKAGE_PATH) set EMACSBOOTSTRAPLOADPATH=$(LISP);$(PACKAGE_PATH) +!else + set EMACSBOOTSTRAPLOADPATH=$(LISP) +!endif set EMACSBOOTSTRAPMODULEPATH=$(MODULES) $(TEMACS_BATCH) -l $(TEMACS_DIR)\..\lisp\make-docfile.el -- -o $(DOC) -i $(XEMACS)\site-packages $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC1) @@ -1379,7 +1394,11 @@ $(DOC): $(LIB_SRC)\make-docfile.exe $(DOC_SRC1) $(DOC_SRC2) $(DOC_SRC3) $(DOC_SR $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC11) update-elc: +!if defined(PACKAGE_PATH) set EMACSBOOTSTRAPLOADPATH=$(LISP);$(PACKAGE_PATH) +!else + set EMACSBOOTSTRAPLOADPATH=$(LISP) +!endif set EMACSBOOTSTRAPMODULEPATH=$(MODULES) $(TEMACS_BATCH) -l $(TEMACS_DIR)\..\lisp\update-elc.el @@ -1393,7 +1412,11 @@ $(TEMACS_DIR)\NEEDTODUMP : $(PROGNAME) : $(TEMACS) $(TEMACS_DIR)\NEEDTODUMP @echo >$(TEMACS_DIR)\SATISFIED cd $(TEMACS_DIR) +!if defined(PACKAGE_PATH) set EMACSBOOTSTRAPLOADPATH=$(LISP);$(PACKAGE_PATH) +!else + set EMACSBOOTSTRAPLOADPATH=$(LISP) +!endif set EMACSBOOTSTRAPMODULEPATH=$(MODULES) $(TEMACS_BATCH) -l $(TEMACS_DIR)\..\lisp\loadup.el dump !if $(USE_PORTABLE_DUMPER) @@ -1435,6 +1458,7 @@ install: all @xcopy /e /q $(XEMACS)\etc "$(INSTALL_DIR)\etc\" @xcopy /e /q $(XEMACS)\info "$(INSTALL_DIR)\info\" @xcopy /e /q $(XEMACS)\lisp "$(INSTALL_DIR)\lisp\" +!if defined(PACKAGE_PREFIX) @echo Making skeleton package tree in $(PACKAGE_PREFIX) ... @xcopy /q PlaceHolder "$(PACKAGE_PREFIX)\site-packages\" $(DEL) "$(PACKAGE_PREFIX)\site-packages\PlaceHolder" @@ -1442,6 +1466,7 @@ install: all $(DEL) "$(PACKAGE_PREFIX)\mule-packages\PlaceHolder" @xcopy /q PlaceHolder "$(PACKAGE_PREFIX)\xemacs-packages\" $(DEL) "$(PACKAGE_PREFIX)\xemacs-packages\PlaceHolder" +!endif $(DEL) PlaceHolder mostlyclean: @@ -1525,7 +1550,9 @@ XEmacs $(XEMACS_VERSION_STRING) $(xemacs_codename) configured for `$(EMACS_CONFI Using compiler "$(CC) $(CFLAGS)". !endif Installing XEmacs in "$(INSTALL_DIR:\=\\)". +!if defined(PATH_PACKAGEPATH) Package path is $(PATH_PACKAGEPATH). +!endif !if $(INFODOCK) Building InfoDock. !endif diff --git a/src/ChangeLog b/src/ChangeLog index db1ce6a..de3bf94 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,104 @@ +2006-12-09 Vin Shelton + + * XEmacs 21.4.20 is released + +2006-12-08 Nelson Ferreira + + * src/fns.c (XMALLOC_OR_ALLOCA,free_malloced_ptr,XMALLOC_UNBIND): + relocated the definitions to be used sooner in file. + (concat,plists_differ,mapcar1,Fmapconcat,Fmapcar): Use + XMALLOC_OR_ALLOCA macro instead of alloca to prevent stack + overflow. + +2006-11-29 Aidan Kehoe + + * sound.c (init_native_sound): + Only X11 and GTK devices can possibly not be on the console of the + associated machine. Fixes a crash when init_native_sound is called + on a msprinter device. + +2006-11-14 Stephen J. Turnbull + + * buffer.c (buffer-file-name): Document invariant. + (buffer-file-truename): Sync wording to buffer-file-name. + Thanks to Nelson Ferreira for report + and discussion. + +2006-11-19 Benson Margulies + + * fileio.c: Add code to use full Win32 API to check for write + access. Win32 has the general design policy that you aren't + supposed to ask this question, since security checks change + depending on asynchronous processes. Nonetheless, there is a way, + by acting as if we are a server doing interpretive access + control. + +2006-07-31 Aidan Kehoe + + * bytecode.c: Use xnew_array instead of alloca. + +2006-07-04 Vin Shelton + + * redisplay-msw.c: Fix tiny, but crucial typo. + +2006-06-22 Jerry James + + * EmacsShell-sub.c (ChangeManaged): + * device-x.c (x_IO_error_handler): Do not dereference d if it is + NULL. + * dgif_lib.c (DGifCloseFile): Do not dereference GifFile before + checking if it is NULL. Also fix a memory leak. + * dialog-x.c (dbox_selection_callback): Ensure f is non-NULL, then + dereference it, not the other way around. + * dumper.c (pdump_register_object): Fix off-by-one array bounds + overflow check. + * dumper.c (pdump_register_struct): Ditto. + * editfns.c (Ftemp_directory): Don't let a copy from (long) path + to (short) warnpath overflow warnpath. + * extents.c (detach_all_extents): Call extent_list_delete_all with + a non-NULL parameter only. + * glyphs-widget.c (widget_query_geometry): Guard against possibly + NULL width and height. + * input-method-xlib.c (XIM_SetGeometry): Do not dereference f or + xic before checking if they are NULL. + * keymap.c (where_is_recursive_mapper): Don't throw away the newly + allocated array. + * md5.c (Fmd5): Check whether Lstream_read encountered an error. + * nas.c (Err): Fix a memory leak. + * redisplay-gtk.c (gtk_output_display_block): Fix a Dynarr leak. + Don't create the buffer if there is nothing to do. + * redisplay-msw.c (mswindows_output_display_block): Ditto. + * redisplay-output.c (redisplay_output_layout): Ditto. + * redisplay-tty.c (tty_output_display_block): Ditto. + * redisplay-x.c (x_output_display_block): Ditto. + * scrollbar-gtk.c (gtk_free_scrollbar_instance): Do not + dereference instance->scrollbar_data if it is NULL. + * scrollbar-x.c (x_free_scrollbar_instance): Ditto. + * scrollbar-msw.c (mswindows_free_scrollbar_instance): Ditto, but + for sb->scrollbar_data. + * sound.c (init_native_sound): Avoid a buffer overflow by + allocating a buffer with the appropriate size. + +2006-05-08 Stephen J. Turnbull + + * EmacsShell-sub.c (RootGeometryManager): + Change garbage to useful messages under DEBUG_GEOMETRY_MANAGEMENT. + Based on a suggestion by Francois L'Archeveque. + +2006-03-21 Malcolm Purvis + + * regex.c: Bump INIT_FAILURE_ALLOC and re_max_failures to the + current values found in GNU Emacs. + +2006-03-17 Vin Shelton + + * dialog-msw.c (handle_directory_dialog_box): Don't declare + Q_title here. LOCAL_FILE_FORMAT_TO_TSTR requires an lvalue. + + * glyphs-msw.c (read_bitmap_data): change 'initialized' to + 'hex_initialized' because it conflicts with 'initialized' in + lisp.h. + 2006-01-28 Vin Shelton * XEmacs 21.4.19 is released diff --git a/src/EmacsShell-sub.c b/src/EmacsShell-sub.c index 81c538a..1a59ac3 100644 --- a/src/EmacsShell-sub.c +++ b/src/EmacsShell-sub.c @@ -335,11 +335,16 @@ RootGeometryManager (Widget gw, result == XtGeometryAlmost ? "XtGeometryAlmost" : "XtGeometryDone"); if (reply->request_mode & CWWidth) - printf ("width returned;"); + printf ("width returned was %d%s", + reply->width, + reply->request_mode & CWHeight ? "; " : ".\n"); if (reply->request_mode & CWHeight) - printf ("height returned;"); - printf ("\n"); - printf (" resulting shell size: %d %d\n", reply->width, reply->height); + printf ("height returned was %d.\n", reply->height); + /* #### does this also need to depend on the result? + With XtGeometryYes there doesn't seem to be a useful reply object. */ + printf (" resulting shell size: %d %d\n", + reply->request_mode & CWWidth ? reply->width : w->core.width, + reply->request_mode & CWHeight ? reply->height : w->core.height); printf ("----------\n"); fflush (stdout); #endif @@ -366,11 +371,11 @@ ChangeManaged (Widget wid) for (i = 0; i < w->composite.num_children; i++) { if (XtIsManaged(w->composite.children[i])) { child = w->composite.children[i]; + update_size_hints_internal (w, child->core.width, + child->core.height); break; } } - - update_size_hints_internal (w, child->core.width, child->core.height); } /* call the real ChangeManaged */ diff --git a/src/buffer.c b/src/buffer.c index 23eb018..7beee87 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -2821,6 +2821,8 @@ It may not be a list of functions. DEFVAR_BUFFER_LOCAL ("buffer-file-name", filename /* Name of file visited in current buffer, or nil if not visiting a file. Each buffer has its own value of this variable. +Code that changes this variable must maintain the invariant +`(equal buffer-file-truename (file-truename buffer-file-name))'. */ ); #if 0 /* FSFmacs */ @@ -2833,12 +2835,11 @@ Each buffer has its own value of this variable. #endif /* FSFmacs */ DEFVAR_BUFFER_LOCAL ("buffer-file-truename", file_truename /* -The real name of the file visited in the current buffer, -or nil if not visiting a file. This is the result of passing -buffer-file-name to the `file-truename' function. Every buffer has -its own value of this variable. This variable is automatically -maintained by the functions that change the file name associated -with a buffer. +The real name of the file visited in the current buffer, or nil if not +visiting a file. This is the result of passing `buffer-file-name' to the +`file-truename' function. Every buffer has its own value of this variable. +Code that changes the file name associated with a buffer maintains the +invariant `(equal buffer-file-truename (file-truename buffer-file-name))'. */ ); DEFVAR_BUFFER_LOCAL ("buffer-auto-save-file-name", auto_save_file_name /* diff --git a/src/bytecode.c b/src/bytecode.c index fa6b469..72f5d62 100644 --- a/src/bytecode.c +++ b/src/bytecode.c @@ -1624,7 +1624,7 @@ optimize_byte_code (/* in */ int from; int to; }; - struct jump * const jumps = alloca_array (struct jump, comfy_size); + struct jump * const jumps = xnew_array (struct jump, comfy_size); struct jump *jumps_ptr = jumps; Opbyte *program_ptr = program; @@ -1868,6 +1868,7 @@ optimize_byte_code (/* in */ /* *program_ptr++ = 0; */ *program_length = program_ptr - program; + xfree(jumps); } /* Optimize the byte code and store the optimized program, only diff --git a/src/device-x.c b/src/device-x.c index 17ef7e2..540e407 100644 --- a/src/device-x.c +++ b/src/device-x.c @@ -1161,8 +1161,10 @@ x_IO_error_handler (Display *disp) Xlib might just decide to exit(). So we mark the offending console for deletion and throw to top level. */ if (d) - enqueue_magic_eval_event (io_error_delete_device, dev); - DEVICE_X_BEING_DELETED (d) = 1; + { + enqueue_magic_eval_event (io_error_delete_device, dev); + DEVICE_X_BEING_DELETED (d) = 1; + } Fthrow (Qtop_level, Qnil); return 0; /* not reached */ diff --git a/src/dgif_lib.c b/src/dgif_lib.c index 6d91c90..df67571 100644 --- a/src/dgif_lib.c +++ b/src/dgif_lib.c @@ -366,10 +366,11 @@ void DGifGetExtensionNext(GifFileType *GifFile, GifByteType **Extension) ******************************************************************************/ int DGifCloseFile(GifFileType *GifFile) { - GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private; + GifFilePrivateType *Private; if (GifFile == NULL) return -1; + Private = (GifFilePrivateType *)GifFile->Private; if (!IS_READABLE(Private)) { /* This file was NOT open for reading: */ @@ -930,7 +931,10 @@ ColorMapObject *MakeMapObject(int ColorCount, GifColorType *ColorMap) Object->Colors = (GifColorType *)calloc(ColorCount, sizeof(GifColorType)); if (Object->Colors == (GifColorType *)NULL) + { + free (Object); return((ColorMapObject *)NULL); + } Object->ColorCount = ColorCount; Object->BitsPerPixel = BitSize(ColorCount); diff --git a/src/dialog-msw.c b/src/dialog-msw.c index 954a27a..0ddcc6a 100644 --- a/src/dialog-msw.c +++ b/src/dialog-msw.c @@ -42,7 +42,9 @@ Lisp_Object Qdialog_box_error; static Lisp_Object Q_initial_directory; static Lisp_Object Q_initial_filename; static Lisp_Object Q_filter_list; +/* Declared in general-slots.h static Lisp_Object Q_title; +*/ static Lisp_Object Q_allow_multi_select; static Lisp_Object Q_create_prompt_on_nonexistent; static Lisp_Object Q_overwrite_prompt; @@ -400,7 +402,7 @@ handle_directory_dialog_box (struct frame *f, Lisp_Object keys) bi.lpfn = handle_directory_proc; LOCAL_FILE_FORMAT_TO_TSTR (Fexpand_file_name (build_string (""), Qnil), - (char*)pd.fname); + pd.fname); { EXTERNAL_PROPERTY_LIST_LOOP_3 (key, value, keys) diff --git a/src/dialog-x.c b/src/dialog-x.c index a6dcd2d..9b32e5a 100644 --- a/src/dialog-x.c +++ b/src/dialog-x.c @@ -105,7 +105,7 @@ dbox_selection_callback (Widget widget, LWLIB_ID id, XtPointer client_data) ourselves. */ #ifdef EXTERNAL_WIDGET /* #### Not sure if this special case is necessary. */ - if (!FRAME_X_EXTERNAL_WINDOW_P (f) && f) + if (f && !FRAME_X_EXTERNAL_WINDOW_P (f)) #else if (f) #endif diff --git a/src/dumper.c b/src/dumper.c index c1a9912..1531367 100644 --- a/src/dumper.c +++ b/src/dumper.c @@ -566,7 +566,7 @@ pdump_register_object (Lisp_Object obj) if (imp->description) { int me = depth++; - if (me>65536) + if (me>=65536) { stderr_out ("Backtrace overflow, loop ?\n"); ABORT (); @@ -601,7 +601,7 @@ pdump_register_struct (const void *data, { int me = depth++; int i; - if (me>65536) + if (me>=65536) { stderr_out ("Backtrace overflow, loop ?\n"); ABORT (); diff --git a/src/editfns.c b/src/editfns.c index ca314b9..8ad18f5 100644 --- a/src/editfns.c +++ b/src/editfns.c @@ -644,14 +644,17 @@ On Unix it is obtained from TMPDIR, with /tmp as the default. } else { - strcpy(path, getenv("HOME")); strncat(path, "/tmp/", _POSIX_PATH_MAX); + path[5 + _POSIX_PATH_MAX] = '\0'; + strncpy(path, getenv("HOME"), 5 + _POSIX_PATH_MAX); + strncat(path, "/tmp/", 5 + _POSIX_PATH_MAX); if (stat(path, &st) < 0 && errno == ENOENT) { int fd; - char warnpath[1+_POSIX_PATH_MAX]; + char warnpath[6+_POSIX_PATH_MAX]; mkdir(path, 0700); /* ignore retvals */ - strcpy(warnpath, path); - strncat(warnpath, ".created_by_xemacs", _POSIX_PATH_MAX); + warnpath[_POSIX_PATH_MAX] = '\0'; + strncpy(warnpath, path, 5 + _POSIX_PATH_MAX); + strncat(warnpath, ".created_by_xemacs", 5 + _POSIX_PATH_MAX); if ((fd = open(warnpath, O_WRONLY|O_CREAT, 0644)) > 0) { write(fd, "XEmacs created this directory because /tmp/ was unavailable -- \nPlease check !\n", 89); diff --git a/src/extents.c b/src/extents.c index ced0424..be980e9 100644 --- a/src/extents.c +++ b/src/extents.c @@ -1175,11 +1175,12 @@ detach_all_extents (Lisp_Object object) set_extent_start (e, -1); set_extent_end (e, -1); } + + /* But we need to clear all the lists containing extents or + havoc will result. */ + extent_list_delete_all (data->extents); } - /* But we need to clear all the lists containing extents or - havoc will result. */ - extent_list_delete_all (data->extents); soe_invalidate (object); } } diff --git a/src/fileio.c b/src/fileio.c index f2b20c3..c9bc2ae 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -57,7 +57,13 @@ Boston, MA 02111-1307, USA. */ #define WIN32_FILENAMES #ifdef WIN32_NATIVE #include "nt.h" +#include #endif /* WIN32_NATIVE */ +#ifdef CYGWIN +#include +#endif + + #define IS_DRIVE(x) isalpha (x) /* Need to lower-case the drive letter, or else expanded filenames will sometimes compare inequal, because @@ -2267,11 +2273,81 @@ check_executable (char *filename) #endif /* not WIN32_NATIVE */ } + + /* Return nonzero if file FILENAME exists and can be written. */ static int check_writable (const char *filename) { +#if defined(WIN32_NATIVE) || defined(CYGWIN) +#ifdef CYGWIN + char filename_buffer[PATH_MAX]; +#endif + // Since this has to work for a directory, we can't just call 'CreateFile' + PSECURITY_DESCRIPTOR pDesc; /* Must be freed with LocalFree */ + /* these need not be freed, they point into pDesc */ + PSID psidOwner; + PSID psidGroup; + PACL pDacl; + PACL pSacl; + /* end of insides of descriptor */ + DWORD error; + DWORD attributes; + HANDLE tokenHandle; + GENERIC_MAPPING genericMapping; + DWORD accessMask; + PRIVILEGE_SET PrivilegeSet; + DWORD dwPrivSetSize = sizeof( PRIVILEGE_SET ); + BOOL fAccessGranted = FALSE; + DWORD dwAccessAllowed; + +#ifdef CYGWIN + cygwin_conv_to_full_win32_path(filename, filename_buffer); + filename = filename_buffer; +#endif + + /* Win32 prototype lacks const. */ + error = GetNamedSecurityInfo((LPTSTR)filename, SE_FILE_OBJECT, + DACL_SECURITY_INFORMATION|GROUP_SECURITY_INFORMATION|OWNER_SECURITY_INFORMATION, + &psidOwner, &psidGroup, &pDacl, &pSacl, &pDesc); + if (error != ERROR_SUCCESS) { // FAT? + attributes = GetFileAttributes(filename); + return (attributes & FILE_ATTRIBUTE_DIRECTORY) || (0 == (attributes & FILE_ATTRIBUTE_READONLY)); + } + + genericMapping.GenericRead = FILE_GENERIC_READ; + genericMapping.GenericWrite = FILE_GENERIC_WRITE; + genericMapping.GenericExecute = FILE_GENERIC_EXECUTE; + genericMapping.GenericAll = FILE_ALL_ACCESS; + + if (!ImpersonateSelf(SecurityDelegation)) { + return 0; + } + if (!OpenThreadToken(GetCurrentThread(), TOKEN_ALL_ACCESS, TRUE, &tokenHandle)) { + return 0; + } + + accessMask = GENERIC_WRITE; + MapGenericMask(&accessMask, &genericMapping); + + if (!AccessCheck(pDesc, tokenHandle, accessMask, &genericMapping, + &PrivilegeSet, // receives privileges used in check + &dwPrivSetSize, // size of PrivilegeSet buffer + &dwAccessAllowed, // receives mask of allowed access rights + &fAccessGranted)) + { + DWORD oops = GetLastError(); + CloseHandle(tokenHandle); + RevertToSelf(); + LocalFree(pDesc); + return 0; + } + CloseHandle(tokenHandle); + RevertToSelf(); + LocalFree(pDesc); + return fAccessGranted == TRUE; +#else #ifdef HAVE_EACCESS return (eaccess (filename, W_OK) >= 0); #else @@ -2282,6 +2358,7 @@ check_writable (const char *filename) but would lose for directories. */ return (access (filename, W_OK) >= 0); #endif +#endif } DEFUN ("file-exists-p", Ffile_exists_p, 1, 1, 0, /* diff --git a/src/fns.c b/src/fns.c index 6ea4113..68e2414 100644 --- a/src/fns.c +++ b/src/fns.c @@ -49,6 +49,42 @@ Boston, MA 02111-1307, USA. */ #include "lstream.h" #include "opaque.h" + + +static Lisp_Object free_malloced_ptr(Lisp_Object unwind_obj) +{ + void *ptr = (void *)get_opaque_ptr(unwind_obj); + xfree(ptr); + free_opaque_ptr(unwind_obj); + return Qnil; +} + +/* Don't use alloca for regions larger than this, lest we overflow + the stack. */ +#define MAX_ALLOCA 65536 + +/* We need to setup proper unwinding, because there is a number of + ways these functions can blow up, and we don't want to have memory + leaks in those cases. */ +#define XMALLOC_OR_ALLOCA(ptr, len, type) do { \ + size_t XOA_len = (len); \ + if (XOA_len > MAX_ALLOCA ) { \ + ptr = xnew_array (type, XOA_len); \ + record_unwind_protect (free_malloced_ptr, \ + make_opaque_ptr ((void *)ptr)); \ + } \ + else \ + ptr = alloca_array (type, XOA_len); \ +} while (0) + +#define XMALLOC_UNBIND(ptr, len, speccount) do { \ + if ((len) > MAX_ALLOCA) \ + unbind_to (speccount, Qnil); \ +} while (0) + + + + /* NOTE: This symbol is also used in lread.c */ #define FEATUREP_SYNTAX @@ -604,6 +640,8 @@ concat (int nargs, Lisp_Object *args, Bufbyte *string_result = 0; Bufbyte *string_result_ptr = 0; struct gcpro gcpro1; + int speccount = specpdl_depth(); + Charcount total_length; /* The modus operandi in Emacs is "caller gc-protects args". However, concat is called many times in Emacs on freshly @@ -621,7 +659,7 @@ concat (int nargs, Lisp_Object *args, the result in the returned string's `string-translatable' property. */ #endif if (target_type == c_string) - args_mse = alloca_array (struct merge_string_extents_struct, nargs); + XMALLOC_OR_ALLOCA(args_mse, nargs, struct merge_string_extents_struct); /* In append, the last arg isn't treated like the others */ if (last_special && nargs > 0) @@ -670,7 +708,7 @@ concat (int nargs, Lisp_Object *args, /* Charcount is a misnomer here as we might be dealing with the length of a vector or list, but emphasizes that we're not dealing with Bytecounts in strings */ - Charcount total_length; + /* Charcount total_length; */ for (argnum = 0, total_length = 0; argnum < nargs; argnum++) { @@ -686,8 +724,11 @@ concat (int nargs, Lisp_Object *args, { case c_cons: if (total_length == 0) + { /* In append, if all but last arg are nil, return last arg */ + XMALLOC_UNBIND(args_mse, nargs, speccount); RETURN_UNGCPRO (last_tail); + } val = Fmake_list (make_int (total_length), Qnil); break; case c_vector: @@ -707,7 +748,9 @@ concat (int nargs, Lisp_Object *args, realloc()ing in order to make the char fit properly. O(N^2) yuckage. */ val = Qnil; - string_result = (Bufbyte *) alloca (total_length * MAX_EMCHAR_LEN); + XMALLOC_OR_ALLOCA( string_result, + total_length * MAX_EMCHAR_LEN, + Bufbyte ); string_result_ptr = string_result; break; default: @@ -820,6 +863,8 @@ concat (int nargs, Lisp_Object *args, args_mse[argnum].entry_offset, 0, args_mse[argnum].entry_length); } + XMALLOC_UNBIND(string_result, total_length * MAX_EMCHAR_LEN, speccount); + XMALLOC_UNBIND(args_mse, nargs, speccount); } if (!NILP (prev)) @@ -1840,6 +1885,7 @@ plists_differ (Lisp_Object a, Lisp_Object b, int nil_means_not_present, Lisp_Object *keys, *vals; char *flags; Lisp_Object rest; + int speccount = specpdl_depth(); if (NILP (a) && NILP (b)) return 0; @@ -1851,9 +1897,9 @@ plists_differ (Lisp_Object a, Lisp_Object b, int nil_means_not_present, lb = XINT (Flength (b)); m = (la > lb ? la : lb); fill = 0; - keys = alloca_array (Lisp_Object, m); - vals = alloca_array (Lisp_Object, m); - flags = alloca_array (char, m); + XMALLOC_OR_ALLOCA(keys, m, Lisp_Object); + XMALLOC_OR_ALLOCA(vals, m, Lisp_Object); + XMALLOC_OR_ALLOCA(flags, m, char); /* First extract the pairs from A. */ for (rest = a; !NILP (rest); rest = XCDR (XCDR (rest))) @@ -1898,10 +1944,17 @@ plists_differ (Lisp_Object a, Lisp_Object b, int nil_means_not_present, if (flags [i] == 0) goto MISMATCH; + + XMALLOC_UNBIND(flags, m, speccount); + XMALLOC_UNBIND(vals, m, speccount); + XMALLOC_UNBIND(keys, m, speccount); /* Ok. */ return 0; MISMATCH: + XMALLOC_UNBIND(flags, m, speccount); + XMALLOC_UNBIND(vals, m, speccount); + XMALLOC_UNBIND(keys, m, speccount); return 1; } @@ -2995,8 +3048,12 @@ mapcar1 (size_t leni, Lisp_Object *vals, { /* The string data of `sequence' might be relocated during GC. */ Bytecount slen = XSTRING_LENGTH (sequence); - Bufbyte *p = alloca_array (Bufbyte, slen); - Bufbyte *end = p + slen; + Bufbyte *p = NULL; + Bufbyte *end = NULL; + int speccount = specpdl_depth(); + + XMALLOC_OR_ALLOCA(p, slen, Bufbyte); + end = p + slen; memcpy (p, XSTRING_DATA (sequence), slen); @@ -3007,6 +3064,7 @@ mapcar1 (size_t leni, Lisp_Object *vals, result = Ffuncall (2, args); if (vals) vals[gcpro1.nvars++] = result; } + XMALLOC_UNBIND(p, slen, speccount); } else if (BIT_VECTORP (sequence)) { @@ -3038,12 +3096,14 @@ may be a list, a vector, a bit vector, or a string. { EMACS_INT len = XINT (Flength (sequence)); Lisp_Object *args; + Lisp_Object result; EMACS_INT i; EMACS_INT nargs = len + len - 1; + int speccount = specpdl_depth(); if (len == 0) return build_string (""); - args = alloca_array (Lisp_Object, nargs); + XMALLOC_OR_ALLOCA(args, nargs, Lisp_Object); mapcar1 (len, args, function, sequence); @@ -3053,7 +3113,9 @@ may be a list, a vector, a bit vector, or a string. for (i = 1; i < nargs; i += 2) args[i] = separator; - return Fconcat (nargs, args); + result = Fconcat(nargs, args); + XMALLOC_UNBIND(args, nargs, speccount); + return result; } DEFUN ("mapcar", Fmapcar, 2, 2, 0, /* @@ -3064,11 +3126,17 @@ SEQUENCE may be a list, a vector, a bit vector, or a string. (function, sequence)) { size_t len = XINT (Flength (sequence)); - Lisp_Object *args = alloca_array (Lisp_Object, len); + Lisp_Object *args = NULL; + Lisp_Object result; + int speccount = specpdl_depth(); + + XMALLOC_OR_ALLOCA(args, len, Lisp_Object); mapcar1 (len, args, function, sequence); - return Flist (len, args); + result = Flist(len, args); + XMALLOC_UNBIND(args, len, speccount); + return result; } DEFUN ("mapvector", Fmapvector, 2, 2, 0, /* @@ -3571,38 +3639,6 @@ base64_decode_1 (Lstream *istream, Bufbyte *to, Charcount *ccptr) #undef ADVANCE_INPUT_IGNORE_NONBASE64 #undef STORE_BYTE -static Lisp_Object -free_malloced_ptr (Lisp_Object unwind_obj) -{ - void *ptr = (void *)get_opaque_ptr (unwind_obj); - xfree (ptr); - free_opaque_ptr (unwind_obj); - return Qnil; -} - -/* Don't use alloca for regions larger than this, lest we overflow - the stack. */ -#define MAX_ALLOCA 65536 - -/* We need to setup proper unwinding, because there is a number of - ways these functions can blow up, and we don't want to have memory - leaks in those cases. */ -#define XMALLOC_OR_ALLOCA(ptr, len, type) do { \ - size_t XOA_len = (len); \ - if (XOA_len > MAX_ALLOCA) \ - { \ - ptr = xnew_array (type, XOA_len); \ - record_unwind_protect (free_malloced_ptr, \ - make_opaque_ptr ((void *)ptr)); \ - } \ - else \ - ptr = alloca_array (type, XOA_len); \ -} while (0) - -#define XMALLOC_UNBIND(ptr, len, speccount) do { \ - if ((len) > MAX_ALLOCA) \ - unbind_to (speccount, Qnil); \ -} while (0) DEFUN ("base64-encode-region", Fbase64_encode_region, 2, 3, "r", /* Base64-encode the region between START and END. diff --git a/src/glyphs-msw.c b/src/glyphs-msw.c index 34fc84f..72902aa 100644 --- a/src/glyphs-msw.c +++ b/src/glyphs-msw.c @@ -1460,7 +1460,7 @@ in this Software without prior written authorization from the X Consortium. /* shared data for the image read/parse logic */ static short hexTable[256]; /* conversion value */ -static int initialized = FALSE; /* easier to fill in at run time */ +static int hex_initialized = FALSE; /* easier to fill in at run time */ /* * Table index for the hex values. Initialized once, first time. @@ -1494,7 +1494,7 @@ initHexTable (void) hexTable['}'] = -1; hexTable['\n'] = -1; hexTable['\t'] = -1; - initialized = TRUE; + hex_initialized = TRUE; } /* @@ -1557,7 +1557,7 @@ int read_bitmap_data (FILE* fstream, unsigned int *width, #define Xmalloc(size) malloc(size) /* first time initialization */ - if (initialized == FALSE) initHexTable(); + if (hex_initialized == FALSE) initHexTable(); /* error cleanup and return macro */ #define RETURN(code) { if (data) free (data); return code; } diff --git a/src/glyphs-widget.c b/src/glyphs-widget.c index c3e78b4..988e594 100644 --- a/src/glyphs-widget.c +++ b/src/glyphs-widget.c @@ -558,20 +558,20 @@ widget_query_geometry (Lisp_Object image_instance, IMAGE_INSTANCE_WIDGET_FACE (ii), &w, &h, 0, domain); /* Adjust the size for borders. */ - if (IMAGE_INSTANCE_SUBWINDOW_H_RESIZEP (ii)) + if (width && IMAGE_INSTANCE_SUBWINDOW_H_RESIZEP (ii)) *width = w + 2 * widget_instance_border_width (ii); - if (IMAGE_INSTANCE_SUBWINDOW_V_RESIZEP (ii)) + if (height && IMAGE_INSTANCE_SUBWINDOW_V_RESIZEP (ii)) *height = h + 2 * widget_instance_border_width (ii); } } /* Finish off with dynamic sizing. */ - if (!NILP (IMAGE_INSTANCE_WIDGET_WIDTH_SUBR (ii))) + if (width && !NILP (IMAGE_INSTANCE_WIDGET_WIDTH_SUBR (ii))) { dynamic_width = Feval (IMAGE_INSTANCE_WIDGET_WIDTH_SUBR (ii)); if (INTP (dynamic_width)) *width = XINT (dynamic_width); } - if (!NILP (IMAGE_INSTANCE_WIDGET_HEIGHT_SUBR (ii))) + if (height && !NILP (IMAGE_INSTANCE_WIDGET_HEIGHT_SUBR (ii))) { dynamic_height = Feval (IMAGE_INSTANCE_WIDGET_HEIGHT_SUBR (ii)); if (INTP (dynamic_height)) diff --git a/src/input-method-xlib.c b/src/input-method-xlib.c index 30b3072..8a1f3ca 100644 --- a/src/input-method-xlib.c +++ b/src/input-method-xlib.c @@ -426,13 +426,18 @@ XIM_init_frame (struct frame *f) void XIM_SetGeometry (struct frame *f) { - XIC xic = FRAME_X_XIC (f); - XIMStyle style = FRAME_X_XIC_STYLE (f); + XIC xic; + XIMStyle style; XRectangle area; - if (!xic || !f) + if (!f) + return; + + xic = FRAME_X_XIC (f); + if (!xic) return; + style = FRAME_X_XIC_STYLE (f); if (style & XIMStatusArea) { /* Place Status Area in bottom right corner */ diff --git a/src/keymap.c b/src/keymap.c index 101a4a8..3752f0f 100644 --- a/src/keymap.c +++ b/src/keymap.c @@ -3663,6 +3663,8 @@ where_is_recursive_mapper (Lisp_Object map, void *arg) struct key_data *new = xnew_array (struct key_data, size); memcpy ((void *)new, (const void *)c->keys_so_far, c->keys_so_far_total_size * sizeof (struct key_data)); + xfree (c->keys_so_far); + c->keys_so_far = new; } else XREALLOC_ARRAY (c->keys_so_far, struct key_data, size); diff --git a/src/md5.c b/src/md5.c index 608ba7b..ec1337c 100644 --- a/src/md5.c +++ b/src/md5.c @@ -581,7 +581,7 @@ file-coding or Mule support. Otherwise, they are ignored. Bufbyte tempbuf[1024]; /* some random amount */ Lstream_data_count size_in_bytes = Lstream_read (XLSTREAM (instream), tempbuf, sizeof (tempbuf)); - if (!size_in_bytes) + if (size_in_bytes <= 0) break; /* Process the bytes. */ diff --git a/src/nas.c b/src/nas.c index 3249218..a0a5ddb 100644 --- a/src/nas.c +++ b/src/nas.c @@ -751,7 +751,7 @@ SndOpenDataForReading (const char *data, /* Stuff taken from wave.c from NAS. Just like snd files, NAS can't read wave data from memory, so these functions do that for us. */ -#define Err() { return NULL; } +#define Err() { free (wi); return NULL; } #define readFourcc(_f) dread(_f, sizeof(RIFF_FOURCC), 1) #define cmpID(_x, _y) \ strncmp((char *) (_x), (char *) (_y), sizeof(RIFF_FOURCC)) diff --git a/src/redisplay-gtk.c b/src/redisplay-gtk.c index 3e792de..7560803 100644 --- a/src/redisplay-gtk.c +++ b/src/redisplay-gtk.c @@ -294,7 +294,7 @@ gtk_output_display_block (struct window *w, struct display_line *dl, int block, int cursor_width, int cursor_height) { struct frame *f = XFRAME (w->frame); - Emchar_dynarr *buf = Dynarr_new (Emchar); + Emchar_dynarr *buf; Lisp_Object window; struct display_block *db = Dynarr_atp (dl->display_blocks, block); @@ -326,7 +326,7 @@ gtk_output_display_block (struct window *w, struct display_line *dl, int block, if (end < 0) end = Dynarr_length (rba); - Dynarr_reset (buf); + buf = Dynarr_new (Emchar); while (elt < end) { diff --git a/src/redisplay-msw.c b/src/redisplay-msw.c index 3a8749b..150d548 100644 --- a/src/redisplay-msw.c +++ b/src/redisplay-msw.c @@ -1044,7 +1044,7 @@ mswindows_output_display_block (struct window *w, struct display_line *dl, int b int cursor_width, int cursor_height) { struct frame *f = XFRAME (w->frame); - Emchar_dynarr *buf = Dynarr_new (Emchar); + Emchar_dynarr *buf; Lisp_Object window; struct display_block *db = Dynarr_atp (dl->display_blocks, block); @@ -1071,7 +1071,7 @@ mswindows_output_display_block (struct window *w, struct display_line *dl, int b if (end < 0) end = Dynarr_length (rba); - Dynarr_reset (buf); + buf = Dynarr_new (Emchar); while (elt < end) { diff --git a/src/redisplay-output.c b/src/redisplay-output.c index 0edbf8b..540ece9 100644 --- a/src/redisplay-output.c +++ b/src/redisplay-output.c @@ -1317,7 +1317,7 @@ redisplay_output_layout (Lisp_Object domain, { Lisp_Image_Instance *p = XIMAGE_INSTANCE (image_instance); Lisp_Object rest, window = DOMAIN_WINDOW (domain); - Emchar_dynarr *buf = Dynarr_new (Emchar); + Emchar_dynarr *buf; struct window *w = XWINDOW (window); struct device *d = DOMAIN_XDEVICE (domain); int layout_height, layout_width; @@ -1334,6 +1334,8 @@ redisplay_output_layout (Lisp_Object domain, if (!redisplay_normalize_glyph_area (db, dga)) return; + buf = Dynarr_new (Emchar); + /* Highly dodgy optimization. We want to only output the whole layout if we really have to. */ if (!IMAGE_INSTANCE_OPTIMIZE_OUTPUT (p) diff --git a/src/redisplay-tty.c b/src/redisplay-tty.c index 1970369..ff29b5f 100644 --- a/src/redisplay-tty.c +++ b/src/redisplay-tty.c @@ -196,7 +196,7 @@ tty_output_display_block (struct window *w, struct display_line *dl, int block, int cursor_height) { struct frame *f = XFRAME (w->frame); - Emchar_dynarr *buf = Dynarr_new (Emchar); + Emchar_dynarr *buf; struct display_block *db = Dynarr_atp (dl->display_blocks, block); rune_dynarr *rba = db->runes; @@ -222,7 +222,7 @@ tty_output_display_block (struct window *w, struct display_line *dl, int block, if (end < 0) end = Dynarr_length (rba); - Dynarr_reset (buf); + buf = Dynarr_new (Emchar); while (elt < end && Dynarr_atp (rba, elt)->xpos < start_pixpos) { diff --git a/src/redisplay-x.c b/src/redisplay-x.c index edd9109..daf3c27 100644 --- a/src/redisplay-x.c +++ b/src/redisplay-x.c @@ -318,7 +318,7 @@ x_output_display_block (struct window *w, struct display_line *dl, int block, int cursor_width, int cursor_height) { struct frame *f = XFRAME (w->frame); - Emchar_dynarr *buf = Dynarr_new (Emchar); + Emchar_dynarr *buf; Lisp_Object window; struct display_block *db = Dynarr_atp (dl->display_blocks, block); @@ -345,7 +345,7 @@ x_output_display_block (struct window *w, struct display_line *dl, int block, if (end < 0) end = Dynarr_length (rba); - Dynarr_reset (buf); + buf = Dynarr_new (Emchar); while (elt < end) { diff --git a/src/regex.c b/src/regex.c index 9dcbc10..68679ce 100644 --- a/src/regex.c +++ b/src/regex.c @@ -1145,7 +1145,7 @@ static const char *re_error_msgid[] = when matching. If this number is exceeded, we allocate more space, so it is not a hard limit. */ #ifndef INIT_FAILURE_ALLOC -#define INIT_FAILURE_ALLOC 5 +#define INIT_FAILURE_ALLOC 20 #endif /* Roughly the maximum number of failure points on the stack. Would be @@ -1155,9 +1155,9 @@ static const char *re_error_msgid[] = #if defined (MATCH_MAY_ALLOCATE) || defined (REGEX_MALLOC) /* 4400 was enough to cause a crash on Alpha OSF/1, whose default stack limit is 2mb. */ -int re_max_failures = 20000; +int re_max_failures = 40000; #else -int re_max_failures = 2000; +int re_max_failures = 4000; #endif union fail_stack_elt diff --git a/src/scrollbar-gtk.c b/src/scrollbar-gtk.c index cf98b64..ca3d615 100644 --- a/src/scrollbar-gtk.c +++ b/src/scrollbar-gtk.c @@ -57,14 +57,16 @@ gtk_inhibit_scrollbar_slider_size_change (void) static void gtk_free_scrollbar_instance (struct scrollbar_instance *instance) { - if (SCROLLBAR_GTK_WIDGET (instance)) + if (instance->scrollbar_data) { - gtk_widget_hide_all (SCROLLBAR_GTK_WIDGET (instance)); - gtk_widget_destroy (SCROLLBAR_GTK_WIDGET (instance)); - } + if (SCROLLBAR_GTK_WIDGET (instance)) + { + gtk_widget_hide_all (SCROLLBAR_GTK_WIDGET (instance)); + gtk_widget_destroy (SCROLLBAR_GTK_WIDGET (instance)); + } - if (instance->scrollbar_data) - xfree (instance->scrollbar_data); + xfree (instance->scrollbar_data); + } } /* A device method. */ diff --git a/src/scrollbar-msw.c b/src/scrollbar-msw.c index fac374a..8af6692 100644 --- a/src/scrollbar-msw.c +++ b/src/scrollbar-msw.c @@ -83,9 +83,11 @@ mswindows_create_scrollbar_instance (struct frame *f, int vertical, static void mswindows_free_scrollbar_instance (struct scrollbar_instance *sb) { - DestroyWindow (SCROLLBAR_MSW_HANDLE (sb)); if (sb->scrollbar_data) - xfree (sb->scrollbar_data); + { + DestroyWindow (SCROLLBAR_MSW_HANDLE (sb)); + xfree (sb->scrollbar_data); + } } static void diff --git a/src/scrollbar-x.c b/src/scrollbar-x.c index 53d4c24..b7b193b 100644 --- a/src/scrollbar-x.c +++ b/src/scrollbar-x.c @@ -71,19 +71,21 @@ x_inhibit_scrollbar_slider_size_change (void) static void x_free_scrollbar_instance (struct scrollbar_instance *instance) { - if (SCROLLBAR_X_NAME (instance)) - xfree (SCROLLBAR_X_NAME (instance)); - - if (SCROLLBAR_X_WIDGET (instance)) + if (instance->scrollbar_data) { - if (XtIsManaged (SCROLLBAR_X_WIDGET (instance))) - XtUnmanageChild (SCROLLBAR_X_WIDGET (instance)); + if (SCROLLBAR_X_NAME (instance)) + xfree (SCROLLBAR_X_NAME (instance)); - lw_destroy_all_widgets (SCROLLBAR_X_ID (instance)); - } + if (SCROLLBAR_X_WIDGET (instance)) + { + if (XtIsManaged (SCROLLBAR_X_WIDGET (instance))) + XtUnmanageChild (SCROLLBAR_X_WIDGET (instance)); - if (instance->scrollbar_data) - xfree (instance->scrollbar_data); + lw_destroy_all_widgets (SCROLLBAR_X_ID (instance)); + } + + xfree (instance->scrollbar_data); + } } /* A device method. */ diff --git a/src/sound.c b/src/sound.c index acb272b..ec7e9e3 100644 --- a/src/sound.c +++ b/src/sound.c @@ -467,7 +467,7 @@ init_nas_sound (struct device *d) static void init_native_sound (struct device *d) { - if (DEVICE_TTY_P (d) || DEVICE_STREAM_P (d) || DEVICE_MSWINDOWS_P(d)) + if (!(DEVICE_X_P(d) || DEVICE_GTK_P(d))) DEVICE_ON_CONSOLE_P (d) = 1; #ifdef HAVE_X_WINDOWS else @@ -517,7 +517,7 @@ init_native_sound (struct device *d) DEVICE_ON_CONSOLE_P (d) = 0; else { - char hn [255]; + char *hn = alloca_array (char, strlen (h->h_name) + 1); struct hostent *l; strcpy (hn, h->h_name); l = gethostbyname (localname); diff --git a/tests/ChangeLog b/tests/ChangeLog index a473bb9..9ea1717 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,18 @@ +2006-12-09 Vin Shelton + + * XEmacs 21.4.20 is released + +2006-06-24 Stephen J. Turnbull + + * automated/test-harness.el (Silence-Message): New macro. + * automated/mule-tests.el: Use it. + * automated/region-tests.el: Use it. + * automated/tag-tests.el: Use it. + +2006-06-24 Stephen J. Turnbull + + * automated/test-harness.el: Improve handling of unexpected errors. + 2006-01-28 Vin Shelton * XEmacs 21.4.19 is released diff --git a/tests/automated/mule-tests.el b/tests/automated/mule-tests.el index ab90516..a89690b 100644 --- a/tests/automated/mule-tests.el +++ b/tests/automated/mule-tests.el @@ -301,8 +301,7 @@ the Assert macro checks for correctness." (name1 (make-temp-name prefix)) (name2 (make-temp-name prefix)) (file-name-coding-system 'iso-8859-2)) - ;; This is how you suppress output from `message', called by `write-region' - (flet ((append-message (&rest args) ())) + (Silence-Message (Assert (not (equal name1 name2))) ;; Kludge to handle Mac OS X which groks only UTF-8. (cond ((eq system-type 'darwin) diff --git a/tests/automated/tag-tests.el b/tests/automated/tag-tests.el index 89e5ad6..75f5d5b 100644 --- a/tests/automated/tag-tests.el +++ b/tests/automated/tag-tests.el @@ -68,20 +68,23 @@ If FILENAME is omitted, the printname of FEATURE is used as the file name. (let ((tags-always-exact t)) ;; Search for the tag "mystruct"; this should succeed - (find-tag "mystruct") + (Silence-Message + (find-tag "mystruct")) (Assert (eq (point) 2)) ;; Search again. The search should fail, based on the patch that ;; Sven Grundmann submitted for 21.4.16. (Check-Error-Message error "No more entries matching mystruct" - (tags-loop-continue))) + (Silence-Message + (tags-loop-continue)))) (let ((tags-always-exact nil)) ;; Search for the definition of "require". Until the etags.el upgrade ;; from 21.5 in 21.4.16, this test would fail. (condition-case nil - (find-tag "require") + (Silence-Message + (find-tag "require")) (t t)) (Assert (eq (point) 52))) diff --git a/tests/automated/test-harness.el b/tests/automated/test-harness.el index 6e8d632..ac31824 100644 --- a/tests/automated/test-harness.el +++ b/tests/automated/test-harness.el @@ -38,6 +38,14 @@ ;;; Implementation-Incomplete-Expect-Failure wrapper macros to mark them. ;;; A lot of the tests we run push limits; suppress Ebola message with the ;;; Ignore-Ebola wrapper macro. +;;; Some noisy code will call `message'. Output from `message' can be +;;; suppressed with the Silence-Message macro. Functions that are known to +;;; issue messages include `write-region', `find-tag', `tag-loop-continue', +;;; `insert', and `mark-whole-buffer'. N.B. The Silence-Message macro +;;; currently does not suppress the newlines printed by `message'. +;;; Definitely do not use Silence-Message with Check-Message. +;;; In general it should probably only be used on code that prepares for a +;;; test, not on tests. ;;; ;;; You run the tests using M-x test-emacs-test-file, ;;; or $(EMACS) -batch -l .../test-harness.el -f batch-test-emacs file ... @@ -45,6 +53,23 @@ (require 'bytecomp) +(defvar unexpected-test-suite-failures 0 + "Cumulative number of unexpected failures since test-harness was loaded. + +\"Unexpected failures\" are those caught by a generic handler established +outside of the test context. As such they involve an abort of the test +suite for the file being tested. + +They often occur during preparation of a test or recording of the results. +For example, an executable used to generate test data might not be present +on the system, or a system error might occur while reading a data file.") + +(defvar unexpected-test-suite-failure-files nil + "List of test files causing unexpected failures.") + +;; Declared for dynamic scope; _do not_ initialize here. +(defvar unexpected-test-file-failures) + (defvar test-harness-test-compiled nil "Non-nil means the test code was compiled before execution.") @@ -134,6 +159,7 @@ The output file's name is made by appending `c' to the end of FILENAME." (setq body (cons (read buffer) body))) (end-of-file nil) (error + (incf unexpected-test-file-failures) (princ (format "Unexpected error %S reading forms from buffer\n" error-info)))) `(lambda () @@ -144,7 +170,6 @@ The output file's name is made by appending `c' to the end of FILENAME." (defvar missing-message-failures) (defvar other-failures) - (defvar unexpected-test-suite-failure) (defvar trick-optimizer) ,@(nreverse body)))) @@ -158,6 +183,7 @@ The output file's name is made by appending `c' to the end of FILENAME." (wrong-error-failures 0) (missing-message-failures 0) (other-failures 0) + (unexpected-test-file-failures 0) ;; #### perhaps this should be a defvar, and output at the very end ;; OTOH, this way AC types can use a null EMACSPACKAGEPATH to find @@ -165,7 +191,6 @@ The output file's name is made by appending `c' to the end of FILENAME." (skipped-test-reasons (make-hash-table :test 'equal)) (trick-optimizer nil) - (unexpected-test-suite-failure nil) (debug-on-error t) (pass-stream nil)) (with-output-to-temp-buffer "*Test-Log*" @@ -267,7 +292,7 @@ BODY is a sequence of expressions and may contain several tests." ,quoted-body ',expected-error error-info) (incf wrong-error-failures))))) - + ;; Do not use this with Silence-Message. (defmacro Check-Message (expected-message-regexp &rest body) (Skip-Test-Unless (fboundp 'defadvice) "can't defadvice" @@ -299,6 +324,10 @@ BODY is a sequence of expressions and may contain several tests." (incf other-failures))) (ad-unadvise 'message))))) + ;; #### Perhaps this should override `message' itself, too? + (defmacro Silence-Message (&rest body) + `(flet ((append-message (&rest args) ())) ,@body)) + (defmacro Ignore-Ebola (&rest body) `(let ((debug-issue-ebola-notices -42)) ,@body)) @@ -313,7 +342,7 @@ BODY is a sequence of expressions and may contain several tests." (condition-case error-info (funcall (test-harness-read-from-buffer inbuffer)) (error - (setq unexpected-test-suite-failure t) + (incf unexpected-test-file-failures) (princ (format "Unexpected error %S while executing interpreted code\n" error-info)) (message "Unexpected error %S while executing interpreted code." error-info) @@ -334,6 +363,7 @@ BODY is a sequence of expressions and may contain several tests." (condition-case error-info (if code (funcall code)) (error + (incf unexpected-test-file-failures) (princ (format "Unexpected error %S while executing byte-compiled code\n" error-info)) (message "Unexpected error %S while executing byte-compiled code." error-info) @@ -376,7 +406,11 @@ BODY is a sequence of expressions and may contain several tests." (cons (list filename passes total) test-harness-file-results-alist)) (message "%s" summary-msg)) - (when unexpected-test-suite-failure + (when (> unexpected-test-file-failures 0) + (setq unexpected-test-suite-failure-files + (cons filename unexpected-test-suite-failure-files)) + (setq unexpected-test-suite-failures + (+ unexpected-test-suite-failures unexpected-test-file-failures)) (message "Test suite execution failed unexpectedly.")) (fmakunbound 'Assert) (fmakunbound 'Check-Error) @@ -503,7 +537,23 @@ For example, invoke \"xemacs -batch -f batch-test-emacs tests/*.el\"" (/ (* 100 nsucc) ntest)) (message test-harness-null-summary-template (concat basename ":"))) - (setq results (cdr results)))))) + (setq results (cdr results))))) + (when (> unexpected-test-suite-failures 0) + (message "\n***** There %s %d unexpected test suite %s in %s:" + (if (= unexpected-test-suite-failures 1) "was" "were") + unexpected-test-suite-failures + (if (= unexpected-test-suite-failures 1) "failure" "failures") + (if (= (length unexpected-test-suite-failure-files) 1) + "file" + "files")) + (while unexpected-test-suite-failure-files + (let ((line (pop unexpected-test-suite-failure-files))) + (while (and (< (length line) 61) + unexpected-test-suite-failure-files) + (setq line + (concat line " " + (pop unexpected-test-suite-failure-files)))) + (message line))))) (message "\nDone") (kill-emacs (if error 1 0)))) diff --git a/version.sh b/version.sh index 59eea38..22fd490 100644 --- a/version.sh +++ b/version.sh @@ -2,8 +2,8 @@ emacs_is_beta= emacs_major_version=21 emacs_minor_version=4 -emacs_beta_version=19 -xemacs_codename="Constant Variable" +emacs_beta_version=20 +xemacs_codename="Double Solitaire" emacs_kit_version= infodock_major_version=4 infodock_minor_version=0 -- 1.7.10.4