# HG changeset patch # User cvs # Date 1186993278 -7200 # Node ID 084402c475ba8b574be2973896b69712fde32d39 # Parent e92abcaa252b6e273a1848806a7dc5b8aad37a09 Import from CVS: tag r20-5b26 diff -r e92abcaa252b -r 084402c475ba CHANGES-beta --- a/CHANGES-beta Mon Aug 13 10:20:29 2007 +0200 +++ b/CHANGES-beta Mon Aug 13 10:21:18 2007 +0200 @@ -1,4 +1,16 @@ -*- indented-text -*- +to 20.5 beta26 "Kiko" +-- MS Windows patches courtesy of Kirill Katsnelson +-- Various patches from Kyle Jones +-- Modeline scrolling courtesy of Dider Verna +-- various patches from Christoph Wedler +-- Fixes for Linux/alpha courtesy of Aki Vehtari +-- Mouse scrolling fix courtesy of Didier Verna +-- files.el fix courtesy of Kyle Jones +-- (Not so) Experimental support for Doug Lea Malloc +-- XEmacs/Mule in a tty works courtesy of Kazuyuki IENAGA +-- Miscellaneous bug fixes + to 20.5 beta25 "Kamori" -- Dead key fixes courtesy of Martin Buchholz -- Make count-* functions work sensibly courtesy of Hrvoje Niksic diff -r e92abcaa252b -r 084402c475ba ChangeLog --- a/ChangeLog Mon Aug 13 10:20:29 2007 +0200 +++ b/ChangeLog Mon Aug 13 10:21:18 2007 +0200 @@ -1,5 +1,25 @@ +1998-02-19 SL Baur + + * XEmacs-20.5-beta26 is released. + +1998-02-18 SL Baur + + * XEmacs-20.4-pre3 is released. + + * Makefile.in: use better feedback while rebuilding finder database. + Suggested by Stephen J. Turnbull + +1998-02-15 SL Baur + + * configure.in (doug_lea_malloc): Add checking for Doug Lea + Malloc. + 1998-02-14 SL Baur + * configure.in (OFFIX_O): Don't use OffiX if no real Xmu support. + Suggested by Pekka Marjola + + * XEmacs-20.4-pre2 is released. * XEmacs-20.5-beta25 is released. 1998-02-13 SL Baur diff -r e92abcaa252b -r 084402c475ba INSTALL --- a/INSTALL Mon Aug 13 10:20:29 2007 +0200 +++ b/INSTALL Mon Aug 13 10:21:18 2007 +0200 @@ -38,7 +38,9 @@ requires 41+16 Mb. Adjust this value upwards depending upon what additional Lisp support is installed. -XEmacs requires an ANSI C compiler, such as GCC. +XEmacs requires an ANSI C compiler, such as GCC. If you wish to build +the documentation yourself, you will need at least version 1.68 of +makeinfo (GNU texinfo-3.11). 2) Decide on what other software packages you would like to use with diff -r e92abcaa252b -r 084402c475ba Makefile.in --- a/Makefile.in Mon Aug 13 10:20:29 2007 +0200 +++ b/Makefile.in Mon Aug 13 10:21:18 2007 +0200 @@ -271,18 +271,20 @@ MAKE='$(MAKE)' sh ${srcdir}/lib-src/update-custom.sh finder: src - @echo "Building finder database" + @echo "Building finder database ..." @(cd lisp; \ ${blddir}/src/xemacs -batch -vanilla \ -eval '(setq finder-compile-keywords-quiet t)' \ -l finder -f finder-compile-keywords ) + @echo "Building finder database ...(done)" lisp/finder-inf.el: - @echo "Building finder database" + @echo "Building finder database ..." @(cd lisp; \ ${blddir}/src/xemacs -batch -vanilla \ -eval '(setq finder-compile-keywords-quiet t)' \ -l finder -f finder-compile-keywords ) + @echo "Building finder database ...(done)" ## We force the rebuilding of src/paths.h because the user might give ## different values for the various directories. Since we use diff -r e92abcaa252b -r 084402c475ba configure --- a/configure Mon Aug 13 10:20:29 2007 +0200 +++ b/configure Mon Aug 13 10:21:18 2007 +0200 @@ -2390,6 +2390,120 @@ GNU_MALLOC=yes +doug_lea_malloc=yes +echo $ac_n "checking for malloc_get_state""... $ac_c" 1>&6 +echo "configure:2396: checking for malloc_get_state" >&5 + +cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char malloc_get_state(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_malloc_get_state) || defined (__stub___malloc_get_state) +choke me +#else +malloc_get_state(); +#endif + +; return 0; } +EOF +if { (eval echo configure:2422: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_malloc_get_state=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_malloc_get_state=no" +fi +rm -f conftest* + +if eval "test \"`echo '$ac_cv_func_'malloc_get_state`\" = yes"; then + echo "$ac_t""yes" 1>&6 + : +else + echo "$ac_t""no" 1>&6 +doug_lea_malloc=no +fi + +echo $ac_n "checking for malloc_set_state""... $ac_c" 1>&6 +echo "configure:2442: checking for malloc_set_state" >&5 + +cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char malloc_set_state(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_malloc_set_state) || defined (__stub___malloc_set_state) +choke me +#else +malloc_set_state(); +#endif + +; return 0; } +EOF +if { (eval echo configure:2468: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_malloc_set_state=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_malloc_set_state=no" +fi +rm -f conftest* + +if eval "test \"`echo '$ac_cv_func_'malloc_set_state`\" = yes"; then + echo "$ac_t""yes" 1>&6 + : +else + echo "$ac_t""no" 1>&6 +doug_lea_malloc=no +fi + +echo $ac_n "checking whether __after_morecore_hook exists""... $ac_c" 1>&6 +echo "configure:2488: checking whether __after_morecore_hook exists" >&5 +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + echo "$ac_t""yes" 1>&6 +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + echo "$ac_t""no" 1>&6 + doug_lea_malloc=no +fi +rm -f conftest* if test "$system_malloc" = "yes" ; then GNU_MALLOC=no GNU_MALLOC_reason=" @@ -2404,11 +2518,26 @@ (User chose to use Debugging Malloc)." fi +if test "$doug_lea_malloc" = "yes" ; then + if test "$GNU_MALLOC" = yes ; then + GNU_MALLOC_reason=" + (Using Doug Lea's new malloc from the GNU C Library.)" + fi + { test "$extra_verbose" = "yes" && cat << \EOF + Defining DOUG_LEA_MALLOC +EOF +cat >> confdefs.h <<\EOF +#define DOUG_LEA_MALLOC 1 +EOF +} + +fi + # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2412: checking for $ac_word" >&5 +echo "configure:2541: checking for $ac_word" >&5 if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. @@ -2461,7 +2590,7 @@ # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:2465: checking for a BSD compatible install" >&5 +echo "configure:2594: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="${IFS}:" @@ -2512,7 +2641,7 @@ # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2516: checking for $ac_word" >&5 +echo "configure:2645: checking for $ac_word" >&5 if test -n "$YACC"; then ac_cv_prog_YACC="$YACC" # Let the user override the test. @@ -2543,15 +2672,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2547: checking for $ac_hdr" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2555: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2684: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -2584,15 +2713,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2588: checking for $ac_hdr" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2596: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2725: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -2625,15 +2754,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2629: checking for $ac_hdr" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2637: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2766: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -2663,10 +2792,10 @@ done echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 -echo "configure:2667: checking for sys/wait.h that is POSIX.1 compatible" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < #include @@ -2682,7 +2811,7 @@ s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } EOF -if { (eval echo configure:2686: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2815: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_sys_wait_h=yes else @@ -2706,10 +2835,10 @@ fi echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:2710: checking for ANSI C header files" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < #include @@ -2717,7 +2846,7 @@ #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2721: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2850: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -2734,7 +2863,7 @@ if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -2752,7 +2881,7 @@ if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -2770,7 +2899,7 @@ if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -2781,7 +2910,7 @@ exit (0); } EOF -if { (eval echo configure:2785: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5 +if { (eval echo configure:2914: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5 then : else @@ -2806,10 +2935,10 @@ fi echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 -echo "configure:2810: checking whether time.h and sys/time.h may both be included" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < #include @@ -2818,7 +2947,7 @@ struct tm *tp; ; return 0; } EOF -if { (eval echo configure:2822: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2951: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes else @@ -2842,10 +2971,10 @@ fi echo $ac_n "checking for sys_siglist declaration in signal.h or unistd.h""... $ac_c" 1>&6 -echo "configure:2846: checking for sys_siglist declaration in signal.h or unistd.h" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < #include @@ -2857,7 +2986,7 @@ char *msg = *(sys_siglist + 1); ; return 0; } EOF -if { (eval echo configure:2861: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2990: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_decl_sys_siglist=yes else @@ -2882,9 +3011,9 @@ echo $ac_n "checking for struct utimbuf""... $ac_c" 1>&6 -echo "configure:2886: checking for struct utimbuf" >&5 -cat > conftest.$ac_ext <&5 +cat > conftest.$ac_ext < @@ -2903,7 +3032,7 @@ static struct utimbuf x; x.actime = x.modtime; ; return 0; } EOF -if { (eval echo configure:2907: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3036: \"$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 @@ -2923,10 +3052,10 @@ rm -f conftest* echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 -echo "configure:2927: checking return type of signal handlers" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < #include @@ -2943,7 +3072,7 @@ int i; ; return 0; } EOF -if { (eval echo configure:2947: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3076: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void else @@ -2965,10 +3094,10 @@ echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:2969: checking for size_t" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < #if STDC_HEADERS @@ -2999,10 +3128,10 @@ fi echo $ac_n "checking for pid_t""... $ac_c" 1>&6 -echo "configure:3003: checking for pid_t" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3033,10 +3162,10 @@ fi echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 -echo "configure:3037: checking for uid_t in sys/types.h" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < EOF @@ -3072,10 +3201,10 @@ fi echo $ac_n "checking for mode_t""... $ac_c" 1>&6 -echo "configure:3076: checking for mode_t" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3106,10 +3235,10 @@ fi echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:3110: checking for off_t" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3141,9 +3270,9 @@ echo $ac_n "checking for struct timeval""... $ac_c" 1>&6 -echo "configure:3145: checking for struct timeval" >&5 -cat > conftest.$ac_ext <&5 +cat > conftest.$ac_ext < @@ -3159,7 +3288,7 @@ static struct timeval x; x.tv_sec = x.tv_usec; ; return 0; } EOF -if { (eval echo configure:3163: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3292: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 HAVE_TIMEVAL=yes @@ -3181,10 +3310,10 @@ rm -f conftest* echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6 -echo "configure:3185: checking whether struct tm is in sys/time.h or time.h" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < #include @@ -3192,7 +3321,7 @@ struct tm *tp; tp->tm_sec; ; return 0; } EOF -if { (eval echo configure:3196: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3325: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm=time.h else @@ -3216,10 +3345,10 @@ fi echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6 -echo "configure:3220: checking for tm_zone in struct tm" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < #include <$ac_cv_struct_tm> @@ -3227,7 +3356,7 @@ struct tm tm; tm.tm_zone; ; return 0; } EOF -if { (eval echo configure:3231: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3360: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm_zone=yes else @@ -3250,10 +3379,10 @@ else echo $ac_n "checking for tzname""... $ac_c" 1>&6 -echo "configure:3254: checking for tzname" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < #ifndef tzname /* For SGI. */ @@ -3263,7 +3392,7 @@ atoi(*tzname); ; return 0; } EOF -if { (eval echo configure:3267: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3396: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_cv_var_tzname=yes else @@ -3289,10 +3418,10 @@ echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:3293: checking for working const" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3474: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -3366,7 +3495,7 @@ echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:3370: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:3499: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` cat > conftestmake <<\EOF @@ -3391,12 +3520,12 @@ echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6 -echo "configure:3395: checking whether byte ordering is bigendian" >&5 +echo "configure:3524: checking whether byte ordering is bigendian" >&5 ac_cv_c_bigendian=unknown # See if sys/param.h defines the BYTE_ORDER macro. cat > conftest.$ac_ext < #include @@ -3407,11 +3536,11 @@ #endif ; return 0; } EOF -if { (eval echo configure:3411: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3540: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* # It does; now see whether it defined to BIG_ENDIAN or not. cat > conftest.$ac_ext < #include @@ -3422,7 +3551,7 @@ #endif ; return 0; } EOF -if { (eval echo configure:3426: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3555: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_bigendian=yes else @@ -3439,7 +3568,7 @@ rm -f conftest* if test $ac_cv_c_bigendian = unknown; then cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5 +if { (eval echo configure:3585: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5 then ac_cv_c_bigendian=no else @@ -3478,10 +3607,10 @@ echo $ac_n "checking size of short""... $ac_c" 1>&6 -echo "configure:3482: checking size of short" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < main() @@ -3492,7 +3621,7 @@ exit(0); } EOF -if { (eval echo configure:3496: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5 +if { (eval echo configure:3625: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5 then ac_cv_sizeof_short=`cat conftestval` else @@ -3519,10 +3648,10 @@ exit 1 fi echo $ac_n "checking size of int""... $ac_c" 1>&6 -echo "configure:3523: checking size of int" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < main() @@ -3533,7 +3662,7 @@ exit(0); } EOF -if { (eval echo configure:3537: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5 +if { (eval echo configure:3666: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5 then ac_cv_sizeof_int=`cat conftestval` else @@ -3554,10 +3683,10 @@ echo $ac_n "checking size of long""... $ac_c" 1>&6 -echo "configure:3558: checking size of long" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < main() @@ -3568,7 +3697,7 @@ exit(0); } EOF -if { (eval echo configure:3572: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5 +if { (eval echo configure:3701: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5 then ac_cv_sizeof_long=`cat conftestval` else @@ -3589,10 +3718,10 @@ echo $ac_n "checking size of long long""... $ac_c" 1>&6 -echo "configure:3593: checking size of long long" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < main() @@ -3603,7 +3732,7 @@ exit(0); } EOF -if { (eval echo configure:3607: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5 +if { (eval echo configure:3736: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5 then ac_cv_sizeof_long_long=`cat conftestval` else @@ -3624,10 +3753,10 @@ echo $ac_n "checking size of void *""... $ac_c" 1>&6 -echo "configure:3628: checking size of void *" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < main() @@ -3638,7 +3767,7 @@ exit(0); } EOF -if { (eval echo configure:3642: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5 +if { (eval echo configure:3771: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5 then ac_cv_sizeof_void_p=`cat conftestval` else @@ -3660,7 +3789,7 @@ echo $ac_n "checking for long file names""... $ac_c" 1>&6 -echo "configure:3664: checking for long file names" >&5 +echo "configure:3793: checking for long file names" >&5 ac_cv_sys_long_file_names=yes # Test for long file names in all the places we know might matter: @@ -3707,12 +3836,12 @@ echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6 -echo "configure:3711: checking for sin in -lm" >&5 +echo "configure:3840: checking for sin in -lm" >&5 ac_lib_var=`echo m'_'sin | sed 'y%./+-%__p_%'` xe_check_libs=" -lm " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3856: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3765,14 +3894,14 @@ cat > conftest.$ac_ext < int main() { return atanh(1.0) + asinh(1.0) + acosh(1.0); ; return 0; } EOF -if { (eval echo configure:3776: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:3905: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_INVERSE_HYPERBOLIC @@ -3789,7 +3918,7 @@ rm -f conftest* echo "checking type of mail spool file locking" 1>&6 -echo "configure:3793: checking type of mail spool file locking" >&5 +echo "configure:3922: checking type of mail spool file locking" >&5 test -z "$mail_locking" -a "$mail_use_flock" = "yes" && mail_locking=flock test -z "$mail_locking" -a "$mail_use_lockf" = "yes" && mail_locking=lockf if test "$mail_locking" = "lockf"; then { test "$extra_verbose" = "yes" && cat << \EOF @@ -3813,12 +3942,12 @@ echo $ac_n "checking for kstat_open in -lkstat""... $ac_c" 1>&6 -echo "configure:3817: checking for kstat_open in -lkstat" >&5 +echo "configure:3946: 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; then +if { (eval echo configure:3962: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3863,12 +3992,12 @@ echo $ac_n "checking for kvm_read in -lkvm""... $ac_c" 1>&6 -echo "configure:3867: checking for kvm_read in -lkvm" >&5 +echo "configure:3996: 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; then +if { (eval echo configure:4012: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3913,12 +4042,12 @@ echo $ac_n "checking for cma_open in -lpthreads""... $ac_c" 1>&6 -echo "configure:3917: checking for cma_open in -lpthreads" >&5 +echo "configure:4046: checking for cma_open in -lpthreads" >&5 ac_lib_var=`echo pthreads'_'cma_open | sed 'y%./+-%__p_%'` xe_check_libs=" -lpthreads " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4062: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3965,7 +4094,7 @@ fi echo $ac_n "checking whether the -xildoff compiler flag is required""... $ac_c" 1>&6 -echo "configure:3969: checking whether the -xildoff compiler flag is required" >&5 +echo "configure:4098: checking whether the -xildoff compiler flag is required" >&5 if ${CC-cc} '-###' -xildon no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ; then if ${CC-cc} '-###' -xildoff no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ; then echo "$ac_t""no" 1>&6; @@ -3976,7 +4105,7 @@ if test "$opsys" = "sol2" && test "$OS_RELEASE" -ge 56; then echo $ac_n "checking for \"-z ignore\" linker flag""... $ac_c" 1>&6 -echo "configure:3980: checking for \"-z ignore\" linker flag" >&5 +echo "configure:4109: checking for \"-z ignore\" linker flag" >&5 case "`ld -h 2>&1`" in *-z\ ignore\|record* ) echo "$ac_t""yes" 1>&6 ld_switch_site="-z ignore $ld_switch_site" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-z ignore\" to \$ld_switch_site"; fi ;; @@ -3986,7 +4115,7 @@ echo "checking "for specified window system"" 1>&6 -echo "configure:3990: checking "for specified window system"" >&5 +echo "configure:4119: checking "for specified window system"" >&5 if test "$with_x11" != "no"; then test "$x_includes $x_libraries" != "NONE NONE" && \ @@ -4016,7 +4145,7 @@ # Uses ac_ vars as temps to allow command line to override cache and checks. # --without-x overrides everything else, but does not touch the cache. echo $ac_n "checking for X""... $ac_c" 1>&6 -echo "configure:4020: checking for X" >&5 +echo "configure:4149: checking for X" >&5 # Check whether --with-x or --without-x was given. if test "${with_x+set}" = set; then @@ -4076,12 +4205,12 @@ # First, try using that file with no special directory specified. cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4085: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4214: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -4150,14 +4279,14 @@ ac_save_LIBS="$LIBS" LIBS="-l$x_direct_test_library $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4290: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* LIBS="$ac_save_LIBS" # We can link X programs with no special library path. @@ -4266,17 +4395,17 @@ case "`(uname -sr) 2>/dev/null`" in "SunOS 5"*) echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6 -echo "configure:4270: checking whether -R must be followed by a space" >&5 +echo "configure:4399: checking whether -R must be followed by a space" >&5 ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +#line 4402 "configure" +#include "confdefs.h" + +int main() { + +; return 0; } +EOF +if { (eval echo configure:4409: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_R_nospace=yes else @@ -4292,14 +4421,14 @@ else LIBS="$ac_xsave_LIBS -R $x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +#line 4425 "configure" +#include "confdefs.h" + +int main() { + +; return 0; } +EOF +if { (eval echo configure:4432: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_R_space=yes else @@ -4335,12 +4464,12 @@ else echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 -echo "configure:4339: checking for dnet_ntoa in -ldnet" >&5 +echo "configure:4468: checking for dnet_ntoa in -ldnet" >&5 ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'` xe_check_libs=" -ldnet " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4484: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4375,12 +4504,12 @@ if test $ac_cv_lib_dnet_dnet_ntoa = no; then echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6 -echo "configure:4379: checking for dnet_ntoa in -ldnet_stub" >&5 +echo "configure:4508: checking for dnet_ntoa in -ldnet_stub" >&5 ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'` xe_check_libs=" -ldnet_stub " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4524: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4420,10 +4549,10 @@ # The nsl library prevents programs from opening the X display # on Irix 5.2, according to dickey@clark.net. echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6 -echo "configure:4424: checking for gethostbyname" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4579: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_gethostbyname=yes" else @@ -4467,12 +4596,12 @@ if test $ac_cv_func_gethostbyname = no; then echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 -echo "configure:4471: checking for gethostbyname in -lnsl" >&5 +echo "configure:4600: checking for gethostbyname in -lnsl" >&5 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` xe_check_libs=" -lnsl " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4616: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4513,10 +4642,10 @@ # -lsocket must be given before -lnsl if both are needed. # We assume that if connect needs -lnsl, so does gethostbyname. echo $ac_n "checking for connect""... $ac_c" 1>&6 -echo "configure:4517: checking for connect" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4672: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_connect=yes" else @@ -4562,12 +4691,12 @@ xe_msg_checking="for connect in -lsocket" test -n "$X_EXTRA_LIBS" && xe_msg_checking="$xe_msg_checking using extra libs $X_EXTRA_LIBS" echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6 -echo "configure:4566: checking "$xe_msg_checking"" >&5 +echo "configure:4695: checking "$xe_msg_checking"" >&5 ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'` xe_check_libs=" -lsocket $X_EXTRA_LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4711: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4602,10 +4731,10 @@ # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX. echo $ac_n "checking for remove""... $ac_c" 1>&6 -echo "configure:4606: checking for remove" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4761: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_remove=yes" else @@ -4649,12 +4778,12 @@ if test $ac_cv_func_remove = no; then echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 -echo "configure:4653: checking for remove in -lposix" >&5 +echo "configure:4782: checking for remove in -lposix" >&5 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'` xe_check_libs=" -lposix " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4798: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4689,10 +4818,10 @@ # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. echo $ac_n "checking for shmat""... $ac_c" 1>&6 -echo "configure:4693: checking for shmat" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4848: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_shmat=yes" else @@ -4736,12 +4865,12 @@ if test $ac_cv_func_shmat = no; then echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 -echo "configure:4740: checking for shmat in -lipc" >&5 +echo "configure:4869: checking for shmat in -lipc" >&5 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'` xe_check_libs=" -lipc " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4885: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4786,12 +4915,12 @@ # --interran@uluru.Stanford.EDU, kb@cs.umb.edu. echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6 -echo "configure:4790: checking for IceConnectionNumber in -lICE" >&5 +echo "configure:4919: checking for IceConnectionNumber in -lICE" >&5 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'` xe_check_libs=" -lICE " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4935: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4839,22 +4968,22 @@ if test "$window_system" = "none" && test -z "$with_tty"; then echo "checking for MS-Windows" 1>&6 -echo "configure:4843: checking for MS-Windows" >&5 +echo "configure:4972: checking for MS-Windows" >&5 echo $ac_n "checking for main in -lgdi32""... $ac_c" 1>&6 -echo "configure:4846: checking for main in -lgdi32" >&5 +echo "configure:4975: checking for main in -lgdi32" >&5 ac_lib_var=`echo gdi32'_'main | sed 'y%./+-%__p_%'` xe_check_libs=" -lgdi32 " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4987: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5000,7 +5129,7 @@ fi echo "checking for X defines extracted by xmkmf" 1>&6 -echo "configure:5004: checking for X defines extracted by xmkmf" >&5 +echo "configure:5133: checking for X defines extracted by xmkmf" >&5 rm -fr conftestdir if mkdir conftestdir; then cd conftestdir @@ -5032,15 +5161,15 @@ ac_safe=`echo "X11/Intrinsic.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Intrinsic.h""... $ac_c" 1>&6 -echo "configure:5036: checking for X11/Intrinsic.h" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5044: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5173: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -5064,12 +5193,12 @@ echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6 -echo "configure:5068: checking for XOpenDisplay in -lX11" >&5 +echo "configure:5197: checking for XOpenDisplay in -lX11" >&5 ac_lib_var=`echo X11'_'XOpenDisplay | sed 'y%./+-%__p_%'` xe_check_libs=" -lX11 " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:5213: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5105,12 +5234,12 @@ xe_msg_checking="for XGetFontProperty in -lX11" test -n "-b i486-linuxaout" && xe_msg_checking="$xe_msg_checking using extra libs -b i486-linuxaout" echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6 -echo "configure:5109: checking "$xe_msg_checking"" >&5 +echo "configure:5238: checking "$xe_msg_checking"" >&5 ac_lib_var=`echo X11'_'XGetFontProperty | sed 'y%./+-%__p_%'` xe_check_libs=" -lX11 -b i486-linuxaout" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:5254: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5148,12 +5277,12 @@ echo $ac_n "checking for XShapeSelectInput in -lXext""... $ac_c" 1>&6 -echo "configure:5152: checking for XShapeSelectInput in -lXext" >&5 +echo "configure:5281: checking for XShapeSelectInput in -lXext" >&5 ac_lib_var=`echo Xext'_'XShapeSelectInput | sed 'y%./+-%__p_%'` xe_check_libs=" -lXext " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:5297: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5187,12 +5316,12 @@ echo $ac_n "checking for XtOpenDisplay in -lXt""... $ac_c" 1>&6 -echo "configure:5191: checking for XtOpenDisplay in -lXt" >&5 +echo "configure:5320: checking for XtOpenDisplay in -lXt" >&5 ac_lib_var=`echo Xt'_'XtOpenDisplay | sed 'y%./+-%__p_%'` xe_check_libs=" -lXt " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:5336: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5226,14 +5355,14 @@ echo $ac_n "checking the version of X11 being used""... $ac_c" 1>&6 -echo "configure:5230: checking the version of X11 being used" >&5 +echo "configure:5359: checking the version of X11 being used" >&5 cat > conftest.$ac_ext < main(int c, char* v[]) { return c>1 ? XlibSpecificationRelease : 0; } EOF -if { (eval echo configure:5237: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5 +if { (eval echo configure:5366: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5 then ./conftest foobar; x11_release=$? else @@ -5257,15 +5386,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:5261: checking for $ac_hdr" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5269: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5398: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -5296,7 +5425,7 @@ echo $ac_n "checking for XFree86""... $ac_c" 1>&6 -echo "configure:5300: checking for XFree86" >&5 +echo "configure:5429: checking for XFree86" >&5 if test -d "/usr/X386/include" -o \ -f "/etc/XF86Config" -o \ -f "/etc/X11/XF86Config" -o \ @@ -5316,12 +5445,12 @@ test -z "$with_xmu" && { echo $ac_n "checking for XmuReadBitmapDataFromFile in -lXmu""... $ac_c" 1>&6 -echo "configure:5320: checking for XmuReadBitmapDataFromFile in -lXmu" >&5 +echo "configure:5449: checking for XmuReadBitmapDataFromFile in -lXmu" >&5 ac_lib_var=`echo Xmu'_'XmuReadBitmapDataFromFile | sed 'y%./+-%__p_%'` xe_check_libs=" -lXmu " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:5465: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5371,19 +5500,19 @@ echo $ac_n "checking for main in -lXbsd""... $ac_c" 1>&6 -echo "configure:5375: checking for main in -lXbsd" >&5 +echo "configure:5504: checking for main in -lXbsd" >&5 ac_lib_var=`echo Xbsd'_'main | sed 'y%./+-%__p_%'` xe_check_libs=" -lXbsd " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:5516: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5442,7 +5571,7 @@ esac echo "checking for session-management option" 1>&6 -echo "configure:5446: checking for session-management option" >&5; +echo "configure:5575: checking for session-management option" >&5; if test "$with_session" != "no"; then { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_SESSION @@ -5457,15 +5586,15 @@ test -z "$with_xauth" && test "$window_system" = "none" && with_xauth=no test -z "$with_xauth" && { ac_safe=`echo "X11/Xauth.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Xauth.h""... $ac_c" 1>&6 -echo "configure:5461: checking for X11/Xauth.h" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5469: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5598: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -5488,12 +5617,12 @@ } test -z "$with_xauth" && { echo $ac_n "checking for XauGetAuthByAddr in -lXau""... $ac_c" 1>&6 -echo "configure:5492: checking for XauGetAuthByAddr in -lXau" >&5 +echo "configure:5621: checking for XauGetAuthByAddr in -lXau" >&5 ac_lib_var=`echo Xau'_'XauGetAuthByAddr | sed 'y%./+-%__p_%'` xe_check_libs=" -lXau " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:5637: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5545,6 +5674,10 @@ OFFIX_O="" test "$window_system" != "x11" && with_offix=no +if test "$with_xmu" != yes -a "$with_x11" = yes; then + echo "configure: warning: No OffiX without real Xmu support" 1>&2 + with_offix=no +fi test -z "$with_offix" && with_offix=yes if test "$with_offix" = "yes"; then { test "$extra_verbose" = "yes" && cat << \EOF @@ -5564,15 +5697,15 @@ for dir in "" "Tt/" "desktop/" ; do ac_safe=`echo "${dir}tt_c.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ${dir}tt_c.h""... $ac_c" 1>&6 -echo "configure:5568: checking for ${dir}tt_c.h" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5576: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5709: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -5601,12 +5734,12 @@ xe_msg_checking="for tt_message_create in -ltt" test -n "$extra_libs" && xe_msg_checking="$xe_msg_checking using extra libs $extra_libs" echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6 -echo "configure:5605: checking "$xe_msg_checking"" >&5 +echo "configure:5738: checking "$xe_msg_checking"" >&5 ac_lib_var=`echo tt'_'tt_message_create | sed 'y%./+-%__p_%'` xe_check_libs=" -ltt $extra_libs" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:5754: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5666,15 +5799,15 @@ test -z "$with_cde" && { ac_safe=`echo "Dt/Dt.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for Dt/Dt.h""... $ac_c" 1>&6 -echo "configure:5670: checking for Dt/Dt.h" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5678: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5811: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -5697,12 +5830,12 @@ } test -z "$with_cde" && { echo $ac_n "checking for DtDndDragStart in -lDtSvc""... $ac_c" 1>&6 -echo "configure:5701: checking for DtDndDragStart in -lDtSvc" >&5 +echo "configure:5834: checking for DtDndDragStart in -lDtSvc" >&5 ac_lib_var=`echo DtSvc'_'DtDndDragStart | sed 'y%./+-%__p_%'` xe_check_libs=" -lDtSvc " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:5850: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5753,13 +5886,13 @@ if test "$with_x11" = "yes"; then echo "checking for X11 graphics libraries" 1>&6 -echo "configure:5757: checking for X11 graphics libraries" >&5 +echo "configure:5890: checking for X11 graphics libraries" >&5 echo $ac_n "checking for Xpm - no older than 3.4f""... $ac_c" 1>&6 -echo "configure:5760: checking for Xpm - no older than 3.4f" >&5 +echo "configure:5893: checking for Xpm - no older than 3.4f" >&5 xe_check_libs=-lXpm test -z "$with_xpm" && { cat > conftest.$ac_ext < int main(int c, char **v) { @@ -5769,7 +5902,7 @@ 0 ; } EOF -if { (eval echo configure:5773: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5 +if { (eval echo configure:5906: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5 then ./conftest foobar; xpm_status=$?; if test "$xpm_status" = "0"; then with_xpm=yes; else with_xpm=no; fi; @@ -5807,15 +5940,15 @@ 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:5811: checking for compface.h" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5819: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5952: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -5838,12 +5971,12 @@ } test -z "$with_xface" && { echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6 -echo "configure:5842: checking for UnGenFace in -lcompface" >&5 +echo "configure:5975: 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; then +if { (eval echo configure:5991: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5905,15 +6038,15 @@ test -z "$with_jpeg" && { ac_safe=`echo "jpeglib.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for jpeglib.h""... $ac_c" 1>&6 -echo "configure:5909: checking for jpeglib.h" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5917: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6050: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -5936,12 +6069,12 @@ } test -z "$with_jpeg" && { echo $ac_n "checking for jpeg_destroy_decompress in -ljpeg""... $ac_c" 1>&6 -echo "configure:5940: checking for jpeg_destroy_decompress in -ljpeg" >&5 +echo "configure:6073: 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; then +if { (eval echo configure:6089: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5988,15 +6121,15 @@ test -z "$with_png" && { ac_safe=`echo "png.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for png.h""... $ac_c" 1>&6 -echo "configure:5992: checking for png.h" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6000: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6133: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -6018,10 +6151,10 @@ fi } test -z "$with_png" && { echo $ac_n "checking for pow""... $ac_c" 1>&6 -echo "configure:6022: checking for pow" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:6181: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_pow=yes" else @@ -6069,12 +6202,12 @@ xe_msg_checking="for png_read_image in -lpng" test -n "$extra_libs" && xe_msg_checking="$xe_msg_checking using extra libs $extra_libs" echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6 -echo "configure:6073: checking "$xe_msg_checking"" >&5 +echo "configure:6206: checking "$xe_msg_checking"" >&5 ac_lib_var=`echo png'_'png_read_image | sed 'y%./+-%__p_%'` xe_check_libs=" -lpng $extra_libs" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:6222: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6127,12 +6260,12 @@ xe_msg_checking="for TIFFReadScanline in -ltiff" test -n "$extra_libs" && xe_msg_checking="$xe_msg_checking using extra libs $extra_libs" echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6 -echo "configure:6131: checking "$xe_msg_checking"" >&5 +echo "configure:6264: checking "$xe_msg_checking"" >&5 ac_lib_var=`echo tiff'_'TIFFReadScanline | sed 'y%./+-%__p_%'` xe_check_libs=" -ltiff $extra_libs" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:6280: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6181,12 +6314,12 @@ echo $ac_n "checking for XawScrollbarSetThumb in -lXaw""... $ac_c" 1>&6 -echo "configure:6185: checking for XawScrollbarSetThumb in -lXaw" >&5 +echo "configure:6318: checking for XawScrollbarSetThumb in -lXaw" >&5 ac_lib_var=`echo Xaw'_'XawScrollbarSetThumb | sed 'y%./+-%__p_%'` xe_check_libs=" -lXaw " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:6334: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6221,15 +6354,15 @@ ac_safe=`echo "Xm/Xm.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for Xm/Xm.h""... $ac_c" 1>&6 -echo "configure:6225: checking for Xm/Xm.h" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6233: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6366: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -6246,12 +6379,12 @@ echo "$ac_t""yes" 1>&6 echo $ac_n "checking for XmStringFree in -lXm""... $ac_c" 1>&6 -echo "configure:6250: checking for XmStringFree in -lXm" >&5 +echo "configure:6383: 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; then +if { (eval echo configure:6399: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6534,7 +6667,7 @@ if test "$with_mule" = "yes" ; then echo "checking for Mule-related features" 1>&6 -echo "configure:6538: checking for Mule-related features" >&5 +echo "configure:6671: checking for Mule-related features" >&5 { test "$extra_verbose" = "yes" && cat << \EOF Defining MULE EOF @@ -6559,15 +6692,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:6563: checking for $ac_hdr" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6571: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6704: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -6598,12 +6731,12 @@ echo $ac_n "checking for strerror in -lintl""... $ac_c" 1>&6 -echo "configure:6602: checking for strerror in -lintl" >&5 +echo "configure:6735: 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; then +if { (eval echo configure:6751: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6647,19 +6780,19 @@ echo "checking for Mule input methods" 1>&6 -echo "configure:6651: checking for Mule input methods" >&5 +echo "configure:6784: checking for Mule input methods" >&5 test -z "$with_xim" -a "$opsys" != "sol2" && with_xim=no case "$with_xim" in "" | "yes" ) echo "checking for XIM" 1>&6 -echo "configure:6655: checking for XIM" >&5 +echo "configure:6788: checking for XIM" >&5 echo $ac_n "checking for XmImMbLookupString in -lXm""... $ac_c" 1>&6 -echo "configure:6658: checking for XmImMbLookupString in -lXm" >&5 +echo "configure:6791: 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; then +if { (eval echo configure:6807: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6735,15 +6868,15 @@ if test "$with_xfs" = "yes" ; then echo "checking for XFontSet" 1>&6 -echo "configure:6739: checking for XFontSet" >&5 +echo "configure:6872: checking for XFontSet" >&5 echo $ac_n "checking for XmbDrawString in -lX11""... $ac_c" 1>&6 -echo "configure:6742: checking for XmbDrawString in -lX11" >&5 +echo "configure:6875: 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; then +if { (eval echo configure:6891: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6794,15 +6927,15 @@ test "$with_wnn6" = "yes" && with_wnn=yes # wnn6 implies wnn support test -z "$with_wnn" && { ac_safe=`echo "wnn/jllib.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for wnn/jllib.h""... $ac_c" 1>&6 -echo "configure:6798: checking for wnn/jllib.h" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6806: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6939: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -6827,10 +6960,10 @@ for ac_func in crypt do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6831: checking for $ac_func" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:6990: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6882,12 +7015,12 @@ test "$ac_cv_func_crypt" != "yes" && { echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6 -echo "configure:6886: checking for crypt in -lcrypt" >&5 +echo "configure:7019: 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; then +if { (eval echo configure:7035: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6932,12 +7065,12 @@ fi test -z "$with_wnn" && { echo $ac_n "checking for jl_dic_list_e in -lwnn""... $ac_c" 1>&6 -echo "configure:6936: checking for jl_dic_list_e in -lwnn" >&5 +echo "configure:7069: 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; then +if { (eval echo configure:7085: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6985,12 +7118,12 @@ fi echo $ac_n "checking for jl_fi_dic_list in -lwnn""... $ac_c" 1>&6 -echo "configure:6989: checking for jl_fi_dic_list in -lwnn" >&5 +echo "configure:7122: checking for jl_fi_dic_list in -lwnn" >&5 ac_lib_var=`echo wnn'_'jl_fi_dic_list | sed 'y%./+-%__p_%'` xe_check_libs=" -lwnn " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:7138: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7033,15 +7166,15 @@ test -z "$with_canna" && { ac_safe=`echo "canna/RK.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for canna/RK.h""... $ac_c" 1>&6 -echo "configure:7037: checking for canna/RK.h" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7045: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7178: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -7064,12 +7197,12 @@ } test -z "$with_canna" && { echo $ac_n "checking for RkBgnBun in -lRKC""... $ac_c" 1>&6 -echo "configure:7068: checking for RkBgnBun in -lRKC" >&5 +echo "configure:7201: 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; then +if { (eval echo configure:7217: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7103,12 +7236,12 @@ } test -z "$with_canna" && { echo $ac_n "checking for jrKanjiControl in -lcanna""... $ac_c" 1>&6 -echo "configure:7107: checking for jrKanjiControl in -lcanna" >&5 +echo "configure:7240: 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; then +if { (eval echo configure:7256: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7168,12 +7301,12 @@ libs_x="-lXm $libs_x" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-lXm\" to \$libs_x"; fi echo $ac_n "checking for layout_object_getvalue in -li18n""... $ac_c" 1>&6 -echo "configure:7172: checking for layout_object_getvalue in -li18n" >&5 +echo "configure:7305: 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; then +if { (eval echo configure:7321: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7257,10 +7390,10 @@ for ac_func in cbrt closedir dup2 eaccess fmod fpathconf frexp ftime gethostname getpagesize gettimeofday getcwd getwd logb lrand48 matherr mkdir mktime perror poll random rename res_init rint rmdir select setitimer setpgid setlocale setsid sigblock sighold sigprocmask strcasecmp strerror tzset ulimit usleep utimes waitpid do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7261: checking for $ac_func" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:7420: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7320,10 +7453,10 @@ for ac_func in realpath do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7324: checking for $ac_func" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:7483: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7379,16 +7512,16 @@ esac echo $ac_n "checking whether netdb declares h_errno""... $ac_c" 1>&6 -echo "configure:7383: checking whether netdb declares h_errno" >&5 -cat > conftest.$ac_ext <&5 +cat > conftest.$ac_ext < int main() { return h_errno; ; return 0; } EOF -if { (eval echo configure:7392: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:7525: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* echo "$ac_t""yes" 1>&6 { test "$extra_verbose" = "yes" && cat << \EOF @@ -7408,16 +7541,16 @@ rm -f conftest* echo $ac_n "checking for sigsetjmp""... $ac_c" 1>&6 -echo "configure:7412: checking for sigsetjmp" >&5 -cat > conftest.$ac_ext <&5 +cat > conftest.$ac_ext < int main() { sigjmp_buf bar; sigsetjmp (bar, 0); ; return 0; } EOF -if { (eval echo configure:7421: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:7554: \"$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 @@ -7437,11 +7570,11 @@ rm -f conftest* echo $ac_n "checking whether localtime caches TZ""... $ac_c" 1>&6 -echo "configure:7441: checking whether localtime caches TZ" >&5 +echo "configure:7574: checking whether localtime caches TZ" >&5 if test "$ac_cv_func_tzset" = "yes"; then cat > conftest.$ac_ext < #if STDC_HEADERS @@ -7476,7 +7609,7 @@ exit (0); } EOF -if { (eval echo configure:7480: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5 +if { (eval echo configure:7613: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5 then emacs_cv_localtime_cache=no else @@ -7505,9 +7638,9 @@ if test "$HAVE_TIMEVAL" = "yes"; then echo $ac_n "checking whether gettimeofday cannot accept two arguments""... $ac_c" 1>&6 -echo "configure:7509: checking whether gettimeofday cannot accept two arguments" >&5 -cat > conftest.$ac_ext <&5 +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:7666: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* echo "$ac_t""no" 1>&6 else @@ -7551,19 +7684,19 @@ echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:7555: checking for inline" >&5 +echo "configure:7688: 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:7700: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -7613,17 +7746,17 @@ # 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:7617: checking for working alloca.h" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF -if { (eval echo configure:7627: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:7760: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_cv_header_alloca_h=yes else @@ -7647,10 +7780,10 @@ fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:7651: checking for alloca" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:7810: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_cv_func_alloca_works=yes else @@ -7712,10 +7845,10 @@ echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:7716: checking whether alloca needs Cray hooks" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext <&6 -echo "configure:7743: checking for $ac_func" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:7902: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7795,10 +7928,10 @@ fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:7799: checking stack direction for C alloca" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5 +if { (eval echo configure:7954: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5 then ac_cv_c_stack_direction=1 else @@ -7845,15 +7978,15 @@ ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for vfork.h""... $ac_c" 1>&6 -echo "configure:7849: checking for vfork.h" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7857: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7990: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -7881,10 +8014,10 @@ fi echo $ac_n "checking for working vfork""... $ac_c" 1>&6 -echo "configure:7885: checking for working vfork" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < @@ -7979,7 +8112,7 @@ } } EOF -if { (eval echo configure:7983: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5 +if { (eval echo configure:8116: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5 then ac_cv_func_vfork_works=yes else @@ -8004,10 +8137,10 @@ echo $ac_n "checking for working strcoll""... $ac_c" 1>&6 -echo "configure:8008: checking for working strcoll" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < main () @@ -8017,7 +8150,7 @@ strcoll ("123", "456") >= 0); } EOF -if { (eval echo configure:8021: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5 +if { (eval echo configure:8154: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5 then ac_cv_func_strcoll_works=yes else @@ -8044,10 +8177,10 @@ for ac_func in getpgrp do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8048: checking for $ac_func" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:8207: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8098,10 +8231,10 @@ done echo $ac_n "checking whether getpgrp takes no argument""... $ac_c" 1>&6 -echo "configure:8102: checking whether getpgrp takes no argument" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5 +if { (eval echo configure:8293: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5 then ac_cv_func_getpgrp_void=yes else @@ -8182,10 +8315,10 @@ echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:8186: checking for working mmap" >&5 +echo "configure:8319: checking for working mmap" >&5 case "$opsys" in ultrix* ) have_mmap=no ;; *) cat > conftest.$ac_ext < #include @@ -8218,7 +8351,7 @@ return 1; } EOF -if { (eval echo configure:8222: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5 +if { (eval echo configure:8355: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5 then have_mmap=yes else @@ -8252,15 +8385,15 @@ ac_safe=`echo "termios.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for termios.h""... $ac_c" 1>&6 -echo "configure:8256: checking for termios.h" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8264: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8397: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -8303,15 +8436,15 @@ echo "$ac_t""no" 1>&6 ac_safe=`echo "termio.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for termio.h""... $ac_c" 1>&6 -echo "configure:8307: checking for termio.h" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8315: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8448: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -8343,10 +8476,10 @@ echo $ac_n "checking for socket""... $ac_c" 1>&6 -echo "configure:8347: checking for socket" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:8506: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_socket=yes" else @@ -8384,15 +8517,15 @@ echo "$ac_t""yes" 1>&6 ac_safe=`echo "netinet/in.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for netinet/in.h""... $ac_c" 1>&6 -echo "configure:8388: checking for netinet/in.h" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8396: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8529: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -8409,15 +8542,15 @@ echo "$ac_t""yes" 1>&6 ac_safe=`echo "arpa/inet.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for arpa/inet.h""... $ac_c" 1>&6 -echo "configure:8413: checking for arpa/inet.h" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8421: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8554: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -8442,9 +8575,9 @@ } echo $ac_n "checking "for sun_len member in struct sockaddr_un"""... $ac_c" 1>&6 -echo "configure:8446: checking "for sun_len member in struct sockaddr_un"" >&5 +echo "configure:8579: checking "for sun_len member in struct sockaddr_un"" >&5 cat > conftest.$ac_ext < @@ -8455,7 +8588,7 @@ static struct sockaddr_un x; x.sun_len = 1; ; return 0; } EOF -if { (eval echo configure:8459: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:8592: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* echo "$ac_t""yes" 1>&6; { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_SOCKADDR_SUN_LEN @@ -8486,10 +8619,10 @@ echo $ac_n "checking for msgget""... $ac_c" 1>&6 -echo "configure:8490: checking for msgget" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:8649: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_msgget=yes" else @@ -8527,15 +8660,15 @@ echo "$ac_t""yes" 1>&6 ac_safe=`echo "sys/ipc.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for sys/ipc.h""... $ac_c" 1>&6 -echo "configure:8531: checking for sys/ipc.h" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8539: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8672: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -8552,15 +8685,15 @@ echo "$ac_t""yes" 1>&6 ac_safe=`echo "sys/msg.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for sys/msg.h""... $ac_c" 1>&6 -echo "configure:8556: checking for sys/msg.h" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8564: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8697: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -8598,15 +8731,15 @@ ac_safe=`echo "dirent.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for dirent.h""... $ac_c" 1>&6 -echo "configure:8602: checking for dirent.h" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8610: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8743: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -8633,15 +8766,15 @@ echo "$ac_t""no" 1>&6 ac_safe=`echo "sys/dir.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for sys/dir.h""... $ac_c" 1>&6 -echo "configure:8637: checking for sys/dir.h" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8645: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8778: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -8674,15 +8807,15 @@ ac_safe=`echo "nlist.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for nlist.h""... $ac_c" 1>&6 -echo "configure:8678: checking for nlist.h" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8686: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8819: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -8712,7 +8845,7 @@ echo "checking "for sound support"" 1>&6 -echo "configure:8716: checking "for sound support"" >&5 +echo "configure:8849: checking "for sound support"" >&5 case "$with_sound" in native | both ) with_native_sound=yes;; nas | no ) with_native_sound=no;; @@ -8723,15 +8856,15 @@ if test -n "$native_sound_lib"; then ac_safe=`echo "multimedia/audio_device.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for multimedia/audio_device.h""... $ac_c" 1>&6 -echo "configure:8727: checking for multimedia/audio_device.h" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8735: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8868: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -8779,12 +8912,12 @@ if test -z "$native_sound_lib"; then echo $ac_n "checking for ALopenport in -laudio""... $ac_c" 1>&6 -echo "configure:8783: checking for ALopenport in -laudio" >&5 +echo "configure:8916: 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; then +if { (eval echo configure:8932: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8826,12 +8959,12 @@ if test -z "$native_sound_lib"; then echo $ac_n "checking for AOpenAudio in -lAlib""... $ac_c" 1>&6 -echo "configure:8830: checking for AOpenAudio in -lAlib" >&5 +echo "configure:8963: 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; then +if { (eval echo configure:8979: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8880,15 +9013,15 @@ for dir in "machine" "sys" "linux"; do ac_safe=`echo "${dir}/soundcard.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ${dir}/soundcard.h""... $ac_c" 1>&6 -echo "configure:8884: checking for ${dir}/soundcard.h" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8892: \"$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` if test -z "$ac_err"; then rm -rf conftest* @@ -8958,7 +9091,7 @@ fi libs_x="-laudio $libs_x" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-laudio\" to \$libs_x"; fi cat > conftest.$ac_ext < EOF @@ -8985,7 +9118,7 @@ if test "$with_tty" = "yes" ; then echo "checking for TTY-related features" 1>&6 -echo "configure:8989: checking for TTY-related features" >&5 +echo "configure:9122: checking for TTY-related features" >&5 { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_TTY EOF @@ -9001,12 +9134,12 @@ if test -z "$with_ncurses"; then echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6 -echo "configure:9005: checking for tgetent in -lncurses" >&5 +echo "configure:9138: 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; then +if { (eval echo configure:9154: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9050,15 +9183,15 @@ ac_safe=`echo "ncurses/curses.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ncurses/curses.h""... $ac_c" 1>&6 -echo "configure:9054: checking for ncurses/curses.h" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9062: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9195: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -9080,15 +9213,15 @@ ac_safe=`echo "ncurses/term.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ncurses/term.h""... $ac_c" 1>&6 -echo "configure:9084: checking for ncurses/term.h" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9092: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9225: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -9118,15 +9251,15 @@ c_switch_site="$c_switch_site -I/usr/include/ncurses" ac_safe=`echo "ncurses/curses.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ncurses/curses.h""... $ac_c" 1>&6 -echo "configure:9122: checking for ncurses/curses.h" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9130: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9263: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -9161,12 +9294,12 @@ for lib in curses termlib termcap; do echo $ac_n "checking for tgetent in -l$lib""... $ac_c" 1>&6 -echo "configure:9165: checking for tgetent in -l$lib" >&5 +echo "configure:9298: 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; then +if { (eval echo configure:9314: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9208,12 +9341,12 @@ else echo $ac_n "checking for tgetent in -lcurses""... $ac_c" 1>&6 -echo "configure:9212: checking for tgetent in -lcurses" >&5 +echo "configure:9345: 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; then +if { (eval echo configure:9361: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9242,12 +9375,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6 -echo "configure:9246: checking for tgetent in -ltermcap" >&5 +echo "configure:9379: 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; then +if { (eval echo configure:9395: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9306,15 +9439,15 @@ test -z "$with_gpm" && { ac_safe=`echo "gpm.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for gpm.h""... $ac_c" 1>&6 -echo "configure:9310: checking for gpm.h" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9318: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9451: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -9337,12 +9470,12 @@ } test -z "$with_gpm" && { echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6 -echo "configure:9341: checking for Gpm_Open in -lgpm" >&5 +echo "configure:9474: 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; then +if { (eval echo configure:9490: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9402,17 +9535,17 @@ echo "checking for database support" 1>&6 -echo "configure:9406: checking for database support" >&5 +echo "configure:9539: checking for database support" >&5 if test "$with_database_gnudbm" != "no"; then echo $ac_n "checking for dbm_open in -lgdbm""... $ac_c" 1>&6 -echo "configure:9411: checking for dbm_open in -lgdbm" >&5 +echo "configure:9544: 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; then +if { (eval echo configure:9560: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9445,10 +9578,10 @@ if test "$with_database_gnudbm" != "yes"; then echo $ac_n "checking for dbm_open""... $ac_c" 1>&6 -echo "configure:9449: checking for dbm_open" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:9608: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_dbm_open=yes" else @@ -9507,10 +9640,10 @@ if test "$with_database_dbm" != "no"; then echo $ac_n "checking for dbm_open""... $ac_c" 1>&6 -echo "configure:9511: checking for dbm_open" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:9670: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_dbm_open=yes" else @@ -9554,12 +9687,12 @@ if test "$need_libdbm" != "no"; then echo $ac_n "checking for dbm_open in -ldbm""... $ac_c" 1>&6 -echo "configure:9558: checking for dbm_open in -ldbm" >&5 +echo "configure:9691: 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; then +if { (eval echo configure:9707: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9607,10 +9740,10 @@ if test "$with_database_berkdb" != "no"; then echo $ac_n "checking for dbopen""... $ac_c" 1>&6 -echo "configure:9611: checking for dbopen" >&5 - -cat > conftest.$ac_ext <&5 + +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:9770: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_dbopen=yes" else @@ -9654,12 +9787,12 @@ if test "$need_libdb" != "no"; then echo $ac_n "checking for dbopen in -ldb""... $ac_c" 1>&6 -echo "configure:9658: checking for dbopen in -ldb" >&5 +echo "configure:9791: checking for dbopen in -ldb" >&5 ac_lib_var=`echo db'_'dbopen | sed 'y%./+-%__p_%'` xe_check_libs=" -ldb " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:9807: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9694,7 +9827,7 @@ if test "$with_database_berkdb" = "yes"; then for path in "db/db.h" "db.h"; do cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:9849: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* db_h_path="$path"; break else @@ -9764,12 +9897,12 @@ if test "$with_socks" = "yes"; then echo $ac_n "checking for SOCKSinit in -lsocks""... $ac_c" 1>&6 -echo "configure:9768: checking for SOCKSinit in -lsocks" >&5 +echo "configure:9901: 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; then +if { (eval echo configure:9917: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else diff -r e92abcaa252b -r 084402c475ba configure.in --- a/configure.in Mon Aug 13 10:20:29 2007 +0200 +++ b/configure.in Mon Aug 13 10:21:18 2007 +0200 @@ -1919,6 +1919,14 @@ dnl Do the opsystem or machine files prohibit the use of the GNU malloc? dnl Assume not, until told otherwise. GNU_MALLOC=yes +doug_lea_malloc=yes +AC_CHECK_FUNC(malloc_get_state, ,doug_lea_malloc=no) +AC_CHECK_FUNC(malloc_set_state, ,doug_lea_malloc=no) +AC_MSG_CHECKING(whether __after_morecore_hook exists) +AC_TRY_LINK([extern void (* __after_morecore_hook)();],[__after_morecore_hook = 0], + [AC_MSG_RESULT(yes)], + [AC_MSG_RESULT(no) + doug_lea_malloc=no]) if test "$system_malloc" = "yes" ; then GNU_MALLOC=no GNU_MALLOC_reason=" @@ -1933,6 +1941,14 @@ (User chose to use Debugging Malloc)." fi +if test "$doug_lea_malloc" = "yes" ; then + if test "$GNU_MALLOC" = yes ; then + GNU_MALLOC_reason=" + (Using Doug Lea's new malloc from the GNU C Library.)" + fi + AC_DEFINE(DOUG_LEA_MALLOC) +fi + dnl Some other nice autoconf tests. If you add a test here which dnl should make an entry in src/config.h, do not forget to add an dnl #undef clause to src/config.h.in for autoconf to modify. @@ -2327,9 +2343,13 @@ AC_SUBST(libs_xauth) dnl Always compile OffiX except --without-offix is given or no -dnl x11 support is compiled in +dnl x11 support is compiled in or no standard Xmu. OFFIX_O="" test "$window_system" != "x11" && with_offix=no +if test "$with_xmu" != yes -a "$with_x11" = yes; then + AC_MSG_WARN([No OffiX without real Xmu support]) + with_offix=no +fi test -z "$with_offix" && with_offix=yes if test "$with_offix" = "yes"; then AC_DEFINE(HAVE_OFFIX_DND) diff -r e92abcaa252b -r 084402c475ba lib-src/ChangeLog --- a/lib-src/ChangeLog Mon Aug 13 10:20:29 2007 +0200 +++ b/lib-src/ChangeLog Mon Aug 13 10:21:18 2007 +0200 @@ -1,3 +1,7 @@ +1998-02-15 SL Baur + + * getopt.c (_getopt_internal): Add braces for clarity. + 1998-01-13 Martin Buchholz * lib-src/add-little-package.sh: diff -r e92abcaa252b -r 084402c475ba lib-src/getopt.c --- a/lib-src/getopt.c Mon Aug 13 10:20:29 2007 +0200 +++ b/lib-src/getopt.c Mon Aug 13 10:21:18 2007 +0200 @@ -681,7 +681,7 @@ optarg = nameend + 1; else { - if (opterr) + if (opterr) { if (argv[optind - 1][1] == '-') /* --option */ fprintf (stderr, @@ -692,7 +692,7 @@ fprintf (stderr, _("%s: option `%c%s' doesn't allow an argument\n"), argv[0], argv[optind - 1][0], pfound->name); - + } nextchar += strlen (nextchar); optopt = pfound->val; diff -r e92abcaa252b -r 084402c475ba lisp/ChangeLog --- a/lisp/ChangeLog Mon Aug 13 10:20:29 2007 +0200 +++ b/lisp/ChangeLog Mon Aug 13 10:21:18 2007 +0200 @@ -1,3 +1,40 @@ +1997-12-22 Christoph Wedler + + * prim/register.el (view-register): Show register type file-query. + +1998-02-17 Kyle Jones + + * mode-motion.el (mode-motion-highlight-internal): + save-excursion inside save-window-exucrsion form to + hide buffer point changes from save-window-excursion. + Prevents display flickering when the mouse pointer + moves. + +1998-02-17 Didier Verna + + * mouse.el (default-mouse-track-set-point-in-window): rewrote this + function to handle correctly the case of a toolbar one side of the + window: scrolling will not necessarily happen. + +1998-02-17 Kyle Jones + + * files.el (after-find-file): Restore missing argument + to format that provides filename for "... consider M-x + recover-file" message. Also call `message' with "%s" + as the first arg instead of an arbitrary string. + +1998-02-18 SL Baur + + * about.el (about-hackers): Various additions. + +1998-02-15 SL Baur + + * autoload.el (generate-file-autoloads-1): Don't force an extra + line out when copying on-the-same line autoloads. + + * x-menubar.el (default-menubar): Add Sokoban to the menubar if it + is installed. + 1998-02-14 Martin Buchholz * x11/x-win-xfree86.el (x-win-init-xfree86): diff -r e92abcaa252b -r 084402c475ba lisp/about.el --- a/lisp/about.el Mon Aug 13 10:20:29 2007 +0200 +++ b/lisp/about.el Mon Aug 13 10:21:18 2007 +0200 @@ -1268,6 +1268,7 @@ (print-short "Glynn Clements" "glynn@sensei.co.uk") (print-short "Richard Cognot" "cognot@ensg.u-nancy.fr") (print-short "Andy Cohen" "cohen@andy.bu.edu") + (print-short "Richard Coleman" "coleman@math.gatech.edu") (print-short "Andrew J Cosgriff" "ajc@bing.wattle.id.au") (print-short "Nick J. Crabtree" "nickc@scopic.com") (print-short "Christopher Davis" "ckd@kei.com") @@ -1329,6 +1330,7 @@ (print-short "Robin Jeffries" "robin.jeffries@sun.com") (print-short "Philip Johnson" "johnson@uhics.ics.Hawaii.Edu") (print-short "J. Kean Johnston" "jkj@paradigm-sa.com") + (print-short "John W. Jones" "jj@asu.edu") (print-short "Andreas Kaempf" "andreas@sccon.com") (print-short "Yoshiaki Kasahara" "kasahara@nc.kyushu-u.ac.jp") (print-short "Kirill M. Katsnelson" "kkm@kis.ru") @@ -1441,6 +1443,7 @@ (print-short "Charles G. Waldman" "cgw@pgt.com") (print-short "David Walte" "djw18@cornell.edu") (print-short "Peter Ware" "ware@cis.ohio-state.edu") + (print-short "Christoph Wedler" "wedler@fmi.uni-passau.de") (print-short "Yoav Weiss" "yoav@zeus.datasrv.co.il") (print-short "Rod Whitby" "rwhitby@asc.corp.mot.com") (print-short "Rich Williams" "rdw@hplb.hpl.hp.com") diff -r e92abcaa252b -r 084402c475ba lisp/autoload.el --- a/lisp/autoload.el Mon Aug 13 10:20:29 2007 +0200 +++ b/lisp/autoload.el Mon Aug 13 10:21:18 2007 +0200 @@ -277,7 +277,7 @@ )) ;; Copy the rest of the line to the output. (let ((begin (point))) - (terpri outbuf) + ;; (terpri outbuf) (cond ((looking-at "immediate\\s *$") ; XEmacs ;; This is here so that you can automatically ;; have small hook functions copied to diff -r e92abcaa252b -r 084402c475ba lisp/files.el --- a/lisp/files.el Mon Aug 13 10:20:29 2007 +0200 +++ b/lisp/files.el Mon Aug 13 10:21:18 2007 +0200 @@ -1128,8 +1128,9 @@ (file-newer-than-file-p (make-auto-save-file-name) buffer-file-name)) (format "%s has auto save data; consider M-x recover-file" + (file-name-nondirectory buffer-file-name)) (setq not-serious t) - (if error (gettext "(New file)") nil)))) + (if error (gettext "(New file)") nil))) ((not error) (setq not-serious t) (gettext "Note: file is write protected")) @@ -1155,7 +1156,7 @@ nil)))) (if msg (progn - (message msg) + (message "%s" msg) (or not-serious (sit-for 1 t))))) (if (and auto-save-default (not noauto)) (auto-save-mode t))) diff -r e92abcaa252b -r 084402c475ba lisp/mode-motion.el --- a/lisp/mode-motion.el Mon Aug 13 10:20:29 2007 +0200 +++ b/lisp/mode-motion.el Mon Aug 13 10:21:18 2007 +0200 @@ -80,7 +80,12 @@ (set-buffer buffer) (mode-motion-ensure-extent-ok event) (if point - (progn + ;; Use save-excursion here to avoid + ;; save-window-excursion seeing a change in + ;; window point's value which would make the + ;; display code do a whole lot of useless work + ;; and making the display flicker horribly. + (save-excursion (goto-char point) (condition-case nil (funcall backward) (error nil)) (setq point (point)) diff -r e92abcaa252b -r 084402c475ba lisp/mouse.el --- a/lisp/mouse.el Mon Aug 13 10:20:29 2007 +0200 +++ b/lisp/mouse.el Mon Aug 13 10:21:18 2007 +0200 @@ -745,14 +745,51 @@ (defvar default-mouse-track-result nil) (defvar default-mouse-track-down-event nil) +;; D. Verna Feb. 17 1998 +;; This function used to assume that when (event-window event) differs from +;; window, we have to scroll. This is WRONG, for instance when there are +;; toolbars on the side, in which case window-event returns nil. (defun default-mouse-track-set-point-in-window (event window) - (if (not (and (not (event-over-modeline-p event)) - (eq (event-window event) window) - (let ((p (event-closest-point event))) - (and p (pos-visible-in-window-p p window))))) - nil - (mouse-set-point event) - t)) + (if (event-over-modeline-p event) + nil ;; Scroll + ;; Not over a modeline + (if (eq (event-window event) window) + (let ((p (event-closest-point event))) + (if (or (not p) (not (pos-visible-in-window-p p window))) + nil ;; Scroll + (mouse-set-point event) + t)) + ;; Not over a modeline, not the same window. Check if the Y position + ;; is still overlapping the original window. + (let* ((edges (window-pixel-edges window)) + (row (event-y-pixel event)) + (text-start (nth 1 edges)) + (text-end (+ (nth 3 edges)))) + (if (or (< row text-start) + (> row text-end)) + nil ;; Scroll + ;; The Y pos in overlapping the original window. Check however if + ;; the position is really visible, because there could be a + ;; scrollbar or a modeline at this place. + ;; Find the mean line height (height / lines nb), and approximate + ;; the line number for Y pos. + (select-window window) + (let ((line (/ (* (- row text-start) (window-height)) + (- text-end text-start)))) + (if (not (save-excursion + (goto-char (window-start)) + (pos-visible-in-window-p + (point-at-bol (+ 1 line))))) + nil ;; Scroll + ;; OK, we can go to that position + (goto-char (window-start)) + (forward-line line) + ;; On the right side: go to end-of-line. + (when (>= (event-x-pixel event) (nth 2 edges)) + (goto-char (point-at-eol))) + t)))) + ))) + (defun default-mouse-track-scroll-and-set-point (event window) (select-window window) diff -r e92abcaa252b -r 084402c475ba lisp/register.el --- a/lisp/register.el Mon Aug 13 10:20:29 2007 +0200 +++ b/lisp/register.el Mon Aug 13 10:21:18 2007 +0200 @@ -194,6 +194,13 @@ (prin1 (cdr val)) (princ ".")) + ((and (consp val) (eq (car val) 'file-query)) + (princ "a file-query reference:\nfile ") + (prin1 (car (cdr val))) + (princ ",\nposition ") + (princ (car (cdr (cdr val)))) + (princ ".")) + ((consp val) (princ "the rectangle:\n") (while val diff -r e92abcaa252b -r 084402c475ba lisp/x-menubar.el --- a/lisp/x-menubar.el Mon Aug 13 10:20:29 2007 +0200 +++ b/lisp/x-menubar.el Mon Aug 13 10:21:18 2007 +0200 @@ -165,6 +165,8 @@ :active (fboundp 'xmine)] ["Tetris" tetris :active (fboundp 'tetris)] + ["Sokoban" sokoban + :active (fboundp 'sokoban)] ["Quote from Zippy" yow :active (fboundp 'yow)] ["Psychoanalyst" doctor diff -r e92abcaa252b -r 084402c475ba man/ChangeLog --- a/man/ChangeLog Mon Aug 13 10:20:29 2007 +0200 +++ b/man/ChangeLog Mon Aug 13 10:21:18 2007 +0200 @@ -1,3 +1,8 @@ +1998-02-15 Karl M. Hegbloom + + * lispref/searching.texi (Regular Expressions): Document the + recent regular expression syntax extensions. + 1998-02-10 Olivier Galibert * internals/internals.texi: Remove all mocklisp references. diff -r e92abcaa252b -r 084402c475ba man/lispref/searching.texi --- a/man/lispref/searching.texi Mon Aug 13 10:20:29 2007 +0200 +++ b/man/lispref/searching.texi Mon Aug 13 10:21:18 2007 +0200 @@ -161,6 +161,21 @@ a regexp is a very powerful operation. This section explains how to write regexps; the following section says how to search for them. + To gain a thorough understanding of regular expressions and how to use +them to best advantage, we recommend that you study @cite{Mastering +Regular Expressions, by Jeffrey E.F. Friedl, O'Reilly and Associates, +1997}. (It's known as the "Hip Owls" book, because of the picture on its +cover.) You might also read the manuals to @ref{(gawk)Top}, +@ref{(ed)Top}, @cite{sed}, @cite{grep}, @ref{(perl)Top}, +@ref{(regex)Top}, @ref{(rx)Top}, @cite{pcre}, and @ref{(flex)Top}, which +also make good use of regular expressions. + + The XEmacs regular expression syntax most closely resembles that of +@cite{ed}, or @cite{grep}, the GNU versions of which all utilize the GNU +@cite{regex} library. XEmacs' version of @cite{regex} has recently been +extended with some perl--like capabilities, described in the next +section. + @menu * Syntax of Regexps:: Rules for writing regular expressions. * Regexp Example:: Illustrates regular expression syntax. @@ -205,26 +220,28 @@ @item * @cindex @samp{*} in regexp -is not a construct by itself; it is a suffix operator that means to -repeat the preceding regular expression as many times as possible. In -@samp{fo*}, the @samp{*} applies to the @samp{o}, so @samp{fo*} matches -one @samp{f} followed by any number of @samp{o}s. The case of zero -@samp{o}s is allowed: @samp{fo*} does match @samp{f}.@refill +is not a construct by itself; it is a quantifying suffix operator that +means to repeat the preceding regular expression as many times as +possible. In @samp{fo*}, the @samp{*} applies to the @samp{o}, so +@samp{fo*} matches one @samp{f} followed by any number of @samp{o}s. +The case of zero @samp{o}s is allowed: @samp{fo*} does match +@samp{f}.@refill @samp{*} always applies to the @emph{smallest} possible preceding expression. Thus, @samp{fo*} has a repeating @samp{o}, not a repeating @samp{fo}.@refill -The matcher processes a @samp{*} construct by matching, immediately, -as many repetitions as can be found. Then it continues with the rest -of the pattern. If that fails, backtracking occurs, discarding some -of the matches of the @samp{*}-modified construct in case that makes -it possible to match the rest of the pattern. For example, in matching -@samp{ca*ar} against the string @samp{caaar}, the @samp{a*} first -tries to match all three @samp{a}s; but the rest of the pattern is -@samp{ar} and there is only @samp{r} left to match, so this try fails. -The next alternative is for @samp{a*} to match only two @samp{a}s. -With this choice, the rest of the regexp matches successfully.@refill +The matcher processes a @samp{*} construct by matching, immediately, as +many repetitions as can be found; it is "greedy". Then it continues +with the rest of the pattern. If that fails, backtracking occurs, +discarding some of the matches of the @samp{*}-modified construct in +case that makes it possible to match the rest of the pattern. For +example, in matching @samp{ca*ar} against the string @samp{caaar}, the +@samp{a*} first tries to match all three @samp{a}s; but the rest of the +pattern is @samp{ar} and there is only @samp{r} left to match, so this +try fails. The next alternative is for @samp{a*} to match only two +@samp{a}s. With this choice, the rest of the regexp matches +successfully.@refill Nested repetition operators can be extremely slow if they specify backtracking loops. For example, it could take hours for the regular @@ -236,18 +253,71 @@ @item + @cindex @samp{+} in regexp -is a suffix operator similar to @samp{*} except that the preceding -expression must match at least once. So, for example, @samp{ca+r} -matches the strings @samp{car} and @samp{caaaar} but not the string -@samp{cr}, whereas @samp{ca*r} matches all three strings. +is a quantifying suffix operator similar to @samp{*} except that the +preceding expression must match at least once. It is also "greedy". +So, for example, @samp{ca+r} matches the strings @samp{car} and +@samp{caaaar} but not the string @samp{cr}, whereas @samp{ca*r} matches +all three strings. @item ? @cindex @samp{?} in regexp -is a suffix operator similar to @samp{*} except that the preceding -expression can match either once or not at all. For example, +is a quantifying suffix operator similar to @samp{*}, except that the +preceding expression can match either once or not at all. For example, @samp{ca?r} matches @samp{car} or @samp{cr}, but does not match anyhing else. +@item *? +@cindex @samp{*?} in regexp +works just like @samp{*}, except that rather than matching the longest +match, it matches the shortest match. This is known as a "non-greedy" +quantifier. It is a syntax that comes to us from perl. It is very +useful for situations where you want to match the text inside a pair of +delimiters. +@c Did perl get this from somewhere? What's the real history of *? ? + +@lisp +@group +(setq s "/ blah / / blah2 /") + @result{} "/ blah / / blah2 /" +(string-match "/.*/" s) + @result{} 0 +(match-string 0 s) + @result{} "/ blah / / blah2 /" +(string-match "/.*?/" s) + @result{} 0 +(match-string 0 s) + @result{} "/ blah /" +@end group +@end lisp + +@item +? +@cindex @samp{+?} in regexp +is the @samp{+} analog to @samp{*?}. + +@item \@{n,m\@} +@c Note the spacing after the close brace is deliberate. +@cindex @samp{\@{n,m\@} }in regexp +this is an interval quantifier, which is analogous to @samp{*} or +@samp{+}, but specifies that the expression must match at least @samp{n} +times, but no more than @samp{m} times. This syntax comes to us from +@cite{ed}, @cite{grep}, and @cite{perl}. The @cite{etags} utility also +supports it. + +@lisp +@group +(setq s "12 123 1234 12345") + @result{} "12 123 1234 12345" +(string-match "[0-9]\\@{2,4\\@}" s) + @result{} 0 +(match-string 0 s) + @result{} "12" +(string-match "[0-9]\\@{3,4\\@}" s) + @result{} 3 +(match-string 0 s) + @result{} "123" +@end group +@end lisp + @item [ @dots{} ] @cindex character set (in regexp) @cindex @samp{[} in regexp @@ -409,6 +479,39 @@ half, which may be anything, but the @samp{\1} that follows must match the same exact text. +@item \(?: @dots{} \) +@cindex @samp{(?:} in regex +@cindex regexp grouping +is called a "shy" grouping operator, and it is used just like @samp{\( +@dots{} \)}, except that it does not cause the matched substring to be +recorded for future reference. This can be useful at times when a +program wants to refer to a specific @samp{\( @dots{} \)} group's number +(eg. in a @code{match-string} or @code{match-beginning} function +application) and you need to use grouping constructs for an alternation +or multi--character repetition inside a regular expression string that +can change each time the code is run, but you don't want those groups +counting because they'd change the reference number of the group you +want to refer to that is inside the static part of your generated +regular expression. + +@lisp +;; @r{Here `dynamic-regex' might contain shy groups.} +(re-search-forward + (concat "\\(" dynamic-regex "\\)\\(-?[0-9]\\@{2,4\\@}\\)")) +;; @r{and this `match-string' will still refer to the integer} +;; @r{captured by the second group in the `concat' string.} +(match-string 2) +@end lisp + +Using @samp{\(?: @dots{} \)} rather than @samp{\( @dots{} \)} when you +don't need the captured substrings ought to speed up your programs some, +since it shortens the code path followed by the regular expression +engine, as well as the amount of memory allocation and string copying it +must do. The actual performance gain to be observed has not been +measured or quantified as of this writing. +@c This is used to good advantage by the font-locking code, and by `regexp-opt.el'. +@c ... It will be. It's not yet, but will be. + @item \w @cindex @samp{\w} in regexp matches any word-constituent character. The editor syntax table diff -r e92abcaa252b -r 084402c475ba nt/ChangeLog --- a/nt/ChangeLog Mon Aug 13 10:20:29 2007 +0200 +++ b/nt/ChangeLog Mon Aug 13 10:21:18 2007 +0200 @@ -1,3 +1,7 @@ +1998-02-18 Kirill M. Katsnelson + + * xemacs.mak: Fixed lost docstrings + 1998-01-28 Jonathon Harris * xemacs.mak: Updated accordingly. diff -r e92abcaa252b -r 084402c475ba nt/xemacs.mak --- a/nt/xemacs.mak Mon Aug 13 10:20:29 2007 +0200 +++ b/nt/xemacs.mak Mon Aug 13 10:21:18 2007 +0200 @@ -307,7 +307,7 @@ !endif !if $(DEBUG_XEMACS) -DOC_SRC_9=\ +DOC_SRC9=\ $(XEMACS)\src\debug.c !endif diff -r e92abcaa252b -r 084402c475ba src/ChangeLog --- a/src/ChangeLog Mon Aug 13 10:20:29 2007 +0200 +++ b/src/ChangeLog Mon Aug 13 10:21:18 2007 +0200 @@ -1,3 +1,91 @@ +1998-02-18 SL Baur + + * Makefile.in.in: Remove all references to prefix-args. + +1998-02-18 Kirill M. Katsnelson + + * sysdep.c (mswindows_set_errno): New function + (mswindows_set_last_errno): Ditto + These convert Win32 error code to ANSI C errno. + + * sysdep.h: Prototypes for the above 2 functions. + + * menubar-msw.c (vars_of_menubar_mswindows): Fprovide + ('mswindows-menubar) removed. See the entry of 1998-01-03 + + * process.c: FSFmacs proc_buffered_char static array + #if0'ed in 2 places. It is never used. + +1998-02-01 Kyle Jones + + * window.c (save_window_save): Save window-cached + speciifer values. + (saved_window_equal): Added comparisons of window-cached + specifier values. + (Fset-window-configuration): Restore window-cached + specifier values. + +1998-02-18 Didier Verna + + * modeline.el (mouse-drag-modeline): added the horizontal + scrolling functionality for the modeline. This could still be + improved, for instance when the mouse goes out of the modeline. + +1998-02-18 Didier Verna + + * redisplay.c: + (generate_formatted_string_db): new flag to distinguish a modeline + string from a title or icon one, plus use a negative first pos to + indicate the modeline hscroll ammount. + (add_string_to_fstring_db_runes): completely rewrote this function + to handle the case of scrolled modelines. + (add_glyph_to_fstring_db_runes): handle the case of scrolled + modelines. + + * window.c: + (Fmodeline_hscroll): new function to return the modeline current + horizontal scroll ammount. + (Fset_modeline_hscroll): new function to scroll the modeline + horizontaly. + Plus some updates related to this new functionality (windows + configuration, notably). + + * window.h (struct window): added the new field modeline_hscroll. + +1998-02-18 SL Baur + + * m/alpha.h: + * unexelf.c: Synched with Emacs 20.2. + From Aki Vehtari + + * emacs.c (main): Don't call __sbrk(). + * gmalloc.c (__sbrk): Ditto. + Suggested by Andreas Jaeger + +1998-02-17 SL Baur + + * console-tty.c (Fset_console_tty_coding_system): New function. + From Kazuyuki IENAGA + +1998-02-15 SL Baur + + * ralloc.c (init_ralloc): DOUG_LEA_MALLOC support. + (r_alloc_reinit): Ditto. + [All non-HAVE_MMAP code]: Synched with Emacs 20.2. + + * emacs.c: Synch DOUG_LEA_MALLOC support from Emacs 20.2. + (main): Ditto. + Add LINUX_SBRK_BUG workaround, what is it? + (Fdump_emacs): DOUG_LEA_MALLOC support from Emacs 20.2. + + * alloc.c: Synch DOUG_LEA_MALLOC support from Emacs 20.2. + (init_alloc_once_early): Ditto. + + * config.h.in: Add DOUG_LEA_MALLOC symbol. + + * unexfreebsd.c (run_time_remap): Change printf format string to + match parameters given. + 1998-02-14 SL Baur * s/sco5.h: Define LIB_GCC as -lgcc for gcc 2.8 and egcs. diff -r e92abcaa252b -r 084402c475ba src/Makefile.in.in --- a/src/Makefile.in.in Mon Aug 13 10:20:29 2007 +0200 +++ b/src/Makefile.in.in Mon Aug 13 10:21:18 2007 +0200 @@ -188,18 +188,26 @@ malloclib = #ifndef SYSTEM_MALLOC -# ifdef GNU_MALLOC /* New GNU malloc */ +# ifdef GNU_MALLOC /* GNU malloc */ # ifdef ERROR_CHECK_MALLOC +#ifdef DOUG_LEA_MALLOC +mallocobjs = free-hook.o vm-limit.o +#else mallocobjs = gmalloc.o free-hook.o vm-limit.o +#endif mallocdocsrc = free-hook.c # else /* New GNU malloc, sans error checking */ +#ifdef DOUG_LEA_MALLOC +mallocobjs = vm-limit.o +#else mallocobjs = gmalloc.o vm-limit.o +#endif mallocdocsrc = # endif /* ERROR_CHECK_MALLOC */ -# else /* Old GNU malloc */ +# else /* Older GNU malloc */ mallocobjs = malloc.o mallocdocsrc = -# endif /* Old GNU malloc */ +# endif /* Older GNU malloc */ #else /* SYSTEM_MALLOC */ mallocobjs = mallocdocsrc = @@ -381,7 +389,7 @@ temacs_deps=\ $(start_files) ${objs} ${otherobjs}\ - $(lwlib_deps) $(dynodump_deps) prefix-args + $(lwlib_deps) $(dynodump_deps) temacs_link_args=\ ${start_flags} ${ldflags}\ @@ -547,9 +555,6 @@ #endif /* EXTERNAL_WIDGET */ -prefix-args: ${srcdir}/prefix-args.c config.h - $(CC) $(cflags) ${srcdir}/prefix-args.c -o prefix-args - config.h: ${srcdir}/config.h.in puresize-adjust.h: ${srcdir}/puresize.h paths.h: ${srcdir}/paths.h.in @@ -619,7 +624,7 @@ .PHONY: mostlyclean clean distclean realclean versionclean extraclean mostlyclean: - $(RM) temacs puremacs quantmacs prefix-args depend.* *.o *.i \ + $(RM) temacs puremacs quantmacs depend.* *.o *.i \ core puresize-adjust.h sheap-adjust.h clean: mostlyclean versionclean $(RM) libextcli* update-elc.stamp diff -r e92abcaa252b -r 084402c475ba src/alloc.c --- a/src/alloc.c Mon Aug 13 10:20:29 2007 +0200 +++ b/src/alloc.c Mon Aug 13 10:21:18 2007 +0200 @@ -35,6 +35,8 @@ and various changes for Mule, for 19.12. Added bit vectors for 19.13. Added lcrecord lists for 19.14. + slb: Lots of work on the purification and dump time code. + Synched Doug Lea malloc support from Emacs 20.2. */ #include @@ -57,15 +59,25 @@ #include "window.h" #endif +#ifdef DOUG_LEA_MALLOC +#include +#endif + /* #define GDB_SUCKS */ -/* #define VERIFY_STRING_CHARS_INTEGRITY */ +#if 0 /* this is _way_ too slow to be part of the standard debug options */ +#if defined(DEBUG_XEMACS) && defined(MULE) +#define VERIFY_STRING_CHARS_INTEGRITY +#endif +#endif /* Define this to see where all that space is going... */ /* But the length of the printout is obnoxious, so limit it to testers */ +/* If somebody wants to see this they can ask for it. #ifdef DEBUG_XEMACS #define PURESTAT #endif +*/ /* Define this to use malloc/free with no freelist for all datatypes, the hope being that some debugging tools may help detect @@ -186,6 +198,18 @@ #define PUREBEG ((unsigned char *) pure) +#if 0 /* This is breathing_space in XEmacs */ +/* Points to memory space allocated as "spare", + to be freed if we run out of memory. */ +static char *spare_memory; + +/* Amount of spare memory to keep in reserve. */ +#define SPARE_MEMORY (1 << 14) +#endif + +/* Number of extra blocks malloc should get when it needs more core. */ +static int malloc_hysteresis; + /* Index in pure at which next pure object will be allocated. */ static long pureptr; @@ -789,6 +813,21 @@ #endif #endif /* MALLOC_OVERHEAD */ +#if !defined(HAVE_MMAP) || defined(DOUG_LEA_MALLOC) +/* If we released our reserve (due to running out of memory), + and we have a fair amount free once again, + try to set aside another reserve in case we run out once more. + + This is called when a relocatable block is freed in ralloc.c. */ + +void +refill_memory_reserve () +{ + if (breathing_space == 0) + breathing_space = (char *) malloc (4096 - MALLOC_OVERHEAD); +} +#endif + #ifdef ALLOC_NO_POOLS # define TYPE_ALLOC_SIZE(type, structtype) 1 #else @@ -4904,6 +4943,11 @@ XSETINT (Vgc_message, 0); all_lcrecords = 0; ignore_malloc_warnings = 1; +#ifdef DOUG_LEA_MALLOC + mallopt (M_TRIM_THRESHOLD, 128*1024); /* trim threshold */ + mallopt (M_MMAP_THRESHOLD, 64*1024); /* mmap threshold */ + /* mallopt (M_MMAP_MAX, 64); /* max. number of mmap'ed areas */ +#endif init_string_alloc (); init_string_chars_alloc (); init_cons_alloc (); diff -r e92abcaa252b -r 084402c475ba src/bytecode.c --- a/src/bytecode.c Mon Aug 13 10:20:29 2007 +0200 +++ b/src/bytecode.c Mon Aug 13 10:21:18 2007 +0200 @@ -56,7 +56,10 @@ * * define BYTE_CODE_METER to enable generation of a byte-op usage histogram. */ +/* This isn't defined in FSF Emacs and isn't defined in XEmacs v19 */ +#ifdef DEBUG_XEMACS #define BYTE_CODE_SAFE +#endif /* #define BYTE_CODE_METER */ diff -r e92abcaa252b -r 084402c475ba src/config.h.in --- a/src/config.h.in Mon Aug 13 10:20:29 2007 +0200 +++ b/src/config.h.in Mon Aug 13 10:21:18 2007 +0200 @@ -85,13 +85,16 @@ /* Does XEmacs support floating-point numbers? */ #undef LISP_FLOAT_TYPE -/* Use the *new* GNU memory allocator? */ +/* Define GNU_MALLOC if you want to use the GNU memory allocator. */ #undef GNU_MALLOC +/* Define if you are using the GNU C Library. -- experimental */ +#undef DOUG_LEA_MALLOC + /* Use the system malloc? */ #undef USE_SYSTEM_MALLOC -/* Use a debugging malloc? */ +/* Use a debugging malloc? -- experimental */ #undef USE_DEBUG_MALLOC /* Compile in TTY support? */ diff -r e92abcaa252b -r 084402c475ba src/console-tty.c --- a/src/console-tty.c Mon Aug 13 10:20:29 2007 +0200 +++ b/src/console-tty.c Mon Aug 13 10:21:18 2007 +0200 @@ -226,6 +226,86 @@ return CONSOLE_TTY_DATA (decode_tty_console (console))->controlling_process; } +#ifdef MULE +DEFUN ("set-console-tty-coding-system", Fset_console_tty_coding_system, 0, 2, 0, /* +Set the coding system of tty console CONSOLE to CODESYS. +CONSOLE defaults to the selected console. +CODESYS defaults to the value of `terminal-coding-system'. +*/ + (console, codesys)) +{ + struct console *con = decode_tty_console (console); + codesys = NILP (codesys) ? + Vterminal_coding_system : + Fget_coding_system (codesys); + set_encoding_stream_coding_system (XLSTREAM (CONSOLE_TTY_DATA (con)->outstream), + codesys); + return Qnil; +} +#endif /* MULE */ + + +/* redefine coding system for console tty */ +#ifdef MULE +DEFUN ("console-tty-input-coding-system", Fconsole_tty_input_coding_system, 1, 1, 0, /* +Return TTY CONSOLE's input coding system. +*/ + (console)) +{ + struct console *con = decode_tty_console (console); + return decoding_stream_coding_system (XLSTREAM (CONSOLE_TTY_DATA (con)->instream)); +} + +DEFUN ("set-console-tty-input-coding-system", Fset_console_tty_input_coding_system, 0, 2, 0, /* +Set the coding system of tty input of console CONSOLE to CODESYS. +CONSOLE defaults to the selected console. +CODESYS defaults to the value of `keyboard-coding-system'. +*/ + (console, codesys)) +{ + struct console *con; + if (!NILP(console)) { + con = decode_tty_console (console); + codesys = NILP (codesys) ? + Vkeyboard_coding_system : + Fget_coding_system (codesys); + set_encoding_stream_coding_system (XLSTREAM (CONSOLE_TTY_DATA (con)->instream), + codesys); + } + return Qnil; +} + +DEFUN ("console-tty-output-coding-system", Fconsole_tty_output_coding_system, 1, 1, 0, /* +Return TTY CONSOLE's output coding system. +*/ + (console)) +{ + struct console *con = decode_tty_console (console); + return encoding_stream_coding_system (XLSTREAM (CONSOLE_TTY_DATA (con)->outstream) ); +} + +DEFUN ("set-console-tty-output-coding-system", Fset_console_tty_output_coding_system, 0, 2, 0, /* +Set the coding system of tty output of console CONSOLE to CODESYS. +CONSOLE defaults to the selected console. +CODESYS defaults to the value of `terminal-coding-system'. +*/ + (console, codesys)) +{ + struct console *con; + if (!NILP(console)) { + con = decode_tty_console (console); + codesys = NILP (codesys) ? + Vterminal_coding_system : + Fget_coding_system (codesys); + set_encoding_stream_coding_system (XLSTREAM (CONSOLE_TTY_DATA (con)->outstream), + codesys); + } + return Qnil; +} + +#endif /* MULE */ + + Lisp_Object tty_semi_canonicalize_console_connection (Lisp_Object connection, Error_behavior errb) @@ -266,6 +346,13 @@ DEFSUBR (Fconsole_tty_controlling_process); defsymbol (&Qterminal_type, "terminal-type"); defsymbol (&Qcontrolling_process, "controlling-process"); +#ifdef MULE + DEFSUBR (Fconsole_tty_output_coding_system); + DEFSUBR (Fset_console_tty_output_coding_system); + DEFSUBR (Fconsole_tty_input_coding_system); + DEFSUBR (Fset_console_tty_input_coding_system); + DEFSUBR (Fset_console_tty_coding_system); +#endif } void diff -r e92abcaa252b -r 084402c475ba src/emacs.c --- a/src/emacs.c Mon Aug 13 10:20:29 2007 +0200 +++ b/src/emacs.c Mon Aug 13 10:21:18 2007 +0200 @@ -81,6 +81,13 @@ on subsequent starts. */ int initialized; +#ifdef DOUG_LEA_MALLOC +# include +/* Preserves a pointer to the memory allocated that copies that + static data inside glibc's malloc. */ +void *malloc_state_ptr; +#endif + /* Variable whose value is symbol giving operating system type. */ Lisp_Object Vsystem_type; @@ -871,7 +878,7 @@ syms_of_process (); #endif syms_of_profile (); -#if defined (HAVE_MMAP) && defined (REL_ALLOC) +#if defined (HAVE_MMAP) && defined (REL_ALLOC) && !defined(DOUG_LEA_MALLOC) syms_of_ralloc (); #endif /* HAVE_MMAP && REL_ALLOC */ syms_of_rangetab (); @@ -1205,7 +1212,7 @@ vars_of_process (); #endif vars_of_profile (); -#if defined (HAVE_MMAP) && defined (REL_ALLOC) +#if defined (HAVE_MMAP) && defined (REL_ALLOC) && !defined(DOUG_LEA_MALLOC) vars_of_ralloc (); #endif /* HAVE_MMAP && REL_ALLOC */ vars_of_redisplay (); @@ -1875,8 +1882,15 @@ /* Lisp_Object must fit in a word; check VALBITS and GCTYPEBITS */ assert (sizeof (Lisp_Object) == sizeof (void *)); +#ifdef LINUX_SBRK_BUG + sbrk (1); +#endif + if (!initialized) { +#ifdef DOUG_LEA_MALLOC + mallopt (M_MMAP_MAX, 0); +#endif run_temacs_argc = 0; if (! SETJMP (run_temacs_catch)) { @@ -1915,6 +1929,22 @@ run_time_remap (argv[0]); #endif +#ifdef DOUG_LEA_MALLOC + if (initialized && (malloc_state_ptr != NULL)) + { + malloc_set_state (malloc_state_ptr); +#if 0 + free (malloc_state_ptr); +#endif +#if !defined(MULE) && !defined(DEBUG_DOUG_LEA_MALLOC) + mallopt (M_MMAP_MAX, 64); +#endif +#ifdef REL_ALLOC + r_alloc_reinit (); +#endif + } +#endif + run_temacs_argc = -1; main_1 (vol_argc, vol_argv, vol_envp, restarted); @@ -2205,6 +2235,9 @@ GET_C_STRING_FILENAME_DATA_ALLOCA (symname, symname_ext); else symname_ext = 0; +#ifdef DOUG_LEA_MALLOC + malloc_state_ptr = malloc_get_state (); +#endif /* here we break our rule that the filename conversion should be performed at the actual time that the system call is made. It's a whole lot easier to do the conversion here than to @@ -2214,6 +2247,9 @@ unexec ((char *) intoname_ext, (char *) symname_ext, (uintptr_t) my_edata, 0, 0); +#ifdef DOUG_LEA_MALLOC + free (malloc_state_ptr); +#endif } #endif /* not MSDOS and EMX */ diff -r e92abcaa252b -r 084402c475ba src/gmalloc.c --- a/src/gmalloc.c Mon Aug 13 10:20:29 2007 +0200 +++ b/src/gmalloc.c Mon Aug 13 10:21:18 2007 +0200 @@ -1315,9 +1315,9 @@ #include #endif -#ifndef __GNU_LIBRARY__ +/* #ifndef __GNU_LIBRARY__ */ #define __sbrk sbrk -#endif +/* #endif */ #ifdef GMALLOC_NEEDS_SBRK_DECL /* some versions of OSF1 need this */ diff -r e92abcaa252b -r 084402c475ba src/m/alpha.h --- a/src/m/alpha.h Mon Aug 13 10:20:29 2007 +0200 +++ b/src/m/alpha.h Mon Aug 13 10:21:18 2007 +0200 @@ -1,7 +1,7 @@ /* machine description file For the alpha chip. Copyright (C) 1994 Free Software Foundation, Inc. -This file is part of GNU Emacs. +This file is part of XEmacs. GNU Emacs is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -18,222 +18,19 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* Synched up with: FSF 19.31. */ -/* The following line tells the configuration script what sort of - operating system this machine is likely to run. - USUAL-OPSYS="note" - -NOTE-START -Use -opsystem=osf1 -NOTE-END - -*/ - -#define DEC_ALPHA /* Digital Alpha AXP */ - -/* Define WORD_MACHINE if addresses and such have - * to be corrected before they can be used as byte counts. */ - -/* #define WORD_MACHINE */ - -/* XEmacs addition: is this necessary? */ - -/* XEmacs: Apparently not Andrew Cohen 8/24/95 */ -/* Define how to take a char and sign-extend into an int. - On machines where char is signed, this is a no-op. */ - -/* #define SIGN_EXTEND_CHAR(c) ((signed char)(c)) */ - -/* Now define a symbol for the cpu type, if your compiler - does not define it automatically: - Ones defined so far include vax, m68000, ns16000, pyramid, - orion, tahoe, APOLLO and many others */ - -/* __alpha defined automatically */ - - -/* Use type EMACS_INT rather than a union, to represent Lisp_Object */ -/* This is desirable for most machines. */ - -/* XEmacs change: something is not quite right with this defined. */ -/* I'm sure this is because VALBITS is defined to be 28 instead of 60. - --ben */ -#undef NO_UNION_TYPE - -/* Define the type to use. */ -#define EMACS_INT long -#define EMACS_UINT unsigned long -#define SPECIAL_EMACS_INT - -/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend - the bit field into an int. In other words, if bit fields - are always unsigned. - - If you use NO_UNION_TYPE, this flag does not matter. */ - -#define EXPLICIT_SIGN_EXTEND - -/* Data type of load average, as read out of kmem. */ -/* Load average requires special crocks. Version 19 has them. - For now, don't define this. */ - -#define LOAD_AVE_TYPE long - -/* Convert that into an integer that is 100 for a load average of 1.0 */ - -#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) - -/* Define CANNOT_DUMP on machines where unexec does not work. - Then the function dump-emacs will not be defined - and temacs will do (load "loadup") automatically unless told otherwise. */ - -/* #define CANNOT_DUMP */ - -/* Define VIRT_ADDR_VARIES if the virtual addresses of - pure and impure space as loaded can vary, and even their - relative order cannot be relied on. - - Otherwise Emacs assumes that text space precedes data space, - numerically. */ - -/* #define VIRT_ADDR_VARIES */ - -/* Define C_ALLOCA if this machine does not support a true alloca - and the one written in C should be used instead. - Define HAVE_ALLOCA to say that the system provides a properly - working alloca function and it should be used. - Define neither one if an assembler-language alloca - in the file alloca.s should be used. */ - -#define HAVE_ALLOCA - -/* GNU malloc and the relocating allocator do not work together - with X. [Who wrote that?] */ - -/* May 1995: reportedly [Rainer Schoepf ] both the - system and the gnu malloc system work with "alpha-dec-osf3.0" and - "alpha-dec-osf3.2". */ - -/* May 1995: it seems to me [Morten Welinder ] that both - mallocs work with "alpha-dec-osf2.0", but I daren't break anything - right now. Feel free to play if you want. */ - -/* #define SYSTEM_MALLOC */ - -/* Define NO_REMAP if memory segmentation makes it not work well - to change the boundary between the text section and data section - when Emacs is dumped. If you define this, the preloaded Lisp - code will not be sharable; but that's better than failing completely. */ - -/* #define NO_REMAP */ - -/* Some really obscure 4.2-based systems (like Sequent DYNIX) - * do not support asynchronous I/O (using SIGIO) on sockets, - * even though it works fine on tty's. If you have one of - * these systems, define the following, and then use it in - * config.h (or elsewhere) to decide when (not) to use SIGIO. - * - * You'd think this would go in an operating-system description file, - * but since it only occurs on some, but not all, BSD systems, the - * reasonable place to select for it is in the machine description - * file. - */ - -/* #define NO_SOCK_SIGIO */ - - -#define HAVE_X11R4 -#define HAVE_X11R5 - - -/* Describe layout of the address space in an executing process. */ - -#define TEXT_START 0x120000000 -#define DATA_START 0x140000000 - -#if 0 /* #### XEmacs: see below */ -/* This is necessary for mem-limits.h, so that start_of_data gives - the correct value */ -#define DATA_SEG_BITS 0x140000000 -#endif /* 0 */ +#ifdef LINUX + # define SYSTEM_MALLOC +#endif #ifdef OSF1 -#define ORDINARY_LINK -#endif /* OSF1 */ - -#if 0 /* Rainer Schoepf says this loses with X11R6 - since it has only shared libraries. */ -#ifndef __GNUC__ -/* This apparently is for the system ld as opposed to Gnu ld. */ -#ifdef OSF1 -#define LD_SWITCH_MACHINE "-non_shared" -#endif /* OSF1 */ -#endif /* not __GNUC__ */ -#endif /* 0 */ - -#ifdef OSF1 -#define LIBS_DEBUG -#define START_FILES "pre-crt0.o " -#endif /* OSF1 */ - -#ifdef LINUX -/* This controls a conditional in main. */ -#define LINUX_SBRK_BUG -#endif /* LINUX */ - -/* The program to be used for unexec. */ - -#define UNEXEC "unexalpha.o" - -#if 0 - -/* XEmacs -- removed code to define XINT, etc. This gets - correctly handled automatically. */ - -/* Declare malloc and realloc in a way that is clean. - But not in makefiles! */ +# define ORDINARY_LINK +#endif -#ifndef NOT_C_CODE -/* We need these because pointers are larger than the default ints. */ -#include -#endif /* not NOT_C_CODE */ - -#endif /* 0 */ - -#ifdef OSF1 -#define PTY_ITERATION for (i = 0; i < 1; i++) /* ick */ -#define PTY_NAME_SPRINTF /* none */ -#define PTY_TTY_NAME_SPRINTF /* none */ -#define PTY_OPEN \ - do \ - { \ - int dummy; \ - int mask = sigsetmask (SIGCHLD); \ - if (-1 == openpty (&fd, &dummy, pty_name, 0, 0)) \ - fd = -1; \ - sigsetmask (mask); \ - close (dummy); \ - } \ - while (0) -#endif /* OSF1 */ - -#ifdef linux -#define COFF -#define TEXT_END ({ extern int _etext; &_etext; }) -#define DATA_END ({ extern int _EDATA; &_EDATA; }) -#endif /* linux */ - -/* XEmacs: The Dec CC compiler (but apparently not GCC, which uses different - macros due to its own compiler bug) breaks spectacularly - when MACROIZE_ERROR_CHECKING is turned on. */ -#define BROKEN_MACROIZE_ERROR_CHECKING - -/* XEmacs: from Andrew Cohen based on this comment found in : - - Unfortunately System V and POSIX have different values for some of - the defines. So we have to perform the following kluge which - redefines the V___ values for termio. This means you cannot do - ioctls using termios and termio in the same source file. - */ -/* #define NO_TERMIO */ /* mrb */ +#ifndef __ELF__ + /* Describe layout of the address space in an executing process. */ +# define TEXT_START 0x120000000 +# define DATA_START 0x140000000 + /* The program to be used for unexec. */ +# define UNEXEC unexalpha.o +#endif diff -r e92abcaa252b -r 084402c475ba src/menubar-msw.c --- a/src/menubar-msw.c Mon Aug 13 10:20:29 2007 +0200 +++ b/src/menubar-msw.c Mon Aug 13 10:21:18 2007 +0200 @@ -806,6 +806,4 @@ staticpro (¤t_menudesc); staticpro (¤t_hashtable); - - Fprovide (intern ("mswindows-menubars")); } diff -r e92abcaa252b -r 084402c475ba src/prefix-args.c --- a/src/prefix-args.c Mon Aug 13 10:20:29 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* prefix-args.c - echo each argument, prefixed by a string. - Jim Blandy - September 1992 - - When using GCC 2 as the linker in the build process, options - intended for the linker need to be prefixed with the "-Xlinker" - option. If an option takes an argument, we need to use -Xlinker - twice - once for the option and once for its argument. For - example, to run the linker with the options "-Bstatic" "-e" - "_start", you'd need to pass the following options to GCC: - - -Xlinker -Bstatic -Xlinker -e -Xlinker _start. - - The Emacs makefile used to use a Bourne Shell `for' loop to prefix - each linker option with "-Xlinker", but 1) the for loop was hairier - than one might hope because it had to work when there were no - arguments to pass to the linker - the shell barfs on a loop like - this: - - for arg in ; do echo -Xlinker "$arg"; done - - and 2) the whole compilation command containing this loop seems to - exit with a non-zero status and halt the build under Ultrix. - - If I can't write a completely portable program to do this in C, - I'm quitting and taking up gardening. */ - -/* Synched up with: FSF 19.30. */ - -#include -#include - -int -main (int argc, char **argv) -{ - char *progname; - char *prefix; - - progname = argv[0]; - argc--, argv++; - - if (argc < 1) - { - fprintf (stderr, "Usage: %s PREFIX ARGS...\n" -"Echo each ARG preceded by PREFIX and a space.\n", progname); - exit (2); - } - - prefix = argv[0]; - argc--, argv++; - - for (; argc > 0; argc--, argv++) - printf ("%s %s%c", prefix, argv[0], (argc > 1) ? ' ' : '\n'); - - return 0; -} diff -r e92abcaa252b -r 084402c475ba src/process.c --- a/src/process.c Mon Aug 13 10:20:29 2007 +0200 +++ b/src/process.c Mon Aug 13 10:21:18 2007 +0200 @@ -102,9 +102,11 @@ output from the process is to read at least one char. Always -1 on systems that support FIONREAD. */ +#if 0 /* FSFmacs */ /* FSFmacs says: Don't make static; need to access externally. */ static int proc_buffered_char[MAXDESC]; +#endif #ifdef HAVE_PTYS /* The file name of the pty opened by allocate_pty. */ @@ -3232,7 +3234,9 @@ for (i = 0; i < MAXDESC; i++) { descriptor_to_process[i] = Qnil; +#if 0 /* FSFmacs */ proc_buffered_char[i] = -1; +#endif } } diff -r e92abcaa252b -r 084402c475ba src/ralloc.c --- a/src/ralloc.c Mon Aug 13 10:20:29 2007 +0200 +++ b/src/ralloc.c Mon Aug 13 10:21:18 2007 +0200 @@ -16,7 +16,10 @@ 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. */ +Boston, MA 02111-1307, USA. + +Synched Up with: FSF 20.2 (non-mmap portion only) +*/ /* NOTES: @@ -47,6 +50,11 @@ typedef unsigned long SIZE; +#ifdef DOUG_LEA_MALLOC +#define M_TOP_PAD -2 +extern int mallopt (); +#endif + #include "getpagesize.h" #include @@ -69,7 +77,7 @@ #define NIL ((POINTER) 0) -#ifndef HAVE_MMAP +#if !defined(HAVE_MMAP) || defined(DOUG_LEA_MALLOC) /* A flag to indicate whether we have initialized ralloc yet. For Emacs's sake, please do not make this local to malloc_init; on some @@ -108,8 +116,86 @@ #define ROUNDUP(size) (((unsigned long int) (size) + page_size - 1) \ & ~(page_size - 1)) #define ROUND_TO_PAGE(addr) (addr & (~(page_size - 1))) + +#define MEM_ALIGN sizeof(double) +#define MEM_ROUNDUP(addr) (((unsigned long int)(addr) + MEM_ALIGN - 1) \ + & ~(MEM_ALIGN - 1)) -/* Functions to get and return memory from the system. */ +/* Data structures of heaps and blocs. */ + +/* The relocatable objects, or blocs, and the malloc data + both reside within one or more heaps. + Each heap contains malloc data, running from `start' to `bloc_start', + and relocatable objects, running from `bloc_start' to `free'. + + Relocatable objects may relocate within the same heap + or may move into another heap; the heaps themselves may grow + but they never move. + + We try to make just one heap and make it larger as necessary. + But sometimes we can't do that, because we can't get contiguous + space to add onto the heap. When that happens, we start a new heap. */ + +typedef struct heap +{ + struct heap *next; + struct heap *prev; + /* Start of memory range of this heap. */ + POINTER start; + /* End of memory range of this heap. */ + POINTER end; + /* Start of relocatable data in this heap. */ + POINTER bloc_start; + /* Start of unused space in this heap. */ + POINTER free; + /* First bloc in this heap. */ + struct bp *first_bloc; + /* Last bloc in this heap. */ + struct bp *last_bloc; +} *heap_ptr; + +#define NIL_HEAP ((heap_ptr) 0) +#define HEAP_PTR_SIZE (sizeof (struct heap)) + +/* This is the first heap object. + If we need additional heap objects, each one resides at the beginning of + the space it covers. */ +static struct heap heap_base; + +/* Head and tail of the list of heaps. */ +static heap_ptr first_heap, last_heap; + +/* These structures are allocated in the malloc arena. + The linked list is kept in order of increasing '.data' members. + The data blocks abut each other; if b->next is non-nil, then + b->data + b->size == b->next->data. + + An element with variable==NIL denotes a freed block, which has not yet + been collected. They may only appear while r_alloc_freeze > 0, and will be + freed when the arena is thawed. Currently, these blocs are not reusable, + while the arena is frozen. Very inefficient. */ + +typedef struct bp +{ + struct bp *next; + struct bp *prev; + POINTER *variable; + POINTER data; + SIZE size; + POINTER new_data; /* temporarily used for relocation */ + struct heap *heap; /* Heap this bloc is in. */ +} *bloc_ptr; + +#define NIL_BLOC ((bloc_ptr) 0) +#define BLOC_PTR_SIZE (sizeof (struct bp)) + +/* Head and tail of the list of relocatable blocs. */ +static bloc_ptr first_bloc, last_bloc; + +static int use_relocatable_buffers; + +/* If >0, no relocation whatsoever takes place. */ +static int r_alloc_freeze_level; /* Obtain SIZE bytes of space. If enough space is not presently available in our process reserve, (i.e., (page_break_value - break_value)), @@ -117,28 +203,121 @@ Return non-zero if all went well, or zero if we couldn't allocate the memory. */ -static int -obtain (SIZE size) + +/* Functions to get and return memory from the system. */ + +/* Find the heap that ADDRESS falls within. */ + +static heap_ptr +find_heap (address) + POINTER address; { - SIZE already_available = page_break_value - break_value; + heap_ptr heap; + + for (heap = last_heap; heap; heap = heap->prev) + { + if (heap->start <= address && address <= heap->end) + return heap; + } + + return NIL_HEAP; +} + +/* Find SIZE bytes of space in a heap. + Try to get them at ADDRESS (which must fall within some heap's range) + if we can get that many within one heap. + + If enough space is not presently available in our reserve, this means + getting more page-aligned space from the system. If the returned space + is not contiguous to the last heap, allocate a new heap, and append it + + obtain does not try to keep track of whether space is in use + or not in use. It just returns the address of SIZE bytes that + fall within a single heap. If you call obtain twice in a row + with the same arguments, you typically get the same value. + to the heap list. It's the caller's responsibility to keep + track of what space is in use. + + Return the address of the space if all went well, or zero if we couldn't + allocate the memory. */ + +static POINTER +obtain (POINTER address, SIZE size) +{ + heap_ptr heap; + SIZE already_available; + + /* Find the heap that ADDRESS falls within. */ + for (heap = last_heap; heap; heap = heap->prev) + { + if (heap->start <= address && address <= heap->end) + break; + } - if (already_available < size) + if (! heap) + abort (); + + /* If we can't fit SIZE bytes in that heap, + try successive later heaps. */ + while (heap && address + size > heap->end) + { + heap = heap->next; + if (heap == NIL_HEAP) + break; + address = heap->bloc_start; + } + + /* If we can't fit them within any existing heap, + get more space. */ + if (heap == NIL_HEAP) { - SIZE get = ROUNDUP (size - already_available); - /* Get some extra, so we can come here less often. */ - get += extra_bytes; + POINTER new = (*real_morecore)(0); + SIZE get; + + already_available = (char *)last_heap->end - (char *)address; + + if (new != last_heap->end) + { + /* Someone else called sbrk. Make a new heap. */ + + heap_ptr new_heap = (heap_ptr) MEM_ROUNDUP (new); + POINTER bloc_start = (POINTER) MEM_ROUNDUP ((POINTER)(new_heap + 1)); + + if ((*real_morecore) (bloc_start - new) != new) + return 0; - if ((*real_morecore) (get) == 0) + new_heap->start = new; + new_heap->end = bloc_start; + new_heap->bloc_start = bloc_start; + new_heap->free = bloc_start; + new_heap->next = NIL_HEAP; + new_heap->prev = last_heap; + new_heap->first_bloc = NIL_BLOC; + new_heap->last_bloc = NIL_BLOC; + last_heap->next = new_heap; + last_heap = new_heap; + + address = bloc_start; + already_available = 0; + } + + /* Add space to the last heap (which we may have just created). + Get some extra, so we can come here less often. */ + + get = size + extra_bytes - already_available; + get = (char *) ROUNDUP ((char *)last_heap->end + get) + - (char *) last_heap->end; + + if ((*real_morecore) (get) != last_heap->end) return 0; - page_break_value += get; + last_heap->end += get; } - break_value += size; - - return 1; + return address; } +#if 0 /* Obtain SIZE bytes of space and return a pointer to the new area. If we could not allocate the space, return zero. */ @@ -151,55 +330,67 @@ else return 0; } +#endif /* Note that SIZE bytes of space have been relinquished by the process. If SIZE is more than a page, return the space to the system. */ static void -relinquish (SIZE size) +relinquish () { - POINTER new_page_break; - int excess; + register heap_ptr h; + int excess = 0; + + /* Add the amount of space beyond break_value + in all heaps which have extend beyond break_value at all. */ - break_value -= size; - new_page_break = (POINTER) ROUNDUP (break_value); - excess = (char *) page_break_value - (char *) new_page_break; + for (h = last_heap; h && break_value < h->end; h = h->prev) + { + excess += (char *) h->end - (char *) ((break_value < h->bloc_start) + ? h->bloc_start : break_value); + } - if (excess > extra_bytes * 2) + if (excess > extra_bytes * 2 && (*real_morecore) (0) == last_heap->end) { /* Keep extra_bytes worth of empty space. And don't free anything unless we can free at least extra_bytes. */ - if ((*real_morecore) (extra_bytes - excess) == 0) + excess -= extra_bytes; + + if ((char *)last_heap->end - (char *)last_heap->bloc_start <= excess) + { + /* This heap should have no blocs in it. */ + if (last_heap->first_bloc != NIL_BLOC + || last_heap->last_bloc != NIL_BLOC) + abort (); + + /* Return the last heap, with its header, to the system. */ + excess = (char *)last_heap->end - (char *)last_heap->start; + last_heap = last_heap->prev; + last_heap->next = NIL_HEAP; + } + else + { + excess = (char *) last_heap->end + - (char *) ROUNDUP ((char *)last_heap->end - excess); + last_heap->end -= excess; + } + + if ((*real_morecore) (- excess) == 0) abort (); - - page_break_value += extra_bytes - excess; } +} - /* Zero the space from the end of the "official" break to the actual - break, so that bugs show up faster. */ - memset (break_value, 0, ((char *) page_break_value - (char *) break_value)); +/* Return the total size in use by relocating allocator, + above where malloc gets space. */ + +long +r_alloc_size_in_use () +{ + return break_value - virtual_break_value; } /* The meat - allocating, freeing, and relocating blocs. */ -/* These structures are allocated in the malloc arena. - The linked list is kept in order of increasing '.data' members. - The data blocks abut each other; if b->next is non-nil, then - b->data + b->size == b->next->data. */ -typedef struct bp -{ - struct bp *next; - struct bp *prev; - POINTER *variable; - POINTER data; - SIZE size; -} *bloc_ptr; - -#define NIL_BLOC ((bloc_ptr) 0) -#define BLOC_PTR_SIZE (sizeof (struct bp)) - -/* Head and tail of the list of relocatable blocs. */ -static bloc_ptr first_bloc, last_bloc; /* Find the bloc referenced by the address in PTR. Returns a pointer to that block. */ @@ -207,7 +398,7 @@ static bloc_ptr find_bloc (POINTER *ptr) { - bloc_ptr p = first_bloc; + register bloc_ptr p = first_bloc; while (p != NIL_BLOC) { @@ -227,10 +418,11 @@ static bloc_ptr get_bloc (SIZE size) { - bloc_ptr new_bloc; + register bloc_ptr new_bloc; + register heap_ptr heap; if (! (new_bloc = (bloc_ptr) malloc (BLOC_PTR_SIZE)) - || ! (new_bloc->data = get_more_space (size))) + || ! (new_bloc->data = obtain (break_value, size))) { if (new_bloc) free (new_bloc); @@ -238,10 +430,24 @@ return 0; } + break_value = new_bloc->data + size; + new_bloc->size = size; new_bloc->next = NIL_BLOC; new_bloc->variable = (POINTER *) NIL; + new_bloc->new_data = 0; + /* Record in the heap that this space is in use. */ + heap = find_heap (new_bloc->data); + heap->free = break_value; + + /* Maintain the correspondence between heaps and blocs. */ + new_bloc->heap = heap; + heap->last_bloc = new_bloc; + if (heap->first_bloc == NIL_BLOC) + heap->first_bloc = new_bloc; + + /* Put this bloc on the doubly-linked list of blocs. */ if (first_bloc) { new_bloc->prev = last_bloc; @@ -257,40 +463,282 @@ return new_bloc; } -/* Relocate all blocs from BLOC on upward in the list to the zone - indicated by ADDRESS. Direction of relocation is determined by - the position of ADDRESS relative to BLOC->data. +/* Calculate new locations of blocs in the list beginning with BLOC, + relocating it to start at ADDRESS, in heap HEAP. If enough space is + not presently available in our reserve, call obtain for + more space. + + Store the new location of each bloc in its new_data field. + Do not touch the contents of blocs or break_value. */ + +static int +relocate_blocs (bloc, heap, address) + bloc_ptr bloc; + heap_ptr heap; + POINTER address; +{ + register bloc_ptr b = bloc; + + /* No need to ever call this if arena is frozen, bug somewhere! */ + if (r_alloc_freeze_level) + abort(); + + while (b) + { + /* If bloc B won't fit within HEAP, + move to the next heap and try again. */ + while (heap && address + b->size > heap->end) + { + heap = heap->next; + if (heap == NIL_HEAP) + break; + address = heap->bloc_start; + } + + /* If BLOC won't fit in any heap, + get enough new space to hold BLOC and all following blocs. */ + if (heap == NIL_HEAP) + { + register bloc_ptr tb = b; + register SIZE s = 0; + + /* Add up the size of all the following blocs. */ + while (tb != NIL_BLOC) + { + if (tb->variable) + s += tb->size; + + tb = tb->next; + } - If BLOC is NIL_BLOC, nothing is done. + /* Get that space. */ + address = obtain (address, s); + if (address == 0) + return 0; + + heap = last_heap; + } + + /* Record the new address of this bloc + and update where the next bloc can start. */ + b->new_data = address; + if (b->variable) + address += b->size; + b = b->next; + } + + return 1; +} + +/* Reorder the bloc BLOC to go before bloc BEFORE in the doubly linked list. + This is necessary if we put the memory of space of BLOC + before that of BEFORE. */ - Note that ordering of blocs is not affected by this function. */ +static void +reorder_bloc (bloc, before) + bloc_ptr bloc, before; +{ + bloc_ptr prev, next; + + /* Splice BLOC out from where it is. */ + prev = bloc->prev; + next = bloc->next; + + if (prev) + prev->next = next; + if (next) + next->prev = prev; + + /* Splice it in before BEFORE. */ + prev = before->prev; + + if (prev) + prev->next = bloc; + bloc->prev = prev; + + before->prev = bloc; + bloc->next = before; +} + +/* Update the records of which heaps contain which blocs, starting + with heap HEAP and bloc BLOC. */ static void -relocate_some_blocs (bloc_ptr bloc, POINTER address) +update_heap_bloc_correspondence (bloc, heap) + bloc_ptr bloc; + heap_ptr heap; { - if (bloc != NIL_BLOC) + register bloc_ptr b; + + /* Initialize HEAP's status to reflect blocs before BLOC. */ + if (bloc != NIL_BLOC && bloc->prev != NIL_BLOC && bloc->prev->heap == heap) + { + /* The previous bloc is in HEAP. */ + heap->last_bloc = bloc->prev; + heap->free = bloc->prev->data + bloc->prev->size; + } + else + { + /* HEAP contains no blocs before BLOC. */ + heap->first_bloc = NIL_BLOC; + heap->last_bloc = NIL_BLOC; + heap->free = heap->bloc_start; + } + + /* Advance through blocs one by one. */ + for (b = bloc; b != NIL_BLOC; b = b->next) + { + /* Advance through heaps, marking them empty, + till we get to the one that B is in. */ + while (heap) + { + if (heap->bloc_start <= b->data && b->data <= heap->end) + break; + heap = heap->next; + /* We know HEAP is not null now, + because there has to be space for bloc B. */ + heap->first_bloc = NIL_BLOC; + heap->last_bloc = NIL_BLOC; + heap->free = heap->bloc_start; + } + + /* Update HEAP's status for bloc B. */ + heap->free = b->data + b->size; + heap->last_bloc = b; + if (heap->first_bloc == NIL_BLOC) + heap->first_bloc = b; + + /* Record that B is in HEAP. */ + b->heap = heap; + } + + /* If there are any remaining heaps and no blocs left, + mark those heaps as empty. */ + heap = heap->next; + while (heap) { - SIZE offset = address - bloc->data; - SIZE data_size = 0; - bloc_ptr b; + heap->first_bloc = NIL_BLOC; + heap->last_bloc = NIL_BLOC; + heap->free = heap->bloc_start; + heap = heap->next; + } +} + +/* Resize BLOC to SIZE bytes. This relocates the blocs + that come after BLOC in memory. */ + +static int +resize_bloc (bloc, size) + bloc_ptr bloc; + SIZE size; +{ + register bloc_ptr b; + heap_ptr heap; + POINTER address; + SIZE old_size; + + /* No need to ever call this if arena is frozen, bug somewhere! */ + if (r_alloc_freeze_level) + abort(); + + if (bloc == NIL_BLOC || size == bloc->size) + return 1; + + for (heap = first_heap; heap != NIL_HEAP; heap = heap->next) + { + if (heap->bloc_start <= bloc->data && bloc->data <= heap->end) + break; + } + + if (heap == NIL_HEAP) + abort (); + + old_size = bloc->size; + bloc->size = size; + /* Note that bloc could be moved into the previous heap. */ + address = (bloc->prev ? bloc->prev->data + bloc->prev->size + : first_heap->bloc_start); + while (heap) + { + if (heap->bloc_start <= address && address <= heap->end) + break; + heap = heap->prev; + } + + if (! relocate_blocs (bloc, heap, address)) + { + bloc->size = old_size; + return 0; + } + + if (size > old_size) + { + for (b = last_bloc; b != bloc; b = b->prev) + { + if (!b->variable) + { + b->size = 0; + b->data = b->new_data; + } + else + { + safe_bcopy (b->data, b->new_data, b->size); + *b->variable = b->data = b->new_data; + } + } + if (!bloc->variable) + { + bloc->size = 0; + bloc->data = bloc->new_data; + } + else + { + safe_bcopy (bloc->data, bloc->new_data, old_size); + memset (bloc->new_data + old_size, 0, size - old_size); + *bloc->variable = bloc->data = bloc->new_data; + } + } + else + { for (b = bloc; b != NIL_BLOC; b = b->next) { - data_size += b->size; - b->data += offset; - *b->variable = b->data; + if (!b->variable) + { + b->size = 0; + b->data = b->new_data; + } + else + { + safe_bcopy (b->data, b->new_data, b->size); + *b->variable = b->data = b->new_data; + } } + } - memmove (address, address - offset, data_size); - } + update_heap_bloc_correspondence (bloc, heap); + + break_value = (last_bloc ? last_bloc->data + last_bloc->size + : first_heap->bloc_start); + return 1; } - + /* Free BLOC from the chain of blocs, relocating any blocs above it and returning BLOC->size bytes to the free area. */ static void free_bloc (bloc_ptr bloc) { + heap_ptr heap = bloc->heap; + + if (r_alloc_freeze_level) + { + bloc->variable = (POINTER *) NIL; + return; + } + + resize_bloc (bloc, 0); + if (bloc == first_bloc && bloc == last_bloc) { first_bloc = last_bloc = NIL_BLOC; @@ -311,15 +759,28 @@ bloc->prev->next = bloc->next; } - relocate_some_blocs (bloc->next, bloc->data); - relinquish (bloc->size); + /* Update the records of which blocs are in HEAP. */ + if (heap->first_bloc == bloc) + { + if (bloc->next != 0 && bloc->next->heap == heap) + heap->first_bloc = bloc->next; + else + heap->first_bloc = heap->last_bloc = NIL_BLOC; + } + if (heap->last_bloc == bloc) + { + if (bloc->prev != 0 && bloc->prev->heap == heap) + heap->last_bloc = bloc->prev; + else + heap->first_bloc = heap->last_bloc = NIL_BLOC; + } + + relinquish (); free (bloc); } /* Interface routines. */ -static int use_relocatable_buffers; - /* Obtain SIZE bytes of storage from the free pool, or the system, as necessary. If relocatable blocs are in use, this means relocating them. This function gets plugged into the GNU malloc's __morecore @@ -334,58 +795,150 @@ POINTER r_alloc_sbrk (long size) { - /* This is the first address not currently available for the heap. */ - POINTER top; - /* Amount of empty space below that. */ - /* It is not correct to use SIZE here, because that is usually unsigned. - ptrdiff_t would be okay, but is not always available. - `long' will work in all cases, in practice. */ - long already_available; - POINTER ptr; + register bloc_ptr b; + POINTER address; + + if (! r_alloc_initialized) + init_ralloc (); if (! use_relocatable_buffers) return (*real_morecore) (size); - top = first_bloc ? first_bloc->data : page_break_value; - already_available = (char *) top - (char *) virtual_break_value; + if (size == 0) + return virtual_break_value; - /* Do we not have enough gap already? */ - if (size > 0 && already_available < size) + if (size > 0) { - /* Get what we need, plus some extra so we can come here less often. */ - SIZE get = size - already_available + extra_bytes; + /* Allocate a page-aligned space. GNU malloc would reclaim an + extra space if we passed an unaligned one. But we could + not always find a space which is contiguous to the previous. */ + POINTER new_bloc_start; + heap_ptr h = first_heap; + SIZE get = ROUNDUP (size); + + address = (POINTER) ROUNDUP (virtual_break_value); + + /* Search the list upward for a heap which is large enough. */ + while ((char *) h->end < (char *) MEM_ROUNDUP ((char *)address + get)) + { + h = h->next; + if (h == NIL_HEAP) + break; + address = (POINTER) ROUNDUP (h->start); + } + + /* If not found, obtain more space. */ + if (h == NIL_HEAP) + { + get += extra_bytes + page_size; - if (! obtain (get)) - return 0; + if (! obtain (address, get)) + return 0; + + if (first_heap == last_heap) + address = (POINTER) ROUNDUP (virtual_break_value); + else + address = (POINTER) ROUNDUP (last_heap->start); + h = last_heap; + } + + new_bloc_start = (POINTER) MEM_ROUNDUP ((char *)address + get); + + if (first_heap->bloc_start < new_bloc_start) + { + /* This is no clean solution - no idea how to do it better. */ + if (r_alloc_freeze_level) + return NIL; + + /* There is a bug here: if the above obtain call succeeded, but the + relocate_blocs call below does not succeed, we need to free + the memory that we got with obtain. */ + + /* Move all blocs upward. */ + if (! relocate_blocs (first_bloc, h, new_bloc_start)) + return 0; - if (first_bloc) - relocate_some_blocs (first_bloc, first_bloc->data + get); + /* Note that (POINTER)(h+1) <= new_bloc_start since + get >= page_size, so the following does not destroy the heap + header. */ + for (b = last_bloc; b != NIL_BLOC; b = b->prev) + { + safe_bcopy (b->data, b->new_data, b->size); + *b->variable = b->data = b->new_data; + } + + h->bloc_start = new_bloc_start; - /* Zero out the space we just allocated, to help catch bugs - quickly. */ - memset (virtual_break_value, 0, get); + update_heap_bloc_correspondence (first_bloc, h); + } + if (h != first_heap) + { + /* Give up managing heaps below the one the new + virtual_break_value points to. */ + first_heap->prev = NIL_HEAP; + first_heap->next = h->next; + first_heap->start = h->start; + first_heap->end = h->end; + first_heap->free = h->free; + first_heap->first_bloc = h->first_bloc; + first_heap->last_bloc = h->last_bloc; + first_heap->bloc_start = h->bloc_start; + + if (first_heap->next) + first_heap->next->prev = first_heap; + else + last_heap = first_heap; + } + + memset (address, 0, size); } - /* Can we keep extra_bytes of gap while freeing at least extra_bytes? */ - else if (size < 0 && already_available - size > 2 * extra_bytes) + else /* size < 0 */ { - /* Ok, do so. This is how many to free. */ - SIZE give_back = already_available - size - extra_bytes; + SIZE excess = (char *)first_heap->bloc_start + - ((char *)virtual_break_value + size); + + address = virtual_break_value; + + if (r_alloc_freeze_level == 0 && excess > 2 * extra_bytes) + { + excess -= extra_bytes; + first_heap->bloc_start + = (POINTER) MEM_ROUNDUP ((char *)first_heap->bloc_start - excess); + + relocate_blocs (first_bloc, first_heap, first_heap->bloc_start); - if (first_bloc) - relocate_some_blocs (first_bloc, first_bloc->data - give_back); - relinquish (give_back); + for (b = first_bloc; b != NIL_BLOC; b = b->next) + { + safe_bcopy (b->data, b->new_data, b->size); + *b->variable = b->data = b->new_data; + } + } + + if ((char *)virtual_break_value + size < (char *)first_heap->start) + { + /* We found an additional space below the first heap */ + first_heap->start = (POINTER) ((char *)virtual_break_value + size); + } } - ptr = virtual_break_value; - virtual_break_value += size; + virtual_break_value = (POINTER) ((char *)address + size); + break_value = (last_bloc + ? last_bloc->data + last_bloc->size + : first_heap->bloc_start); + if (size < 0) + relinquish (); - return ptr; + return address; } /* Allocate a relocatable bloc of storage of size SIZE. A pointer to the data is returned in *PTR. PTR is thus the address of some variable which will use the data area. + The allocation of 0 bytes is valid. + In case r_alloc_freeze is set, a best fit of unused blocs could be done + before allocating a new area. Not yet done. + If we can't allocate the necessary memory, set *PTR to zero, and return zero. */ @@ -415,7 +968,10 @@ void r_alloc_free (POINTER *ptr) { - bloc_ptr dead_bloc; + register bloc_ptr dead_bloc; + + if (! r_alloc_initialized) + init_ralloc (); dead_bloc = find_bloc (ptr); if (dead_bloc == NIL_BLOC) @@ -423,6 +979,10 @@ free_bloc (dead_bloc); *ptr = 0; + +#ifdef emacs + refill_memory_reserve (); +#endif } /* Given a pointer at address PTR to relocatable data, resize it to SIZE. @@ -430,6 +990,10 @@ SIZE is less than or equal to the current bloc size, in which case do nothing. + In case r_alloc_freeze is set, a new bloc is allocated, and the + memory copied to it. Not very efficient. We could traverse the + bloc_list for a best fit of free blocs first. + Change *PTR to reflect the new bloc, and return this value. If more memory cannot be allocated, then leave *PTR unchanged, and @@ -438,29 +1002,106 @@ POINTER r_re_alloc (POINTER *ptr, SIZE size) { - bloc_ptr bloc; + register bloc_ptr bloc; + + if (! r_alloc_initialized) + init_ralloc (); + + if (!*ptr) + return r_alloc (ptr, size); + if (!size) + { + r_alloc_free (ptr); + return r_alloc (ptr, 0); + } bloc = find_bloc (ptr); if (bloc == NIL_BLOC) abort (); - if (size <= bloc->size) - /* Wouldn't it be useful to actually resize the bloc here? */ - return *ptr; - - if (! obtain (size - bloc->size)) - return 0; - - relocate_some_blocs (bloc->next, bloc->data + size); - - /* Zero out the new space in the bloc, to help catch bugs faster. */ - memset (bloc->data + bloc->size, 0, size - bloc->size); - - /* Indicate that this block has a new size. */ - bloc->size = size; - + if (size < bloc->size) + { + /* Wouldn't it be useful to actually resize the bloc here? */ + /* I think so too, but not if it's too expensive... */ + if ((bloc->size - MEM_ROUNDUP (size) >= page_size) + && r_alloc_freeze_level == 0) + { + resize_bloc (bloc, MEM_ROUNDUP (size)); + /* Never mind if this fails, just do nothing... */ + /* It *should* be infallible! */ + } + } + else if (size > bloc->size) + { + if (r_alloc_freeze_level) + { + bloc_ptr new_bloc; + new_bloc = get_bloc (MEM_ROUNDUP (size)); + if (new_bloc) + { + new_bloc->variable = ptr; + *ptr = new_bloc->data; + bloc->variable = (POINTER *) NIL; + } + else + return NIL; + } + else + { + if (! resize_bloc (bloc, MEM_ROUNDUP (size))) + return NIL; + } + } return *ptr; } + +/* Disable relocations, after making room for at least SIZE bytes + of non-relocatable heap if possible. The relocatable blocs are + guaranteed to hold still until thawed, even if this means that + malloc must return a null pointer. */ + +void +r_alloc_freeze (size) + long size; +{ + if (! r_alloc_initialized) + init_ralloc (); + + /* If already frozen, we can't make any more room, so don't try. */ + if (r_alloc_freeze_level > 0) + size = 0; + /* If we can't get the amount requested, half is better than nothing. */ + while (size > 0 && r_alloc_sbrk (size) == 0) + size /= 2; + ++r_alloc_freeze_level; + if (size > 0) + r_alloc_sbrk (-size); +} + +void +r_alloc_thaw () +{ + + if (! r_alloc_initialized) + init_ralloc (); + + if (--r_alloc_freeze_level < 0) + abort (); + + /* This frees all unused blocs. It is not too inefficient, as the resize + and bcopy is done only once. Afterwards, all unreferenced blocs are + already shrunk to zero size. */ + if (!r_alloc_freeze_level) + { + bloc_ptr *b = &first_bloc; + while (*b) + if (!(*b)->variable) + free_bloc (*b); + else + b = &(*b)->next; + } +} + /* The hook `malloc' uses for the function which gets more space from the system. */ @@ -478,36 +1119,155 @@ real_morecore = __morecore; __morecore = r_alloc_sbrk; - virtual_break_value = break_value = (*real_morecore) (0); + first_heap = last_heap = &heap_base; + first_heap->next = first_heap->prev = NIL_HEAP; + first_heap->start = first_heap->bloc_start + = virtual_break_value = break_value = (*real_morecore) (0); if (break_value == NIL) abort (); page_size = PAGE; extra_bytes = ROUNDUP (50000); - page_break_value = (POINTER) ROUNDUP (break_value); +#ifdef DOUG_LEA_MALLOC + mallopt (M_TOP_PAD, 64 * 4096); +#else +#if 0 /* Hasn't been synched yet */ + /* Give GNU malloc's morecore some hysteresis + so that we move all the relocatable blocks much less often. */ + __malloc_extra_blocks = 64; +#endif +#endif - /* From eirik@elf.IThaca.ny.US (Eirik Fuller): - The extra call to real_morecore guarantees that the end of the + first_heap->end = (POINTER) ROUNDUP (first_heap->start); + + /* The extra call to real_morecore guarantees that the end of the address space is a multiple of page_size, even if page_size is not really the page size of the system running the binary in which page_size is stored. This allows a binary to be built on a system with one page size and run on a system with a smaller page - size. (Such as compiling on a Sun 4/260 4.1.3 and running on a - Sun 4/65 4.1.3: 8k pages at compile time, 4k pages at run time.) - */ - (*real_morecore) (page_break_value - break_value); + size. */ + (*real_morecore) (first_heap->end - first_heap->start); /* Clear the rest of the last page; this memory is in our address space even though it is after the sbrk value. */ - /* Doubly true, with the additional call that explicitly adds the rest of that page to the address space. */ - memset (break_value, 0, (page_break_value - break_value)); - /* Also from eirik@elf.IThaca.ny.US */ - virtual_break_value = break_value = page_break_value; + memset (first_heap->start, 0, first_heap->end - first_heap->start); + virtual_break_value = break_value = first_heap->bloc_start = first_heap->end; use_relocatable_buffers = 1; } + +#if defined (emacs) && defined (DOUG_LEA_MALLOC) + +/* Reinitialize the morecore hook variables after restarting a dumped + Emacs. This is needed when using Doug Lea's malloc from GNU libc. */ +void +r_alloc_reinit () +{ + /* Only do this if the hook has been reset, so that we don't get an + infinite loop, in case Emacs was linked statically. */ + if (__morecore != r_alloc_sbrk) + { + real_morecore = __morecore; + __morecore = r_alloc_sbrk; + } +} +#if 0 +#ifdef DEBUG + +void +r_alloc_check () +{ + int found = 0; + heap_ptr h, ph = 0; + bloc_ptr b, pb = 0; + + if (!r_alloc_initialized) + return; + + assert (first_heap); + assert (last_heap->end <= (POINTER) sbrk (0)); + assert ((POINTER) first_heap < first_heap->start); + assert (first_heap->start <= virtual_break_value); + assert (virtual_break_value <= first_heap->end); + + for (h = first_heap; h; h = h->next) + { + assert (h->prev == ph); + assert ((POINTER) ROUNDUP (h->end) == h->end); +#if 0 /* ??? The code in ralloc.c does not really try to ensure + the heap start has any sort of alignment. + Perhaps it should. */ + assert ((POINTER) MEM_ROUNDUP (h->start) == h->start); +#endif + assert ((POINTER) MEM_ROUNDUP (h->bloc_start) == h->bloc_start); + assert (h->start <= h->bloc_start && h->bloc_start <= h->end); + + if (ph) + { + assert (ph->end < h->start); + assert (h->start <= (POINTER)h && (POINTER)(h+1) <= h->bloc_start); + } + + if (h->bloc_start <= break_value && break_value <= h->end) + found = 1; + + ph = h; + } + + assert (found); + assert (last_heap == ph); + + for (b = first_bloc; b; b = b->next) + { + assert (b->prev == pb); + assert ((POINTER) MEM_ROUNDUP (b->data) == b->data); + assert ((SIZE) MEM_ROUNDUP (b->size) == b->size); + + ph = 0; + for (h = first_heap; h; h = h->next) + { + if (h->bloc_start <= b->data && b->data + b->size <= h->end) + break; + ph = h; + } + + assert (h); + + if (pb && pb->data + pb->size != b->data) + { + assert (ph && b->data == h->bloc_start); + while (ph) + { + if (ph->bloc_start <= pb->data + && pb->data + pb->size <= ph->end) + { + assert (pb->data + pb->size + b->size > ph->end); + break; + } + else + { + assert (ph->bloc_start + b->size > ph->end); + } + ph = ph->prev; + } + } + pb = b; + } + + assert (last_bloc == pb); + + if (last_bloc) + assert (last_bloc->data + last_bloc->size == break_value); + else + assert (first_heap->bloc_start == break_value); +} +#endif /* DEBUG */ +#endif /* 0 */ + +#endif + #else /* HAVE_MMAP */ /* diff -r e92abcaa252b -r 084402c475ba src/regex.c --- a/src/regex.c Mon Aug 13 10:20:29 2007 +0200 +++ b/src/regex.c Mon Aug 13 10:21:18 2007 +0200 @@ -70,7 +70,7 @@ /* XEmacs: the current mmap-based ralloc handles small blocks very poorly, so we disable it here. */ -#if defined (REL_ALLOC) && defined (HAVE_MMAP) +#if (defined (REL_ALLOC) && defined (HAVE_MMAP)) || defined(DOUG_LEA_MALLOC) # undef REL_ALLOC #endif diff -r e92abcaa252b -r 084402c475ba src/sysdep.c --- a/src/sysdep.c Mon Aug 13 10:20:29 2007 +0200 +++ b/src/sysdep.c Mon Aug 13 10:21:18 2007 +0200 @@ -80,8 +80,10 @@ #ifndef WINDOWSNT #include #endif + #ifdef WINDOWSNT #include +#include #include "ntheap.h" #endif @@ -2374,7 +2376,7 @@ /************************************************************************/ -/* Emulation of strerror() */ +/* Emulation of strerror() and errno support */ /************************************************************************/ #ifndef HAVE_STRERROR @@ -2403,6 +2405,104 @@ #endif /* ! HAVE_STRERROR */ +#ifdef WINDOWSNT + +struct errentry { + unsigned long oscode; /* Win32 error */ + int errnocode; /* unix errno */ +}; + +static struct errentry errtable[] = { + { ERROR_INVALID_FUNCTION, EINVAL }, /* 1 */ + { ERROR_FILE_NOT_FOUND, ENOENT }, /* 2 */ + { ERROR_PATH_NOT_FOUND, ENOENT }, /* 3 */ + { ERROR_TOO_MANY_OPEN_FILES, EMFILE }, /* 4 */ + { ERROR_ACCESS_DENIED, EACCES }, /* 5 */ + { ERROR_INVALID_HANDLE, EBADF }, /* 6 */ + { ERROR_ARENA_TRASHED, ENOMEM }, /* 7 */ + { ERROR_NOT_ENOUGH_MEMORY, ENOMEM }, /* 8 */ + { ERROR_INVALID_BLOCK, ENOMEM }, /* 9 */ + { ERROR_BAD_ENVIRONMENT, E2BIG }, /* 10 */ + { ERROR_BAD_FORMAT, ENOEXEC }, /* 11 */ + { ERROR_INVALID_ACCESS, EINVAL }, /* 12 */ + { ERROR_INVALID_DATA, EINVAL }, /* 13 */ + { ERROR_INVALID_DRIVE, ENOENT }, /* 15 */ + { ERROR_CURRENT_DIRECTORY, EACCES }, /* 16 */ + { ERROR_NOT_SAME_DEVICE, EXDEV }, /* 17 */ + { ERROR_NO_MORE_FILES, ENOENT }, /* 18 */ + { ERROR_LOCK_VIOLATION, EACCES }, /* 33 */ + { ERROR_BAD_NETPATH, ENOENT }, /* 53 */ + { ERROR_NETWORK_ACCESS_DENIED, EACCES }, /* 65 */ + { ERROR_BAD_NET_NAME, ENOENT }, /* 67 */ + { ERROR_FILE_EXISTS, EEXIST }, /* 80 */ + { ERROR_CANNOT_MAKE, EACCES }, /* 82 */ + { ERROR_FAIL_I24, EACCES }, /* 83 */ + { ERROR_INVALID_PARAMETER, EINVAL }, /* 87 */ + { ERROR_NO_PROC_SLOTS, EAGAIN }, /* 89 */ + { ERROR_DRIVE_LOCKED, EACCES }, /* 108 */ + { ERROR_BROKEN_PIPE, EPIPE }, /* 109 */ + { ERROR_DISK_FULL, ENOSPC }, /* 112 */ + { ERROR_INVALID_TARGET_HANDLE, EBADF }, /* 114 */ + { ERROR_INVALID_HANDLE, EINVAL }, /* 124 */ + { ERROR_WAIT_NO_CHILDREN, ECHILD }, /* 128 */ + { ERROR_CHILD_NOT_COMPLETE, ECHILD }, /* 129 */ + { ERROR_DIRECT_ACCESS_HANDLE, EBADF }, /* 130 */ + { ERROR_NEGATIVE_SEEK, EINVAL }, /* 131 */ + { ERROR_SEEK_ON_DEVICE, EACCES }, /* 132 */ + { ERROR_DIR_NOT_EMPTY, ENOTEMPTY }, /* 145 */ + { ERROR_NOT_LOCKED, EACCES }, /* 158 */ + { ERROR_BAD_PATHNAME, ENOENT }, /* 161 */ + { ERROR_MAX_THRDS_REACHED, EAGAIN }, /* 164 */ + { ERROR_LOCK_FAILED, EACCES }, /* 167 */ + { ERROR_ALREADY_EXISTS, EEXIST }, /* 183 */ + { ERROR_FILENAME_EXCED_RANGE, ENOENT }, /* 206 */ + { ERROR_NESTING_NOT_ALLOWED, EAGAIN }, /* 215 */ + { ERROR_NOT_ENOUGH_QUOTA, ENOMEM } /* 1816 */ +}; + +/* The following two constants must be the minimum and maximum + values in the (contiguous) range of Exec Failure errors. */ +#define MIN_EXEC_ERROR ERROR_INVALID_STARTING_CODESEG +#define MAX_EXEC_ERROR ERROR_INFLOOP_IN_RELOC_CHAIN + +/* These are the low and high value in the range of errors that are + access violations */ +#define MIN_EACCES_RANGE ERROR_WRITE_PROTECT +#define MAX_EACCES_RANGE ERROR_SHARING_BUFFER_EXCEEDED + +void +mswindows_set_errno (unsigned long win32_error) +{ + int i; + + /* check the table for the OS error code */ + for (i = 0; i < sizeof(errtable)/sizeof(errtable[0]); ++i) + { + if (win32_error == errtable[i].oscode) + { + errno = errtable[i].errnocode; + return; + } + } + + /* The error code wasn't in the table. We check for a range of + * EACCES errors or exec failure errors (ENOEXEC). Otherwise EINVAL is + * returned. */ + if (win32_error >= MIN_EACCES_RANGE && win32_error <= MAX_EACCES_RANGE) + errno = EACCES; + else if (win32_error >= MIN_EXEC_ERROR && win32_error <= MAX_EXEC_ERROR) + errno = ENOEXEC; + else + errno = EINVAL; +} + +void +mswindows_set_last_errno (void) +{ + mswindows_set_errno (GetLastError ()); +} + +#endif /* WINDOWSNT */ /************************************************************************/ diff -r e92abcaa252b -r 084402c475ba src/sysdep.h --- a/src/sysdep.h Mon Aug 13 10:20:29 2007 +0200 +++ b/src/sysdep.h Mon Aug 13 10:21:18 2007 +0200 @@ -158,6 +158,11 @@ CONST char *strerror (int); #endif +#ifdef WINDOWSNT +void mswindows_set_errno (unsigned long win32_error); +void mswindows_set_last_errno (void); +#endif + int interruptible_open (CONST char *path, int oflag, int mode); #ifndef HAVE_H_ERRNO diff -r e92abcaa252b -r 084402c475ba src/unexelf.c --- a/src/unexelf.c Mon Aug 13 10:20:29 2007 +0200 +++ b/src/unexelf.c Mon Aug 13 10:21:18 2007 +0200 @@ -18,7 +18,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* Synched up with: FSF 19.31. */ +/* Synched up with: FSF 20.2. */ /* * unexec.c - Convert a running program into an a.out file. @@ -420,6 +420,18 @@ #include #include +#if __GNU_LIBRARY__ - 0 >= 6 +# include /* get ElfW etc */ +#endif + +#ifndef ElfW +# ifdef __STDC__ +# define ElfW(type) Elf32_##type +# else +# define ElfW(type) Elf32_/**/type +# endif +#endif + #ifndef emacs #define fatal(a, b, c) fprintf (stderr, a, b, c), exit (1) #else @@ -459,13 +471,13 @@ */ #define OLD_SECTION_H(n) \ - (*(Elf32_Shdr *) ((byte *) old_section_h + old_file_h->e_shentsize * (n))) + (*(ElfW(Shdr) *) ((byte *) old_section_h + old_file_h->e_shentsize * (n))) #define NEW_SECTION_H(n) \ - (*(Elf32_Shdr *) ((byte *) new_section_h + new_file_h->e_shentsize * (n))) + (*(ElfW(Shdr) *) ((byte *) new_section_h + new_file_h->e_shentsize * (n))) #define OLD_PROGRAM_H(n) \ - (*(Elf32_Phdr *) ((byte *) old_program_h + old_file_h->e_phentsize * (n))) + (*(ElfW(Phdr) *) ((byte *) old_program_h + old_file_h->e_phentsize * (n))) #define NEW_PROGRAM_H(n) \ - (*(Elf32_Phdr *) ((byte *) new_program_h + new_file_h->e_phentsize * (n))) + (*(ElfW(Phdr) *) ((byte *) new_program_h + new_file_h->e_phentsize * (n))) #define PATCH_INDEX(n) \ do { \ @@ -507,17 +519,17 @@ /* Pointers to the file, program and section headers for the old and new * files. */ - Elf32_Ehdr *old_file_h, *new_file_h; - Elf32_Phdr *old_program_h, *new_program_h; - Elf32_Shdr *old_section_h, *new_section_h; + ElfW(Ehdr) *old_file_h, *new_file_h; + ElfW(Phdr) *old_program_h, *new_program_h; + ElfW(Shdr) *old_section_h, *new_section_h; /* Point to the section name table in the old file */ char *old_section_names; - Elf32_Addr old_bss_addr, new_bss_addr; - Elf32_Word old_bss_size, new_data2_size; - Elf32_Off new_data2_offset; - Elf32_Addr new_data2_addr; + ElfW(Addr) old_bss_addr, new_bss_addr; + ElfW(Word) old_bss_size, new_data2_size; + ElfW(Off) new_data2_offset; + ElfW(Addr) new_data2_addr; int n, nn, old_bss_index, old_data_index; struct stat stat_buf; @@ -544,9 +556,9 @@ /* Get pointers to headers & section names */ - old_file_h = (Elf32_Ehdr *) old_base; - old_program_h = (Elf32_Phdr *) ((byte *) old_base + old_file_h->e_phoff); - old_section_h = (Elf32_Shdr *) ((byte *) old_base + old_file_h->e_shoff); + old_file_h = (ElfW(Ehdr) *) old_base; + old_program_h = (ElfW(Phdr) *) ((byte *) old_base + old_file_h->e_phoff); + old_section_h = (ElfW(Shdr) *) ((byte *) old_base + old_file_h->e_shoff); old_section_names = (char *) old_base + OLD_SECTION_H (old_file_h->e_shstrndx).sh_offset; @@ -570,8 +582,8 @@ old_bss_addr = OLD_SECTION_H (old_bss_index).sh_addr; old_bss_size = OLD_SECTION_H (old_bss_index).sh_size; -#if defined(emacs) || !defined(DEBUG) - new_bss_addr = (Elf32_Addr) sbrk (0); +#if defined (emacs) || !defined (DEBUG) + new_bss_addr = (ElfW(Addr)) sbrk (0); #else new_bss_addr = old_bss_addr + old_bss_size + 0x1234; #endif @@ -617,9 +629,9 @@ if (new_base == (caddr_t) -1) fatal ("Can't mmap (%s): errno %d\n", new_name, errno); - new_file_h = (Elf32_Ehdr *) new_base; - new_program_h = (Elf32_Phdr *) ((byte *) new_base + old_file_h->e_phoff); - new_section_h = (Elf32_Shdr *) + new_file_h = (ElfW(Ehdr) *) new_base; + new_program_h = (ElfW(Phdr) *) ((byte *) new_base + old_file_h->e_phoff); + new_section_h = (ElfW(Shdr) *) ((byte *) new_base + old_file_h->e_shoff + new_data2_size); /* Make our new file, program and section headers as copies of the @@ -821,9 +833,9 @@ if (NEW_SECTION_H (nn).sh_type == SHT_SYMTAB || NEW_SECTION_H (nn).sh_type == SHT_DYNSYM) { - Elf32_Shdr *spt = &NEW_SECTION_H (nn); + ElfW(Shdr) *spt = &NEW_SECTION_H (nn); unsigned int num = spt->sh_size / spt->sh_entsize; - Elf32_Sym * sym = (Elf32_Sym *) (NEW_SECTION_H (nn).sh_offset + + ElfW(Sym) * sym = (ElfW(Sym) *) (NEW_SECTION_H (nn).sh_offset + new_base); for (; num--; sym++) { @@ -841,7 +853,7 @@ for (n = new_file_h->e_shnum - 1; n; n--) { byte *symnames; - Elf32_Sym *symp, *symendp; + ElfW(Sym) *symp, *symendp; if (NEW_SECTION_H (n).sh_type != SHT_DYNSYM && NEW_SECTION_H (n).sh_type != SHT_SYMTAB) @@ -849,8 +861,8 @@ symnames = ((byte *) new_base + NEW_SECTION_H (NEW_SECTION_H (n).sh_link).sh_offset); - symp = (Elf32_Sym *) (NEW_SECTION_H (n).sh_offset + new_base); - symendp = (Elf32_Sym *) ((byte *)symp + NEW_SECTION_H (n).sh_size); + symp = (ElfW(Sym) *) (NEW_SECTION_H (n).sh_offset + new_base); + symendp = (ElfW(Sym) *) ((byte *)symp + NEW_SECTION_H (n).sh_size); for (; symp < symendp; symp ++) if (strcmp ((char *) (symnames + symp->st_name), "_end") == 0 @@ -862,7 +874,7 @@ that it can undo relocations performed by the runtime linker. */ for (n = new_file_h->e_shnum - 1; n; n--) { - Elf32_Shdr section = NEW_SECTION_H (n); + ElfW(Shdr) section = NEW_SECTION_H (n); switch (section.sh_type) { default: break; @@ -884,14 +896,14 @@ ".data1")) #endif { - Elf32_Addr offset = NEW_SECTION_H (nn).sh_addr - + ElfW(Addr) offset = NEW_SECTION_H (nn).sh_addr - NEW_SECTION_H (nn).sh_offset; caddr_t reloc = old_base + section.sh_offset, end; for (end = reloc + section.sh_size; reloc < end; reloc += section.sh_entsize) { - Elf32_Addr addr = ((Elf32_Rel *) reloc)->r_offset - offset; - memcpy (new_base + addr, old_base + addr, 4); + ElfW(Addr) addr = ((ElfW(Rel) *) reloc)->r_offset - offset; + memcpy (new_base + addr, old_base + addr, sizeof(ElfW(Addr))); } } break; diff -r e92abcaa252b -r 084402c475ba src/unexfreebsd.c --- a/src/unexfreebsd.c Mon Aug 13 10:20:29 2007 +0200 +++ b/src/unexfreebsd.c Mon Aug 13 10:21:18 2007 +0200 @@ -683,14 +683,14 @@ if (sbrk_of_0_at_unexec < current_sbrk) { if (sbrk_of_0_at_unexec != 0) - fprintf (stderr, "Absurd new brk addr = 0x%x (current = 0x%x)\n", + fprintf (stderr, "Absurd new brk addr = %lx (current = %lx)\n", sbrk_of_0_at_unexec, current_sbrk); } else { errno = 0; if (brk ((caddr_t) sbrk_of_0_at_unexec)) - fprintf (stderr, "failed to change brk addr to 0x%x: %s\n", + fprintf (stderr, "failed to change brk addr to %lx: %s\n", sbrk_of_0_at_unexec, SYS_ERR); } diff -r e92abcaa252b -r 084402c475ba src/window.c --- a/src/window.c Mon Aug 13 10:20:29 2007 +0200 +++ b/src/window.c Mon Aug 13 10:21:18 2007 +0200 @@ -4481,6 +4481,32 @@ int prev_index; /* index into saved_windows */ Lisp_Object dedicated; char start_at_line_beg; /* boolean */ + Lisp_Object display_table; + Lisp_Object modeline_shadow_thickness; + Lisp_Object has_modeline_p; +#ifdef HAVE_SCROLLBARS + Lisp_Object scrollbar_width; + Lisp_Object scrollbar_height; + Lisp_Object scrollbar_pointer; +#endif /* HAVE_SCROLLBARS */ +#ifdef HAVE_TOOLBARS + Lisp_Object toolbar[4]; + Lisp_Object toolbar_size[4]; + Lisp_Object toolbar_border_width[4]; + Lisp_Object toolbar_visible_p[4]; + Lisp_Object toolbar_buttons_captioned_p; + Lisp_Object default_toolbar; + Lisp_Object default_toolbar_width, default_toolbar_height; + Lisp_Object default_toolbar_visible_p; + Lisp_Object default_toolbar_border_width; +#endif /* HAVE_TOOLBARS */ + Lisp_Object left_margin_width, right_margin_width; + Lisp_Object minimum_line_ascent, minimum_line_descent; + Lisp_Object use_left_overflow, use_right_overflow; +#ifdef HAVE_MENUBARS + Lisp_Object menubar_visible_p; +#endif /* HAVE_MENUBARS */ + Lisp_Object text_cursor_visible_p; }; /* If you add anything to this structure make sure window_config_equal @@ -4595,7 +4621,49 @@ win1->parent_index == win2->parent_index && win1->prev_index == win2->prev_index && EQ (win1->dedicated, win2->dedicated) && - win1->start_at_line_beg == win2->start_at_line_beg; + win1->start_at_line_beg == win2->start_at_line_beg && + internal_equal(win1->display_table, win2->display_table, 0) && + EQ(win1->modeline_shadow_thickness, win2->modeline_shadow_thickness) && + EQ(win1->has_modeline_p, win2->has_modeline_p) && +#ifdef HAVE_SCROLLBARS + EQ(win1->scrollbar_width, win2->scrollbar_width) && + EQ(win1->scrollbar_height, win2->scrollbar_height) && + EQ(win1->scrollbar_pointer, win2->scrollbar_pointer) && +#endif /* HAVE_SCROLLBARS */ +#ifdef HAVE_TOOLBARS + internal_equal(win1->toolbar[0], win2->toolbar[0], 0) && + internal_equal(win1->toolbar[1], win2->toolbar[1], 0) && + internal_equal(win1->toolbar[2], win2->toolbar[2], 0) && + internal_equal(win1->toolbar[3], win2->toolbar[3], 0) && + internal_equal(win1->toolbar_border_width[0], win2->toolbar_border_width[0], 0) && + internal_equal(win1->toolbar_border_width[1], win2->toolbar_border_width[1], 0) && + internal_equal(win1->toolbar_border_width[2], win2->toolbar_border_width[2], 0) && + internal_equal(win1->toolbar_border_width[3], win2->toolbar_border_width[3], 0) && + internal_equal(win1->toolbar_size[0], win2->toolbar_size[0], 0) && + internal_equal(win1->toolbar_size[1], win2->toolbar_size[1], 0) && + internal_equal(win1->toolbar_size[2], win2->toolbar_size[2], 0) && + internal_equal(win1->toolbar_size[3], win2->toolbar_size[3], 0) && + internal_equal(win1->toolbar_visible_p[0], win2->toolbar_visible_p[0], 0) && + internal_equal(win1->toolbar_visible_p[1], win2->toolbar_visible_p[1], 0) && + internal_equal(win1->toolbar_visible_p[2], win2->toolbar_visible_p[2], 0) && + internal_equal(win1->toolbar_visible_p[3], win2->toolbar_visible_p[3], 0) && + EQ(win1->toolbar_buttons_captioned_p, win2->toolbar_buttons_captioned_p) && + internal_equal(win1->default_toolbar, win2->default_toolbar, 0) && + EQ(win1->default_toolbar_width, win2->default_toolbar_width) && + EQ(win1->default_toolbar_height, win2->default_toolbar_height) && + EQ(win1->default_toolbar_visible_p, win2->default_toolbar_visible_p) && + EQ(win1->default_toolbar_border_width, win2->default_toolbar_border_width) && +#endif /* HAVE_TOOLBARS */ + EQ(win1->left_margin_width, win2->left_margin_width) && + EQ(win1->right_margin_width, win2->right_margin_width) && + EQ(win1->minimum_line_ascent, win2->minimum_line_ascent) && + EQ(win1->minimum_line_descent, win2->minimum_line_descent) && + EQ(win1->use_left_overflow, win2->use_left_overflow) && + EQ(win1->use_right_overflow, win2->use_right_overflow) && +#ifdef HAVE_MENUBARS + EQ(win1->menubar_visible_p, win2->menubar_visible_p) && +#endif /* HAVE_MENUBARS */ + EQ(win1->text_cursor_visible_p, win2->text_cursor_visible_p); } /* Returns a boolean indicating whether the two given configurations @@ -4872,10 +4940,41 @@ WINDOW_WIDTH (w) = WINDOW_WIDTH (p); WINDOW_HEIGHT (w) = WINDOW_HEIGHT (p); w->hscroll = p->hscroll; - /* #### Here we need to restore the saved specs for - has-modeline-p, scrollbar-width, scrollbar-height, - modeline-shadow-thickness, left-margin-width, - right-margin-width, and current-display-table. */ + w->display_table = p->display_table; + w->modeline_shadow_thickness = p->modeline_shadow_thickness; + w->has_modeline_p = p->has_modeline_p; +#ifdef HAVE_SCROLLBARS + w->scrollbar_width = p->scrollbar_width; + w->scrollbar_height = p->scrollbar_height; + w->scrollbar_pointer = p->scrollbar_pointer; +#endif /* HAVE_SCROLLBARS */ +#ifdef HAVE_TOOLBARS + { + int ix; + for (ix = 0; ix < 4; ix++) + { + w->toolbar[ix] = p->toolbar[ix]; + w->toolbar_size[ix] = p->toolbar_size[ix]; + w->toolbar_border_width[ix] = p->toolbar_border_width[ix]; + w->toolbar_visible_p[ix] = p->toolbar_visible_p[ix]; + } + } + w->toolbar_buttons_captioned_p = p->toolbar_buttons_captioned_p; + w->default_toolbar = p->default_toolbar; + w->default_toolbar_width = p->default_toolbar_width; + w->default_toolbar_visible_p = p->default_toolbar_visible_p; + w->default_toolbar_border_width = p->default_toolbar_border_width; +#endif /* HAVE_TOOLBARS */ + w->left_margin_width = p->left_margin_width; + w->right_margin_width = p->right_margin_width; + w->minimum_line_ascent = p->minimum_line_ascent; + w->minimum_line_descent = p->minimum_line_descent; + w->use_left_overflow = p->use_left_overflow; + w->use_right_overflow = p->use_right_overflow; +#ifdef HAVE_MENUBARS + w->menubar_visible_p = p->menubar_visible_p; +#endif /* HAVE_MENUBARS */ + w->text_cursor_visible_p = p->text_cursor_visible_p; w->dedicated = p->dedicated; w->line_cache_last_updated = Qzero; SET_LAST_MODIFIED (w, 1); @@ -5108,10 +5207,42 @@ WINDOW_WIDTH (p) = WINDOW_WIDTH (w); WINDOW_HEIGHT (p) = WINDOW_HEIGHT (w); p->hscroll = w->hscroll; - /* #### Here we need to save the specs for - has-modeline-p, scrollbar-width, scrollbar-height, - modeline-shadow-thickness, left-margin-width, - right-margin-width, current-display-table, etc. */ + p->display_table = w->display_table; + p->modeline_shadow_thickness = w->modeline_shadow_thickness; + p->has_modeline_p = w->has_modeline_p; +#ifdef HAVE_SCROLLBARS + p->scrollbar_width = w->scrollbar_width; + p->scrollbar_height = w->scrollbar_height; + p->scrollbar_pointer = w->scrollbar_pointer; +#endif /* HAVE_SCROLLBARS */ +#ifdef HAVE_TOOLBARS + { + int ix; + for (ix = 0; ix < 4; ix++) + { + p->toolbar[ix] = w->toolbar[ix]; + p->toolbar_size[ix] = w->toolbar_size[ix]; + p->toolbar_border_width[ix] = w->toolbar_border_width[ix]; + p->toolbar_visible_p[ix] = w->toolbar_visible_p[ix]; + } + } + p->toolbar_buttons_captioned_p = w->toolbar_buttons_captioned_p; + p->default_toolbar = w->default_toolbar; + p->default_toolbar_width = w->default_toolbar_width; + p->default_toolbar_visible_p = w->default_toolbar_visible_p; + p->default_toolbar_border_width = w->default_toolbar_border_width; +#endif /* HAVE_TOOLBARS */ + p->left_margin_width = w->left_margin_width; + p->right_margin_width = w->right_margin_width; + p->minimum_line_ascent = w->minimum_line_ascent; + p->minimum_line_descent = w->minimum_line_descent; + p->use_left_overflow = w->use_left_overflow; + p->use_right_overflow = w->use_right_overflow; +#ifdef HAVE_MENUBARS + p->menubar_visible_p = w->menubar_visible_p; +#endif /* HAVE_MENUBARS */ + p->text_cursor_visible_p = w->text_cursor_visible_p; + if (!NILP (w->buffer)) { /* Save w's value of point in the window configuration. diff -r e92abcaa252b -r 084402c475ba version.sh --- a/version.sh Mon Aug 13 10:20:29 2007 +0200 +++ b/version.sh Mon Aug 13 10:21:18 2007 +0200 @@ -1,5 +1,5 @@ #!/bin/sh emacs_major_version=20 emacs_minor_version=5 -emacs_beta_version=25 -xemacs_codename="Kamori" +emacs_beta_version=26 +xemacs_codename="Kiko"