# This is a patch for xemacs-21.5.0 to update it to xemacs-21.5.1 # # To apply this patch: # STEP 1: Chdir to the source directory. # STEP 2: Run the 'applypatch' program with this patch file as input. # # If you do not have 'applypatch', it is part of the 'makepatch' package # that you can fetch from the Comprehensive Perl Archive Network: # http://www.perl.com/CPAN/authors/Johan_Vromans/makepatch-x.y.tar.gz # In the above URL, 'x' should be 2 or higher. # # To apply this patch without the use of 'applypatch': # STEP 1: Chdir to the source directory. # If you have a decent Bourne-type shell: # STEP 2: Run the shell with this file as input. # If you don't have such a shell, you may need to manually create # the files as shown below. # STEP 3: Run the 'patch' program with this file as input. # # These are the commands needed to create/delete files/directories: # touch 'lisp/behavior-defs.el' chmod 0644 'lisp/behavior-defs.el' touch 'lisp/behavior.el' chmod 0644 'lisp/behavior.el' touch 'lisp/hash-table.el' chmod 0644 'lisp/hash-table.el' touch 'nt/installer/Wise/ChangeLog' chmod 0644 'nt/installer/Wise/ChangeLog' touch 'nt/installer/Wise/display-readme.dlg' chmod 0644 'nt/installer/Wise/display-readme.dlg' # # This command terminates the shell and need not be executed manually. exit # #### End of Preamble #### #### Patch data follows #### diff --text -u 'xemacs-21.5.0/CHANGES-beta' 'xemacs-21.5.1/CHANGES-beta' Index: ./CHANGES-beta --- ./CHANGES-beta Wed Apr 18 15:57:58 2001 +++ ./CHANGES-beta Wed May 9 19:48:45 2001 @@ -1,3 +1,30 @@ +to 21.5.1 "anise" +-- This release contains a huge pile of changes by Ben Wing, including + both bug fixes and features. Highlights: + -- Many changes to make printing work on Windows + -- byte-compilation speed improvements + -- New functions for cleanly eliminating byte-compiler warnings + -- Remove core bytecompiler warnings + -- Improve interactive help interface + -- etags improvements + -- Better "About XEmacs" page + -- Windows configury changes + -- Get QUIT working on Windows + -- Fix shy group regexp code + -- etc. etc. + +-- The `short-name' argument to make-charset now works correctly + -- Yoshiaki Kasahara +-- `custom' changes -- Didier Verna +-- SET_FACE_PROPERTY bug fix -- Jerry James +-- Unix tty configury changes -- Martin Buchholz +-- Fix compile error with g++ on bsdi -- Martin Buchholz +-- Fix crash with xlc -O3 -- Martin Buchholz +-- Fix link error with (pre-release) gcc 3.0 -- Martin Buchholz +-- Fix build error if system has makeinfo 3.12 -- Martin Buchholz +-- Speed up `intern' and hash tables containing strings -- Martin Buchholz +-- Make hash table mapping safe -- Martin Buchholz + to 21.5.0 "alfalfa" -- Switch to new beta series diff --text -u 'xemacs-21.5.0/ChangeLog' 'xemacs-21.5.1/ChangeLog' Index: ./ChangeLog --- ./ChangeLog Wed Apr 18 15:56:45 2001 +++ ./ChangeLog Wed May 9 19:53:53 2001 @@ -1,3 +1,18 @@ +2001-05-09 Martin Buchholz + + * XEmacs 21.5.1 "anise" is released. + +2001-01-31 Jason R. Mastaler + + * etc/FTP: Updated FTP mirrors list. + +2001-05-04 Martin Buchholz + + * configure.in (opsys): + Use lower-case `uname -s` as the default value for opsys. + The previous code effectively did the non-sensical + opsys=$canonical because [] magically disappear in configure.in. + 2001-04-18 Martin Buchholz * XEmacs 21.5.0 "alfalfa" is released. diff --text -u 'xemacs-21.5.0/configure' 'xemacs-21.5.1/configure' Index: ./configure --- ./configure Wed Apr 18 15:59:16 2001 +++ ./configure Sat May 5 19:49:36 2001 @@ -1503,7 +1503,8 @@ esac test -z "$machine" && machine=`echo $canonical | sed 's/-.*$//'` -test -z "$opsys" && opsys=`echo $canonical | sed 's/^^-*-^-*-//'` + +test -z "$opsys" && opsys=`uname -s | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` if test -r "${srcdir}/src/m/${machine}.h"; then machfile="m/${machine}.h" @@ -1622,7 +1623,7 @@ # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1626: checking for $ac_word" >&5 +echo "configure:1627: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1649,7 +1650,7 @@ # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1653: checking for $ac_word" >&5 +echo "configure:1654: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1697,7 +1698,7 @@ # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1701: checking for $ac_word" >&5 +echo "configure:1702: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1726,7 +1727,7 @@ fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1730: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:1731: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c xe_cppflags='$CPPFLAGS $c_switch_site $c_switch_machine $c_switch_system $c_switch_x_site $X_CFLAGS' @@ -1739,12 +1740,12 @@ cat > conftest.$ac_ext << EOF -#line 1743 "configure" +#line 1744 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:1748: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1749: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -1772,19 +1773,19 @@ { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:1776: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1777: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:1781: checking whether we are using GNU C" >&5 +echo "configure:1782: checking whether we are using GNU C" >&5 cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1789: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -1802,7 +1803,7 @@ ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:1806: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:1807: checking whether ${CC-cc} accepts -g" >&5 echo 'void f(){}' > conftest.c if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then @@ -1835,7 +1836,7 @@ # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1839: checking for $ac_word" >&5 +echo "configure:1840: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1862,7 +1863,7 @@ # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1866: checking for $ac_word" >&5 +echo "configure:1867: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1910,7 +1911,7 @@ # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1914: checking for $ac_word" >&5 +echo "configure:1915: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1939,7 +1940,7 @@ fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1943: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:1944: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c xe_cppflags='$CPPFLAGS $c_switch_site $c_switch_machine $c_switch_system $c_switch_x_site $X_CFLAGS' @@ -1952,12 +1953,12 @@ cat > conftest.$ac_ext << EOF -#line 1956 "configure" +#line 1957 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:1961: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1962: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -1985,19 +1986,19 @@ { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:1989: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1990: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:1994: checking whether we are using GNU C" >&5 +echo "configure:1995: checking whether we are using GNU C" >&5 cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2002: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -2015,7 +2016,7 @@ ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:2019: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:2020: checking whether ${CC-cc} accepts -g" >&5 echo 'void f(){}' > conftest.c if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then @@ -2048,7 +2049,7 @@ # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2052: checking for $ac_word" >&5 +echo "configure:2053: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2075,7 +2076,7 @@ # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2079: checking for $ac_word" >&5 +echo "configure:2080: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2123,7 +2124,7 @@ # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2127: checking for $ac_word" >&5 +echo "configure:2128: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2152,7 +2153,7 @@ fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:2156: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:2157: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c xe_cppflags='$CPPFLAGS $c_switch_site $c_switch_machine $c_switch_system $c_switch_x_site $X_CFLAGS' @@ -2165,12 +2166,12 @@ cat > conftest.$ac_ext << EOF -#line 2169 "configure" +#line 2170 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:2174: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2175: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -2198,19 +2199,19 @@ { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:2202: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:2203: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:2207: checking whether we are using GNU C" >&5 +echo "configure:2208: checking whether we are using GNU C" >&5 cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2215: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -2228,7 +2229,7 @@ ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:2232: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:2233: checking whether ${CC-cc} accepts -g" >&5 echo 'void f(){}' > conftest.c if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then @@ -2265,7 +2266,7 @@ test -n "$NON_GNU_CPP" -a "$GCC" != "yes" -a -z "$CPP" && CPP="$NON_GNU_CPP" echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:2269: checking how to run the C preprocessor" >&5 +echo "configure:2270: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -2278,13 +2279,13 @@ # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2288: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2289: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -2295,13 +2296,13 @@ rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2305: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2306: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -2312,13 +2313,13 @@ rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2322: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2323: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -2344,9 +2345,9 @@ echo $ac_n "checking for AIX""... $ac_c" 1>&6 -echo "configure:2348: checking for AIX" >&5 +echo "configure:2349: checking for AIX" >&5 cat > conftest.$ac_ext <&6 -echo "configure:2377: checking for GNU libc" >&5 +echo "configure:2378: checking for GNU libc" >&5 cat > conftest.$ac_ext < int main() { @@ -2387,7 +2388,7 @@ ; return 0; } EOF -if { (eval echo configure:2391: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2392: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_glibc=yes else @@ -2464,7 +2465,7 @@ esac cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:2483: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then : else @@ -2712,17 +2713,17 @@ if test "$__USLC__" = yes; then echo $ac_n "checking for whether the -Kalloca compiler flag is needed""... $ac_c" 1>&6 -echo "configure:2716: checking for whether the -Kalloca compiler flag is needed" >&5 +echo "configure:2717: checking for whether the -Kalloca compiler flag is needed" >&5 need_kalloca=no cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2727: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* : else @@ -2733,14 +2734,14 @@ xe_save_c_switch_system="$c_switch_system" c_switch_system="$c_switch_system -Kalloca" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2745: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* need_kalloca=yes else @@ -2775,7 +2776,7 @@ if test "$GCC" = "yes"; then echo $ac_n "checking for buggy gcc versions""... $ac_c" 1>&6 -echo "configure:2779: checking for buggy gcc versions" >&5 +echo "configure:2780: checking for buggy gcc versions" >&5 GCC_VERSION=`$CC --version` case `uname -s`:`uname -m`:$GCC_VERSION in *:sun4*:2.8.1|*:sun4*:egcs-2.90.*) @@ -2898,7 +2899,7 @@ fi echo $ac_n "checking for dynodump""... $ac_c" 1>&6 -echo "configure:2902: checking for dynodump" >&5 +echo "configure:2903: checking for dynodump" >&5 if test "$unexec" != "unexsol2.o"; then echo "$ac_t""no" 1>&6 else @@ -2936,12 +2937,12 @@ done echo $ac_n "checking for terminateAndUnload in -lC""... $ac_c" 1>&6 -echo "configure:2940: checking for terminateAndUnload in -lC" >&5 +echo "configure:2941: checking for terminateAndUnload in -lC" >&5 ac_lib_var=`echo C'_'terminateAndUnload | sed 'y%./+-%__p_%'` xe_check_libs=" -lC " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2957: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3060,7 +3061,7 @@ if test "$add_runtime_path" = "yes"; then echo $ac_n "checking "for runtime libraries flag"""... $ac_c" 1>&6 -echo "configure:3064: checking "for runtime libraries flag"" >&5 +echo "configure:3065: checking "for runtime libraries flag"" >&5 case "$opsys" in sol2 ) dash_r="-R" ;; decosf* | linux* | irix*) dash_r="-rpath " ;; @@ -3082,14 +3083,14 @@ done fi cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3094: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* dash_r="$try_dash_r" else @@ -3190,10 +3191,10 @@ fi after_morecore_hook_exists=yes echo $ac_n "checking for malloc_set_state""... $ac_c" 1>&6 -echo "configure:3194: checking for malloc_set_state" >&5 +echo "configure:3195: checking for malloc_set_state" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3221: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_malloc_set_state=yes" else @@ -3236,16 +3237,16 @@ fi echo $ac_n "checking whether __after_morecore_hook exists""... $ac_c" 1>&6 -echo "configure:3240: checking whether __after_morecore_hook exists" >&5 +echo "configure:3241: checking whether __after_morecore_hook exists" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3250: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else @@ -3301,7 +3302,7 @@ # 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:3305: checking for $ac_word" >&5 +echo "configure:3306: checking for $ac_word" >&5 if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. @@ -3356,7 +3357,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:3360: checking for a BSD compatible install" >&5 +echo "configure:3361: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" @@ -3410,7 +3411,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:3414: checking for $ac_word" >&5 +echo "configure:3415: checking for $ac_word" >&5 if test -n "$YACC"; then ac_cv_prog_YACC="$YACC" # Let the user override the test. @@ -3442,15 +3443,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:3446: checking for $ac_hdr" >&5 +echo "configure:3447: checking for $ac_hdr" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3454: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3455: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -3480,10 +3481,10 @@ done echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 -echo "configure:3484: checking for sys/wait.h that is POSIX.1 compatible" >&5 +echo "configure:3485: checking for sys/wait.h that is POSIX.1 compatible" >&5 cat > conftest.$ac_ext < #include @@ -3499,7 +3500,7 @@ s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } EOF -if { (eval echo configure:3503: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3504: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_sys_wait_h=yes else @@ -3523,10 +3524,10 @@ fi echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:3527: checking for ANSI C header files" >&5 +echo "configure:3528: checking for ANSI C header files" >&5 cat > conftest.$ac_ext < #include @@ -3534,7 +3535,7 @@ #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3538: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3539: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -3551,7 +3552,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 @@ -3569,7 +3570,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 @@ -3587,7 +3588,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') @@ -3598,7 +3599,7 @@ exit (0); } EOF -if { (eval echo configure:3602: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:3603: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then : else @@ -3624,10 +3625,10 @@ fi echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 -echo "configure:3628: checking whether time.h and sys/time.h may both be included" >&5 +echo "configure:3629: checking whether time.h and sys/time.h may both be included" >&5 cat > conftest.$ac_ext < #include @@ -3636,7 +3637,7 @@ struct tm *tp; ; return 0; } EOF -if { (eval echo configure:3640: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3641: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes else @@ -3660,10 +3661,10 @@ fi echo $ac_n "checking for sys_siglist declaration in signal.h or unistd.h""... $ac_c" 1>&6 -echo "configure:3664: checking for sys_siglist declaration in signal.h or unistd.h" >&5 +echo "configure:3665: checking for sys_siglist declaration in signal.h or unistd.h" >&5 cat > conftest.$ac_ext < #include @@ -3675,7 +3676,7 @@ char *msg = *(sys_siglist + 1); ; return 0; } EOF -if { (eval echo configure:3679: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3680: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_decl_sys_siglist=yes else @@ -3701,9 +3702,9 @@ echo $ac_n "checking for utime""... $ac_c" 1>&6 -echo "configure:3705: checking for utime" >&5 +echo "configure:3706: checking for utime" >&5 cat > conftest.$ac_ext < #include @@ -3711,7 +3712,7 @@ struct utimbuf x; x.actime = x.modtime = 0; utime ("/", &x); ; return 0; } EOF -if { (eval echo configure:3715: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3716: \"$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 @@ -3730,10 +3731,10 @@ for ac_func in utimes do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3734: checking for $ac_func" >&5 +echo "configure:3735: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3761: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3788,10 +3789,10 @@ echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 -echo "configure:3792: checking return type of signal handlers" >&5 +echo "configure:3793: checking return type of signal handlers" >&5 cat > conftest.$ac_ext < #include @@ -3808,7 +3809,7 @@ int i; ; return 0; } EOF -if { (eval echo configure:3812: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3813: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void else @@ -3830,10 +3831,10 @@ echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:3834: checking for size_t" >&5 +echo "configure:3835: checking for size_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3864,10 +3865,10 @@ fi echo $ac_n "checking for pid_t""... $ac_c" 1>&6 -echo "configure:3868: checking for pid_t" >&5 +echo "configure:3869: checking for pid_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3898,10 +3899,10 @@ fi echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 -echo "configure:3902: checking for uid_t in sys/types.h" >&5 +echo "configure:3903: checking for uid_t in sys/types.h" >&5 cat > conftest.$ac_ext < EOF @@ -3937,10 +3938,10 @@ fi echo $ac_n "checking for mode_t""... $ac_c" 1>&6 -echo "configure:3941: checking for mode_t" >&5 +echo "configure:3942: checking for mode_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3971,10 +3972,10 @@ fi echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:3975: checking for off_t" >&5 +echo "configure:3976: checking for off_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -4005,10 +4006,10 @@ fi echo $ac_n "checking for ssize_t""... $ac_c" 1>&6 -echo "configure:4009: checking for ssize_t" >&5 +echo "configure:4010: checking for ssize_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -4040,9 +4041,9 @@ echo $ac_n "checking for socklen_t""... $ac_c" 1>&6 -echo "configure:4044: checking for socklen_t" >&5 +echo "configure:4045: checking for socklen_t" >&5 cat > conftest.$ac_ext < socklen_t x; @@ -4051,7 +4052,7 @@ ; return 0; } EOF -if { (eval echo configure:4055: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4056: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else @@ -4060,7 +4061,7 @@ rm -rf conftest* cat > conftest.$ac_ext < int accept (int, struct sockaddr *, size_t *); @@ -4069,7 +4070,7 @@ ; return 0; } EOF -if { (eval echo configure:4073: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4074: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""size_t" 1>&6 @@ -4101,9 +4102,9 @@ rm -f conftest* echo $ac_n "checking for struct timeval""... $ac_c" 1>&6 -echo "configure:4105: checking for struct timeval" >&5 +echo "configure:4106: checking for struct timeval" >&5 cat > conftest.$ac_ext < @@ -4119,7 +4120,7 @@ static struct timeval x; x.tv_sec = x.tv_usec; ; return 0; } EOF -if { (eval echo configure:4123: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4124: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 HAVE_TIMEVAL=yes @@ -4141,10 +4142,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:4145: checking whether struct tm is in sys/time.h or time.h" >&5 +echo "configure:4146: checking whether struct tm is in sys/time.h or time.h" >&5 cat > conftest.$ac_ext < #include @@ -4152,7 +4153,7 @@ struct tm *tp; tp->tm_sec; ; return 0; } EOF -if { (eval echo configure:4156: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4157: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm=time.h else @@ -4176,10 +4177,10 @@ fi echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6 -echo "configure:4180: checking for tm_zone in struct tm" >&5 +echo "configure:4181: checking for tm_zone in struct tm" >&5 cat > conftest.$ac_ext < #include <$ac_cv_struct_tm> @@ -4187,7 +4188,7 @@ struct tm tm; tm.tm_zone; ; return 0; } EOF -if { (eval echo configure:4191: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4192: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm_zone=yes else @@ -4210,10 +4211,10 @@ else echo $ac_n "checking for tzname""... $ac_c" 1>&6 -echo "configure:4214: checking for tzname" >&5 +echo "configure:4215: checking for tzname" >&5 cat > conftest.$ac_ext < #ifndef tzname /* For SGI. */ @@ -4223,7 +4224,7 @@ atoi(*tzname); ; return 0; } EOF -if { (eval echo configure:4227: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4228: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_var_tzname=yes else @@ -4249,10 +4250,10 @@ echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:4253: checking for working const" >&5 +echo "configure:4254: checking for working const" >&5 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4306: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -4326,7 +4327,7 @@ echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:4330: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:4331: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` cat > conftestmake <<\EOF @@ -4351,12 +4352,12 @@ echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6 -echo "configure:4355: checking whether byte ordering is bigendian" >&5 +echo "configure:4356: 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 @@ -4367,11 +4368,11 @@ #endif ; return 0; } EOF -if { (eval echo configure:4371: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4372: \"$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 @@ -4382,7 +4383,7 @@ #endif ; return 0; } EOF -if { (eval echo configure:4386: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4387: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_bigendian=yes else @@ -4399,7 +4400,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:4417: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_c_bigendian=no else @@ -4439,10 +4440,10 @@ echo $ac_n "checking size of short""... $ac_c" 1>&6 -echo "configure:4443: checking size of short" >&5 +echo "configure:4444: checking size of short" >&5 cat > conftest.$ac_ext < main() @@ -4453,7 +4454,7 @@ exit(0); } EOF -if { (eval echo configure:4457: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4458: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_sizeof_short=`cat conftestval` else @@ -4481,10 +4482,10 @@ exit 1 fi echo $ac_n "checking size of int""... $ac_c" 1>&6 -echo "configure:4485: checking size of int" >&5 +echo "configure:4486: checking size of int" >&5 cat > conftest.$ac_ext < main() @@ -4495,7 +4496,7 @@ exit(0); } EOF -if { (eval echo configure:4499: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4500: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_sizeof_int=`cat conftestval` else @@ -4517,10 +4518,10 @@ echo $ac_n "checking size of long""... $ac_c" 1>&6 -echo "configure:4521: checking size of long" >&5 +echo "configure:4522: checking size of long" >&5 cat > conftest.$ac_ext < main() @@ -4531,7 +4532,7 @@ exit(0); } EOF -if { (eval echo configure:4535: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4536: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_sizeof_long=`cat conftestval` else @@ -4553,10 +4554,10 @@ echo $ac_n "checking size of long long""... $ac_c" 1>&6 -echo "configure:4557: checking size of long long" >&5 +echo "configure:4558: checking size of long long" >&5 cat > conftest.$ac_ext < main() @@ -4567,7 +4568,7 @@ exit(0); } EOF -if { (eval echo configure:4571: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4572: \"$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 @@ -4589,10 +4590,10 @@ echo $ac_n "checking size of void *""... $ac_c" 1>&6 -echo "configure:4593: checking size of void *" >&5 +echo "configure:4594: checking size of void *" >&5 cat > conftest.$ac_ext < main() @@ -4603,7 +4604,7 @@ exit(0); } EOF -if { (eval echo configure:4607: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4608: \"$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 @@ -4626,7 +4627,7 @@ echo $ac_n "checking for long file names""... $ac_c" 1>&6 -echo "configure:4630: checking for long file names" >&5 +echo "configure:4631: 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: @@ -4672,10 +4673,10 @@ echo $ac_n "checking for sin""... $ac_c" 1>&6 -echo "configure:4676: checking for sin" >&5 +echo "configure:4677: checking for sin" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4703: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_sin=yes" else @@ -4716,12 +4717,12 @@ echo "$ac_t""no" 1>&6 echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6 -echo "configure:4720: checking for sin in -lm" >&5 +echo "configure:4721: checking for sin in -lm" >&5 ac_lib_var=`echo m'_'sin | sed 'y%./+-%__p_%'` xe_check_libs=" -lm " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4737: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4776,14 +4777,14 @@ cat > conftest.$ac_ext < int main() { return atanh(1.0) + asinh(1.0) + acosh(1.0); ; return 0; } EOF -if { (eval echo configure:4787: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4788: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_INVERSE_HYPERBOLIC @@ -4800,14 +4801,14 @@ rm -f conftest* echo "checking type of mail spool file locking" 1>&6 -echo "configure:4804: checking type of mail spool file locking" >&5 +echo "configure:4805: checking type of mail spool file locking" >&5 for ac_func in lockf flock do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4808: checking for $ac_func" >&5 +echo "configure:4809: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4835: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4912,12 +4913,12 @@ case "$opsys" in decosf*) echo $ac_n "checking for cma_open in -lpthreads""... $ac_c" 1>&6 -echo "configure:4916: checking for cma_open in -lpthreads" >&5 +echo "configure:4917: checking for cma_open in -lpthreads" >&5 ac_lib_var=`echo pthreads'_'cma_open | sed 'y%./+-%__p_%'` xe_check_libs=" -lpthreads " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4933: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4964,7 +4965,7 @@ esac echo $ac_n "checking whether the -xildoff compiler flag is required""... $ac_c" 1>&6 -echo "configure:4968: checking whether the -xildoff compiler flag is required" >&5 +echo "configure:4969: 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; @@ -4976,7 +4977,7 @@ if test "$opsys" = "sol2"; then if test "$os_release" -ge 56; then echo $ac_n "checking for \"-z ignore\" linker flag""... $ac_c" 1>&6 -echo "configure:4980: checking for \"-z ignore\" linker flag" >&5 +echo "configure:4981: 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 ;; @@ -4987,7 +4988,7 @@ echo "checking "for specified window system"" 1>&6 -echo "configure:4991: checking "for specified window system"" >&5 +echo "configure:4992: checking "for specified window system"" >&5 GNOME_CONFIG=no @@ -4995,7 +4996,7 @@ if test "$with_gnome" != "no"; then echo $ac_n "checking for GNOME configuration script""... $ac_c" 1>&6 -echo "configure:4999: checking for GNOME configuration script" >&5 +echo "configure:5000: checking for GNOME configuration script" >&5 for possible in gnome-config do possible_version=`${possible} --version 2> /dev/null` @@ -5026,7 +5027,7 @@ if test "$with_gtk" != "no";then echo $ac_n "checking for GTK configuration script""... $ac_c" 1>&6 -echo "configure:5030: checking for GTK configuration script" >&5 +echo "configure:5031: checking for GTK configuration script" >&5 for possible in gtk12-config gtk14-config gtk-config do possible_version=`${possible} --version 2> /dev/null` @@ -5048,37 +5049,37 @@ if test "${GTK_CONFIG}" != "no"; then echo $ac_n "checking gtk version""... $ac_c" 1>&6 -echo "configure:5052: checking gtk version" >&5 +echo "configure:5053: checking gtk version" >&5 GTK_VERSION=`${GTK_CONFIG} --version` echo "$ac_t""${GTK_VERSION}" 1>&6 echo $ac_n "checking gtk libs""... $ac_c" 1>&6 -echo "configure:5057: checking gtk libs" >&5 +echo "configure:5058: checking gtk libs" >&5 GTK_LIBS=`${GTK_CONFIG} --libs` libs_gtk="$libs_gtk ${GTK_LIBS}" && if test "$extra_verbose" = "yes"; then echo " Appending \"${GTK_LIBS}\" to \$libs_gtk"; fi echo "$ac_t""${GTK_LIBS}" 1>&6 echo $ac_n "checking gtk cflags""... $ac_c" 1>&6 -echo "configure:5063: checking gtk cflags" >&5 +echo "configure:5064: checking gtk cflags" >&5 GTK_CFLAGS=`${GTK_CONFIG} --cflags` c_switch_gtk="$c_switch_gtk ${GTK_CFLAGS}" && if test "$extra_verbose" = "yes"; then echo " Appending \"${GTK_CFLAGS}\" to \$c_switch_gtk"; fi echo "$ac_t""${GTK_CFLAGS}" 1>&6 echo $ac_n "checking for main in -lgdk_imlib""... $ac_c" 1>&6 -echo "configure:5070: checking for main in -lgdk_imlib" >&5 +echo "configure:5071: checking for main in -lgdk_imlib" >&5 ac_lib_var=`echo gdk_imlib'_'main | sed 'y%./+-%__p_%'` xe_check_libs=" -lgdk_imlib " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5083: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5100,12 +5101,12 @@ echo $ac_n "checking for Imlib_init in -lImlib""... $ac_c" 1>&6 -echo "configure:5104: checking for Imlib_init in -lImlib" >&5 +echo "configure:5105: checking for Imlib_init in -lImlib" >&5 ac_lib_var=`echo Imlib'_'Imlib_init | sed 'y%./+-%__p_%'` xe_check_libs=" -lImlib " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5121: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5139,10 +5140,10 @@ for ac_func in gdk_imlib_init do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5143: checking for $ac_func" >&5 +echo "configure:5144: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5170: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5242,15 +5243,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:5246: checking for $ac_hdr" >&5 +echo "configure:5247: checking for $ac_hdr" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5254: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5255: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -5281,19 +5282,19 @@ echo $ac_n "checking for main in -lxml""... $ac_c" 1>&6 -echo "configure:5285: checking for main in -lxml" >&5 +echo "configure:5286: checking for main in -lxml" >&5 ac_lib_var=`echo xml'_'main | sed 'y%./+-%__p_%'` xe_check_libs=" -lxml " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5298: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5315,19 +5316,19 @@ echo $ac_n "checking for main in -lglade""... $ac_c" 1>&6 -echo "configure:5319: checking for main in -lglade" >&5 +echo "configure:5320: checking for main in -lglade" >&5 ac_lib_var=`echo glade'_'main | sed 'y%./+-%__p_%'` xe_check_libs=" -lglade " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5332: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5349,19 +5350,19 @@ echo $ac_n "checking for main in -lglade-gnome""... $ac_c" 1>&6 -echo "configure:5353: checking for main in -lglade-gnome" >&5 +echo "configure:5354: checking for main in -lglade-gnome" >&5 ac_lib_var=`echo glade-gnome'_'main | sed 'y%./+-%__p_%'` xe_check_libs=" -lglade-gnome " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5366: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5382,7 +5383,7 @@ cat > conftest.$ac_ext < EOF @@ -5440,7 +5441,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:5444: checking for X" >&5 +echo "configure:5445: checking for X" >&5 # Check whether --with-x or --without-x was given. if test "${with_x+set}" = set; then @@ -5500,12 +5501,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:5509: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5510: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -5574,14 +5575,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${ac_exeext}; then +if { (eval echo configure:5586: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* LIBS="$ac_save_LIBS" # We can link X programs with no special library path. @@ -5690,17 +5691,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:5694: checking whether -R must be followed by a space" >&5 +echo "configure:5695: checking whether -R must be followed by a space" >&5 ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5705: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_nospace=yes else @@ -5716,14 +5717,14 @@ else LIBS="$ac_xsave_LIBS -R $x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5728: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_space=yes else @@ -5759,12 +5760,12 @@ else echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 -echo "configure:5763: checking for dnet_ntoa in -ldnet" >&5 +echo "configure:5764: checking for dnet_ntoa in -ldnet" >&5 ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'` xe_check_libs=" -ldnet " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5780: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5799,12 +5800,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:5803: checking for dnet_ntoa in -ldnet_stub" >&5 +echo "configure:5804: checking for dnet_ntoa in -ldnet_stub" >&5 ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'` xe_check_libs=" -ldnet_stub " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5820: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5844,10 +5845,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:5848: checking for gethostbyname" >&5 +echo "configure:5849: checking for gethostbyname" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5875: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_gethostbyname=yes" else @@ -5891,12 +5892,12 @@ if test $ac_cv_func_gethostbyname = no; then echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 -echo "configure:5895: checking for gethostbyname in -lnsl" >&5 +echo "configure:5896: checking for gethostbyname in -lnsl" >&5 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` xe_check_libs=" -lnsl " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5912: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5937,10 +5938,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:5941: checking for connect" >&5 +echo "configure:5942: checking for connect" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5968: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_connect=yes" else @@ -5986,12 +5987,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:5990: checking "$xe_msg_checking"" >&5 +echo "configure:5991: checking "$xe_msg_checking"" >&5 ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'` xe_check_libs=" -lsocket $X_EXTRA_LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6007: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6026,10 +6027,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:6030: checking for remove" >&5 +echo "configure:6031: checking for remove" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6057: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_remove=yes" else @@ -6073,12 +6074,12 @@ if test $ac_cv_func_remove = no; then echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 -echo "configure:6077: checking for remove in -lposix" >&5 +echo "configure:6078: checking for remove in -lposix" >&5 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'` xe_check_libs=" -lposix " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6094: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6113,10 +6114,10 @@ # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. echo $ac_n "checking for shmat""... $ac_c" 1>&6 -echo "configure:6117: checking for shmat" >&5 +echo "configure:6118: checking for shmat" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6144: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_shmat=yes" else @@ -6160,12 +6161,12 @@ if test $ac_cv_func_shmat = no; then echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 -echo "configure:6164: checking for shmat in -lipc" >&5 +echo "configure:6165: checking for shmat in -lipc" >&5 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'` xe_check_libs=" -lipc " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6181: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6212,12 +6213,12 @@ xe_msg_checking="for IceConnectionNumber in -lICE" test -n "$X_EXTRA_LIBS" && xe_msg_checking="$xe_msg_checking using extra libs $X_EXTRA_LIBS" echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6 -echo "configure:6216: checking "$xe_msg_checking"" >&5 +echo "configure:6217: checking "$xe_msg_checking"" >&5 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'` xe_check_libs=" -lICE $X_EXTRA_LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6233: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6395,7 +6396,7 @@ echo "checking for X defines extracted by xmkmf" 1>&6 -echo "configure:6399: checking for X defines extracted by xmkmf" >&5 +echo "configure:6400: checking for X defines extracted by xmkmf" >&5 rm -fr conftestdir if mkdir conftestdir; then cd conftestdir @@ -6444,15 +6445,15 @@ ac_safe=`echo "X11/Intrinsic.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Intrinsic.h""... $ac_c" 1>&6 -echo "configure:6448: checking for X11/Intrinsic.h" >&5 +echo "configure:6449: checking for X11/Intrinsic.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6456: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6457: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -6476,12 +6477,12 @@ echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6 -echo "configure:6480: checking for XOpenDisplay in -lX11" >&5 +echo "configure:6481: checking for XOpenDisplay in -lX11" >&5 ac_lib_var=`echo X11'_'XOpenDisplay | sed 'y%./+-%__p_%'` xe_check_libs=" -lX11 " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6497: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6517,12 +6518,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:6521: checking "$xe_msg_checking"" >&5 +echo "configure:6522: checking "$xe_msg_checking"" >&5 ac_lib_var=`echo X11'_'XGetFontProperty | sed 'y%./+-%__p_%'` xe_check_libs=" -lX11 -b i486-linuxaout" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6538: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6560,12 +6561,12 @@ echo $ac_n "checking for XShapeSelectInput in -lXext""... $ac_c" 1>&6 -echo "configure:6564: checking for XShapeSelectInput in -lXext" >&5 +echo "configure:6565: checking for XShapeSelectInput in -lXext" >&5 ac_lib_var=`echo Xext'_'XShapeSelectInput | sed 'y%./+-%__p_%'` xe_check_libs=" -lXext " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6581: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6599,12 +6600,12 @@ echo $ac_n "checking for XtOpenDisplay in -lXt""... $ac_c" 1>&6 -echo "configure:6603: checking for XtOpenDisplay in -lXt" >&5 +echo "configure:6604: checking for XtOpenDisplay in -lXt" >&5 ac_lib_var=`echo Xt'_'XtOpenDisplay | sed 'y%./+-%__p_%'` xe_check_libs=" -lXt " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6620: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6638,14 +6639,14 @@ echo $ac_n "checking the version of X11 being used""... $ac_c" 1>&6 -echo "configure:6642: checking the version of X11 being used" >&5 +echo "configure:6643: checking the version of X11 being used" >&5 cat > conftest.$ac_ext < int main(int c, char *v[]) { return c>1 ? XlibSpecificationRelease : 0; } EOF -if { (eval echo configure:6649: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:6650: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ./conftest foobar; x11_release=$? else @@ -6676,10 +6677,10 @@ for ac_func in XConvertCase do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6680: checking for $ac_func" >&5 +echo "configure:6681: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6707: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6734,15 +6735,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:6738: checking for $ac_hdr" >&5 +echo "configure:6739: checking for $ac_hdr" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6746: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6747: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -6775,10 +6776,10 @@ for ac_func in XRegisterIMInstantiateCallback do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6779: checking for $ac_func" >&5 +echo "configure:6780: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6806: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6829,9 +6830,9 @@ done echo $ac_n "checking for standard XRegisterIMInstantiateCallback prototype""... $ac_c" 1>&6 -echo "configure:6833: checking for standard XRegisterIMInstantiateCallback prototype" >&5 +echo "configure:6834: checking for standard XRegisterIMInstantiateCallback prototype" >&5 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6848: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else @@ -6864,12 +6865,12 @@ test -z "$with_xmu" && { echo $ac_n "checking for XmuReadBitmapDataFromFile in -lXmu""... $ac_c" 1>&6 -echo "configure:6868: checking for XmuReadBitmapDataFromFile in -lXmu" >&5 +echo "configure:6869: checking for XmuReadBitmapDataFromFile in -lXmu" >&5 ac_lib_var=`echo Xmu'_'XmuReadBitmapDataFromFile | sed 'y%./+-%__p_%'` xe_check_libs=" -lXmu " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6885: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6919,19 +6920,19 @@ echo $ac_n "checking for main in -lXbsd""... $ac_c" 1>&6 -echo "configure:6923: checking for main in -lXbsd" >&5 +echo "configure:6924: checking for main in -lXbsd" >&5 ac_lib_var=`echo Xbsd'_'main | sed 'y%./+-%__p_%'` xe_check_libs=" -lXbsd " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6936: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6968,22 +6969,22 @@ fi if test "$with_msw" != "no"; then echo "checking for MS-Windows" 1>&6 -echo "configure:6972: checking for MS-Windows" >&5 +echo "configure:6973: checking for MS-Windows" >&5 echo $ac_n "checking for main in -lgdi32""... $ac_c" 1>&6 -echo "configure:6975: checking for main in -lgdi32" >&5 +echo "configure:6976: checking for main in -lgdi32" >&5 ac_lib_var=`echo gdi32'_'main | sed 'y%./+-%__p_%'` xe_check_libs=" -lgdi32 " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6988: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7056,12 +7057,12 @@ fi fi cat > conftest.$ac_ext < int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; } EOF -if { (eval echo configure:7065: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:7066: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_MSG_SELECT @@ -7125,15 +7126,15 @@ if test "$with_x11" = "yes"; then ac_safe=`echo "X11/extensions/shape.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/extensions/shape.h""... $ac_c" 1>&6 -echo "configure:7129: checking for X11/extensions/shape.h" >&5 +echo "configure:7130: checking for X11/extensions/shape.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7137: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7138: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -7185,7 +7186,7 @@ esac echo "checking for WM_COMMAND option" 1>&6 -echo "configure:7189: checking for WM_COMMAND option" >&5; +echo "configure:7190: checking for WM_COMMAND option" >&5; if test "$with_wmcommand" != "no"; then { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_WMCOMMAND @@ -7200,15 +7201,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:7204: checking for X11/Xauth.h" >&5 +echo "configure:7205: checking for X11/Xauth.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7212: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7213: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -7231,12 +7232,12 @@ } test -z "$with_xauth" && { echo $ac_n "checking for XauGetAuthByAddr in -lXau""... $ac_c" 1>&6 -echo "configure:7235: checking for XauGetAuthByAddr in -lXau" >&5 +echo "configure:7236: checking for XauGetAuthByAddr in -lXau" >&5 ac_lib_var=`echo Xau'_'XauGetAuthByAddr | sed 'y%./+-%__p_%'` xe_check_libs=" -lXau " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7252: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7292,15 +7293,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:7296: checking for ${dir}tt_c.h" >&5 +echo "configure:7297: checking for ${dir}tt_c.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7304: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7305: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -7336,12 +7337,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:7340: checking "$xe_msg_checking"" >&5 +echo "configure:7341: checking "$xe_msg_checking"" >&5 ac_lib_var=`echo tt'_'tt_message_create | sed 'y%./+-%__p_%'` xe_check_libs=" -ltt $extra_libs" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7357: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7409,15 +7410,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:7413: checking for Dt/Dt.h" >&5 +echo "configure:7414: checking for Dt/Dt.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7421: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7422: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -7440,12 +7441,12 @@ } test -z "$with_cde" && { echo $ac_n "checking for DtDndDragStart in -lDtSvc""... $ac_c" 1>&6 -echo "configure:7444: checking for DtDndDragStart in -lDtSvc" >&5 +echo "configure:7445: checking for DtDndDragStart in -lDtSvc" >&5 ac_lib_var=`echo DtSvc'_'DtDndDragStart | sed 'y%./+-%__p_%'` xe_check_libs=" -lDtSvc " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7461: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7529,7 +7530,7 @@ if test "$with_dragndrop" != "no" ; then echo $ac_n "checking if drag and drop API is needed""... $ac_c" 1>&6 -echo "configure:7533: checking if drag and drop API is needed" >&5 +echo "configure:7534: checking if drag and drop API is needed" >&5 if test -n "$dragndrop_proto" ; then with_dragndrop=yes echo "$ac_t""yes (${dragndrop_proto} )" 1>&6 @@ -7549,18 +7550,18 @@ fi echo "checking for LDAP" 1>&6 -echo "configure:7553: checking for LDAP" >&5 +echo "configure:7554: checking for LDAP" >&5 test -z "$with_ldap" && { ac_safe=`echo "ldap.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ldap.h""... $ac_c" 1>&6 -echo "configure:7556: checking for ldap.h" >&5 +echo "configure:7557: checking for ldap.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7564: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7565: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -7583,15 +7584,15 @@ } test -z "$with_ldap" && { ac_safe=`echo "lber.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for lber.h""... $ac_c" 1>&6 -echo "configure:7587: checking for lber.h" >&5 +echo "configure:7588: checking for lber.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7595: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7596: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -7615,12 +7616,12 @@ if test "$with_ldap" != "no"; then echo $ac_n "checking for ldap_search in -lldap""... $ac_c" 1>&6 -echo "configure:7619: checking for ldap_search in -lldap" >&5 +echo "configure:7620: checking for ldap_search in -lldap" >&5 ac_lib_var=`echo ldap'_'ldap_search | sed 'y%./+-%__p_%'` xe_check_libs=" -lldap " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7636: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7656,12 +7657,12 @@ xe_msg_checking="for ldap_open in -lldap" test -n "-llber" && xe_msg_checking="$xe_msg_checking using extra libs -llber" echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6 -echo "configure:7660: checking "$xe_msg_checking"" >&5 +echo "configure:7661: checking "$xe_msg_checking"" >&5 ac_lib_var=`echo ldap'_'ldap_open | sed 'y%./+-%__p_%'` xe_check_libs=" -lldap -llber" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7677: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7697,12 +7698,12 @@ xe_msg_checking="for ldap_open in -lldap" test -n "-llber -lkrb" && xe_msg_checking="$xe_msg_checking using extra libs -llber -lkrb" echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6 -echo "configure:7701: checking "$xe_msg_checking"" >&5 +echo "configure:7702: checking "$xe_msg_checking"" >&5 ac_lib_var=`echo ldap'_'ldap_open | sed 'y%./+-%__p_%'` xe_check_libs=" -lldap -llber -lkrb" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7718: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7738,12 +7739,12 @@ xe_msg_checking="for ldap_open in -lldap" test -n "-llber -lkrb -ldes" && xe_msg_checking="$xe_msg_checking using extra libs -llber -lkrb -ldes" echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6 -echo "configure:7742: checking "$xe_msg_checking"" >&5 +echo "configure:7743: checking "$xe_msg_checking"" >&5 ac_lib_var=`echo ldap'_'ldap_open | sed 'y%./+-%__p_%'` xe_check_libs=" -lldap -llber -lkrb -ldes" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7759: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7805,10 +7806,10 @@ for ac_func in ldap_set_option ldap_get_lderrno ldap_result2error ldap_parse_result do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7809: checking for $ac_func" >&5 +echo "configure:7810: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7836: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7862,20 +7863,20 @@ if test "$with_postgresql" != "no"; then echo "checking for PostgreSQL" 1>&6 -echo "configure:7866: checking for PostgreSQL" >&5 +echo "configure:7867: checking for PostgreSQL" >&5 for header_dir in "" "pgsql/" "postgresql/"; do ac_safe=`echo "${header_dir}libpq-fe.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ${header_dir}libpq-fe.h""... $ac_c" 1>&6 -echo "configure:7871: checking for ${header_dir}libpq-fe.h" >&5 +echo "configure:7872: checking for ${header_dir}libpq-fe.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7879: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7880: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -7899,12 +7900,12 @@ test -n "$libpq_fe_h_file" && { echo $ac_n "checking for PQconnectdb in -lpq""... $ac_c" 1>&6 -echo "configure:7903: checking for PQconnectdb in -lpq" >&5 +echo "configure:7904: checking for PQconnectdb in -lpq" >&5 ac_lib_var=`echo pq'_'PQconnectdb | sed 'y%./+-%__p_%'` xe_check_libs=" -lpq " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7920: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7948,12 +7949,12 @@ echo $ac_n "checking for PQconnectStart in -lpq""... $ac_c" 1>&6 -echo "configure:7952: checking for PQconnectStart in -lpq" >&5 +echo "configure:7953: checking for PQconnectStart in -lpq" >&5 ac_lib_var=`echo pq'_'PQconnectStart | sed 'y%./+-%__p_%'` xe_check_libs=" -lpq " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7969: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8012,15 +8013,15 @@ if test "$window_system" != "none"; then echo "checking for graphics libraries" 1>&6 -echo "configure:8016: checking for graphics libraries" >&5 +echo "configure:8017: checking for graphics libraries" >&5 xpm_problem="" if test -z "$with_xpm"; then echo $ac_n "checking for Xpm - no older than 3.4f""... $ac_c" 1>&6 -echo "configure:8021: checking for Xpm - no older than 3.4f" >&5 +echo "configure:8022: checking for Xpm - no older than 3.4f" >&5 xe_check_libs=-lXpm cat > conftest.$ac_ext < @@ -8029,7 +8030,7 @@ XpmIncludeVersion != XpmLibraryVersion() ? 1 : XpmIncludeVersion < 30406 ? 2 : 0 ;} EOF -if { (eval echo configure:8033: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:8034: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ./conftest dummy_arg; xpm_status=$?; if test "$xpm_status" = "0"; then @@ -8071,17 +8072,17 @@ libs_x="-lXpm $libs_x" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-lXpm\" to \$libs_x"; fi echo $ac_n "checking for \"FOR_MSW\" xpm""... $ac_c" 1>&6 -echo "configure:8075: checking for \"FOR_MSW\" xpm" >&5 +echo "configure:8076: checking for \"FOR_MSW\" xpm" >&5 xe_check_libs=-lXpm cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8086: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* xpm_for_msw=no else @@ -8107,15 +8108,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:8111: checking for compface.h" >&5 +echo "configure:8112: checking for compface.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8119: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8120: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -8138,12 +8139,12 @@ } test -z "$with_xface" && { echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6 -echo "configure:8142: checking for UnGenFace in -lcompface" >&5 +echo "configure:8143: checking for UnGenFace in -lcompface" >&5 ac_lib_var=`echo compface'_'UnGenFace | sed 'y%./+-%__p_%'` xe_check_libs=" -lcompface " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8159: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8206,12 +8207,12 @@ if test "$with_png $with_tiff" != "no no"; then echo $ac_n "checking for inflate in -lc""... $ac_c" 1>&6 -echo "configure:8210: checking for inflate in -lc" >&5 +echo "configure:8211: checking for inflate in -lc" >&5 ac_lib_var=`echo c'_'inflate | sed 'y%./+-%__p_%'` xe_check_libs=" -lc " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8227: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8241,12 +8242,12 @@ echo "$ac_t""no" 1>&6 echo $ac_n "checking for inflate in -lz""... $ac_c" 1>&6 -echo "configure:8245: checking for inflate in -lz" >&5 +echo "configure:8246: checking for inflate in -lz" >&5 ac_lib_var=`echo z'_'inflate | sed 'y%./+-%__p_%'` xe_check_libs=" -lz " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8262: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8276,12 +8277,12 @@ echo "$ac_t""no" 1>&6 echo $ac_n "checking for inflate in -lgz""... $ac_c" 1>&6 -echo "configure:8280: checking for inflate in -lgz" >&5 +echo "configure:8281: checking for inflate in -lgz" >&5 ac_lib_var=`echo gz'_'inflate | sed 'y%./+-%__p_%'` xe_check_libs=" -lgz " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8297: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8322,15 +8323,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:8326: checking for jpeglib.h" >&5 +echo "configure:8327: checking for jpeglib.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8334: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8335: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -8353,12 +8354,12 @@ } test -z "$with_jpeg" && { echo $ac_n "checking for jpeg_destroy_decompress in -ljpeg""... $ac_c" 1>&6 -echo "configure:8357: checking for jpeg_destroy_decompress in -ljpeg" >&5 +echo "configure:8358: checking for jpeg_destroy_decompress in -ljpeg" >&5 ac_lib_var=`echo jpeg'_'jpeg_destroy_decompress | sed 'y%./+-%__p_%'` xe_check_libs=" -ljpeg " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8374: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8405,10 +8406,10 @@ png_problem="" test -z "$with_png" && { echo $ac_n "checking for pow""... $ac_c" 1>&6 -echo "configure:8409: checking for pow" >&5 +echo "configure:8410: checking for pow" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8436: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_pow=yes" else @@ -8452,15 +8453,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:8456: checking for png.h" >&5 +echo "configure:8457: checking for png.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8464: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8465: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -8483,12 +8484,12 @@ } test -z "$with_png" && { echo $ac_n "checking for png_read_image in -lpng""... $ac_c" 1>&6 -echo "configure:8487: checking for png_read_image in -lpng" >&5 +echo "configure:8488: checking for png_read_image in -lpng" >&5 ac_lib_var=`echo png'_'png_read_image | sed 'y%./+-%__p_%'` xe_check_libs=" -lpng " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8504: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8522,10 +8523,10 @@ } if test -z "$with_png"; then echo $ac_n "checking for workable png version information""... $ac_c" 1>&6 -echo "configure:8526: checking for workable png version information" >&5 +echo "configure:8527: checking for workable png version information" >&5 xe_check_libs="-lpng -lz" cat > conftest.$ac_ext < int main(int c, char **v) { @@ -8533,7 +8534,7 @@ if (strcmp(png_libpng_ver, PNG_LIBPNG_VER_STRING) != 0) return 1; return (PNG_LIBPNG_VER < 10002) ? 2 : 0 ;} EOF -if { (eval echo configure:8537: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:8538: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ./conftest dummy_arg; png_status=$?; if test "$png_status" = "0"; then @@ -8576,15 +8577,15 @@ test -z "$with_tiff" && { ac_safe=`echo "tiffio.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for tiffio.h""... $ac_c" 1>&6 -echo "configure:8580: checking for tiffio.h" >&5 +echo "configure:8581: checking for tiffio.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8588: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8589: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -8607,12 +8608,12 @@ } test -z "$with_tiff" && { echo $ac_n "checking for TIFFClientOpen in -ltiff""... $ac_c" 1>&6 -echo "configure:8611: checking for TIFFClientOpen in -ltiff" >&5 +echo "configure:8612: checking for TIFFClientOpen in -ltiff" >&5 ac_lib_var=`echo tiff'_'TIFFClientOpen | sed 'y%./+-%__p_%'` xe_check_libs=" -ltiff " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8628: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8662,15 +8663,15 @@ if test "$with_gtk" = "yes"; then test -z "$with_xface" && { ac_safe=`echo "compface.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for compface.h""... $ac_c" 1>&6 -echo "configure:8666: checking for compface.h" >&5 +echo "configure:8667: checking for compface.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8674: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8675: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -8693,12 +8694,12 @@ } test -z "$with_xface" && { echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6 -echo "configure:8697: checking for UnGenFace in -lcompface" >&5 +echo "configure:8698: checking for UnGenFace in -lcompface" >&5 ac_lib_var=`echo compface'_'UnGenFace | sed 'y%./+-%__p_%'` xe_check_libs=" -lcompface " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8714: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8749,10 +8750,10 @@ if test "$with_x11" = "yes"; then echo "checking for X11 graphics libraries" 1>&6 -echo "configure:8753: checking for X11 graphics libraries" >&5 +echo "configure:8754: checking for X11 graphics libraries" >&5 echo "checking for the Athena widgets" 1>&6 -echo "configure:8756: checking for the Athena widgets" >&5 +echo "configure:8757: checking for the Athena widgets" >&5 case "$with_athena" in "xaw" | "") athena_variant=Xaw athena_3d=no ;; @@ -8766,12 +8767,12 @@ if test "$athena_3d" = "no"; then echo $ac_n "checking for XawScrollbarSetThumb in -l$athena_variant""... $ac_c" 1>&6 -echo "configure:8770: checking for XawScrollbarSetThumb in -l$athena_variant" >&5 +echo "configure:8771: checking for XawScrollbarSetThumb in -l$athena_variant" >&5 ac_lib_var=`echo $athena_variant'_'XawScrollbarSetThumb | sed 'y%./+-%__p_%'` xe_check_libs=" -l$athena_variant " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8787: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8798,12 +8799,12 @@ echo "$ac_t""yes" 1>&6 echo $ac_n "checking for threeDClassRec in -l$athena_variant""... $ac_c" 1>&6 -echo "configure:8802: checking for threeDClassRec in -l$athena_variant" >&5 +echo "configure:8803: checking for threeDClassRec in -l$athena_variant" >&5 ac_lib_var=`echo $athena_variant'_'threeDClassRec | sed 'y%./+-%__p_%'` xe_check_libs=" -l$athena_variant " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8819: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8845,12 +8846,12 @@ else echo $ac_n "checking for threeDClassRec in -l$athena_variant""... $ac_c" 1>&6 -echo "configure:8849: checking for threeDClassRec in -l$athena_variant" >&5 +echo "configure:8850: checking for threeDClassRec in -l$athena_variant" >&5 ac_lib_var=`echo $athena_variant'_'threeDClassRec | sed 'y%./+-%__p_%'` xe_check_libs=" -l$athena_variant " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8866: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8879,12 +8880,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for threeDClassRec in -lXaw""... $ac_c" 1>&6 -echo "configure:8883: checking for threeDClassRec in -lXaw" >&5 +echo "configure:8884: checking for threeDClassRec in -lXaw" >&5 ac_lib_var=`echo Xaw'_'threeDClassRec | sed 'y%./+-%__p_%'` xe_check_libs=" -lXaw " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8900: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8926,15 +8927,15 @@ if test "$athena_3d" = "no"; then ac_safe=`echo "X11/Xaw/ThreeD.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Xaw/ThreeD.h""... $ac_c" 1>&6 -echo "configure:8930: checking for X11/Xaw/ThreeD.h" >&5 +echo "configure:8931: checking for X11/Xaw/ThreeD.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8938: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8939: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -8954,15 +8955,15 @@ echo "$ac_t""no" 1>&6 ac_safe=`echo "X11/Xaw/XawInit.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Xaw/XawInit.h""... $ac_c" 1>&6 -echo "configure:8958: checking for X11/Xaw/XawInit.h" >&5 +echo "configure:8959: checking for X11/Xaw/XawInit.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8966: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8967: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -8988,15 +8989,15 @@ else ac_safe=`echo "X11/$athena_variant/XawInit.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/$athena_variant/XawInit.h""... $ac_c" 1>&6 -echo "configure:8992: checking for X11/$athena_variant/XawInit.h" >&5 +echo "configure:8993: checking for X11/$athena_variant/XawInit.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9000: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9001: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9013,15 +9014,15 @@ echo "$ac_t""yes" 1>&6 ac_safe=`echo "X11/$athena_variant/ThreeD.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/$athena_variant/ThreeD.h""... $ac_c" 1>&6 -echo "configure:9017: checking for X11/$athena_variant/ThreeD.h" >&5 +echo "configure:9018: checking for X11/$athena_variant/ThreeD.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9025: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9026: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9049,15 +9050,15 @@ if test -z "$athena_h_path"; then ac_safe=`echo "$athena_variant/XawInit.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $athena_variant/XawInit.h""... $ac_c" 1>&6 -echo "configure:9053: checking for $athena_variant/XawInit.h" >&5 +echo "configure:9054: checking for $athena_variant/XawInit.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9061: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9062: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9074,15 +9075,15 @@ echo "$ac_t""yes" 1>&6 ac_safe=`echo "$athena_variant/ThreeD.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $athena_variant/ThreeD.h""... $ac_c" 1>&6 -echo "configure:9078: checking for $athena_variant/ThreeD.h" >&5 +echo "configure:9079: checking for $athena_variant/ThreeD.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9086: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9087: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9111,15 +9112,15 @@ if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then ac_safe=`echo "X11/Xaw3d/XawInit.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Xaw3d/XawInit.h""... $ac_c" 1>&6 -echo "configure:9115: checking for X11/Xaw3d/XawInit.h" >&5 +echo "configure:9116: checking for X11/Xaw3d/XawInit.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9123: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9124: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9136,15 +9137,15 @@ echo "$ac_t""yes" 1>&6 ac_safe=`echo "X11/Xaw3d/ThreeD.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Xaw3d/ThreeD.h""... $ac_c" 1>&6 -echo "configure:9140: checking for X11/Xaw3d/ThreeD.h" >&5 +echo "configure:9141: checking for X11/Xaw3d/ThreeD.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9148: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9149: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9176,15 +9177,15 @@ if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then ac_safe=`echo "Xaw3d/XawInit.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for Xaw3d/XawInit.h""... $ac_c" 1>&6 -echo "configure:9180: checking for Xaw3d/XawInit.h" >&5 +echo "configure:9181: checking for Xaw3d/XawInit.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9188: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9189: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9201,15 +9202,15 @@ echo "$ac_t""yes" 1>&6 ac_safe=`echo "Xaw3d/ThreeD.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for Xaw3d/ThreeD.h""... $ac_c" 1>&6 -echo "configure:9205: checking for Xaw3d/ThreeD.h" >&5 +echo "configure:9206: checking for Xaw3d/ThreeD.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9213: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9214: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9241,15 +9242,15 @@ if test -z "$athena_h_path"; then ac_safe=`echo "X11/Xaw/ThreeD.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Xaw/ThreeD.h""... $ac_c" 1>&6 -echo "configure:9245: checking for X11/Xaw/ThreeD.h" >&5 +echo "configure:9246: checking for X11/Xaw/ThreeD.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9253: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9254: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9284,15 +9285,15 @@ ac_safe=`echo "Xm/Xm.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for Xm/Xm.h""... $ac_c" 1>&6 -echo "configure:9288: checking for Xm/Xm.h" >&5 +echo "configure:9289: checking for Xm/Xm.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9296: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9297: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9309,12 +9310,12 @@ echo "$ac_t""yes" 1>&6 echo $ac_n "checking for XmStringFree in -lXm""... $ac_c" 1>&6 -echo "configure:9313: checking for XmStringFree in -lXm" >&5 +echo "configure:9314: checking for XmStringFree in -lXm" >&5 ac_lib_var=`echo Xm'_'XmStringFree | sed 'y%./+-%__p_%'` xe_check_libs=" -lXm " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9330: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9354,9 +9355,9 @@ if test "$have_motif" = "yes"; then echo $ac_n "checking for Lesstif""... $ac_c" 1>&6 -echo "configure:9358: checking for Lesstif" >&5 +echo "configure:9359: checking for Lesstif" >&5 cat > conftest.$ac_ext < #ifdef LESSTIF_VERSION @@ -9780,7 +9781,7 @@ if test "$with_mule" = "yes" ; then echo "checking for Mule-related features" 1>&6 -echo "configure:9784: checking for Mule-related features" >&5 +echo "configure:9785: checking for Mule-related features" >&5 { test "$extra_verbose" = "yes" && cat << \EOF Defining MULE EOF @@ -9805,15 +9806,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:9809: checking for $ac_hdr" >&5 +echo "configure:9810: checking for $ac_hdr" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9817: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9818: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9844,12 +9845,12 @@ echo $ac_n "checking for strerror in -lintl""... $ac_c" 1>&6 -echo "configure:9848: checking for strerror in -lintl" >&5 +echo "configure:9849: checking for strerror in -lintl" >&5 ac_lib_var=`echo intl'_'strerror | sed 'y%./+-%__p_%'` xe_check_libs=" -lintl " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9865: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9893,18 +9894,18 @@ echo "checking for Mule input methods" 1>&6 -echo "configure:9897: checking for Mule input methods" >&5 +echo "configure:9898: checking for Mule input methods" >&5 case "$with_xim" in "" | "yes" ) echo "checking for XIM" 1>&6 -echo "configure:9900: checking for XIM" >&5 +echo "configure:9901: checking for XIM" >&5 echo $ac_n "checking for XOpenIM in -lX11""... $ac_c" 1>&6 -echo "configure:9903: checking for XOpenIM in -lX11" >&5 +echo "configure:9904: checking for XOpenIM in -lX11" >&5 ac_lib_var=`echo X11'_'XOpenIM | sed 'y%./+-%__p_%'` xe_check_libs=" -lX11 " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9920: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9939,12 +9940,12 @@ if test "$have_motif $have_lesstif" = "yes no"; then echo $ac_n "checking for XmImMbLookupString in -lXm""... $ac_c" 1>&6 -echo "configure:9943: checking for XmImMbLookupString in -lXm" >&5 +echo "configure:9944: checking for XmImMbLookupString in -lXm" >&5 ac_lib_var=`echo Xm'_'XmImMbLookupString | sed 'y%./+-%__p_%'` xe_check_libs=" -lXm " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9960: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10020,15 +10021,15 @@ if test "$with_xfs" = "yes" ; then echo "checking for XFontSet" 1>&6 -echo "configure:10024: checking for XFontSet" >&5 +echo "configure:10025: checking for XFontSet" >&5 echo $ac_n "checking for XmbDrawString in -lX11""... $ac_c" 1>&6 -echo "configure:10027: checking for XmbDrawString in -lX11" >&5 +echo "configure:10028: checking for XmbDrawString in -lX11" >&5 ac_lib_var=`echo X11'_'XmbDrawString | sed 'y%./+-%__p_%'` xe_check_libs=" -lX11 " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10044: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10079,15 +10080,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:10083: checking for wnn/jllib.h" >&5 +echo "configure:10084: checking for wnn/jllib.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10091: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10092: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10110,15 +10111,15 @@ } test -z "$with_wnn" && { ac_safe=`echo "wnn/commonhd.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for wnn/commonhd.h""... $ac_c" 1>&6 -echo "configure:10114: checking for wnn/commonhd.h" >&5 +echo "configure:10115: checking for wnn/commonhd.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10122: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10123: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10143,10 +10144,10 @@ for ac_func in crypt do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:10147: checking for $ac_func" >&5 +echo "configure:10148: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10174: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -10198,12 +10199,12 @@ test "$ac_cv_func_crypt" != "yes" && { echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6 -echo "configure:10202: checking for crypt in -lcrypt" >&5 +echo "configure:10203: checking for crypt in -lcrypt" >&5 ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'` xe_check_libs=" -lcrypt " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10219: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10249,12 +10250,12 @@ if test -z "$with_wnn" -o "$with_wnn" = "yes"; then echo $ac_n "checking for jl_dic_list_e in -lwnn""... $ac_c" 1>&6 -echo "configure:10253: checking for jl_dic_list_e in -lwnn" >&5 +echo "configure:10254: checking for jl_dic_list_e in -lwnn" >&5 ac_lib_var=`echo wnn'_'jl_dic_list_e | sed 'y%./+-%__p_%'` xe_check_libs=" -lwnn " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10270: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10283,12 +10284,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for jl_dic_list_e in -lwnn4""... $ac_c" 1>&6 -echo "configure:10287: checking for jl_dic_list_e in -lwnn4" >&5 +echo "configure:10288: checking for jl_dic_list_e in -lwnn4" >&5 ac_lib_var=`echo wnn4'_'jl_dic_list_e | sed 'y%./+-%__p_%'` xe_check_libs=" -lwnn4 " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10304: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10317,12 +10318,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for jl_dic_list_e in -lwnn6""... $ac_c" 1>&6 -echo "configure:10321: checking for jl_dic_list_e in -lwnn6" >&5 +echo "configure:10322: checking for jl_dic_list_e in -lwnn6" >&5 ac_lib_var=`echo wnn6'_'jl_dic_list_e | sed 'y%./+-%__p_%'` xe_check_libs=" -lwnn6 " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10338: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10351,12 +10352,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for dic_list_e in -lwnn6_fromsrc""... $ac_c" 1>&6 -echo "configure:10355: checking for dic_list_e in -lwnn6_fromsrc" >&5 +echo "configure:10356: checking for dic_list_e in -lwnn6_fromsrc" >&5 ac_lib_var=`echo wnn6_fromsrc'_'dic_list_e | sed 'y%./+-%__p_%'` xe_check_libs=" -lwnn6_fromsrc " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10372: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10415,12 +10416,12 @@ if test "$with_wnn6" != "no"; then echo $ac_n "checking for jl_fi_dic_list in -l$libwnn""... $ac_c" 1>&6 -echo "configure:10419: checking for jl_fi_dic_list in -l$libwnn" >&5 +echo "configure:10420: checking for jl_fi_dic_list in -l$libwnn" >&5 ac_lib_var=`echo $libwnn'_'jl_fi_dic_list | sed 'y%./+-%__p_%'` xe_check_libs=" -l$libwnn " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10436: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10466,15 +10467,15 @@ if test "$with_canna" != "no"; then ac_safe=`echo "canna/jrkanji.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for canna/jrkanji.h""... $ac_c" 1>&6 -echo "configure:10470: checking for canna/jrkanji.h" >&5 +echo "configure:10471: checking for canna/jrkanji.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10478: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10479: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10501,15 +10502,15 @@ c_switch_site="$c_switch_site -I/usr/local/canna/include" ac_safe=`echo "canna/jrkanji.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for canna/jrkanji.h""... $ac_c" 1>&6 -echo "configure:10505: checking for canna/jrkanji.h" >&5 +echo "configure:10506: checking for canna/jrkanji.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10513: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10514: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10537,15 +10538,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:10541: checking for canna/RK.h" >&5 +echo "configure:10542: checking for canna/RK.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10549: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10550: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10568,12 +10569,12 @@ } test -z "$with_canna" && { echo $ac_n "checking for RkBgnBun in -lRKC""... $ac_c" 1>&6 -echo "configure:10572: checking for RkBgnBun in -lRKC" >&5 +echo "configure:10573: checking for RkBgnBun in -lRKC" >&5 ac_lib_var=`echo RKC'_'RkBgnBun | sed 'y%./+-%__p_%'` xe_check_libs=" -lRKC " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10589: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10607,12 +10608,12 @@ } test -z "$with_canna" && { echo $ac_n "checking for jrKanjiControl in -lcanna""... $ac_c" 1>&6 -echo "configure:10611: checking for jrKanjiControl in -lcanna" >&5 +echo "configure:10612: checking for jrKanjiControl in -lcanna" >&5 ac_lib_var=`echo canna'_'jrKanjiControl | sed 'y%./+-%__p_%'` xe_check_libs=" -lcanna " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10628: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10672,12 +10673,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:10676: checking for layout_object_getvalue in -li18n" >&5 +echo "configure:10677: checking for layout_object_getvalue in -li18n" >&5 ac_lib_var=`echo i18n'_'layout_object_getvalue | sed 'y%./+-%__p_%'` xe_check_libs=" -li18n " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10693: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10774,10 +10775,10 @@ for ac_func in cbrt closedir dup2 eaccess fmod fpathconf frexp ftime getaddrinfo gethostname getnameinfo getpagesize gettimeofday getcwd getwd logb lrand48 matherr mkdir mktime perror poll random rename res_init rint rmdir select setitimer setpgid setlocale setsid sigblock sighold sigprocmask snprintf stpcpy strerror tzset ulimit usleep waitpid vsnprintf fsync ftruncate umask do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:10778: checking for $ac_func" >&5 +echo "configure:10779: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10805: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -10832,10 +10833,10 @@ for ac_func in getpt _getpty grantpt unlockpt ptsname killpg tcgetpgrp do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:10836: checking for $ac_func" >&5 +echo "configure:10837: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10863: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -10887,10 +10888,10 @@ echo $ac_n "checking for openpty""... $ac_c" 1>&6 -echo "configure:10891: checking for openpty" >&5 +echo "configure:10892: checking for openpty" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10918: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_openpty=yes" else @@ -10932,12 +10933,12 @@ echo $ac_n "checking for openpty in -lutil""... $ac_c" 1>&6 -echo "configure:10936: checking for openpty in -lutil" >&5 +echo "configure:10937: checking for openpty in -lutil" >&5 ac_lib_var=`echo util'_'openpty | sed 'y%./+-%__p_%'` xe_check_libs=" -lutil " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10953: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10983,15 +10984,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:10987: checking for $ac_hdr" >&5 +echo "configure:10988: checking for $ac_hdr" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10995: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10996: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -11027,15 +11028,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11031: checking for $ac_hdr" >&5 +echo "configure:11032: checking for $ac_hdr" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11039: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11040: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -11068,10 +11069,10 @@ for ac_func in isastream do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:11072: checking for $ac_func" >&5 +echo "configure:11073: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11099: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -11125,15 +11126,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11129: checking for $ac_hdr" >&5 +echo "configure:11130: checking for $ac_hdr" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11137: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11138: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -11170,10 +11171,10 @@ for ac_func in getloadavg do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:11174: checking for $ac_func" >&5 +echo "configure:11175: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11201: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -11229,15 +11230,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11233: checking for $ac_hdr" >&5 +echo "configure:11234: checking for $ac_hdr" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11241: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11242: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -11273,12 +11274,12 @@ echo $ac_n "checking for kstat_open in -lkstat""... $ac_c" 1>&6 -echo "configure:11277: checking for kstat_open in -lkstat" >&5 +echo "configure:11278: checking for kstat_open in -lkstat" >&5 ac_lib_var=`echo kstat'_'kstat_open | sed 'y%./+-%__p_%'` xe_check_libs=" -lkstat " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11294: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11324,15 +11325,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11328: checking for $ac_hdr" >&5 +echo "configure:11329: checking for $ac_hdr" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11336: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11337: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -11364,12 +11365,12 @@ echo $ac_n "checking for kvm_read in -lkvm""... $ac_c" 1>&6 -echo "configure:11368: checking for kvm_read in -lkvm" >&5 +echo "configure:11369: checking for kvm_read in -lkvm" >&5 ac_lib_var=`echo kvm'_'kvm_read | sed 'y%./+-%__p_%'` xe_check_libs=" -lkvm " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11385: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11414,16 +11415,16 @@ fi echo $ac_n "checking whether netdb declares h_errno""... $ac_c" 1>&6 -echo "configure:11418: checking whether netdb declares h_errno" >&5 +echo "configure:11419: checking whether netdb declares h_errno" >&5 cat > conftest.$ac_ext < int main() { return h_errno; ; return 0; } EOF -if { (eval echo configure:11427: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11428: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6 { test "$extra_verbose" = "yes" && cat << \EOF @@ -11443,16 +11444,16 @@ rm -f conftest* echo $ac_n "checking for sigsetjmp""... $ac_c" 1>&6 -echo "configure:11447: checking for sigsetjmp" >&5 +echo "configure:11448: checking for sigsetjmp" >&5 cat > conftest.$ac_ext < int main() { sigjmp_buf bar; sigsetjmp (bar, 0); ; return 0; } EOF -if { (eval echo configure:11456: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11457: \"$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 @@ -11472,11 +11473,11 @@ rm -f conftest* echo $ac_n "checking whether localtime caches TZ""... $ac_c" 1>&6 -echo "configure:11476: checking whether localtime caches TZ" >&5 +echo "configure:11477: checking whether localtime caches TZ" >&5 if test "$ac_cv_func_tzset" = "yes"; then cat > conftest.$ac_ext < #if STDC_HEADERS @@ -11511,7 +11512,7 @@ exit (0); } EOF -if { (eval echo configure:11515: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:11516: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then emacs_cv_localtime_cache=no else @@ -11541,9 +11542,9 @@ if test "$HAVE_TIMEVAL" = "yes"; then echo $ac_n "checking whether gettimeofday accepts one or two arguments""... $ac_c" 1>&6 -echo "configure:11545: checking whether gettimeofday accepts one or two arguments" >&5 +echo "configure:11546: checking whether gettimeofday accepts one or two arguments" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11569: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""two" 1>&6 else @@ -11586,19 +11587,19 @@ echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:11590: checking for inline" >&5 +echo "configure:11591: 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:11603: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -11639,17 +11640,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:11643: checking for working alloca.h" >&5 +echo "configure:11644: checking for working alloca.h" >&5 cat > conftest.$ac_ext < int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF -if { (eval echo configure:11653: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11654: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_header_alloca_h=yes else @@ -11673,10 +11674,10 @@ fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:11677: checking for alloca" >&5 +echo "configure:11678: checking for alloca" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11709: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_alloca_works=yes else @@ -11743,10 +11744,10 @@ echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:11747: checking whether alloca needs Cray hooks" >&5 +echo "configure:11748: checking whether alloca needs Cray hooks" >&5 cat > conftest.$ac_ext <&6 -echo "configure:11774: checking for $ac_func" >&5 +echo "configure:11775: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11801: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -11826,10 +11827,10 @@ fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:11830: checking stack direction for C alloca" >&5 +echo "configure:11831: checking stack direction for C alloca" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:11853: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_c_stack_direction=1 else @@ -11878,15 +11879,15 @@ ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for vfork.h""... $ac_c" 1>&6 -echo "configure:11882: checking for vfork.h" >&5 +echo "configure:11883: checking for vfork.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11890: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11891: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -11914,10 +11915,10 @@ fi echo $ac_n "checking for working vfork""... $ac_c" 1>&6 -echo "configure:11918: checking for working vfork" >&5 +echo "configure:11919: checking for working vfork" >&5 cat > conftest.$ac_ext < @@ -12012,7 +12013,7 @@ } } EOF -if { (eval echo configure:12016: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:12017: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_vfork_works=yes else @@ -12038,10 +12039,10 @@ echo $ac_n "checking for working strcoll""... $ac_c" 1>&6 -echo "configure:12042: checking for working strcoll" >&5 +echo "configure:12043: checking for working strcoll" >&5 cat > conftest.$ac_ext < main () @@ -12051,7 +12052,7 @@ strcoll ("123", "456") >= 0); } EOF -if { (eval echo configure:12055: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:12056: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_strcoll_works=yes else @@ -12079,10 +12080,10 @@ for ac_func in getpgrp do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:12083: checking for $ac_func" >&5 +echo "configure:12084: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12110: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -12133,10 +12134,10 @@ done echo $ac_n "checking whether getpgrp takes no argument""... $ac_c" 1>&6 -echo "configure:12137: checking whether getpgrp takes no argument" >&5 +echo "configure:12138: checking whether getpgrp takes no argument" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:12196: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_getpgrp_void=yes else @@ -12218,10 +12219,10 @@ echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:12222: checking for working mmap" >&5 +echo "configure:12223: checking for working mmap" >&5 case "$opsys" in ultrix* ) have_mmap=no ;; *) cat > conftest.$ac_ext < #include @@ -12254,7 +12255,7 @@ return 1; } EOF -if { (eval echo configure:12258: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:12259: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then have_mmap=yes else @@ -12283,9 +12284,9 @@ if test "$rel_alloc $have_mmap" = "default yes"; then if test "$doug_lea_malloc" = "yes"; then echo $ac_n "checking for M_MMAP_THRESHOLD""... $ac_c" 1>&6 -echo "configure:12287: checking for M_MMAP_THRESHOLD" >&5 +echo "configure:12288: checking for M_MMAP_THRESHOLD" >&5 cat > conftest.$ac_ext < int main() { @@ -12297,7 +12298,7 @@ ; return 0; } EOF -if { (eval echo configure:12301: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:12302: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* rel_alloc=no; echo "$ac_t""yes" 1>&6; else @@ -12322,15 +12323,15 @@ ac_safe=`echo "termios.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for termios.h""... $ac_c" 1>&6 -echo "configure:12326: checking for termios.h" >&5 +echo "configure:12327: checking for termios.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12334: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12335: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -12373,15 +12374,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:12377: checking for termio.h" >&5 +echo "configure:12378: checking for termio.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12385: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12386: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -12413,10 +12414,10 @@ echo $ac_n "checking for socket""... $ac_c" 1>&6 -echo "configure:12417: checking for socket" >&5 +echo "configure:12418: checking for socket" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12444: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_socket=yes" else @@ -12454,15 +12455,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:12458: checking for netinet/in.h" >&5 +echo "configure:12459: checking for netinet/in.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12466: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12467: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -12479,15 +12480,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:12483: checking for arpa/inet.h" >&5 +echo "configure:12484: checking for arpa/inet.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12491: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12492: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -12512,9 +12513,9 @@ } echo $ac_n "checking "for sun_len member in struct sockaddr_un"""... $ac_c" 1>&6 -echo "configure:12516: checking "for sun_len member in struct sockaddr_un"" >&5 +echo "configure:12517: checking "for sun_len member in struct sockaddr_un"" >&5 cat > conftest.$ac_ext < @@ -12525,7 +12526,7 @@ static struct sockaddr_un x; x.sun_len = 1; ; return 0; } EOF -if { (eval echo configure:12529: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12530: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6; { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_SOCKADDR_SUN_LEN @@ -12543,9 +12544,9 @@ fi rm -f conftest* echo $ac_n "checking "for ip_mreq struct in netinet/in.h"""... $ac_c" 1>&6 -echo "configure:12547: checking "for ip_mreq struct in netinet/in.h"" >&5 +echo "configure:12548: checking "for ip_mreq struct in netinet/in.h"" >&5 cat > conftest.$ac_ext < @@ -12555,7 +12556,7 @@ static struct ip_mreq x; ; return 0; } EOF -if { (eval echo configure:12559: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12560: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6; { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_MULTICAST @@ -12586,10 +12587,10 @@ echo $ac_n "checking for msgget""... $ac_c" 1>&6 -echo "configure:12590: checking for msgget" >&5 +echo "configure:12591: checking for msgget" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12617: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_msgget=yes" else @@ -12627,15 +12628,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:12631: checking for sys/ipc.h" >&5 +echo "configure:12632: checking for sys/ipc.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12639: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12640: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -12652,15 +12653,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:12656: checking for sys/msg.h" >&5 +echo "configure:12657: checking for sys/msg.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12664: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12665: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -12698,15 +12699,15 @@ ac_safe=`echo "dirent.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for dirent.h""... $ac_c" 1>&6 -echo "configure:12702: checking for dirent.h" >&5 +echo "configure:12703: checking for dirent.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12710: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12711: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -12733,15 +12734,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:12737: checking for sys/dir.h" >&5 +echo "configure:12738: checking for sys/dir.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12745: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12746: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -12774,15 +12775,15 @@ ac_safe=`echo "nlist.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for nlist.h""... $ac_c" 1>&6 -echo "configure:12778: checking for nlist.h" >&5 +echo "configure:12779: checking for nlist.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12786: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12787: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -12812,22 +12813,22 @@ echo "checking "for sound support"" 1>&6 -echo "configure:12816: checking "for sound support"" >&5 +echo "configure:12817: checking "for sound support"" >&5 test -z "$with_native_sound" -a -n "$native_sound_lib" && with_native_sound=yes if test "$with_native_sound" != "no"; then if test -n "$native_sound_lib"; then ac_safe=`echo "multimedia/audio_device.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for multimedia/audio_device.h""... $ac_c" 1>&6 -echo "configure:12823: checking for multimedia/audio_device.h" >&5 +echo "configure:12824: checking for multimedia/audio_device.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12831: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12832: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -12875,12 +12876,12 @@ if test -z "$native_sound_lib"; then echo $ac_n "checking for ALopenport in -laudio""... $ac_c" 1>&6 -echo "configure:12879: checking for ALopenport in -laudio" >&5 +echo "configure:12880: checking for ALopenport in -laudio" >&5 ac_lib_var=`echo audio'_'ALopenport | sed 'y%./+-%__p_%'` xe_check_libs=" -laudio " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12896: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -12922,12 +12923,12 @@ if test -z "$native_sound_lib"; then echo $ac_n "checking for AOpenAudio in -lAlib""... $ac_c" 1>&6 -echo "configure:12926: checking for AOpenAudio in -lAlib" >&5 +echo "configure:12927: checking for AOpenAudio in -lAlib" >&5 ac_lib_var=`echo Alib'_'AOpenAudio | sed 'y%./+-%__p_%'` xe_check_libs=" -lAlib " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12943: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -12976,15 +12977,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:12980: checking for ${dir}/soundcard.h" >&5 +echo "configure:12981: checking for ${dir}/soundcard.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12988: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12989: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -13045,15 +13046,15 @@ if test "$with_nas_sound" != "no"; then ac_safe=`echo "audio/audiolib.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for audio/audiolib.h""... $ac_c" 1>&6 -echo "configure:13049: checking for audio/audiolib.h" >&5 +echo "configure:13050: checking for audio/audiolib.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:13057: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13058: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -13071,12 +13072,12 @@ echo $ac_n "checking for AuOpenServer in -laudio""... $ac_c" 1>&6 -echo "configure:13075: checking for AuOpenServer in -laudio" >&5 +echo "configure:13076: checking for AuOpenServer in -laudio" >&5 ac_lib_var=`echo audio'_'AuOpenServer | sed 'y%./+-%__p_%'` xe_check_libs=" -laudio " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13092: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -13126,7 +13127,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 @@ -13157,7 +13158,7 @@ # Extract the first word of "esd-config", so it can be a program name with args. set dummy esd-config; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:13161: checking for $ac_word" >&5 +echo "configure:13162: checking for $ac_word" >&5 if test -n "$have_esd_config"; then ac_cv_prog_have_esd_config="$have_esd_config" # Let the user override the test. @@ -13186,10 +13187,10 @@ c_switch_site="$c_switch_site `esd-config --cflags`" && if test "$extra_verbose" = "yes"; then echo " Appending \"`esd-config --cflags`\" to \$c_switch_site"; fi LIBS="`esd-config --libs` $LIBS" && if test "$extra_verbose" = "yes"; then echo " Prepending \"`esd-config --libs`\" to \$LIBS"; fi echo $ac_n "checking for esd_play_stream""... $ac_c" 1>&6 -echo "configure:13190: checking for esd_play_stream" >&5 +echo "configure:13191: checking for esd_play_stream" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13217: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_esd_play_stream=yes" else @@ -13263,7 +13264,7 @@ if test "$with_tty" = "yes" ; then echo "checking for TTY-related features" 1>&6 -echo "configure:13267: checking for TTY-related features" >&5 +echo "configure:13268: checking for TTY-related features" >&5 { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_TTY EOF @@ -13279,12 +13280,12 @@ if test -z "$with_ncurses"; then echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6 -echo "configure:13283: checking for tgetent in -lncurses" >&5 +echo "configure:13284: checking for tgetent in -lncurses" >&5 ac_lib_var=`echo ncurses'_'tgetent | sed 'y%./+-%__p_%'` xe_check_libs=" -lncurses " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13300: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -13328,15 +13329,15 @@ ac_safe=`echo "ncurses/curses.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ncurses/curses.h""... $ac_c" 1>&6 -echo "configure:13332: checking for ncurses/curses.h" >&5 +echo "configure:13333: checking for ncurses/curses.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:13340: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13341: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -13358,15 +13359,15 @@ ac_safe=`echo "ncurses/term.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ncurses/term.h""... $ac_c" 1>&6 -echo "configure:13362: checking for ncurses/term.h" >&5 +echo "configure:13363: checking for ncurses/term.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:13370: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13371: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -13396,15 +13397,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:13400: checking for ncurses/curses.h" >&5 +echo "configure:13401: checking for ncurses/curses.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:13408: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13409: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -13439,12 +13440,12 @@ for lib in curses termlib termcap; do echo $ac_n "checking for tgetent in -l$lib""... $ac_c" 1>&6 -echo "configure:13443: checking for tgetent in -l$lib" >&5 +echo "configure:13444: checking for tgetent in -l$lib" >&5 ac_lib_var=`echo $lib'_'tgetent | sed 'y%./+-%__p_%'` xe_check_libs=" -l$lib " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13460: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -13486,12 +13487,12 @@ else echo $ac_n "checking for tgetent in -lcurses""... $ac_c" 1>&6 -echo "configure:13490: checking for tgetent in -lcurses" >&5 +echo "configure:13491: checking for tgetent in -lcurses" >&5 ac_lib_var=`echo curses'_'tgetent | sed 'y%./+-%__p_%'` xe_check_libs=" -lcurses " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13507: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -13520,12 +13521,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6 -echo "configure:13524: checking for tgetent in -ltermcap" >&5 +echo "configure:13525: checking for tgetent in -ltermcap" >&5 ac_lib_var=`echo termcap'_'tgetent | sed 'y%./+-%__p_%'` xe_check_libs=" -ltermcap " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13541: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -13584,15 +13585,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:13588: checking for gpm.h" >&5 +echo "configure:13589: checking for gpm.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:13596: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13597: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -13615,12 +13616,12 @@ } test -z "$with_gpm" && { echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6 -echo "configure:13619: checking for Gpm_Open in -lgpm" >&5 +echo "configure:13620: checking for Gpm_Open in -lgpm" >&5 ac_lib_var=`echo gpm'_'Gpm_Open | sed 'y%./+-%__p_%'` xe_check_libs=" -lgpm " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13636: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -13681,20 +13682,20 @@ test "$with_database_gdbm $with_database_dbm $with_database_berkdb" \ != "no no no" && echo "checking for database support" 1>&6 -echo "configure:13685: checking for database support" >&5 +echo "configure:13686: checking for database support" >&5 if test "$with_database_gdbm $with_database_dbm" != "no no"; then ac_safe=`echo "ndbm.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ndbm.h""... $ac_c" 1>&6 -echo "configure:13690: checking for ndbm.h" >&5 +echo "configure:13691: checking for ndbm.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:13698: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13699: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -13724,12 +13725,12 @@ if test "$with_database_gdbm" != "no"; then echo $ac_n "checking for dbm_open in -lgdbm""... $ac_c" 1>&6 -echo "configure:13728: checking for dbm_open in -lgdbm" >&5 +echo "configure:13729: checking for dbm_open in -lgdbm" >&5 ac_lib_var=`echo gdbm'_'dbm_open | sed 'y%./+-%__p_%'` xe_check_libs=" -lgdbm " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13745: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -13768,10 +13769,10 @@ if test "$with_database_dbm" != "no"; then echo $ac_n "checking for dbm_open""... $ac_c" 1>&6 -echo "configure:13772: checking for dbm_open" >&5 +echo "configure:13773: checking for dbm_open" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13799: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_dbm_open=yes" else @@ -13813,12 +13814,12 @@ echo $ac_n "checking for dbm_open in -ldbm""... $ac_c" 1>&6 -echo "configure:13817: checking for dbm_open in -ldbm" >&5 +echo "configure:13818: checking for dbm_open in -ldbm" >&5 ac_lib_var=`echo dbm'_'dbm_open | sed 'y%./+-%__p_%'` xe_check_libs=" -ldbm " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13834: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -13870,10 +13871,10 @@ if test "$with_database_berkdb" != "no"; then echo $ac_n "checking for Berkeley db.h""... $ac_c" 1>&6 -echo "configure:13874: checking for Berkeley db.h" >&5 +echo "configure:13875: checking for Berkeley db.h" >&5 for header in "db/db.h" "db.h"; do cat > conftest.$ac_ext < @@ -13895,7 +13896,7 @@ ; return 0; } EOF -if { (eval echo configure:13899: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:13900: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* db_h_file="$header"; break else @@ -13911,9 +13912,9 @@ if test "$with_database_berkdb" != "no"; then echo $ac_n "checking for Berkeley DB version""... $ac_c" 1>&6 -echo "configure:13915: checking for Berkeley DB version" >&5 +echo "configure:13916: checking for Berkeley DB version" >&5 cat > conftest.$ac_ext < #if DB_VERSION_MAJOR > 1 @@ -13925,7 +13926,7 @@ egrep "yes" >/dev/null 2>&1; then rm -rf conftest* cat > conftest.$ac_ext < #if DB_VERSION_MAJOR > 2 @@ -13952,10 +13953,10 @@ rm -f conftest* echo $ac_n "checking for $dbfunc""... $ac_c" 1>&6 -echo "configure:13956: checking for $dbfunc" >&5 +echo "configure:13957: checking for $dbfunc" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13983: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$dbfunc=yes" else @@ -13997,12 +13998,12 @@ echo $ac_n "checking for $dbfunc in -ldb""... $ac_c" 1>&6 -echo "configure:14001: checking for $dbfunc in -ldb" >&5 +echo "configure:14002: checking for $dbfunc in -ldb" >&5 ac_lib_var=`echo db'_'$dbfunc | sed 'y%./+-%__p_%'` xe_check_libs=" -ldb " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14018: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -14077,12 +14078,12 @@ if test "$with_socks" = "yes"; then echo $ac_n "checking for SOCKSinit in -lsocks""... $ac_c" 1>&6 -echo "configure:14081: checking for SOCKSinit in -lsocks" >&5 +echo "configure:14082: checking for SOCKSinit in -lsocks" >&5 ac_lib_var=`echo socks'_'SOCKSinit | sed 'y%./+-%__p_%'` xe_check_libs=" -lsocks " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14098: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -14148,22 +14149,22 @@ if test "$with_modules" != "no"; then echo "checking for module support" 1>&6 -echo "configure:14152: checking for module support" >&5 +echo "configure:14153: checking for module support" >&5 if test "$with_msw" = "yes"; then have_dl=yes; else ac_safe=`echo "dlfcn.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for dlfcn.h""... $ac_c" 1>&6 -echo "configure:14159: checking for dlfcn.h" >&5 +echo "configure:14160: checking for dlfcn.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:14167: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:14168: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -14180,16 +14181,16 @@ echo "$ac_t""yes" 1>&6 echo $ac_n "checking for dlopen in -lc""... $ac_c" 1>&6 -echo "configure:14184: checking for dlopen in -lc" >&5 +echo "configure:14185: checking for dlopen in -lc" >&5 cat > conftest.$ac_ext < int main() { dlopen ("", 0); ; return 0; } EOF -if { (eval echo configure:14193: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14194: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* have_dl=yes else @@ -14198,18 +14199,18 @@ rm -rf conftest* echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 -echo "configure:14202: checking for dlopen in -ldl" >&5 +echo "configure:14203: checking for dlopen in -ldl" >&5 ac_save_LIBS="$LIBS" LIBS="-ldl $LIBS" cat > conftest.$ac_ext < int main() { dlopen ("", 0); ; return 0; } EOF -if { (eval echo configure:14213: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14214: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* have_dl=yes else @@ -14238,12 +14239,12 @@ else echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 -echo "configure:14242: checking for shl_load in -ldld" >&5 +echo "configure:14243: checking for shl_load in -ldld" >&5 ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'` xe_check_libs=" -ldld " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14259: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -14281,12 +14282,12 @@ echo "$ac_t""no" 1>&6 echo $ac_n "checking for dld_init in -ldld""... $ac_c" 1>&6 -echo "configure:14285: checking for dld_init in -ldld" >&5 +echo "configure:14286: checking for dld_init in -ldld" >&5 ac_lib_var=`echo dld'_'dld_init | sed 'y%./+-%__p_%'` xe_check_libs=" -ldld " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14302: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -14342,7 +14343,7 @@ xealias=$internal_configuration echo "checking how to build dynamic libraries for ${xehost}" 1>&6 -echo "configure:14346: checking how to build dynamic libraries for ${xehost}" >&5 +echo "configure:14347: checking how to build dynamic libraries for ${xehost}" >&5 # Transform *-*-linux* to *-*-linux-gnu*, to support old configure scripts. case "$xehost" in *-*-linux-gnu*) ;; @@ -14370,9 +14371,9 @@ XEGCC=yes else echo $ac_n "checking checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:14374: checking checking whether we are using GNU C" >&5 +echo "configure:14375: checking checking whether we are using GNU C" >&5 cat > conftest.$ac_ext <&6 -echo "configure:14398: checking how to produce PIC code" >&5 +echo "configure:14399: checking how to produce PIC code" >&5 wl= can_build_shared=yes @@ -14495,18 +14496,18 @@ # Check to make sure the dll_cflags actually works. echo $ac_n "checking if PIC flag ${dll_cflags} really works""... $ac_c" 1>&6 -echo "configure:14499: checking if PIC flag ${dll_cflags} really works" >&5 +echo "configure:14500: checking if PIC flag ${dll_cflags} really works" >&5 save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $dll_cflags -DPIC" cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14511: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* # On HP-UX, the stripped-down bundled CC doesn't accept +Z, but also @@ -14537,7 +14538,7 @@ xldf= xcldf= echo $ac_n "checking if C compiler can produce shared libraries""... $ac_c" 1>&6 -echo "configure:14541: checking if C compiler can produce shared libraries" >&5 +echo "configure:14542: checking if C compiler can produce shared libraries" >&5 if test "$XEGCC" = yes; then xcldf="-shared" xldf="-shared" @@ -14588,14 +14589,14 @@ xe_libs= ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ext '"$xe_libs"' 1>&5' cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14600: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cc_produces_so=yes else @@ -14620,7 +14621,7 @@ if test "$XEGCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6 -echo "configure:14624: checking for ld used by GCC" >&5 +echo "configure:14625: checking for ld used by GCC" >&5 ac_prog=`($CC -print-prog-name=ld) 2>&5` case "$ac_prog" in # Accept absolute paths. @@ -14645,7 +14646,7 @@ esac else echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 -echo "configure:14649: checking for GNU ld" >&5 +echo "configure:14650: checking for GNU ld" >&5 fi if test -z "$LTLD"; then @@ -14683,7 +14684,7 @@ # Check to see if it really is or isn't GNU ld. echo $ac_n "checking if the linker is GNU ld""... $ac_c" 1>&6 -echo "configure:14687: checking if the linker is GNU ld" >&5 +echo "configure:14688: checking if the linker is GNU ld" >&5 # I'd rather use --version here, but apparently some GNU ld's only accept -v. if $LTLD -v 2>&1 &5; then xe_gnu_ld=yes @@ -14711,7 +14712,7 @@ # OK - only NOW do we futz about with ld. # See if the linker supports building shared libraries. echo $ac_n "checking whether the linker supports shared libraries""... $ac_c" 1>&6 -echo "configure:14715: checking whether the linker supports shared libraries" >&5 +echo "configure:14716: checking whether the linker supports shared libraries" >&5 dll_ld=$CC dll_ldflags=$LDFLAGS ld_shlibs=yes @@ -14922,10 +14923,10 @@ for ac_func in dlerror _dlerror do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:14926: checking for $ac_func" >&5 +echo "configure:14927: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14953: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -14987,11 +14988,11 @@ fi cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:14996: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then : else diff --text -u 'xemacs-21.5.0/configure.in' 'xemacs-21.5.1/configure.in' Index: ./configure.in --- ./configure.in Fri Apr 13 03:20:41 2001 +++ ./configure.in Sat May 5 19:49:41 2001 @@ -1534,9 +1534,11 @@ esac -dnl Initialize machine and opsys from $canonical if not in our database above. +dnl Initialize machine from $canonical if not in our database above. test -z "$machine" && machine=`echo $canonical | sed 's/-.*$//'` -test -z "$opsys" && opsys=`echo $canonical | sed 's/^[^-]*-[^-]*-//'` + +dnl Initialize opsys from `uname -s` if not in our database above. +test -z "$opsys" && opsys=`uname -s | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` dnl Use configure-time autodetection if s&m not available if test -r "${srcdir}/src/m/${machine}.h"; then diff --text -u 'xemacs-21.5.0/etc/FTP' 'xemacs-21.5.1/etc/FTP' Index: ./etc/FTP --- ./etc/FTP Fri Apr 13 03:20:45 2001 +++ ./etc/FTP Tue May 8 17:06:51 2001 @@ -1,94 +1,197 @@ - XEmacs availability information. Last Modified: 1999-11-08 + XEmacs availability information. Last Modified: 2001-02-01 -XEmacs is available via anonymous FTP from ftp.xemacs.org (207.96.122.8) -in the directory /pub/xemacs/. +XEmacs is available via anonymous FTP at ftp://ftp.xemacs.org/pub/xemacs/ +and also via HTTP at http://ftp.xemacs.org/. ftp.xemacs.org is the primary distribution point, but you may find copies of it at other sites as well. Some sites to try include: - -* North America - o Canada - + ftp://ftp.crc.ca/pub/packages/editors/xemacs/ - + ftp://sunsite.ualberta.ca/pub/Mirror/xemacs/ - o United States - + ftp://uiarchive.uiuc.edu/pub/packages/xemacs/ - + ftp://metalab.unc.edu/pub/packages/editors/xemacs/ - + ftp://ftp.sunsite.utk.edu/pub/xemacs/ +* Africa + + Goto Mirror Index + o South Africa + + + ftp.za.xemacs.org (FTP) + + ftp.za.xemacs.org (HTTP) + +* America + + Goto Mirror Index + + o North America + + + Canada + + ftp.ca.xemacs.org (FTP) + + ftp.ca.xemacs.org (HTTP) + + Secondary Mirrors + + ftp://ftp.crc.ca/pub/packages/editors/xemacs/ + + + United States + + + ftp.us.xemacs.org (FTP) + + ftp.us.xemacs.org (HTTP) + + Secondary Mirrors + + ftp://ftp.twoguys.org/pub/xemacs/ + + ftp://ftp.stealth.net/pub/mirrors/ftp.xemacs.org/pub/xemacs/ + + ftp://metalab.unc.edu/pub/packages/editors/xemacs/ + + http://metalab.unc.edu/pub/packages/editors/xemacs/ + + o South America + + + Brazil + + + ftp.br.xemacs.org (FTP) + +* Asia + + Goto Mirror Index -* South America + o Japan + + + ftp.jp.xemacs.org (FTP) + + Secondary Mirrors + + ftp://ftp.jaist.ac.jp/pub/GNU/xemacs/ + + ftp://ring.aist.go.jp/pub/text/xemacs/ + + ftp://ring.asahi-net.or.jp/pub/text/xemacs/ + + ftp://sunsite.sut.ac.jp/pub/archives/packages/xemacs/ + + ftp://ftp.dti.ad.jp/pub/unix/editor/xemacs/ + + ftp://mirror.nucba.ac.jp/mirror/xemacs/ + + o Korea + + + ftp.kr.xemacs.org (FTP) + + o Taiwan + + + ftp.tw.xemacs.org (FTP) + + ftp.tw.xemacs.org (HTTP) - o Brazil - + ftp://ftp.unicamp.br/pub/xemacs/ +* Australia + + Goto Mirror Index + + o Queensland + + + ftp.au.xemacs.org (FTP) + + ftp.au.xemacs.org (HTTP) + + Secondary Mirrors + + ftp://mirror.aarnet.edu.au/pub/xemacs/ + + http://mirror.aarnet.edu.au/pub/xemacs/ * Europe + Goto Mirror Index + o Austria - + ftp://gd.tuwien.ac.at/editors/xemacs/ + + + ftp.at.xemacs.org (FTP) + + ftp.at.xemacs.org (HTTP) + + o Belgium + + + ftp.be.xemacs.org (FTP) + + ftp.be.xemacs.org (HTTP) + o Denmark - + ftp://sunsite.auc.dk/pub/emacs/xemacs/ - o England - + ftp://sunsite.doc.ic.ac.uk/packages/xemacs/ + + + ftp.dk.xemacs.org (FTP) + + ftp.dk.xemacs.org (HTTP) + o Finland - + ftp://ftp.funet.fi/pub/mirrors/ftp.xemacs.org/pub/tux/xemacs/ + + + ftp.fi.xemacs.org (FTP) + + ftp.fi.xemacs.org (HTTP) + o France - + ftp://ftp.pasteur.fr/pub/computing/xemacs/ - + ftp://ftp.cenatls.cena.dgac.fr/Emacs/xemacs/ + + + ftp.fr.xemacs.org (FTP) + + ftp.fr.xemacs.org (HTTP) + + Secondary Mirrors + + ftp://ftp.pasteur.fr/pub/computing/xemacs/ + o Germany - + ftp://ftp.tu-darmstadt.de/pub/editors/xemacs/ + + + ftp.de.xemacs.org (FTP) + + ftp.de.xemacs.org (HTTP) + + Secondary Mirrors + + ftp://ftp.tu-darmstadt.de/pub/editors/xemacs/ + o Hungary - + ftp://ftp.kfki.hu/pub/packages/xemacs/ + + + ftp.hu.xemacs.org (FTP) + + ftp.hu.xemacs.org (HTTP) + o Ireland - + ftp://ftp.eunet.ie/mirrors/ftp.xemacs.org/pub/xemacs/ + + + ftp.ie.xemacs.org (FTP) + + ftp.ie.xemacs.org (HTTP) + o Italy - + ftp://ftp.uniroma2.it/unix/misc/dist/XEMACS/ + + + ftp.it.xemacs.org (FTP) + + ftp.it.xemacs.org (HTTP) + o Norway - + ftp://sunsite.uio.no/pub/xemacs + + + ftp.no.xemacs.org (FTP) + + ftp.no.xemacs.org (HTTP) + o Poland - + ftp://ftp.icm.edu.pl/pub/unix/editors/xemacs/ + + + ftp.pl.xemacs.org (FTP) + + ftp.pl.xemacs.org (HTTP) + o Russia - + ftp://ftp.srcc.msu.su/mirror/ftp.xemacs.org/ + + + ftp.ru.xemacs.org (FTP) + + ftp.ru.xemacs.org (HTTP) + + o Slovakia + + + ftp.sk.xemacs.org (FTP) + + ftp.sk.xemacs.org (HTTP) + o Sweden - + ftp://ftp.sunet.se/pub/gnu/xemacs/ + + + ftp.se.xemacs.org (FTP) + + ftp.se.xemacs.org (HTTP) + o Switzerland - + ftp://sunsite.cnlab-switch.ch/mirror/xemacs/ -* Asia + + ftp.ch.xemacs.org (FTP) + + ftp.ch.xemacs.org (HTTP) - o Japan - + ftp://ftp.netlab.is.tsukuba.ac.jp/pub/GNU/xemacs/ - + ftp://ftp.jaist.ac.jp/pub/GNU/xemacs/ - + ftp://ring.aist.go.jp/pub/text/xemacs/ - + ftp://ring.asahi-net.or.jp/pub/text/xemacs/ - + ftp://sunsite.sut.ac.jp/pub/archives/packages/xemacs/ - + ftp://ftp.dti.ad.jp/pub/unix/editor/xemacs/ - + ftp://mirror.nucba.ac.jp/mirror/xemacs/ - o Korea - + ftp://ftp.kreonet.re.kr/pub/tools/emacs/xemacs/ - o Taiwan - + ftp://coda.nctu.edu.tw/Editors/xemacs/ + o United Kingdom -* Africa + + ftp.uk.xemacs.org (FTP) + + ftp.uk.xemacs.org (HTTP) - o South Africa - + ftp://ftp.sun.ac.za/xemacs/ + Secondary Mirrors + + ftp://sunsite.doc.ic.ac.uk/packages/xemacs/ + + http://sunsite.doc.ic.ac.uk/packages/xemacs/ * Middle East - o Saudi Arabia - + ftp://ftp.isu.net.sa/pub/mirrors/ftp.xemacs.org/ + Goto Mirror Index -* Australia + o Saudi Arabia - o ftp://mirror.aarnet.edu.au/pub/xemacs + + ftp.sa.xemacs.org (FTP) + + ftp.sa.xemacs.org (HTTP) The most up-to-date list of distribution sites can always be found on -the XEmacs WWW page, http://www.xemacs.org/. Try to pick a site that -is networkologically close to you. If you know of other mirrors of -the XEmacs archives, please send us mail and we will list them here as -well. +the XEmacs WWW page at http://www.xemacs.org/Download/. Try to pick a +site that is networkologically close to you. If you know of other +mirrors of the XEmacs archives, please send e-mail to + and we will list them here as well. There are mailing lists and newsgroups specifically for discussing and reporting bugs in XEmacs; see the file MAILINGLISTS in this directory. diff --text -u 'xemacs-21.5.0/etc/NEWS' 'xemacs-21.5.1/etc/NEWS' Index: ./etc/NEWS --- ./etc/NEWS Fri Apr 13 03:20:46 2001 +++ ./etc/NEWS Sat May 5 19:49:43 2001 @@ -32,6 +32,76 @@ * Changes in XEmacs 21.4 ======================== +** Summary of user-visible changes: + + -- The delete key now deletes forward by default. + -- Shifted motion keys now select text by default. + -- You can now build XEmacs with support for GTK+ widget set. + -- ~/.xemacs/init.el is now the preferred location for the init file. + - XEmacs now supports a `~/.xemacs/init.el' startup file. + - Custom file will move to ~/.xemacs/custom.el. + -- Much-improved sample init.el, showing how to use many useful features. + -- XEmacs support for menu accelerators has been much improved. + -- Default menubar improvements. + - Default menubar has many new commands and better organization. + - The font-menu is now available under MS Windows. + -- Dialog box improvements, including a real file dialog box. + - XEmacs now has a proper file dialog box under MS Windows (and GTK)! + - The old clunky file dialog box is improved. + - Keyboard traversal now works correctly in MS Windows dialog boxes. + - There is a Search dialog box available from Edit->Find... + -- New buffer tabs. + -- There is a new MS Windows installer, netinstall, ported from Cygwin. + -- The subprocess quote-handling mechanism under Windows is much improved. + -- Printing support now available under MS Windows. + -- Selection improvements. + - Kill and yank now interact with the clipboard under Windows. + - MS Windows support for selection is now much more robust. + - Motif selection support is now more correct (but slower). + -- Mail spool locking now works correctly. + -- International support changes. + - The default coding-priority-list is now safer. + - International keysyms are now supported under X. + - MS Windows 1251 code page now supported. + - Czech, Thai, Cyrillic-KOI8, Vietnamese, Ethiopic now supported. + - Proper support for words in Latin 3 and Latin 4. + -- Help buffers contain hyperlinks, and other changes. + -- The modeline's text is now scrollable. + -- The mouse wheel under MS Windows now functions correctly. + -- Interactive searching and matching case improvements. + - Incremental search will now highlight all visible matches. + - Interactive searches always respect uppercase characters. + -- Rectangle functions rewritten to avoid inserting extra spaces. + -- New command `kill-entire-line' that always kills the entire line. + -- Default values correctly stored in minibuffer histories. + -- You can now create "indirect buffers", like in GNU Emacs. + -- Pixel-based scrolling has been implemented. + -- Operation progress can be displayed using graphical widgets. + -- User names following a tilde can now be completed at file name prompts. + -- XEmacs can now play sound using Enlightenment Sound Daemon (ESD). + -- X-Face support is now available under MS Windows. + -- The PostgreSQL Relational Database Management System is now supported. + -- Indentation no longer indents comments that begin at column zero. + -- Face and variable settings can have comments in Customize. + -- New locations for early package hierarchies. + -- The `auto-save' library has been greatly improved. + -- New variable `mswindows-alt-by-itself-activates-menu'. + -- Other init-file-related changes. + - Init file in your home directory may be called `.emacs.el'. + - New command-line switches -user-init-file and -user-init-directory. + -- Etags changes. + - In DOS, etags looks for file.cgz if it cannot find file.c. + - New option --ignore-case-regex is an alternative to --regex. + - New option --declarations, for C-type languages. + - In C++, tags are created for "operator". + - Ada now supported. + - In Fortran, procedure is no longer tagged. + - In Java, tags are created for "interface". + - In Lisp, def-type constructs are now tagged. + - In Perl, the --globals option tags global variables. + - Python now supported. + - New file extensions recognized: .ss, .pdb, .psw. + ** The delete key now deletes forward by default. This is regulated by the variable `delete-key-deletes-forward', which @@ -39,13 +109,24 @@ the systems that offer both a backspace and a delete key. If set to nil, the key labeled "Delete" will always delete backward. If set to non-nil, the "Delete" key will delete forward, except on keyboards -where a "Backspace" key is not provided (e.g. old DEC keyboards.) +where a "Backspace" key is not provided (e.g. old DEC keyboards). Unless our implementation has bugs, the only reason why you would want to set `delete-key-deletes-forward' to nil is if you want to use the Delete key to delete backwards, despite the presence (according to Xlib) of a BackSpace key on the keyboard. +** Shifted motion keys now select text by default. + +You can turn this off by setting `shifted-motion-keys-select-region' +to nil. This works based off of particular keys, not particular +commands: Thus, the arrow keys will normally trigger selection when +the Shift key is held down regardless of their bindings, and non-arrow +keys with the same bindings (e.g. C-f) will not work this way. You +can control which keys trigger shifted motion using +`motion-keys-for-shifted-motion'. See also +`unshifted-motion-keys-deselect-region'. + ** You can now build XEmacs with support for GTK+ widget set. XEmacs built that way uses GTK+ to draw menubars, scrollbars, and @@ -58,176 +139,179 @@ system.) Gnome widgets and functionality are supported where available, and can be turned off. -** Shifted motion keys now select text by default. You can turn this -off by setting `shifted-motion-keys-select-region' to nil. +** ~/.xemacs/init.el is now the preferred location for the init file. -** There is a new command `kill-entire-line' that always kills the -entire line at point, regardless of whether the point is at the -beginning of line, and regardless of the setting of `kill-whole-line'. - -** The variable `kill-whole-line' now only takes effect when kill-line -is called interactively. Although this is a departure from a previous -behavior in the case of setting this variable kill-whole-line to t, -it is almost certainly what has always been intended, and most likely -the old way of doing things introduced bugs. - -** The help buffers created by the plethora of C-h commands now -contain hyperlinks. - -** The modeline's text is now scrollable. This is controlled by the -variable `modeline-scrolling-method', which you need to set to a -non-nil value. You can also choose scrolling types; see the docstring -of `modeline-scrolling-method' for more information. - -** XEmacs menus now have accelerators by default. If a menu item does -not have an accelerator specified, one is created dynamically, using -numbers 1-9 and letters. +*** XEmacs now supports a `~/.xemacs/init.el' startup file. +If it exists, XEmacs will prefer it over `.emacs' and `.emacs.el'. +The file may be byte-compiled as `~/.xemacs/init.elc'. -** Interactive searching and matching case improvements. +If present, the `~/.xemacs/' directory may contain startup files for +XEmacs packages that support it. -Case sensitiveness in searching operations is normally controlled by -the variable `case-fold-search' (if non-nil, case is ignored while -searching). This mechanism has now been slightly improved for -interactive searches: if the search string (or regexp) contains -uppercase characters, the searching is forced to be case-sensitive, -`case-fold-search'. +The first time you start up XEmacs, it will ask you if you would like +to migrate your `.emacs' to the new location. (Your custom settings +will also be moved, to `~/.xemacs/custom.el' -- see below.) If so, you +will also be asked whether you would like to create a compatibility +`.emacs' for backward compatibility with previous versions of XEmacs +and with GNU Emacs. (This compatibility `.emacs' simply loads the new +init and custom files.) Doing this is generally a good idea -- new +versions of XEmacs will prefer `~/.xemacs/init.el' over `~/.emacs' in +any case. + +You can manually migrate at any time with `migrate-user-init-file', +and undo any migration with `unmigrate-user-init-file'. The function +`create-compatibility-dot-emacs' also lets you manually create a +compatibility `.emacs'. + +NOTE: Under MS Windows, your home directory (i.e. the directory named +`~') is specified by the HOME environment variable, and defaults to +C:\. To set this variable, modify AUTOEXEC.BAT under Windows 95/98, +or select Control Panel->System->Advanced->Environment Variables... +under Windows NT/2000. -The new behavior affects all functions performing interactive -searches, like `zap-to-char', `list-matching-lines', `tags-search' -etc. The incremental search facility has always behaved that way. +*** Custom file will move to ~/.xemacs/custom.el. -** Incremental search will now highlight all visible matches, making -it easier to anticipate where consecutive C-s or C-r will place the -point. If you want to disable the feature, set -`isearch-highlight-all-matches' to nil. +Whereas customize settings were formerly stored in the regular init +file, XEmacs now prefers them to be in a separate file +`~/.xemacs/custom.el', completely under automatic control. This +change goes with the migration of the init file, and XEmacs offers +automatic migration upon startup. -** The "coding systems" feature now works even in an XEmacs compiled -without international (Mule) support. This means that for example -XEmacs can recognize newline convention used by the file you are -editing. - -** You can now use the buffer tabs to switch between buffers. The -tabs are located between the toolbar and the uppermost window, in a -location called "gutter". If you dislike the buffer tabs, you can -disable them by customizing `gutter-buffers-tab-visible-p', or by -placing this in your .emacs: - - (set-gutter-element-visible-p default-gutter-visible-p 'buffers-tab nil) - -You can change the location of the gutter with -`set-default-gutter-position', however currently only MS-Windows -supports tab widgets with orientations other than vertical. - -** Kill and yank now interact with the clipboard by default under -Windows. This was done by changing the default value of -`interprogram-cut-function' and `interprogram-paste-function'. You -can get the old behavior by setting these to nil, and there is an -option on the options menu to do this. +** Much-improved sample init.el, showing how to use many useful features. -** When you press RET at a minibuffer prompt that provides a default -value, the value is stored in history instead of an empty line. Also, -you can now edit the default value by pressing the down arrow, -accessing the logical "future" value. Not all minibuffer prompts have -yet been converted to support this feature. +The sample init file, located in the `etc/' directory of the XEmacs +installation, has been renamed from `sample.emacs' to `sample.init.el', +and pretty much rewritten from scratch. (You can view it by selecting +the menu item Help->Samples->Sample init.el.) Many of the most-useful +optional features in XEmacs have been enabled, and other features that +are useful but may be annoying to some are present but commented out. +There is also extensive documentation on how to add your own +improvements to the init file and where to find more documentation +elsewhere in XEmacs. The file has been specifically designed so that +most people can simply make it their own init file by copying it to +~/.xemacs/init.el, and they will be satisfied with the results. -** International keysyms are now supported under X. This means that -XEmacs running under Mule will automatically recognize the keysym -`scaron' to be the lower-case `s' with caron in the Latin 2 character -set. (Specifically, it will bind the keysym to `self-insert' and -augment its `ascii-character' property.) This is very useful with -XFree under European locales as shipped by recent Linux distributions. -If XEmacs is compiled without Mule support, the feature still works, -but it is unaware of different character sets -- it unconditionally -sets the `ascii-character' property to values in the [160, 256) range. +** XEmacs support for menu accelerators has been much improved. -** The rectangle functions have been almost completely rewritten in -order to avoid inserting undesirable spaces, notably at the end of -lines. Two typical examples of the old behavior were -`string-rectangle', which filled all lines up to the right side of the -rectangle, and `clear-rectangle', which filled even empty lines up to -the left side. All functions have been rewritten to avoid inserting -unwanted spaces, and an optional prefix now allows them to behave the -old way. +It now works properly under MS Windows, for example. To enable +accelerators, set `menu-accelerator-enabled' to `menu-force'. Menus +now have accelerators by default, currently on the first letter of the +menu item unless another letter was indicated as the accelerator using +%_ in the menu string. These %_ specifications are automatically +removed when displaying the menu item, and are handled correctly in +functions such as `normalize-menu-item-name'. Some auto-generated +menus will have accelerators added dynamically, using numbers 1-9 and +letters; to add this feature yourself, use the Lisp command +`submenu-generate-accelerator-spec' in a menu filter. The feature +`menu-accelerator-support' has been added so that packages can check +whether this support exists. -Also, the behavior of `string-rectangle' is now compliant with -`pending-delete-mode': if this mode is active, then the string -replaces the region rectangle. Otherwise, the command does not delete -or overwrite any existing text. For those who want that feature but do -not use pending-delete-mode, a new function, `replace-rectangle', is -available. +** Default menubar improvements. -As a side effect, the FORCE argument to `move-to-column' now -understands the special value `coerce', which means that the line -should not be filled if it is too short to reach the desired column. +*** Default menubar has many new commands and better organization. -** Customize now supports adding comments about your face and variable -settings using a new menu entry. Comments for variables can also be -assigned by calling `customize-set-(value|variable)' with a prefix -argument. +The default menubar has been extensively reorganized. Many more +commands are available, and they are more logically organized. The +Options menu, in particular, has been significantly expanded, and almost +everything on the new Cmds menu is new. (Much of the useful +functionality from the `big-menubar' package has been imported.) -** XEmacs now locates the early package hierarchies at -~/.xemacs/mule-packages/ and ~/.xemacs/xemacs-packages/. Previously, -the early packages were located in ~/.xemacs/. +*** The font-menu is now available under MS Windows. -** You can now create "indirect buffers", like in GNU Emacs. An -indirect buffer shares its text with another buffer ("base buffer"), -but has its own major mode, local variables, extents, and narrowing. -An indirect buffer has a name of its own, distinct from those of the -base buffer and all other buffers. An indirect buffer cannot itself -be visiting a file (though its base buffer can be). The base buffer -cannot itself be indirect. +** Dialog box improvements, including a real file dialog box. -Use (make-indirect-buffer BASE-BUFFER NAME) to make an indirect buffer -named NAME whose base is BASE-BUFFER. If BASE-BUFFER is itself an -indirect buffer, its base buffer is used as the base for the new -buffer. +*** XEmacs now has a proper file dialog box under MS Windows (and GTK)! +This will appear whenever you select a menu item that requires a file +as an argument. -You can make an indirect buffer current, or switch to it in a window, -just as you would a non-indirect buffer. +*** The old clunky file dialog box is improved. +The in-buffer file dialog box (visible on non-MS-Windows, non-GTK +systems) is still clunky but has had many improvements to make it work +significantly better. -The function `buffer-base-buffer' returns a buffer's base buffer or -nil, if given an ordinary (non-indirect) buffer. The function -`buffer-indirect-children' returns a list of the indirect children of -a base buffer. +*** Keyboard traversal now works correctly in MS Windows dialog boxes. -** User names following the tilde character can now be completed at -file name prompts; e.g. `C-x C-f ~hni' will complete to -`~hniksic/'. To make this operation faster, a cache of user names is -maintained internally. +*** There is a Search dialog box available from Edit->Find... +However, it's very experimental and needs a lot of work. -The new primitives available for this purpose are functions named -`user-name-completion' and `user-name-all-completions'. +** New buffer tabs. -** XEmacs can now play sound using Enlightenment Sound Daemon (ESD). -It will try NAS first, then ESD, then playing native sound directly. +You can now use buffer tabs to switch between buffers. -** X-Face support is now available under MS-Windows. -If an X-Face library built under MS-Windows is available then XEmacs -will use this at build time. +The tabs are located between the toolbar and the uppermost window, in +a location called the "gutter". If you dislike the buffer tabs, you can +disable them using the menu item `Options->Display->Buffers Tab Visible' +by customizing `gutter-buffers-tab-visible-p', or by placing this in +your .xemacs/init.el: + + (custom-set-variables '(gutter-buffers-tab-visible-p nil)) + +You can change the location of the gutter using the menu item +`Options->Display->Default Gutter Location' or with (e.g.) + + (custom-set-variables '(default-gutter-position 'left)) + +However, currently only MS Windows supports tab widgets with +orientations other than vertical, and it doesn't currently support +gutters on the bottom of the frame. + +** There is a new MS Windows installer, netinstall, ported from Cygwin. + +Nearly complete automation of the XEmacs install process from +ftp.xemacs.org. Includes selection of Lisp packages to install, etc. + +** The subprocess quote-handling mechanism under Windows is much improved. + +Specifically, the quote-handling mechanism has been completely rewritten, +and you should now be able to use single or double quotes to quote arguments +just like under Unix, and expect to get correct results regardless of the +shell you are using (e.g. CMD.EXE, bash from Cygwin, etc.). For example, +the following command: + +M-x grep '<<<<<<<' *.c -** The font-menu is now available under MS-Windows. +should work as intended. -** MS-Windows support for selection is now much more robust. +** Printing support now available under MS Windows. + +The File->Print... menu item pretty-prints using the standard MS +Windows printing facilities. Unfortunately it's still rather +experimental. There is a separate `msprinter' device tag for MS +Windows printers, and so you can control the way that faces appear on +the printer by using this tag to specify device-specific face +settings. + +** Selection improvements. + +*** Kill and yank now interact with the clipboard under Windows. + +This was done by changing the default value of `interprogram-cut-function' +and `interprogram-paste-function'. You can get the old behavior by +setting these to nil, and there is an option on the options menu to do +this. + +*** MS Windows support for selection is now much more robust. Generally selection should now do what you would expect under -MS-Windows: the middle mouse button will paste your current selection +MS Windows: the middle mouse button will paste your current selection or the clipboard; conversions from different types of selection to the clipboard can be made; the kill-ring and friends will be updated as per X. The only thing selection doesn't do is set the clipboard automatically -as this would break the MS-Windows model. If you want this behavior +as this would break the MS Windows model. If you want this behavior then set `selection-sets-clipboard' to t. -** Motif selection support is now more correct (but slower) in its behaviour. +*** Motif selection support is now more correct (but slower). Changes have been made to allow correct operation of cut/copy/paste -operations between native widgets and XEmacs buffers. However, this +operations between native widgets and XEmacs buffers. However, this can lead to a lot of X traffic which slows down the performance of `C-k'. If you want the old behaviour then set `x-selection-strict-motif-ownership' to nil. ** Mail spool locking now works correctly. + XEmacs has always come with a little auxiliary program, movemail, which moves mail out of the system's spool area into user storage. To coordinate between XEmacs, the mail delivery agent, and other mail @@ -242,52 +326,139 @@ binary kit, set the `mail-lock-method' variable at startup, or the EMACSLOCKMETHOD environment variable. -** Indentation no longer indents comments that begin at column zero. -This makes it easy to deal with commented out regions of code. +** International support changes. -** Init file changes. +*** The default coding-priority-list is now safer. -*** XEmacs now supports a `~/.xemacs/init.el' startup file. If -it exists, XEmacs will prefer it over `.emacs' and `.emacs.el'. The -file may be byte-compiled as `~/.xemacs/init.elc'. +This means that if you have no language environment set, Mule no +longer automatically recognizes ISO 2022 escapes in your files. This +makes editing binary files safe. -If present, the `~/.xemacs/' directory may contain startup files for -XEmacs packages that support it. +*** International keysyms are now supported under X. -*** Init file in your home directory may be called `.emacs.el'. +This means that XEmacs running under Mule will automatically recognize +the keysym `scaron' to be the lower-case `s' with caron in the Latin 2 +character set. (Specifically, it will bind the keysym to +`self-insert' and augment its `ascii-character' property.) This is +very useful with XFree under European locales as shipped by recent +Linux distributions. If XEmacs is compiled without Mule support, the +feature still works, but it is unaware of different character sets -- +it unconditionally sets the `ascii-character' property to values in +the [160, 256) range. -Like in GNU Emacs 20.4 and on, you can now name the XEmacs init file -located in your home directory `.emacs.el'. Formerly the name had to -be `.emacs'. If you use the name `.emacs.el', you can byte-compile -the file in the usual way. +*** MS Windows 1251 code page now supported. -If both `.emacs' and `.emacs.el' exist, the latter file is the one -that is used. +It's available as coding system `windows-1251'. -*** New command-line switches -user-init-file and -user-init-directory. -These can be used to specify alternate locations for what is normally -~/.emacs and ~/.xemacs. +*** Czech, Thai, Cyrillic-KOI8, Vietnamese, Ethiopic now supported. -Moreover, the `-user ' command-line option (which used to only -work in unpredictable ways) is now equivalent to `-user-init-file -~/.xemacs/init.el -user-init-directory ~/.xemacs', or -`-user-init-file ~/.emacs -user-init-directory ~/.xemacs', -whichever init file comes first. +*** Proper support for words in Latin 3 and Latin 4. -*** Custom file will move to ~/.xemacs/custom.el. +The appropriate characters in Latin 3 and Latin 4 character sets are +correctly defined as words. -Whereas customize settings were formerly stored in the regular init -file, XEmacs now prefers them to be in a separate file -`~/.xemacs/custom.el', completely under automatic control. This -change goes with the migration of the init file, and XEmacs offers -automatic migration upon startup. +** Help buffers contain hyperlinks, and other changes. -** New variable `mswindows-alt-by-itself-activates-menu'. -If you set this variable to nil then pressing and releasing the Alt -key under MS-Windows will no longer activate the menubar. The default -is t. This is not to be confused with `menu-accelerator-enabled', -which enables the use of Alt+ accelerators to invoke the -menus. +The help buffers created by C-h commands now contain hyperlinks to +other commands, functions and variables mentioned in the documentation. +Use button2 to follow a link. Use button3 to bring up a context menu +that lets you follow the link, find the source for the item, do a tag +search, etc. The buffers are also syntax-highlighted. + +Help functions (e.g. `C-h f') now know how to print macro argument +lists. If your macro definition included an argument list for the sake +of help output, you no longer need to do that. + +** The modeline's text is now scrollable. + +This is controlled by the variable `modeline-scrolling-method', which +you need to set to a non-nil value. You can also choose scrolling +types; see the docstring of `modeline-scrolling-method' for more +information. + +** The mouse wheel under MS Windows now functions correctly. + +It scrolls the XEmacs window under the pointer, not the selected +window. + +** Interactive searching and matching case improvements. + +*** Incremental search will now highlight all visible matches. + +This makes it easier to anticipate where consecutive C-s or C-r will +place the point. If you want to disable the feature, set +`isearch-highlight-all-matches' to nil. + +*** Interactive searches always respect uppercase characters. + +Case sensitiveness in searching operations is normally controlled +by the variable `case-fold-search' (if non-nil, case is ignored while +searching). This mechanism has now been slightly improved for +interactive searches: if the search string (or regexp) contains +uppercase characters, the searching is forced to be case-sensitive, +`case-fold-search'. + +The new behavior affects all functions performing interactive +searches, like `zap-to-char', `list-matching-lines', `tags-search' +etc. The incremental search facility has always behaved that way. + +** Rectangle functions rewritten to avoid inserting extra spaces. + +The rectangle functions have been almost completely rewritten in +order to avoid inserting undesirable spaces, notably at the end of +lines. Two typical examples of the old behavior were +`string-rectangle', which filled all lines up to the right side of the +rectangle, and `clear-rectangle', which filled even empty lines up to +the left side. All functions have been rewritten to avoid inserting +unwanted spaces, and an optional prefix now allows them to behave the +old way. + +Also, the behavior of `string-rectangle' is now compliant with +`pending-delete-mode': if this mode is active, then the string +replaces the region rectangle. Otherwise, the command does not delete +or overwrite any existing text. For those who want that feature but do +not use pending-delete-mode, a new function, `replace-rectangle', is +available. + +As a side effect, the FORCE argument to `move-to-column' now +understands the special value `coerce', which means that the line +should not be filled if it is too short to reach the desired column. + +** New command `kill-entire-line' that always kills the entire line. + +This kills the entire line at point, regardless of whether the point +is at the beginning of line, and regardless of the setting of +`kill-whole-line'. + +** Default values correctly stored in minibuffer histories. + +When you press RET at a minibuffer prompt that provides a default +value, the value is stored in history instead of an empty line. Also, +you can now edit the default value by pressing the down arrow, +accessing the logical "future" value. Not all minibuffer prompts have +yet been converted to support this feature. + +** You can now create "indirect buffers", like in GNU Emacs. + +An indirect buffer shares its text with another buffer ("base +buffer"), but has its own major mode, local variables, extents, and +narrowing. An indirect buffer has a name of its own, distinct from +those of the base buffer and all other buffers. An indirect buffer +cannot itself be visiting a file (though its base buffer can be). +The base buffer cannot itself be indirect. + +Use (make-indirect-buffer BASE-BUFFER NAME) to make an indirect buffer +named NAME whose base is BASE-BUFFER. If BASE-BUFFER is itself an +indirect buffer, its base buffer is used as the base for the new +buffer. + +You can make an indirect buffer current, or switch to it in a window, +just as you would a non-indirect buffer. + +The function `buffer-base-buffer' returns a buffer's base buffer or +nil, if given an ordinary (non-indirect) buffer. The function +`buffer-indirect-children' returns a list of the indirect children of +a base buffer. ** Pixel-based scrolling has been implemented. By default this will attempt to scroll in increments equal to the @@ -297,7 +468,22 @@ ** Operation progress can be displayed using graphical widgets. See `progress-feedback' for details. This support has been switched on by default for font-lock and some web browsing functions. If you -do not like this behavior set `progress-feedback-use-echo-area'. +do not like this behavior, set `progress-feedback-use-echo-area' to +nil. + +** User names following a tilde can now be completed at file name prompts. +e.g. `C-x C-f ~hni' will complete to `~hniksic/'. To make this +operation faster, a cache of user names is maintained internally. + +The new primitives available for this purpose are functions named +`user-name-completion' and `user-name-all-completions'. + +** XEmacs can now play sound using Enlightenment Sound Daemon (ESD). +It will try NAS first, then ESD, then playing native sound directly. + +** X-Face support is now available under MS Windows. +If an X-Face library built under MS Windows is available then XEmacs +will use this at build time. ** The PostgreSQL Relational Database Management System is now supported. It is now possible to build XEmacs so that the programming interface @@ -305,58 +491,96 @@ Supported versions of PostgreSQL are 6.5.3 (earlier versions may work, but have not been tested) and 7.0-beta1. -** Help functions (e.g. `C-h f') now know how to print macro argument -lists. If your macro definition included an argument list for the -sake of help output, you no longer need to do that. +** Indentation no longer indents comments that begin at column zero. +This makes it easy to deal with commented out regions of code. -** Mule changes. +** Face and variable settings can have comments in Customize. +Customize now supports adding comments about your face and variable +settings using a new menu entry. Comments for variables can also be +assigned by calling `customize-set-(value|variable)' with a prefix +argument. -*** Windows 1251 code page is now supported as coding system -`windows-1251'. +** New locations for early package hierarchies. +XEmacs now locates the early package hierarchies at +~/.xemacs/mule-packages/ and ~/.xemacs/xemacs-packages/. Previously, +the early packages were located in ~/.xemacs/. -*** Czech, Thai, Cyrillic-KOI8, Vietnamese, Ethiopic support now -available. +** The `auto-save' library has been greatly improved. +(This lets you group all your auto-save files into one directory, and +is provided standardly with XEmacs. See `etc/sample.init.el', +available on the Help menu, for more info on how to set it up.) +Specifically, it now works under MS Windows, and it uses a completely +reversible encoding (basically quoted-printable), so that all +filenames (as well as non-filename buffers) are successfully handled +regardless of any special characters in their names. + +** New variable `mswindows-alt-by-itself-activates-menu'. +If you set this variable to nil then pressing and releasing the Alt +key under MS Windows will no longer activate the menubar. The default +is t. This is not to be confused with `menu-accelerator-enabled', +which enables the use of Alt+ accelerators to invoke the +menus. + +** Other init-file-related changes. -*** The appropriate characters in Latin 3 and Latin 4 character sets -are correctly defined as words. +*** Init file in your home directory may be called `.emacs.el'. -*** The default coding-priority-list is now safer. This means that if -you have no language environment set, Mule no longer automatically -recognizes ISO 2022 escapes in your files. This makes editing binary -files safe. +Like in GNU Emacs 20.4 and on, you can now name the XEmacs init file +located in your home directory `.emacs.el'. Formerly the name had to +be `.emacs'. If you use the name `.emacs.el', you can byte-compile +the file in the usual way. + +If both `.emacs' and `.emacs.el' exist, the latter file is the one +that is used. + +*** New command-line switches -user-init-file and -user-init-directory. + +These can be used to specify alternate locations for what is normally +~/.emacs and ~/.xemacs. + +Moreover, the `-user ' command-line option (which used to only +work in unpredictable ways) is now equivalent to `-user-init-file +~/.xemacs/init.el -user-init-directory ~/.xemacs', or +`-user-init-file ~/.emacs -user-init-directory ~/.xemacs', +whichever init file comes first. ** Etags changes. *** In DOS, etags looks for file.cgz if it cannot find file.c. -*** New option --ignore-case-regex is an alternative to --regex. It is now -possible to bind a regexp to a language, by prepending the regexp with -{lang}, where lang is one of the languages that `etags --help' prints -out. This feature is useful especially for regex files, where each -line contains a regular expression. The manual contains details. +*** New option --ignore-case-regex is an alternative to --regex. +It is now possible to bind a regexp to a language, by prepending the +regexp with {lang}, where lang is one of the languages that `etags +--help' prints out. This feature is useful especially for regex +files, where each line contains a regular expression. The manual +contains details. -*** In C and derived languages, etags creates tags for function +*** New option --declarations, for C-type languages. +In C and derived languages, etags creates tags for function declarations when given the --declarations option. -*** In C++, tags are created for "operator". The tags have the form -"operator+", without spaces between the keyword and the operator. +*** In C++, tags are created for "operator". +The tags have the form "operator+", without spaces between the +keyword and the operator. -*** New language Ada: tags are functions, procedures, packages, tasks, and -types. +*** Ada now supported. +Tags are functions, procedures, packages, tasks, and types. *** In Fortran, procedure is no longer tagged. *** In Java, tags are created for "interface". -*** In Lisp, "(defstruct (foo", "(defun (operator" and similar constructs -are now tagged. +*** In Lisp, def-type constructs are now tagged. +This includes "(defstruct (foo", "(defun (operator" and similar constructs. -*** In Perl, the --globals option tags global variables. my and local -variables are tagged. +*** In Perl, the --globals option tags global variables. +my and local variables are tagged. -*** New language Python: def and class at the beginning of a line are tags. +*** Python now supported. +def and class at the beginning of a line are tags. -*** .ss files are Scheme files, .pdb is Postscript with C syntax, .psw is +*** New file extensions recognized: .ss, .pdb, .psw. +.ss files are Scheme files, .pdb is Postscript with C syntax, .psw is for PSWrap. @@ -437,23 +661,13 @@ All of this is still fairly experimental and there is no documentation. The current APIs might change in a future version of -XEmacs. Some widgets are only available under MS-Windows. See the +XEmacs. Some widgets are only available under MS Windows. See the file glyphs-test.el in the XEmacs src distribution for examples of usage. The buffers-tab functionality and progress gauge have been implemented using this feature. -** A new Windows installer, netinstall ported from Cygwin. - -Nearly complete automation of the XEmacs install process from -ftp.xemacs.org. Includes selection of Lisp packages to install, etc. - -** Syntax tables may now be specified for a part of a buffer by -attaching the `syntax-table' property to an extent. For compatibility -with GNU Emacs, you may use the text-property interface to achieve the -same result. - ** Case translation now supports international characters. *** Instead of being lists of 256-character strings, case tables are @@ -473,6 +687,11 @@ *** The code that implements case-insensitive search has been modified to respect the case table settings. This also applies to regexp search. + +** Syntax tables may now be specified for a part of a buffer by +attaching the `syntax-table' property to an extent. For compatibility +with GNU Emacs, you may use the text-property interface to achieve the +same result. ** Values of variables `user-init-file' and `user-init-directory' are now absolute file/directory names. Previously, both variables used to diff --text -u 'xemacs-21.5.0/etc/check_cygwin_setup.sh' 'xemacs-21.5.1/etc/check_cygwin_setup.sh' Index: ./etc/check_cygwin_setup.sh --- ./etc/check_cygwin_setup.sh Sun Sep 6 12:11:01 1998 +++ ./etc/check_cygwin_setup.sh Sat May 5 19:49:43 2001 @@ -35,8 +35,9 @@ mkdir /bin mount -b $distdir /bin fi -elif [ "$distdir" != "/bin" ]; then - echo "Warning: you have /bin but it's not the cygwin installation." +#this appears bogus. --ben +#elif [ "$distdir" != "/bin" ]; then +# echo "Warning: you have /bin but it's not the cygwin installation." fi if [ ! -d "/tmp" ]; then @@ -129,19 +130,20 @@ echo "you have /etc/group" fi - if [ ! -f "/etc/hosts" ]; then - echo -n "You don't have /etc/hosts - create it?" - if yorn; then - mname=`uname -n` - echo "Machine name is $mname" - echo -n "Please enter your ip address " - read mipaddr junk - echo "$mname $mipaddr" > /etc/hosts - echo "localhost 127.0.0.1" >> /etc/hosts - fi - else - echo "you have /etc/hosts" - fi +# this is bogus. i have no hosts file and no problems. --ben +# if [ ! -f "/etc/hosts" ]; then +# echo -n "You don't have /etc/hosts - create it?" +# if yorn; then +# mname=`uname -n` +# echo "Machine name is $mname" +# echo -n "Please enter your ip address " +# read mipaddr junk +# echo "$mname $mipaddr" > /etc/hosts +# echo "localhost 127.0.0.1" >> /etc/hosts +# fi +# else +# echo "you have /etc/hosts" +# fi else echo "Can't create /etc files because /etc does not exist" fi @@ -181,8 +183,11 @@ echo "TERM is $TERM" fi -if echo $CYGWIN32 | grep -w tty; then - echo "CYGWIN32 is $CYGWIN32" +if echo $CYGWIN | grep -w tty > /dev/null; then + echo "CYGWIN is $CYGWIN" else - echo "CYGWIN32 does not contain \"tty\" terminal may be deficient" + echo "CYGWIN does not contain \"tty\"; you may experience problems with +subprocess or terminal handling. To rectify this add CYGWIN=tty to +your environment. (Note this cannot be done in bash as it needs to be +read when cygwin1.dll initializes.)" fi diff --text -u 'xemacs-21.5.0/etc/sample.init.el' 'xemacs-21.5.1/etc/sample.init.el' Index: ./etc/sample.init.el --- ./etc/sample.init.el Fri Apr 13 03:20:51 2001 +++ ./etc/sample.init.el Mon Apr 30 23:05:52 2001 @@ -814,7 +814,7 @@ (grep (construct-grep-all-files-command "-name . -or -type d -prune -or" command))) -(defun grep-all-files-in-current-directory-and-below () +(defun grep-all-files-in-current-directory-and-below (command) "Run `grep' in all non-annoying files in the current directory and below. `Non-annoying' excludes backup files, autosave files, CVS merge files, etc. More specifically, this is controlled by `grep-all-files-omitted-expressions'. diff --text -u 'xemacs-21.5.0/lib-src/.cvsignore' 'xemacs-21.5.1/lib-src/.cvsignore' Index: ./lib-src/.cvsignore --- ./lib-src/.cvsignore Fri Apr 13 03:20:58 2001 +++ ./lib-src/.cvsignore Mon Apr 30 23:07:26 2001 @@ -23,3 +23,4 @@ ootags ellcc DOC +*.pdb diff --text -u 'xemacs-21.5.0/lib-src/ChangeLog' 'xemacs-21.5.1/lib-src/ChangeLog' Index: ./lib-src/ChangeLog --- ./lib-src/ChangeLog Wed Apr 18 15:56:42 2001 +++ ./lib-src/ChangeLog Wed May 9 19:53:53 2001 @@ -1,3 +1,15 @@ +2001-05-09 Martin Buchholz + + * XEmacs 21.5.1 "anise" is released. + +2001-04-29 Ben Wing + + * gnuclient.c (filename_expand): Warning fix. + +2001-04-20 Ben Wing + + * .cvsignore: Added stuff for Windows. + 2001-04-18 Martin Buchholz * XEmacs 21.5.0 "alfalfa" is released. diff --text -u 'xemacs-21.5.0/lib-src/gnuclient.c' 'xemacs-21.5.1/lib-src/gnuclient.c' Index: ./lib-src/gnuclient.c --- ./lib-src/gnuclient.c Fri Apr 13 03:21:01 2001 +++ ./lib-src/gnuclient.c Sat May 5 19:50:08 2001 @@ -195,6 +195,7 @@ { #ifdef CYGWIN char cygwinFilename[MAXPATHLEN+1]; + extern void cygwin_conv_to_posix_path(const char *, char *); #endif int len; diff --text -u 'xemacs-21.5.0/lisp/ChangeLog' 'xemacs-21.5.1/lisp/ChangeLog' Index: ./lisp/ChangeLog --- ./lisp/ChangeLog Wed Apr 18 15:56:38 2001 +++ ./lisp/ChangeLog Wed May 9 19:53:53 2001 @@ -1,3 +1,563 @@ +2001-05-09 Martin Buchholz + + * XEmacs 21.5.1 "anise" is released. + +2001-05-06 Ben Wing + + * dialog.el (make-dialog-box): + * menubar-items.el (default-menubar): + * printer.el (generic-print-buffer): + * printer.el (generic-print-region): + implement printing the selection when it's selected. + + unrelated: + + * minibuf.el (input-error): + * subr.el (error): + a couple of error cleanups. + + * update-elc.el ((preloaded-file-list site-load-packages need-to-dump dumped-exe)): + * update-elc.el (update-elc-files-to-compile): + if bytecomp or byte-optimize need recompiling, then load + the .el version of them first, recompile them, and reload + the .elc versions to recompile everything else (so we won't + be waiting until the cows come home). + +2001-05-05 Ben Wing + + * subr.el (error): + Add missing errors to the doc string. + +2001-05-05 Ben Wing + + * dialog.el (make-dialog-box): fix doc string. + * menubar-items.el (default-menubar): Add Page Setup for Windows, + take out Pretty Print. + * printer.el: + * printer.el (printer-current-device): New. + * printer.el (Printer-get-device): New. + * printer.el (Printer-clear-device): New. + * printer.el (generic-page-setup): New. + * printer.el (generic-print-buffer): + * printer.el (generic-print-region): + Implement Page Setup. Handle errors properly. + + unrelated: + + * gtk-init.el: Fix the warning properly. + + +2001-05-04 Ben Wing + + * printer.el (generic-print-buffer): + * printer.el (generic-print-region): + Enable dialog boxes. Apply workaround recommended by Kirill. + + * simple.el (kill-whole-line): + * simple.el (kill-line-1): + * simple.el (kill-entire-line): + * simple.el (kill-line): + * simple.el (backward-kill-line): + Take out interactive dependence of kill-whole-line. + +2001-04-22 Ben Wing + + ----------------------- byte-comp warning fixes ----------------- + + * bytecomp-runtime.el: + * bytecomp-runtime.el (with-boundp): New. + * bytecomp-runtime.el (if-boundp): New. + * bytecomp-runtime.el (declare-boundp): New. + * bytecomp-runtime.el (globally-declare-boundp): New. + * bytecomp-runtime.el (byte-compile-with-fboundp): New. + * bytecomp-runtime.el ('with-fboundp-1): New. + * bytecomp-runtime.el (with-fboundp): New. + * bytecomp-runtime.el (if-fboundp): New. + * bytecomp-runtime.el (declare-fboundp): New. + * bytecomp-runtime.el (globally-declare-fboundp): New. + * bytecomp-runtime.el (byte-compile-with-byte-compiler-warnings-suppressed): New. + * bytecomp-runtime.el ('with-byte-compiler-warnings-suppressed-1): New. + * bytecomp-runtime.el (with-byte-compiler-warnings-suppressed): New. + * bytecomp-runtime.el (with-obsolete-variable): New. + * bytecomp-runtime.el (with-obsolete-function): New. + New functions for cleanly eliminating byte-compiler warnings. + Their definitions require no changes at all in bytecomp.el, + meaning that any package that wants to use them and be compatible + with older versions of XEmacs need only copy the code and rename + the functions (i.e. prefix them with the package name). + + * apropos.el (apropos-symbol-face): + * apropos.el (apropos-keybinding-face): + * apropos.el (apropos-label-face): + * apropos.el (apropos-property-face): + * cl-extra.el (cl-map-overlays): + * coding.el: + * coding.el (set-keyboard-coding-system): + * coding.el (set-terminal-coding-system): + * console.el (resume-pid-console): + * dialog-gtk.el: + * dialog-gtk.el (popup-builtin-open-dialog): + * dialog-gtk.el (popup-builtin-color-dialog): + * dragdrop.el (experimental-dragdrop-drop-mime-default): + * dragdrop.el (gtk-start-drag): + * dragdrop.el (gtk-start-drag-region): + * faces.el (init-face-from-resources): + * faces.el (init-device-faces): + * faces.el (init-frame-faces): + * faces.el (init-global-faces): + * faces.el (set-face-stipple): + * files.el (set-visited-file-name): + * files.el (basic-save-buffer): + * files.el (save-some-buffers-1): + * files.el (file-remote-p): + * fill.el (fill-move-forward-to-break-point): + * fill.el (find-space-insertable-point): + * font-lock.el: + * frame.el (suspend-or-iconify-emacs): + * frame.el (suspend-emacs-or-iconify-frame): + * gdk.el: + * generic-widgets.el: + * generic-widgets.el (build-ui::radio-group): + * generic-widgets.el (build-ui::button): + * glade.el: + * gnome-widgets.el: + * gnome.el: + * gtk-extra.el: + * gtk-faces.el (gtk-choose-font): + * gtk-file-dialog.el: + * gtk-file-dialog.el (gtk-file-dialog-fill-file-list): + * gtk-file-dialog.el (gtk-file-dialog-fill-directory-list): + * gtk-file-dialog.el (gtk-file-dialog-new): + * gtk-font-menu.el: + * gtk-font-menu.el (gtk-reset-device-font-menus): + * gtk-init.el: + * gtk-init.el (gtk-initialize-compose): + * gtk-package.el: + * gtk-password-dialog.el: + * gtk-widget-accessors.el: + * gtk-widgets.el: + * gtk.el: + * isearch-mode.el (isearch-help-or-delete-char): + * ldap.el: + * lib-complete.el (read-library-internal): + * lib-complete.el (read-library): + * lib-complete.el (read-library-name): + * lisp-mnt.el (lm-report-bug): + * minibuf.el (minibuffer-smart-mouse-tracker): + * minibuf.el (minibuffer-smart-select-kludge-filename): + * minibuf.el (read-file-name-internal-1): + * minibuf.el (read-color-completion-table): + * modeline.el (modeline-toggle-read-only): + * mouse.el (mouse-consolidated-yank): + * mouse.el (default-mouse-track-maybe-own-selection): + * msw-font-menu.el (mswindows-reset-device-font-menus): + * multicast.el (open-multicast-group): + * mwheel.el: + * package-get.el (package-get-update-base-from-buffer): + * scrollbar.el (init-scrollbar-from-resources): + * symbols.el: + * syntax.el (describe-syntax-table): + * toolbar.el (init-toolbar-from-resources): + * toolbar-items.el (toolbar): + * toolbar-items.el (toolbar-paste): + * tty-init.el (init-pre-tty-win): + * tty-init.el (init-post-tty-win): + * wid-browse.el (widget-browse-sexp): + * widgets-gtk.el: + * x-faces.el: + * x-font-menu.el: + * x-font-menu.el (x-font-menu-font-data): + * x-init.el: + * x-misc.el: + * x-mouse.el: + * x-scrollbar.el: + * x-select.el: + * x-win-sun.el: + * x-win-xfree86.el: + Eliminate byte-compiler warnings using the new functions in + bytecomp-runtime.el. + + * coding.el (coding-system-get): New. + * coding.el (coding-system-put): New. + * coding.el (coding-system-category): New. + * mule\mule-misc.el (coding-system-get): Removed. + * mule\mule-misc.el (coding-system-put): Removed. + * mule\mule-misc.el (coding-system-category): Removed. + Move these functions, since they're not Mule-specific and + are used in prefer-coding-system. + + * font.el: + * font.el (cl): + * font.el (set-font-family): + * font.el (set-font-weight): + * font.el (set-font-style): + * font.el (set-font-size): + * font.el (set-font-registry): + * font.el (set-font-encoding): + * font.el (font-family): + * font.el (font-weight): + * font.el (font-style): + * font.el (font-size): + * font.el (font-registry): + * font.el (font-encoding): + * font.el (set-font-style-by-keywords): + * font.el (font-properties-from-style): + * font.el (font-combine-fonts-internal): + * font.el (font-x-font-regexp): + * font.el (x-font-create-object): + * font.el (x-font-create-name): + * font.el (ns-font-create-name): + * font.el (mswindows-font-create-name): + * font.el (font-update-device-fonts): + * font.el (font-update-one-face): + * font.el (font-rgb-color-p): + * font.el (font-rgb-color-red): + * font.el (font-tty-compute-color-delta): + * font.el (font-normalize-color): + This file was incredibly ugly. Clean it up. Avoid using defsubst + for any exported functions, to avoid possible compatibility + problems if we later change the internal interface. (It happened + before, with face accessors, between 19.8 and 19.9). Fix tons + of warnings. + + * gpm.el: + * gpm.el (gpm-is-supported-p): New. + * gpm.el (gpm-delete-device-hook): + Clean up (new function gpm-is-supported-p eliminates duplicate + code in gpm-create/delete-device-hook) and eliminate warnings. + + ---------- make byte-recompile-directory work in the --------- + core `lisp' dir, even in the absence of + a Mule XEmacs (i.e. make it skip the Mule + files rather than trying to compile them). + now you should be able to do `touch *.el' + in the `lisp' dir, then + M-x byte-recompile-directory, and get no + warnings. + + * bytecomp.el: + * bytecomp.el (byte-recompile-ignore-uncompilable-mule-files): New. + * bytecomp.el (byte-compile-inbuffer): + * bytecomp.el (byte-compile-inbuffer)): New. + * bytecomp.el (byte-compile-outbuffer)): New. + * bytecomp.el (byte-compile-warn): + * bytecomp.el (byte-recompile-directory): + * bytecomp.el (byte-recompile-file): + Avoid trying to compile Mule files in byte-recompile-directory + when we're not in a Mule XEmacs, since we're highly likely to get + syntax errors. + + * mule\arabic.el: + * mule\canna-leim.el: + * mule\english.el: + * mule\greek.el: + * mule\kinsoku.el: + * mule\latin.el: + * mule\misc-lang.el: + * mule\mule-category.el: + * mule\mule-ccl.el: + * mule\mule-charset.el: + * mule\mule-cmds.el: + * mule\mule-coding.el: + * mule\mule-help.el: + * mule\mule-init.el: + * mule\mule-misc.el: + * mule\mule-tty-init.el: + * mule\mule-x-init.el: + * mule\thai-xtis-chars.el: + * mule\viet-chars.el: + Add a coding-system cookie to all Mule files so that + byte-recompile-directory ignores them. + + * code-files.el (load): + * code-files.el (find-coding-system-magic-cookie): Removed. + * files.el: + * files.el (find-coding-system-magic-cookie-in-file): New. + Magic cookie function moved to files.el from code-files.el (for + use by bytecomp even in a non-coding-system XEmacs), and changed + names and semantics for use by bytecomp. NOTE: IMO this is an + internal function that we can change as we like (and there is + absolutely no code anywhere else using the function). + + ---------------- GUI improvements: menus, help ------------------- + + * help.el: + * help.el (help-map): Removed. + * help.el (help-for-help): + * help.el (Help-princ-face): + * help.el (Help-prin1-face): + * help.el (describe-function-1): + * help.el (describe-variable): + Rearrange order of keymap declarations to be alphabetical. + Improve help on help to include all bindings, and group by + category. Add bindings for new Info commands. Remove + warnings. Use command-hyper-apropos in place of command-apropos. + + * hyper-apropos.el: + * hyper-apropos.el (hyper-apropos-programming-apropos): + * hyper-apropos.el (command-hyper-apropos): New. + Add a function to do the equivalent of command-apropos. + + * help-macro.el (make-help-screen): + Evals its help-text argument so you can put expressions there. + Used now by help-for-help. + + * info.el: + * info.el (Info-search): + * info.el (Info-search-next): New. + * info.el (Info-index): Removed. + * info.el (Info-find-index-alternatives): New. + * info.el (Info-read-search-text-regexp): New. + * info.el (Info-search-text-in-lispref): New. + * info.el (Info-search-text-in-xemacs): New. + * info.el (Info-search-index-in-lispref): New. + * info.el (Info-search-index-in-xemacs-and-lispref): New. + * info.el (Info-mode-map): + Add binding to continue text searches. Expand index searches to + work over multiple info documents. Add commands to search + text/index in User and Lispref. + + * lisp-mode.el (construct-lisp-mode-menu): + Add new entry, "Uncomment Region" (parallels "Comment Out Region"). + + * menubar-items.el (default-menubar): + * menubar-items.el (default-popup-menu): + Redo Help menu; add bindings for new Info commands to search the + index or text of the User and Lispref manuals. Add command for + mark-paragraph, activate-region. Make Edit->R accelerator be + rectangle, not register (more commonly used), and put rectangle + first. Fix the Edit Init File entry to never load the .elc file. + Simplify the default-popup-menu. Add Cmds->Tabs menu. + + * menubar.el (popup-buffer-menu): Doc fix. + * menubar.el ((boundp 'menu-accelerator-map)): + Use kp-left not kp_left, etc. + + ---------------- Miscellaneous bug fixes/cleanup ------------------- + + * bytecomp-runtime.el (byte-compiler-options): + Correct doc string. + + * easymenu.el (easy-menu-do-define): fix extra quote. + + * fill.el (fill-paragraph-or-region): + Rewrite to be more correct -- use call-interactively so that + we always get exactly the same behavior as if the functions + were called directly. + + * font-lock.el (font-lock-fontify-pending-extents): + * gutter-items.el (clear-progress-feedback): + * gutter-items.el (abort-progress-feedback): + * gutter-items.el (raw-append-progress-feedback): + * simple.el (clear-message): + * simple.el (raw-append-message): + No need to fiddle with zmacs-region-stays, now that bogus + clearing of it (2001-04-28 src/ChangeLog) is removed. + + * dialog.el (make-dialog-box): + Put dialog titles back in -- this time correctly. Fix various + other problems with leaks and such. + + * keymap.el (key-sequence-list-description): + Clean up fun to always correctly canonicalize. + + * simple.el: + * simple.el (delete-forward-p): + * simple.el (comment-padding): New. + * simple.el (comment-region): + * simple.el (do-auto-fill): + * simple.el (indent-new-comment-line): + Clean up Kinsoku comments, synch comment-region with FSF 20.7. + + * simple.el (region-exists-p): + * simple.el (region-active-p): + Add comment about which one is correct to use in menu specs. + + * sound.el (load-sound-file): + Minor code clean up. + + * startup.el: + * startup.el (command-line-early): + * startup.el (initial-scratch-message): + Comment changes. Add info about sample.init.el to splash screen. + Improve initial-scratch-message and clarify purpose of Scratch + buffer. Fix byte-compile warning. + + ------------------------ Added features ------------------------- + + * etags.el: + * etags.el (tags-check-parent-directories-for-tag-files): New. + * etags.el (buffer-tag-table-list): + Add new variable to control whether etags checks all parent + directories for tag files. (On by default.) + + * hash-table.el: New file, useful utility functions. + * dumped-lisp.el (preloaded-file-list): Dump hash-table.el. + +2001-05-03 Adrian Aichner + + * build-report.el: Remove CVS keywords since this file has been in + core lisp for a while now. + * build-report.el (build-report-make-output-files): Fix typo. + +2001-04-30 Ben Wing + + * printer.el: + * printer.el (printer-page-header): + * printer.el (Print-context): New. + * printer.el (printer-page-footer): + * printer.el (generate-header-element): New. + * printer.el (generate-header-line): New. + * printer.el (print-context-property): + * printer.el (generic-print-buffer): + * printer.el (generic-print-region): + Implement headers and footers. Implement calling Print dialog box + (#### but it doesn't quite work yet). + +2001-04-28 Ben Wing + + * about.el (xemacs-hackers): + * about.el (about-url-alist): + * about.el (about-personal-info): + * about.el (about-hacker-contribution): + More contributions. + + * simple.el (handle-post-motion-command): + Fix spurious setting of zmacs-region-stays to t after a non-shift + motion command. + + * etags.el (find-tag-internal): + Sync up with FSF 20.7, to fix bugs handling some etags line formats. + + * gtk-init.el (init-post-gtk-win): + * msw-init.el (init-post-mswindows-win): + * x-init.el: + * x-init.el (x-activate-region-as-selection): Removed. + * x-init.el (init-post-x-win): + * keydefs.el (global-map): + * simple.el: + * startup.el (command-line): + * toolbar-items.el: + * toolbar-items.el (init-x-toolbar-list): Removed. + * toolbar-items.el (init-toolbar-list): New. + * toolbar-items.el (init-x-toolbar): Removed. + * toolbar-items.el (init-toolbar): New. + * toolbar-items.el (x-init-toolbar-from-resources): Removed. + * toolbar.el: + Move non-window-system specific code that was duplicated in + all window systems into the generic code. + + * gutter.el: + * gutter.el (init-gutter): Removed. (unused) + + * mouse.el: + * mouse.el (default-mouse-track-maybe-own-selection): + * mouse.el (mouse-track-activate-rectangular-selection): New. + * select.el: + * select.el (disown-selection): + * select.el (activate-region-as-selection): + * select.el (primary-selection-extent): + * select.el (valid-simple-selection-p): + Clean up the rectangle code w.r.t. selections. You'll now get + the right text copied into the primary selection (but not the + clipboard yet, unfortunately -- that really requires defining + our own rectangle type). + +2001-04-25 IKEYAMA Tomonori + + * faces.el (make-face-bold): + * faces.el (make-face-italic): + * faces.el (make-face-bold-italic): + * faces.el (make-face-unbold): + * faces.el (make-face-unitalic): + * faces.el (make-face-smaller): + * faces.el (make-face-larger): + Call frob-face-property each for mswindows and msprinter. + +2001-04-24 Hrvoje Niksic + + * about.el (about-finish-buffer): Make sure the last change works + even if EVENT is nil. + +2001-04-24 Hrvoje Niksic + + * about.el (about-mailto-link): Use compose-mail for sending mail. + (about-finish-buffer): Kill/bury the buffer where the user + clicked, not the one that happens to be the current buffer at the + time. + +2001-04-24 Hrvoje Niksic + + * about.el (about-personal-info): Update my bio. + (about-hacker-contribution): Ditto. + +2001-04-23 Didier Verna + + * cus-edit.el (custom-variable-pre-save): New. + * cus-edit.el (custom-variable-post-save): New. + * cus-edit.el (custom-variable-save): use them. + * cus-edit.el (custom-face-pre-save): New. + * cus-edit.el (custom-face-post-save): New. + * cus-edit.el (custom-face-save): use them. + * cus-edit.el (custom-group-pre-save): New. + * cus-edit.el (custom-group-post-save): New. + * cus-edit.el (custom-group-save): use them. + * cus-edit.el (Custom-save): use the pre/post functions above, + call `custom-save-all' only once. + * cus-edit.el (custom-variable-pre-reset-standard): New. + * cus-edit.el (custom-variable-post-reset-standard): New. + * cus-edit.el (custom-variable-reset-standard): use them. + * cus-edit.el (custom-face-pre-reset-standard): New. + * cus-edit.el (custom-face-post-reset-standard): New. + * cus-edit.el (custom-face-reset-standard): use them. + * cus-edit.el (custom-group-pre-reset-standard): New. + * cus-edit.el (custom-group-post-reset-standard): New. + * cus-edit.el (Custom-reset-standard): use them. + * cus-edit.el (custom-face-reset-saved): use the pre/post + functions above, call `custom-save-all' only once. + +2001-04-15 Ben Wing + + * about.el: + * about.el (about-headline-face): New. + * about.el (about-link-face): New. + * about.el (about-current-release-maintainers): New. + * about.el (about-other-current-hackers): New. + * about.el (about-once-and-future-hackers): New. + * about.el (about-lookup-url): New. + * about.el (about-get-buffer): + * about.el (about-mailto-link): New. + * about.el (about-finish-buffer): + * about.el (about-xemacs): + * about.el (about-features): Removed. + * about.el (about-advantages): New. + * about.el (about-maintainer-info): Removed. + * about.el (about-personal-info): New. + * about.el (about-hacker-contribution): New. + * about.el (about-maintainer): + * about.el (about-show-linked-info): + * about.el (about-hackers): + Major revamping. Rewriting of most of the text, improve the + link handling, separate info on contributors into personal + and contribution info, add new contributors, update personal + info, etc. etc. + + * menubar-items.el (default-menubar): + Help menubar entry for News now says more accurately + "What's New in XEmacs". + + * mouse.el: + * mouse.el (mouse-track-cleanup-hook): + * mouse.el (mouse-track): + Don't set-buffer to a dead buffer when calling mouse-track + cleanup hooks. + +2001-04-18 Didier Verna + + * cus-edit.el (Custom-reset-standard): reset to standard settings + not only when the buffer's :custom-state is 'modified, but also + when it is 'set or 'saved. + 2001-04-18 Martin Buchholz * XEmacs 21.5.0 "alfalfa" is released. diff --text -u 'xemacs-21.5.0/lisp/about.el' 'xemacs-21.5.1/lisp/about.el' Index: ./lisp/about.el --- ./lisp/about.el Fri Apr 13 03:21:09 2001 +++ ./lisp/about.el Mon Apr 30 23:07:44 2001 @@ -1,10 +1,11 @@ ;;; about.el --- the About The Authors page (shameless self promotion). ;; Copyright (c) 1997 Free Software Foundation, Inc. +;; Copyright (C) 2001 Ben Wing. ;; Keywords: extensions -;; Version: 2.4 -;; Maintainer: Hrvoje Niksic +;; Version: 2.5 +;; Maintainer: XEmacs Development Team ;; This file is part of XEmacs. @@ -37,6 +38,8 @@ ;; Completely rewritten for 20.3 by Hrvoje Niksic . ;; The original had no version numbers; I numbered the rewrite as 2.0. +;; Extensively revamped and most text rewritten by Ben Wing +;; for 21.4. ;; Many things in this file are to gag. Ideally, we should just use ;; HTML (or some other extension, e.g. info) for this sort of thing. @@ -53,91 +56,203 @@ ;; named after the CAR of the list element (baw -> baw.png). ;; ;; If you add to this list, you'll want to update -;; `about-maintainer-info' (and maybe `about-hackers'. +;; `about-personal-info' and `about-hackers', and add the name to one +;; of the three mutually exclusive lists just below. + +(defface about-headline-face + '((((class color) (background dark)) + (:foreground "red" :bold t)) + ;; red4 is hardly different from black on windows. + (((class color) (background light) + (type mswindows)) + (:foreground "red" :bold t)) + (((class color) (background light)) + (:foreground "red4" :bold t)) + (((class grayscale) (background light)) + (:foreground "LightGray" :bold t)) + (((class grayscale) (background dark)) + (:foreground "DimGray" :bold t)) + (t (:bold t))) + "Face used for color-highlighted headlines in the About page.") + +(defface about-link-face + '((((class color) (background dark)) + (:foreground "blue" :underline t)) + ;; blue4 is hardly different from black on windows. + (((class color) (background light) (type mswindows)) + (:foreground "blue3" :underline t)) + (((class color) (background light)) + (:foreground "blue4" :underline t)) + (((class grayscale) (background light)) + (:foreground "DimGray" :bold t :italic t :underline t)) + (((class grayscale) (background dark)) + (:foreground "LightGray" :bold t :italic t :underline t)) + (t (:underline t))) + "Face used for links in the About page.") + (defvar xemacs-hackers - '((ajc "Andrew Cosgriff" "ajc@bing.wattle.id.au") - (aj "Andreas Jaeger" "aj@suse.de") - (baw "Barry Warsaw" "bwarsaw@python.org") - (bw "Bob Weiner" "weiner@beopen.com") - (chr "Christian Nybø" "chr@mediascience.no") + '( + ;; to sort the stuff below, use M-x sort-regexp-fields RET + ;; ^.*$ RET (\([a-z]*\) RET + (adrian "Adrian Aichner" "adrian@xemacs.org") + (aj "Andreas Jaeger" "aj@xemacs.org") + (ajc "Andrew Cosgriff" "ajc@xemacs.org") + (alastair "Alastair Houghton" "alastair@xemacs.org") + (baw "Barry Warsaw" "bwarsaw@xemacs.org") + (ben "Ben Wing" "ben@xemacs.org") + (bw "Bob Weiner" "weiner@xemacs.org") + (cgw "Charles Waldman" "cgw@xemacs.org") + (chr "Christian Nybø" "chr@xemacs.org") + (craig "Craig Lanning" "craig@xemacs.org") (cthomp "Chuck Thompson" "cthomp@xemacs.org") - (dmoore "David Moore" "dmoore@ucsd.edu") - (dkindred "Darrell Kindred" "dkindred@cmu.edu") + (daiki "Daiki Ueno" "daiki@xemacs.org") + (dan "Dan Holmsand" "dan@xemacs.org") + (darrylo "Darryl Okahata" "darrylo@xemacs.org") + (devin "Matthieu Devin" "devin@xemacs.org") + (dkindred "Darrell Kindred" "dkindred@xemacs.org") + (dmoore "David Moore" "dmoore@xemacs.org") (dv "Didier Verna" "didier@xemacs.org") + (eb "Eric Benson" "eb@xemacs.org") + (fabrice "Fabrice Popineau" "fabrice@xemacs.org") + (golubev "I N Golubev" "golubev@xemacs.org") + (gunnar "Gunnar Evermann" "gunnar@xemacs.org") + (hbs "Harlan Sexton" "hbs@xemacs.org") + (hisashi "Hisashi Miyashita" "hisashi@xemacs.org") + (hmuller "Hans Muller" "hmuller@xemacs.org") (hniksic "Hrvoje Niksic" "hniksic@xemacs.org") - (jan "Jan Vroonhof" "jan@xemacs.org") - (jareth "Jareth Hein" "jareth@camelot.co.jp") + (hobley "David hobley" "hobley@xemacs.org") + (jan "Jan Vroonhof" "jan@xemacs.org") + (jareth "Jareth Hein" "jareth@xemacs.org") (jason "Jason R. Mastaler" "jason@xemacs.org") - (jens "Jens Lautenbacher" "jens@lemcbed.lem.uni-karlsruhe.de") - (jmiller "Jeff Miller" "jmiller@smart.net") - (juhp "Jens-Ulrik Holger Petersen" "petersen@kurims.kyoto-u.ac.jp") - (jwz "Jamie Zawinski" "jwz@jwz.org") + (jens "Jens Lautenbacher" "jens@xemacs.org") + (jmiller "Jeff Miller" "jmiller@xemacs.org") + (jonathan "Jonathan Harris" "jonathan@xemacs.org") + (juhp "Jens-Ulrik Holger Petersen" "petersen@xemacs.org") + (jwz "Jamie Zawinski" "jwz@xemacs.org") (kazz "IENAGA Kazuyuki" "ienaga@xemacs.org") - (kyle "Kyle Jones" "kyle_jones@wonderworks.com") - (larsi "Lars Magne Ingebrigtsen" "larsi@gnus.org") - (marcpa "Marc Paquette" "marcpa@CAM.ORG") - (mcook "Michael R. Cook" "mcook@cognex.com") - (mly "Richard Mlynarik" "mly@adoc.xerox.com") - (morioka "MORIOKA Tomohiko" "morioka@jaist.ac.jp") + (kirill "Kirill Katsnelson" "kirill@xemacs.org") + (kyle "Kyle Jones" "kyle@xemacs.org") + (larsi "Lars Magne Ingebrigtsen" "larsi@xemacs.org") + (marcpa "Marc Paquette" "marcpa@xemacs.org") (martin "Martin Buchholz" "martin@xemacs.org") - (ograf "Oliver Graf" "ograf@fga.de") - (pez "Peter Pezaris" "pez@dwwc.com") + (mcook "Michael R. Cook" "mcook@xemacs.org") + (mly "Richard Mlynarik" "mly@xemacs.org") + (morioka "MORIOKA Tomohiko" "morioka@xemacs.org") + (mta "Mike Alexander" "mta@xemacs.org") + (ograf "Oliver Graf" "ograf@xemacs.org") + (olivier "Olivier Galibert" "olivier@xemacs.org") + (oscar "Oscar Figueiredo" "oscar@xemacs.org") + (pelegri "Eduardo Pelegri-Llopart" "pelegri@xemacs.org") + (pez "Peter Pezaris" "pez@xemacs.org") (piper "Andy Piper" "andy@xemacs.org") - (rickc "Rick Campbell" "rickc@lehman.com") - (rossini "Anthony Rossini" "rossini@stat.sc.edu") - (vin "Vin Shelton" "acs@acm.org") - (sperber "Michael Sperber" "sperber@informatik.uni-tuebingen.de") - (slb "SL Baur" "steve@xemacs.org") - (stig "Jonathan Stigelman" "stig@hackvan.com") - (stigb "Stig Bjorlykke" "stigb@tihlde.hist.no") + (pittman "Daniel Pittman" "pittman@xemacs.org") + (rickc "Rick Campbell" "rickc@xemacs.org") + (rose "John Rose" "rose@xemacs.org") + (rossini "Anthony Rossini" "rossini@xemacs.org") + (slb "Steve Baur" "steve@xemacs.org") + (sperber "Michael Sperber" "mike@xemacs.org") + (stig "Jonathan Stigelman" "stig@xemacs.org") + (stigb "Stig Bjorlykke" "stigb@xemacs.org") (thiessel "Marcus Thiessel" "marcus@xemacs.org") - (vladimir "Vladimir Ivanovic" "vladimir@acm.com") - (wing "Ben Wing" "ben@xemacs.org") - (wmperry "William Perry" "wmperry@aventail.com")) + (tomonori "Tomonori Ikeyama" "tomonori@xemacs.org") + (tuck "Matt Tucker" "tuck@xemacs.org") + (turnbull "Stephen Turnbull" "turnbull@xemacs.org") + (vin "Vin Shelton" "acs@xemacs.org") + (vladimir "Vladimir Ivanovic" "vladimir@xemacs.org") + (wmperry "William Perry" "wmperry@xemacs.org") + (yoshiki "Yoshiki Hayashi" "yoshiki@xemacs.org") + (youngs "Steve Youngs" "youngs@xemacs.org") + ) "Alist of XEmacs hackers.") +(defvar about-current-release-maintainers + ;; this list should not necessarily be in sorted order. + '(turnbull adrian ben hniksic jason martin piper sperber youngs)) + +(defvar about-other-current-hackers + ;; to sort this list or the one below, use: + ;; M-x sort-regexp-fields RET [a-z]+ RET \(.*\) RET + '(aj alastair cgw craig daiki dan dv fabrice golubev gunnar hisashi + jan jareth jmiller jonathan kazz kirill larsi morioka mta ograf + olivier oscar pittman tomonori tuck vin wmperry yoshiki)) + +(defvar about-once-and-future-hackers + '(ajc baw bw chr cthomp darrylo devin dkindred dmoore eb hbs hmuller + hobley jens juhp jwz kyle marcpa mcook mly ograf pelegri pez + rickc rose rossini slb stig stigb thiessel vladimir)) + ;; The CAR of alist elements is a valid argument to `about-url-link'. ;; It is preferred to a simple string, because it makes maintenance ;; easier. Please add new URLs to this list. (defvar about-url-alist + ;; to sort the stuff below, use M-x sort-regexp-fields RET + ;; ^.*$ RET (\([a-z]*\) RET '((ajc . "http://www-personal.monash.edu.au/~ajc/") - (beopen . "http://www.beopen.com/") + (alastair . "http://website.lineone.net/~ajhoughton/") + (baw . "http://barry.wooz.org/") (ben . "http://www.666.com/ben/") - (ben-xemacs . "http://www.666.com/xemacs/") - (baw . "http://www.python.org/~bwarsaw/") - (cc-mode . "http://www.python.org/ftp/emacs/") + (ben-xemacs . "http://www.xemacs.org/Architecting-XEmacs/index.html") + (beopen . "http://www.beopen.com/") + (cc-mode . "http://cc-mode.sourceforge.net/") (chr . "http://www.xemacs.org/faq/") + (daiki . "http://deisui.bug.org/diary/servlet/view") (dkindred . "http://www.cs.cmu.edu/People/dkindred/me.html") (dmoore . "http://oj.egbt.org/dmoore/") (dv . "http://www.lrde.epita.fr/~didier/") + (fabrice . "http://www.ese-metz.fr/~popineau/") + (fptex . "http://www.fptex.org/") (jason . "http://www.mastaler.com/") - (juhp . "http://www.kurims.kyoto-u.ac.jp/~petersen/") + (juhp . "http://www.01.246.ne.jp/~juhp/") (jwz . "http://www.jwz.org/") (kazz . "http://www.imasy.or.jp/~kazz/") (kyle . "http://www.wonderworks.com/kyle/") - (larsi . "http://www.ifi.uio.no/~larsi/") + (larsi . "http://quimby.gnus.org/lmi/") (marcpa . "http://www.positron911.com/products/power.htm") (ograf . "http://www.fga.de/~ograf/") - (pez . "http://www.dwwc.com/") + (pez . "http://cbs.sportsline.com/") (piper . "http://www.xemacs.freeserve.co.uk/") - (vin . "http://www.upa.org/") + (rossini . "http://faculty.washington.edu/rossini/") (stigb . "http://www.tihlde.hist.no/~stigb/") - (wget . "ftp://gnjilux.cc.fer.hr/pub/unix/util/wget/") - (xemacs . "http://www.xemacs.org/")) + (vin . "http://www.upa.org/") + (vladimir . "http://www.leonora.org/~vladimir/") + (wget . "http://sunsite.dk/wget/") + (xemacs . "http://www.xemacs.org/") + (youngs . "http://eicq.sourceforge.net/")) "Some of the more important URLs.") (defvar about-left-margin 3) -;; Insert a URL link to the buffer. -(defun about-url-link (what &optional echo) - (or (stringp what) - (setq what (cdr (assq what about-url-alist)))) - (assert what) +(defun about-lookup-url (name) + (let ((result (cdr (assq name about-url-alist)))) + (assert result) + result)) + +;; Insert a URL link in the buffer. TEXT-TO-INSERT is the text that will +;; be hyperlinked; if omitted, the URL is used. HELP-ECHO is some text that +;; will be displayed when the mouse moves over the link. +(defun about-url-link (url &optional text-to-insert help-echo) + (assert url) + (when (symbolp url) + (setq url (about-lookup-url url))) + (when (and text-to-insert (symbolp text-to-insert)) + (setq text-to-insert (about-lookup-url text-to-insert))) (widget-create 'url-link :button-prefix "" :button-suffix "" - :help-echo echo - what)) + :help-echo help-echo + :tag (or text-to-insert url) + url)) + +;; Insert a mail link in the buffer. +(defun about-mailto-link (address) + (lexical-let ((address address)) + (widget-create 'link + :tag address + :button-prefix "" + :button-suffix "" + :action (lambda (widget &optional event) + (compose-mail address)) + :help-echo (format "Send mail to %s" address)))) ;; Attach a face to a string, in order to be inserted into the buffer. ;; Make sure that the extent is duplicable, but unique. Returns the @@ -162,24 +277,53 @@ (switch-to-buffer name) (delete-other-windows) (buffer-disable-undo) + ;; #### This is a temporary fix until wid-edit gets fixed right. + ;; We don't do everything that widget-button-click does -- i.e. + ;; we don't change the link color on button down -- but that's + ;; not important. + (add-local-hook + 'mouse-track-click-hook + #'(lambda (event count) + (cond + ((widget-event-point event) + (let* ((pos (widget-event-point event)) + (button (get-char-property pos 'button))) + (when button + (widget-apply-action button event) + t)))))) (set-specifier left-margin-width about-left-margin (current-buffer)) + (set (make-local-variable 'widget-button-face) 'about-link-face) nil))) ;; Set up the stuff needed by widget. Allowed types are `bury' and -;; `kill'. +;; `kill'. The reason why we offer both types is performance: when a +;; large buffer is merely buried, `about' will find it again when the +;; user requests it, instead of recreating it. Small buffers can be +;; killed because it is cheap to generate their contents. + (defun about-finish-buffer (&optional type) (or type (setq type 'bury)) (widget-insert "\n") (if (eq type 'bury) - (widget-create 'link :help-echo "Bury buffer" - :action (lambda (&rest ignore) - (bury-buffer)) - "Remove") - (widget-create 'link :help-echo "Kill buffer" - :action (lambda (&rest ignore) - (kill-buffer (current-buffer))) - "Kill")) - (widget-insert " this buffer.\n") + (widget-create 'link + :help-echo "Bury this buffer" + :action (lambda (widget event) + (if event + ;; For some reason, + ;; (bury-buffer (event-buffer event)) + ;; doesn't work. + (with-selected-window (event-window event) + (bury-buffer)) + (bury-buffer))) + :tag "Bury") + (widget-create 'link + :help-echo "Kill this buffer" + :action (lambda (widget event) + (if event + (kill-buffer (event-buffer event)) + (kill-buffer (current-buffer)))) + :tag "Kill")) + (widget-insert " this buffer and return to previous.\n") (use-local-map (make-sparse-keymap)) (set-keymap-parent (current-local-map) widget-keymap) (if (eq type 'bury) @@ -190,6 +334,7 @@ (local-set-key "q" dispose) (local-set-key "l" dispose))) (local-set-key " " 'scroll-up) + (local-set-key [backspace] 'scroll-down) (local-set-key "\177" 'scroll-down) (widget-setup) (goto-char (point-min)) @@ -216,43 +361,52 @@ (let* ((emacs-short-version (format "%d.%d" emacs-major-version emacs-minor-version)) - (emacs-about-version (format "version %s; Aug 1998" + (emacs-about-version (format "version %s; April 2001" emacs-short-version))) (widget-insert (about-center emacs-about-version)) - (widget-create 'link :help-echo "The latest NEWS of XEmacs" + (widget-create 'link :help-echo "What's new in XEmacs" :action 'about-news emacs-about-version)) (widget-insert "\n\n" - (about-with-face "XEmacs" 'italic) - " (formerly known as " - (about-with-face "Lucid Emacs" 'italic) - ") is a powerful, extensible text -editor with full GUI support, initially based on an early version of\n" - (about-with-face "GNU Emacs 19" 'italic) - " from the Free Software Foundation and since kept up to -date with recent versions of that product. XEmacs stems from a\n") + (about-with-face "XEmacs" 'bold-italic) + " is a powerful, highly customizable open source text editor and +application development system, with full GUI support. It is protected +under the GNU Public License and related to other versions of Emacs, in +particular GNU Emacs. Its emphasis is on modern graphical user +interface support and an open software development model, similar to +Linux. XEmacs has an active development community numbering in the +hundreds (and thousands of active beta testers on top of this), and runs +on all versions of MS Windows, on Linux, and on nearly every other +version of Unix in existence. ") (widget-create 'link :help-echo "An XEmacs history lesson" :action 'about-collaboration :button-prefix "" :button-suffix "" - "collaboration") + "Support for XEmacs") (widget-insert - " of Lucid, Inc. with Sun Microsystems, Inc. and the -University of Illinois with additional support having been provided by -Amdahl Corporation, INS Engineering Corporation, and a huge amount of -volunteer effort. - -XEmacs provides a great number of ") - (widget-create 'link :help-echo "See a list of the new features" - :action 'about-features + " has been supplied by +Sun Microsystems, University of Illinois, Lucid, ETL/Electrotechnical +Laboratory, Amdahl Corporation, BeOpen, and others, as well as the +unpaid time of a great number of individual developers. + +XEmacs has many ") + (widget-create 'link :help-echo "See a list of XEmacs advantages over GNU Emacs" + :action 'about-advantages + :button-prefix "" + :button-suffix "" + "advantages") + (widget-insert " over GNU Emacs. In addition, XEmacs 21.4 +provides many ") + (widget-create 'link :help-echo "See a list of new features in XEmacs 21.4" + :action 'about-news :button-prefix "" :button-suffix "" "new features") - (widget-insert ". More details on -XEmacs's functionality, including bundled packages, can be obtained -through the ") + (widget-insert " not found in previous versions of XEmacs. +More details on XEmacs's functionality, including bundled packages, can +be obtained through the ") (widget-create 'info-link :help-echo "Browse the info system" :button-prefix "" @@ -264,7 +418,7 @@ " on-line information system.\n The XEmacs web page can be browsed, using any WWW browser at\n \t\t ") - (about-url-link 'xemacs "Visit XEmacs WWW page") + (about-url-link 'xemacs nil "Visit XEmacs WWW page") (widget-insert "\n Note that W3 (XEmacs's own browser), might need customization (due to firewalls) in order to work correctly. @@ -286,25 +440,29 @@ :value who) (widget-insert (format " <%s>\n" address))))) ;; Setup persons responsible for this release. - (mapc 'setup-person '(slb hniksic kyle martin piper)) + (mapc 'setup-person about-current-release-maintainers) (widget-insert "\n\t* ") (widget-create 'link :help-echo "A legion of XEmacs hackers" :action 'about-hackers :button-prefix "" :button-suffix "" - "And many other contributors...") + "The full list of contributors...") (widget-insert "\n -Chuck Thompson was Mr. XEmacs from 19.11 through 19.14. Ben Wing was -crucial to each of these releases.\n\n") +Steve Baur was the primary maintainer for 19.15 through 21.0.\n\n") + (setup-person 'slb) + (widget-insert " +Chuck Thompson and Ben Wing were the maintainers for 19.11 through 19.14 +and heavy code contributors for 19.8 through 19.10.\n\n") (setup-person 'cthomp) - (setup-person 'wing) + (setup-person 'ben) (widget-insert " -Jamie Zawinski was Mr. Lucid Emacs from 19.0 through 19.10, the last -release actually named Lucid Emacs. A lot of work has been done by -Richard Mlynarik.\n\n") - (setup-person 'jwz) - (setup-person 'mly)) - (about-finish-buffer))) +Jamie Zawinski was the maintainer for 19.0 through 19.10 (the entire +history of Lucid Emacs).\n\n") + (setup-person 'jwz)) + (about-finish-buffer) + ;; it looks horrible with the cursor on the first line, since it's + ;; so big. + (goto-line 2))) ;; View news (defun about-news (&rest ignore) @@ -476,52 +634,56 @@ 1995.\n") (about-finish-buffer))) -(defun about-features (&rest ignore) - (unless (about-get-buffer "*About Features*") - (let ((title "New features in XEmacs")) +(defun about-advantages (&rest ignore) + (unless (about-get-buffer "*About Advantages*") + (let ((title "XEmacs Advantages over GNU Emacs")) (widget-insert "\n" (about-center title) (about-with-face title 'bold))) (widget-insert "\n -* MULE (Multi-Lingual Emacs) support. Simultaneous display of - multiple character sets is now possible. - -* Support for arbitrary pixmaps in a buffer. - -* A real toolbar. +* Much better GUI support: -* Horizontal and vertical scrollbars in all windows. - -* Support for variable-width and variable height fonts. + -- a real toolbar + -- more comprehensive and better-designed menubars + -- horizontal and vertical scrollbars in all windows + -- proper dialog boxes + -- tabs for selecting buffers + -- support for variable-width and variable height fonts + -- support for arbitrary pixmaps and widgets in a buffer + -- face support on TTY's, including color + +* An installable package system, with a huge number of packages available + that have been tested and are known to work with the latest version + of XEmacs. + +* Comprehensive support for the GTK toolkit. + +* An open development community, with contributions welcome and no need + to sign over your copyright to any organization. (Please send + contributions to xemacs-patches@xemacs.org. See http://www.xemacs.org + for more information on XEmacs mailing lists, and other info.) * Support for display on multiple simultaneous X and/or TTY devices. -* Face support on TTY's, including color. - -* Support for overlapping regions (or extents) and efficient handling - of a large number of such extents in a single buffer. - * Powerful, flexible control over the display characteristics of most of the visual aspects of XEmacs through the use of specifiers, which allow separate values to be specified for individual buffers, windows, frames, devices, device classes, and device types. -* A clean interface to the menubar, window-system events, and key - combinations. +* A clean, modern, abstracted Lisp interface to the menubar, toolbar, + window-system events, key combinations, extents (regions in a buffer + with specific properties), and all other display aspects. * Proper integration with Xt and Motif (including Motif menubars and scrollbars). Motif look-alike menubars and scrollbars are provided for those systems without real Motif support. -* Text for complex languages can be entered using the XIM mechanism. - -* Localization of menubar text for the Japanese locale. - -* Access to the ToolTalk API. - -* Support for using XEmacs frames as Xt widgets.\n\n") +* Many improvements to the multilingual support, such as the ability to + enter text for complex languages using the XIM mechanism and + localization of menubar text for the Japanese locale. +\n\n") (about-finish-buffer))) (defvar about-glyphs nil @@ -561,240 +723,306 @@ (push (cons who glyph) about-glyphs))) glyph)) -;; Insert info about a maintainer. Add the maintainer-specific info -;; here. -(defun about-maintainer-info (entry) +;; Insert personal info about a maintainer. See also +;; `about-hacker-contribution'. Note that the info in +;; `about-hacker-contribution' is automatically displayed in the +;; person's own page, so there is no need to duplicate it. +(defun about-personal-info (entry) (ecase (car entry) - (slb + ;; you can sort the stuff below with something like + ;;(sort-regexp-fields nil + ;; " *(\\([^()]\\|([^()]*)\\|(\\([^()]\\|([^()]*)\\)*)\\)*)\n" + ;; " *(\\([a-z]*\\)" + ;; (region-beginning) (region-end)) + (adrian + (widget-insert + "\ +Sorry, no personal information available about me yet.\n")) + (aj (widget-insert "\ -Peaches Baur, 1986-1999. -Rest in peace") +I'm a software developer working for the SuSE Labs of the Linux +distributor SuSE. My main task is to improve the GNU C library.") (widget-insert ".\n")) - (martin + (ajc (widget-insert "\ -Martin was the XEmacs guy at DevPro, a part of Sun Microsystems. -Martin used to do XEmacs as a `hobby' while at IBM, and was crazy -enough to try to make a living doing it at Sun. - -Martin starting using Emacs originally not to edit files, but to get -the benefit of shell mode. He actually used to run nothing but a shell -buffer, and use `xterm -e vi' to edit files. But then he saw the -light. He dreams of rewriting shell mode from scratch. Stderr should -show up in red!! - -Martin is no longer doing XEmacs for a living, and is Just Another -Volunteer.\n")) - (hniksic +When not helping maintain the XEmacs website, Andrew is a Network +Software Engineer(tm) for Monash University in Australia, maintaining +webservers and doing random other things. As well as spending spare +time being an Eager Young Space Cadet and fiddling with XEmacs/Gnus +et. al., he spends his time pursuing, among other things, a Life. +Some of this currently involves doing an A-Z (by country) of +restaurants with friends, and has, in the past, involved dyeing his +hair various colours (see ") + (about-url-link 'ajc nil "Visit Andrew's home page") + (widget-insert ".\n")) + (alastair + (widget-insert + "\ +Alastair, apart from being an all-round hacker, occasional contributor +to free software projects and general good egg(!), currently works for +Telsis, a manufacturer of telephony equipment on the south coast of +England. He'd quite like to have his own company one day, but has yet +to think of that killer product... + +See also ") + (about-url-link 'alastair nil "Visit Alastair's home page") + (widget-insert ".\n")) + (baw (widget-insert "\ -Hrvoje is a student at the Faculty of Electrical Engineering and -Computing in Zagreb, Croatia, working part-time at system administration -at SRCE. His hobby is hacking free software, particularly XEmacs and -GNU Wget, the latter being his very own creation. - -His contribution to XEmacs consists of a multitude of hours spent -adding new features and bugs, and fixing old ones. He dreams of -writing a home page.\n")) - (wing - (widget-insert - "\ -I began my Emacs life in 1992 as the co-founder of the now defunct -Pearl Software. As part of this company, I became the principal -architect of Win-Emacs, an early port of Lucid Emacs to Microsoft -Windows and Windows NT. - -Since April 1993, I've worked on XEmacs as a contractor for various -companies, changing hats faster than Ronald Reagan's hair color (oops, -did I just show my age?). My main contributions to XEmacs include -rewriting large parts of the internals and the gory Xt/Xlib -interfacing, adding the Mule support, implementing the external client -widget, improving the documentation (especially the Emacs Lisp -manual), and being a general nuisance ... er, brainstormer for many of -the new features of XEmacs. - -Alas, life has not been good to me recently. This former San Francisco -\"Mission Critter\" was exiled to \"Stroller Valley\" and, after a brief -stint developing a Java-based VRML toolkit for the now also defunct -Dimension X, I developed insidious hand and neck problems, and I was -forced to quit working. Since then, I have been learning how to interact -with the computer by using foot pedals and by dictating text to other -people. Recently I completed Architecting XEmacs, a web site about the -future of XEmacs.\n\n") - (widget-insert "Architecting XEmacs: ") - (about-url-link 'ben-xemacs "Find the miracles in store for XEmacs") - (widget-insert "\nBen's home page: ") - (about-url-link 'ben "Visit Ben's page") +As of November 2000, I am a software engineer with the Pythonlabs at +Digital Creations. Pythonlabs is the core team developing and +maintaining the Python open source, object-oriented scripting +language. Digital Creations is the publisher of Zope, an open source +content management system written in Python. + +In addition to my Python and Zope work, I am lead developer for the +GNU Mailman project, a mailing list management system written, +naturally, in Python. See the trend? + +On the side I play bass with a number of Washington DC area bands and +also write poems about cows, milk, and fathers. Here's a sample, and +drop me an email if you live in the NYC to Charlotte region; I'll let +you know when the band's playing in your area. It'd be cool to meet +you, and talking about XEmacs would make my wife very happy by helping +to fend off the legions of groupies that seem to follow me everywhere. + + Milk Me Daddy + (C) 1990 Warsaw + =============== + Oh daddy with your fingers pink + From whose udders do you drink? + Thy milk offends with putrid stink + I'll vomit now, lactose I think + + If I could dream, I'd be a cow + Not horse, or mule, or barnyard sow + The cud I'd chew would drip and how! + So milk me daddy, milk me now! + + My bovine nature knows no bounds + I'd naught awake at midnight sounds + Of teens approaching o'er the grounds + To tip with glee, then screech like clowns + + And so I stare into this glass + Of sweaty juice, I gulp so fast + Each drop I lick, down to the last + The vertigo I know will pass + + My mother smiles and pats my head + She's proud of me, so she has said + My pop just now gets out of bed + His eyes quite comatose and red + + He'll empathize my milky fate + Whilest sopping gravy from his plate + And as the hour is getting late + His belly taut with all he ate + + He isn't often quite so chatty + His arteries clogged with meat so fatty + With burps that launch soup, thick and splatty + Oh how I wish you'd milk me daddy\n\n\t") + (about-url-link 'baw nil "Visit Barry's home page") (widget-insert "\n")) - (cthomp - (widget-insert "\ -Chuck, through being in the wrong place at the right time, has gotten -stuck with being Jamie's replacement as the primary maintainer of -XEmacs. This has caused his hair to begin falling out and quadrupled -his daily coffee dosage. Though he works at and for the University of -Illinois his funding for XEmacs work actually came from Sun -Microsystems. - -He has worked on XEmacs since November 1992, which fact occasionally -gives him nightmares. As of October 1995, he no longer works -full-time on XEmacs, though he does continue as an active maintainer. -His main contributions have been the greatly enhanced redisplay -engine, scrollbar support, the toolbars, configure support and -numerous other features and fixes. - -Rumors that Chuck is aka Black Francis aka Frank Black are completely -unfounded.\n")) - (jwz + (ben (widget-insert - "\t" - (about-with-face "\"So much to do, so little time.\"" 'italic) - "\n -Jamie Zawinski was primarily to blame for Lucid Emacs from its -inception in 1991, to 1994 when Lucid Inc. finally died. He is now to -be found at Netscape Communications, hacking on Netscape Navigator (he -did the first Unix version and the mail and news reader). Thankfully -his extensive sleep deprivation experiments conducted during 1994 and -1995 are now a thing of the past, but his predilection for dark, -Gothic music remains unabated. + "\ +Since September 1992, I've worked on XEmacs as a contractor for +various companies and more recently as an unpaid volunteer. -Come visit his glorified .plan file at\n\n") - (about-url-link 'jwz "Visit Jamie's home page") +Alas, life has not been good to me recently. This former San +Francisco \"Mission Critter\" developed insidious hand and neck +problems after a brief stint working on a Java-based VRML toolkit for +the now defunct Dimension X, and I was forced to quit working. I was +exiled first to \"Stroller Valley\" and later all the way to Tucson, +Arizona, and for two years was almost completely disabled due to pain. +More recently I have fought my way back with loads and loads of +narcotic painkillers, and currently I'm an art student at the +University of Arizona.\n\n") + (widget-insert "Architecting XEmacs: ") + (about-url-link 'ben-xemacs nil "Find the miracles in store for XEmacs") + (widget-insert "\nBen's home page: ") + (about-url-link 'ben nil "Visit Ben's page") (widget-insert "\n")) - (mly - (widget-insert "Cars are evil. Ride a bike.\n")) - (vladimir - (widget-insert "\ -Former technical lead for XEmacs at Sun. He is now with a startup -marketing embedded Java databases.\n")) - (stig - (widget-insert "\ -Stig is sort of a tool fetishist. He has a hate/love relationship -with computers and he hacks on XEmacs because it's a good tool that -makes computers somewhat less of a nuisance. Besides XEmacs, Stig -especially likes his Leatherman, his Makita, and his lockpicks. Stig -wants a MIG welder and air tools. - -Stig likes to perch, hang from the ceiling, and climb on the walls. -Stig has a cool van. Stig would like to be able to telecommute from, -say, the north rim of the Grand Canyon or the midst of Baja.\n")) - (stigb + (bw (widget-insert "\ -Currently studying computer science in Trondheim, Norway. Full time -Linux user and proud of it. XEmacs hacker light. Maintainer of the -RPM package. - -See:\t") - (about-url-link 'stigb "Visit Stig's home page")) - (baw +His interests include user interfaces, information management, CASE +tools, communications and enterprise integration.\n")) + (cgw (widget-insert - "\ -Author of CC Mode, for C, C++, Objective-C and Java editing, and -Supercite for mail and news citing. Also various and sundry other -Emacs utilities, fixes, enhancements and kludgery as whimsy, boredom, -and ToT dictate (but not necessarily in that order). See also:\n\n\t") - (about-url-link 'baw "Visit Barry's home page") - (widget-insert "\n\nand:\n\n\t") - (about-url-link 'cc-mode "Visit the CC Mode distribution") - (widget-insert "\n -Daddy -\(C) 1994 Warsaw -=============== -Drive me Daddy, drive me quick -Push my pedal, shift my stick -Fill me up with golden gas -My rubber squeals, I go real fast - -Milk me Daddy, milk me now -Milk me like a big ol' cow -I've got milk inside my udder -Churn it up and make some butter\n")) - (piper + "\ +Sorry, no personal information available about me yet.\n")) + (chr (widget-insert "\ -Author of the original \"fake\" XEmacs toolbar, outl-mouse for mouse -gesture based outlining, the original CDE drag-n-drop support, the -cygwin port of XEmacs including unexec, glyphs under MS-Windows, -toolbars under MS-Windows. My home page is here:\n") - (about-url-link 'piper "Visit andy's home page") - (widget-insert "\n -Andy has recently rejoined the XEmacs team to help port XEmacs to -MS Windows operating systems.\n")) - (bw +Christian is a student at the Norwegian School of Economics and +Business Administration in Bergen, Norway. He used to work for an +internet startup called New Media Science, doing scripting and +violation of HTML DTD's. After graduation, spring 1999, he'll be +looking for a job involving lisp programming, French and Russian.\n")) + (craig + (widget-insert + "\ +Sorry, no personal information available about me yet.\n")) + (cthomp (widget-insert "\ -Author of the Hyperbole everyday information management hypertext -system and the OO-Browser multi-language code browser. He also -designed the BeOpen InfoDock integrated development environment -for software engineers. It runs atop XEmacs and is available from -his firm, BeOpen, which offers distributions, custom development, -support, and training packages for corporate users of XEmacs, GNU -Emacs and InfoDock. See ") - (about-url-link 'beopen "Visit BeOpen WWW page") - (widget-insert ". - -His interests include user interfaces, information management, -CASE tools, communications and enterprise integration.\n")) - (wmperry +Chuck is a senior system and network administrator for the Computer +Science department at the Unversity of Illinois. In one previous life +he spent every waking hour working on XEmacs. In another he dabbled +as a project manager for a streaming video startup (RIP). His current +reason for not having time to contribute to XEmacs is the Thompson +Twins.\n")) + (daiki + (about-url-link 'daiki nil "Visit Daiki's page")) + (dan + (widget-insert + "\ +Sorry, no personal information available about me yet.\n")) + (darrylo + (widget-insert + "\ +Perennial Emacs hacker since 1986 or so, when he first started on GNU +Emacs 17.something. Over the years, he's developed \"OEmacs\", the first +version of GNU Emacs 19 for MSDOS, and \"bigperl\", a 32-bit version of +Perl4 for MSDOS. In recent years, reality has intruded and he no longer +has much time for playing with cool programs. What little time he has +now goes to XEmacs hacking, where he's worked on speeding up dired under +MS Windows, and to feeding his two cats.\n")) + (devin + (widget-insert + "\ +Sorry, no personal information available about me yet.\n")) + (dkindred (widget-insert "\ -Author of Emacs-w3, the builtin web browser that comes with XEmacs, -and various additions to the C code (e.g. the database support, the -PNG support, some of the GIF/JPEG support, the strikethru face -attribute support). +Darrell is currently a doctoral student in computer science at +Carnegie Mellon University, but he's trying hard to kick that +habit. -He is currently working at Aventail, Corp. on SOCKS v5 servers.\n")) - (kyle - (widget-insert "\ -Author of VM, a mail-reading package that is included in the standard -XEmacs distribution, and contributor of many improvements and bug -fixes. Unlike RMAIL and MH-E, VM uses the standard UNIX mailbox -format for its folders; thus, you can use VM concurrently with other -UNIX mail readers such as Berkeley Mail and ELM. See\n") - (about-url-link 'kyle "Visit Kyle's Home page") +See ") + (about-url-link 'dkindred nil "Visit Darrell's WWW page") (widget-insert ".\n")) - (larsi + (dmoore (widget-insert "\ -Author of Gnus the Usenet news and Mail reading package in the -standard XEmacs distribution, and contributor of various enhancements -and portability fixes. Lars is a student at the Institute of -Informatics at the University of Oslo. He is currently plumbing away -at his majors work at the Institute of Physics, working on an SCI -project connected with CASCADE and CERN and stuff. +David is a student in the Computer Systems Laboratory at UCSD. When +he manages to have free time, he usually spends it on 200 mile bicycle +rides, learning German or showing people the best mail & news +environment he's found in 10 years. (That'd be XEmacs, Gnus and bbdb, +of course.) He can be found at `druidmuck.egbt.org 4201' at various +hours of the day. -See ") - (about-url-link 'larsi "Visit the Larsissistic pages") +He has a page at ") + (about-url-link 'dmoore nil "Visit David's home page") (widget-insert ".\n")) - (marcpa + (dv (widget-insert "\ -I work for Positron Industries Inc., Public Safety Division. -I'm part of the team producing POWER 911, a 911 emergency response -system written in Modula3:\n") - (about-url-link 'marcpa "Visit POWER 911") +I graduated at ENST (an engineering school in Paris) and have a Ph.D. +in computer science. I'm currently a teacher at EPITA (another +engineering school, still in Paris) and a researcher at LRDE (EPITA's +research and development laboratory). Our research topics include +generic programming and distributed virtual reality. + +Apart from XEmacs, I'm also involved in other free software projects, +including Gnus, BBDB, and the GNU \"autotools\". I also wrote some +LaTeX packages (ugh :-). + +All of this, actually, is only 60% true. Two days per week, I'm also a +semi-professional Jazz guitar player (and singer), which means that it +is not the way I earn my crust, but things may very well reverse in +the future ...\n\n") + (widget-insert "Visit Didier's home page: ") + (about-url-link 'dv nil "Visit Didier's home page") + (widget-insert "\n")) + (eb + (widget-insert + "\ +Sorry, no personal information available about me yet.\n")) + (fabrice + (widget-insert + "\ +I'm a computer science researcher and teacher in a French electrical +engineering institution called Supelec. My fields of interest are +symbolic artificial intelligence, theoretical computer science, functional +languages ... and TeX. + +Lately, my hacking time has been devoted to porting the Web2C/teTeX +distribution of TeX for Unix to Win32, and I'm still maintaining it. +It is included in the TeX Live cdrom edited by Sebastian Rahtz.\n") + (widget-insert "Visit fpTeX home page: ") + (about-url-link 'fptex nil "Visit fpTeX home page") + (widget-insert "\nFabrice's home page: ") + (about-url-link 'fabrice nil "Visit Fabrice's page") + (widget-insert "\n")) + (golubev + (widget-insert + "\ +Sorry, no personal information available about me yet.\n")) + (gunnar + (widget-insert + "\ +Sorry, no personal information available about me yet.\n")) + (hbs + (widget-insert + "\ +Sorry, no personal information available about me yet.\n")) + (hisashi + (widget-insert + "\ +Sorry, no personal information available about me yet.\n")) + (hmuller + (widget-insert + "\ +Sorry, no personal information available about me yet.\n")) + (hniksic (widget-insert "\ -\n\nPreviously, I worked at Softimage Inc., now a Microsoft company -\(eeekkk!), as a UNIX system administrator. This is where I've been -converted to NT. +Hrvoje thinks he works in the server-side web business. In reality, +he cranks out huge quantities of HTML, Tcl, and Java for the German +branch of ") + (about-url-link "http://www.arsdigita.com/" + "ArsDigita, Inc." "www.arsdigita.com") + ;; Avoid literal I18N characters in strings. *Displaying* a + ;; Latin 1 character should always be safe, though, with or + ;; without Mule. + (let ((muenchen (format "M%cnchen" (make-char 'latin-iso8859-1 252)))) + (widget-insert (format "\ + He joined the ranks of Gastarbeiters only +recently; he is trying to learn German and get attuned to %s +and Bav^H^H^HGermany.\n" muenchen))) -In a previous life, I was a programmer/sysadmin at CRIM (Centre de -Recherche Informatique de Montreal) for the speech recognition group.\n")) - (jens (widget-insert "\ -Jens did the artwork for graphics added to XEmacs 20.2 and 19.15. -I'm currently working at the University of Karlsruhe, Germany on -getting my diploma thesis on Supersymmetry (uuh, that's physics) done. -After that (and all the remaining exams) I'm looking forward to make a -living out of my hobbies -- computers (and graphics). But because I -have no deadline for the exams and XEmacs betas are released at a high -rate this may take some time...\n")) - (jan - (widget-insert "\ +Before ArsDigita, he worked as a programmer at ") + (about-url-link "http://www.iskon.hr/" "Iskon," "www.iskon.hr") + (widget-insert " a fast-growing +Croatian ISP. Even before that, he worked part-time for academic +institutions like ") + (about-url-link "http://www.srce.hr/" "SRCE" "www.srce.hr") + (widget-insert " and ") + (about-url-link "http://www.carnet.hr/" "CARNet," "www.carnet.hr") + (widget-insert " and tried to attend university. + +He takes perverse pleasure in building and maintaining free software +in his free time. Apart from XEmacs, his major contribution is ") + (about-url-link 'wget "Wget," "Wget home page") + (widget-insert " +his very own creation, now jointly maintained by a happy crew. + +He dreams of having a home page.\n")) + (hobley + (widget-insert "\ +I used to do real work, but now I am a Project Manager for one of the +Telco's in Australia. In my spare time I like to get back to basics and +muck around with things. As a result I started the NT port. Hopefully I +will get to finish it sometime sooner rather than later. I do vaguely +remember University where it seems like I had more spare time that I can +believe now. Oh well, such is life.\n")) + (jan + (widget-insert "\ Jan Vroonhof has been using XEmacs since he needed to write .tex files for his work as a physics and maths student at the Univerisity of Leiden. His XEmacs hacking started when XEmacs kept freezing up under a his window manager. He submitted a fix and has been hooked every since. -Apart from hunting down more redisplay bugs he has worked on such -things as improvements to the package system, implementing lazy-shot, -a short stint at tracking patches and currently acts as a guardian -of the XEmacs custom subsystem and gnuserv. - -XEmacs has followed him first to Switserland where he did a maths +XEmacs has followed him first to Switzerland where he did a maths doctorate at the ETH in Zurich, working on a conjecture by Migdal on the behavior of vertex corrections in Electron-Phonon theory. Finally sharing a house with his loved one, he now lives in Oxford (UK) @@ -809,148 +1037,161 @@ for the perpetual state of chaos known as Tokyo in a failed attempt to become a cel-animator, and a more successful one to become a computer-game programmer. As he happens to be bilingual (guess which -two?) he's been doing quite a bit of MULE hacking. He's also getting +two?) he's been doing quite a bit of MULE hacking. He's also getting his hands dirty in the graphics areas as well.\n")) - (morioka + (jason (widget-insert "\ -I am the author of tm-view (general MIME Viewer for GNU Emacs) and -major author and maintainer of tm (Tools for MIME; general MIME -package for GNU Emacs). In addition, I am working to unify MULE API -for Emacs and XEmacs. In XEmacs, I have ported many mule features. +Jason resides in Northern New Mexico where he works as a Systems +Scientist(tm) in the Los Alamos National Laboratory's Advanced +Computing Group. -I am a doctoral student at School of Information Science of JAIST -\(Japan Advanced Institute of Science and Technology, Hokuriku). I'm -interested in Natural Language, Affordance and writing systems.\n")) - (dmoore +See: ") + (about-url-link 'jason nil "Visit Jason's homepage") + (widget-insert ".\n")) + (jens (widget-insert "\ -David has contributed greatly to the quest to speed up XEmacs. He is -a student in the Computer Systems Laboratory at UCSD. When he manages -to have free time, he usually spends it on 200 mile bicycle rides, -learning german or showing people the best mail & news environment -he's found in 10 years. (That'd be XEmacs, Gnus and bbdb, of course.) -He can be found at `druidmuck.egbt.org 4201' at various hours of the -day. - -He has a page at ") - (about-url-link 'dmoore "Visit David's home page") +I'm currently working for 1&1 Internet AG, a large Domain and Webspace +Provider in Germany and Europe. I do mostly Java/XML/OO/Component +stuff today. I'm interested EJB, Corba and other middleware or +distributed Systems. Besides work, I occasionally hack on The Gimp +and other gtk/gnome related projects. Maybe the advent of XEmacs/Gtk +will get me back to spend some time again hacking on XEmacs in the +near future.\n")) + (jmiller + (widget-insert "\ +Jeff grew up in Indiana and is a country boy at heart. He currently +lives in, of all places, Millersville Maryland. He spends a lot of +his free time tinkering with Linux and hacking on XEmacs and loves it +when he finds new cool features in either. When he's not doing that, +he enjoys downhill skiing, puzzles, and sci-fi. Jeff is also really +interested in classical Roman history and enjoys making trips to +Italy, where he was born, and seeing the sights") (widget-insert ".\n")) - (thiessel + (jonathan (widget-insert "\ - All of the buildings, - all of the cars - were once just a dream - in somebody's head.\n - P. Gabriel\n\n +I work for Symbian Ltd in London, England, looking after low-level +kernel, peripheral and toolchain stuff for the EPOC OS. + +I've been using XEmacs since 1994, but didn't start hacking on it +until late 1997 when I started working at Symbian, a Windows-only +company, and felt lost without my favourite editing environment.\n")) + (juhp + (widget-insert "\ +Jens was born in Copenhagen, grew up in Britain and is now living in +Japan. He started using XEmacs 20 (instead of Emacs) as his +work-environment in June 1997 while still an EU postdoc at RIMS, Kyoto +University, and quickly got involved in XEmacs development. Recently +he is getting into Haskell, a very nice pure functional programming +language. + ") + (about-url-link 'juhp nil "Visit Jens' homepage") (widget-insert "\n")) - (sperber - (widget-insert "\ -Mike ported EFS to XEmacs 20 and integrated EFS into XEmacs. He's -also responsible for the ports of facemenu.el and enriched.el. When -Mike isn't busy putting together patches for free software he has just -installed or changing his hairstyle, he does research in modern -programming languages and their implementation, and hopes that one day -XEmacs will speak Scheme.\n")) - (vin + (jwz + (widget-insert + "\t" + (about-with-face "\"So much to do, so little time.\"" 'italic) + "\n +Jamie Zawinski was primarily to blame for Lucid Emacs from its +inception in 1991, to 1994 when Lucid Inc. finally died. After that, +he was one of the initial employees of Netscape Communications, writing +the first Unix version of Netscape Navigator, and designing and +implementing the first version of the Netscape Mail and News readers. +He then helped create and run ") + (about-url-link "http://www.mozilla.org/" + "mozilla.org" + "Visit The Mozilla Organization") + (widget-insert " for its first two years, +until America Online bought Netscape Communications, at which point he +gave up in disgust and dropped out of the computer industry entirely. + +He now runs a ") + (about-url-link "http://www.dnalounge.com/" + "nightclub" + "Visit The DNA Lounge") + (widget-insert " in San Francisco, and occasionally writes +screen savers.\n\n") + (widget-insert "Visit jwz's ") + (about-url-link 'jwz "home page" "Visit jwz's home page") + (widget-insert ".\n")) + (kazz (widget-insert "\ -Vin maintains the XEmacs patch pages in order to bring a more -stable XEmacs. (Actually, he does it 'cause it's fun and he's been -using emacs for a long, long time.) Vin also contributed the detached -minibuffer code as well as a few minor enhancements to the menubar -options. +Kazz is the XEmacs lead on BSD (especially FreeBSD). +His main workspace is, probably, the latest stable version of +FreeBSD and it makes him comfortable and not. +His *mission* is to make XEmacs runs on FreeBSD without +any problem. -I own and operate my own consulting firm, EtherSoft. Shhh, don't -tell anyone, but it's named after an Ultimate team I used to play -with in Austin, Texas - the Ether Bunnies. I'm getting too old -to play competitive Ultimate any more, so now I've gotten roped -into serving on the board of directors of the Ultimate Players -Association. See ") - (about-url-link 'vin "Visit the UPA homepage") +In real life, he is working on a PDM product based on CORBA, +and doing consultation, design and implemention. +He loves to play soccer, yes football! +See also:") + (about-url-link 'kazz nil "Visit Kazz's home page") (widget-insert ".\n")) - (ajc - (widget-insert "\ -When not helping maintain the XEmacs website, Andrew is a Network -Software Engineer(tm) for Monash University in Australia, maintaining -webservers and doing random other things. As well as spending spare -time being an Eager Young Space Cadet and fiddling with XEmacs/Gnus -et. al., he spends his time pursuing, among other things, a Life. -Some of this currently involves doing an A-Z (by country) of -restaurants with friends, and has, in the past, involved dyeing his -hair various colours (see ") - (about-url-link 'ajc "Visit Andrew's home page") - (widget-insert ".\n")) - (rickc - (widget-insert "\ -The hacker formerly known as Rick Busdiecker develops and maintains -libraries for financial applications at Lehman Brothers during -daylight hours. In the evenings he maintains three children, and -when he ought to be sleeping he co-maintains ILISP, builds XEmacs -betas, and tinkers with various personal hacking projects..\n")) - (kazz + (kirill + (widget-insert + "\ +Sorry, no personal information available about me yet.\n")) + (kyle (widget-insert "\ -Kazz is the XEmacs lead on BSD (especially FreeBSD). -His main workspace is, probably, the latest stable version of -FreeBSD and it makes him comfortable and not. -His *mission* is to make XEmacs runs on FreeBSD without -any problem. - -In real life, he is working on a PDM product based on CORBA, -and doing consultation, design and implemention. -He loves to play soccer, yes football! -See also:") - (about-url-link 'kazz "Visit Kazz's home page") +See\n") + (about-url-link 'kyle nil "Visit Kyle's Home page") (widget-insert ".\n")) - (dkindred + (larsi (widget-insert "\ -Darrell tends to come out of the woodwork a couple of weeks -before a new release with a flurry of fixes for bugs that -annoy him. He hopes he's spared you from a core dump or two. - -Darrell is currently a doctoral student in computer science at -Carnegie Mellon University, but he's trying hard to kick that -habit. +Lars's day job is as the head of the IT department of a Norwegian +Internet stock broker. He claims no responsibility for the Dot +Com Bomb, but he snickers a lot. See ") - (about-url-link 'dkindred "Visit Darrell's WWW page") + (about-url-link 'larsi nil "Visit the Larsissistic pages") (widget-insert ".\n")) - (pez + (marcpa (widget-insert "\ -Author of SQL Mode, edit-toolbar, mailtool-mode, and various other -small packages with varying degrees of usefulness. Peter has -recently left Wall Street to start Daedalus World Wide Corporation, -a software development firm. See ") - (about-url-link 'pez "Daedalus on the web") - (widget-insert ".\n")) - (dv +I work for Positron Industries Inc., Public Safety Division. +I'm part of the team producing POWER 911, a 911 emergency response +system written in Modula3:\n") + (about-url-link 'marcpa nil "Visit POWER 911") (widget-insert "\ -I graduated at ENST (an engineering school in Paris) and have a Ph.D. -in computer science. I'm currently a teacher at EPITA (another -engineering school, still in Paris) and a researcher at LRDE (EPITA's -research and development laboratory). Our research topics include -generic programming and distributed virtual reality. +\n\nPreviously, I worked at Softimage Inc., now a Microsoft company +\(eeekkk!), as a UNIX system administrator. This is where I've been +converted to NT. -Apart from XEmacs, I'm also involved in other free software projects, -including Gnus, BBDB, and the GNU \"autotools\". I also wrote some -LaTeX packages (ugh :-). +In a previous life, I was a programmer/sysadmin at CRIM (Centre de +Recherche Informatique de Montreal) for the speech recognition group.\n")) + (martin + (widget-insert "\ +Martin was the XEmacs guy at DevPro, a part of Sun Microsystems. +Martin used to do XEmacs as a `hobby' while at IBM, and was crazy +enough to try to make a living doing it at Sun. -All of this, actually, is only 60% true. Two days per week, I'm also a -semi-professional Jazz guitar player (and singer), which means that it -is not the way I earn my crust, but things may very well reverse in -the future ...\n\n") - (widget-insert "Visit Didier's home page: ") - (about-url-link 'dv "Visit Didier's home page") - (widget-insert "\n")) - (rossini +Martin starting using Emacs originally not to edit files, but to get +the benefit of shell mode. He actually used to run nothing but a shell +buffer, and use `xterm -e vi' to edit files. But then he saw the +light. He dreams of rewriting shell mode from scratch. Stderr should +show up in red!! + +Martin is no longer doing XEmacs for a living, and is Just Another +Volunteer.\n")) + (mcook + (widget-insert + "\ +Sorry, no personal information available about me yet.\n")) + (mly + (widget-insert "Cars are evil. Ride a bike.\n")) + (morioka (widget-insert "\ -Author of the first XEmacs FAQ, as well as minor priest in the -movement to get every statistician in the world to use XEmacs for -statistical programming and data analysis. Current development lead -for ESS (Emacs Speaks Statistics), a mode and inferior mode for -statistical programming and data analysis for SAS, S, S-PLUS, R, -XLispStat; configurable for nearly any other statistical -language/package one might want. In spare time, acts as a -Ph.D. (bio)statistician for money and amusement. Current position: -Assistant Professor of Statistics at the University of South Carolina.\n")) +I am a doctoral student at School of Information Science of JAIST +\(Japan Advanced Institute of Science and Technology, Hokuriku). I'm +interested in Natural Language, Affordance and writing systems.\n")) + (mta + (widget-insert + "\ +I am a software developer who worked for the University of Michigan +for many years where I was one of the principal architects of the +Michigan Terminal System. For the last several years I've been +working for Arbortext, a publisher of XML publishing and content +management software.\n")) (ograf (widget-insert "\ I'm a student of computer sciences at the University of Koblenz. My @@ -968,64 +1209,562 @@ cd players, python, etc... To see some of these have a look at ") - (about-url-link 'ograf "one of my homepages") + (about-url-link 'ograf nil "one of my homepages") (widget-insert ".\n")) - (juhp + (olivier + (widget-insert + "\ +Sorry, no personal information available about me yet.\n")) + (oscar + (widget-insert "\ +Oscar heads the Computer Science department at CPE Lyon, a french +engineering school in France. Besides his administrative tasks he +teaches networking basics, Internet technologies (you know, all these +xxML and hairy script languages !) and the Scheme language.\n")) + (pelegri + (widget-insert + "\ +I did my my PhD at UCB and a postdoc at CSL/PARC. I joined Sun in 1990, +spent some time in DevPro (that is when I made my contribution to +XEmacs) and joined JavaSoft in fall '95, where I've been the lead for +several JSP-related specifications and JAX-RPC. I'm currently the Web +Layer architect for J2EE. + +I was born in Barcelona and I grew up mostly in Caracas; I have two kids +and I speak only catalan to them; I can juggle some (career, family, and +4 balls or 3 pins); and my english can be idiosyncratic!.\n")) + (pez + (widget-insert "\ +Peter currently serves as Senior Vice President, Product Development +for CBS SportsLine. See ") + (about-url-link 'pez nil "CBS SportsLine") + (widget-insert ".\n")) + (piper + (widget-insert "\ +My home page is here:\n") + (about-url-link 'piper nil "Visit andy's home page") + (widget-insert "\n +Andy has recently rejoined the XEmacs team to help port XEmacs to +MS Windows operating systems.\n")) + (pittman + (widget-insert + "\ +Sorry, no personal information available about me yet.\n")) + (rickc (widget-insert "\ -I started using XEmacs-20 as my work-environment in June 1997. I -became a beta developer shortly after that (\"it seems like a good -idea at the time...\" :-), so far contributing mainly bug fixes, -\"find-func.el\" and improvements to \"help.el\". - -My current dreams for XEmacs: move to using guile as the Lisp engine -and gtk as the default X toolkit. - -I have been a postdoctoral researcher at the Research Institute for -Mathematical Sciences, Kyoto University, since August 1994, doing -research in mathematical physics (representation theory of quantum -groups). Though now I seem to be heading for other things. +The hacker formerly known as Rick Busdiecker is a developer and +technical manager at Deutsche Bank in New York during daylight hours. +In the evenings he maintains three children, and when he ought to be +sleeping he builds XEmacs betas, and tinkers with various personal +hacking projects.\n")) + (rose + (widget-insert + "\ +Sorry, no personal information available about me yet.\n")) + (rossini + (widget-insert "\ +Current development lead for ESS (Emacs Speaks Statistics), a mode and +inferior mode for statistical programming and data analysis for SAS, +S, S-PLUS, R, XLispStat; configurable for nearly any other statistical +language/package one might want. In spare time, chases his son around +and acts as a Ph.D. (bio)statistician for money and amusement, +primarily focusing on statistical computing, visualization, and the +design and analysis of HIV vaccine trials. Current position: Research +Assistant Professor of Biostatistics at the University of Washington +and the Fred Hutchinson Cancer Research Center. -My homepage is ") - (about-url-link 'juhp "Visit Jens' homepage") +See ") + (about-url-link 'rossini nil "Visit Anothony's home page") (widget-insert ".\n")) - (jason + (slb (widget-insert "\ -Beta tester, manager of the various XEmacs mailing lists and binary -kit manager. Also, originator and maintainer of the gnus.org domain. +Peaches Baur, 1986-1999. +Rest in peace") + (widget-insert ".\n")) + (sperber + (widget-insert "\ +When Mike isn't busy putting together patches for free software he has +just installed or changing his hairstyle, he does research in modern +programming languages and their implementation, and hopes that one day +XEmacs will speak Scheme.\n")) + (stig + (widget-insert "\ +Peripatetic uninominal Emacs hacker. Stig sometimes operates out of a +big white van set up for nomadic living and hacking. Stig is sort of +a tool fetishist. He has a hate/love relationship with computers and +he hacks on XEmacs because it's a good tool that makes computers +somewhat less of a nuisance. Besides XEmacs, Stig especially likes +his Leatherman, his Makita, and his lockpicks. Stig wants a MIG +welder and air tools. -Jason resides in Northern New Mexico where he works as a Systems -Scientist(tm) in the Los Alamos National Laboratory's Advanced -Computing Group. +Stig likes to perch, hang from the ceiling, and climb on the walls. +Stig has a cool van. Stig would like to be able to telecommute from, +say, the north rim of the Grand Canyon or the midst of Baja.\n")) + (stigb + (widget-insert "\ +Currently studying computer science in Trondheim, Norway. Full time +Linux user and proud of it. XEmacs hacker light. -See: ") - (about-url-link 'jason "Visit Jason's homepage") - (widget-insert ".\n")) - (jmiller +See:\t") + (about-url-link 'stigb nil "Visit Stig's home page")) + (thiessel + (widget-insert "\ +Worked at University of Kaiserslautern where he took part in the +development and design of a CAD framework for analog integrated +circuits with special emphasis on distributed software concepts. He +has now joined HP as technical consultant. + + All of the buildings, + all of the cars + were once just a dream + in somebody's head.\n + P. Gabriel\n")) + (tomonori + (widget-insert + "\ +Sorry, no personal information available about me yet.\n")) + (tuck + (widget-insert + "\ +Sorry, no personal information available about me yet.\n")) + (turnbull + (widget-insert "\ +Stephen lives with his Japanese wife and children in Tsukuba, Japan, +where he is a professor of economics at the University of Tsukuba.\n")) + (vin (widget-insert "\ -Jeff grew up in Indiana and is a country boy at heart. He currently lives -in, of all places, Millersville Maryland. He spends a lot of his free -time tinkering with Linux and hacking on XEmacs and loves it when he finds -new cool features in either. When he's not doing that, he enjoys downhill -skiing, puzzles, and sci-fi. Jeff is also really interested in classical -Roman history and enjoys making trips to Italy, where he was born, and -seeing the sights") +I own and operate my own consulting firm, EtherSoft. Shhh, don't +tell anyone, but it's named after an Ultimate team I used to play +with in Austin, Texas - the Ether Bunnies. I'm getting too old +to play competitive Ultimate any more, so now I've gotten roped +into serving on the board of directors of the Ultimate Players +Association. See ") + (about-url-link 'vin nil "Visit the UPA homepage") (widget-insert ".\n")) - (chr + (vladimir + (widget-insert "\ +Former technical lead for XEmacs at Sun. He is now writing a book on +distributed Java and is working at Xerox PARC documenting AspectJ, a +light-weight extension to Java that supports crosscutting concerns. +See ") + (about-url-link 'vladimir nil "Visit Vladimir's home page") + (widget-insert ".\n")) + (wmperry + (widget-insert "\ +Happily living in Indiana telecommuting for a company based in Seattle +\(who I now prefer not to name), wishing I was in Ireland instead.\n")) + (yoshiki + (widget-insert + "\ +Sorry, no personal information available about me yet.\n")) + (youngs (widget-insert "\ -Maintainer of the XEmacs FAQ and proud author of `zap-up-to-char'. +I live in Brisbane, Australia with my wife, Michelle and our daughter, +Kaitlyn. I've only been hacking XEmacs for a short time (approx 18 +mths), but I've been fooling around with computers since the early +80's. + +In the past, I've been a bank officer, car salesman, insurance agent, +managed a computer firm and owned and operated my own business. I now +divide my time between my family, planning my next business idea (a +computer consulting firm that uses zero Microsoft products), looking +after the XEmacs Packages and hacking my own XEmacs package, Eicq. -Christian is a student at the Norwegian School of Economics and -Business Administration in Bergen, Norway. He used to work for an -internet startup called New Media Science, doing scripting and -violation of HTML DTD's. After graduation, spring 1999, he'll be -looking for a job involving lisp programming, French and Russian.") +\tSee: ") + (about-url-link 'youngs nil "Visit the Eicq homepage") (widget-insert ".\n")) + )) + +;; Insert info about a maintainer's contribution to XEmacs. See also +;; `about-personal-info'. +(defun about-hacker-contribution (entry) + (ecase (car entry) + ;; to sort the entries below, use M-x sort-regexp-fields RET + ;; then this regexp: ([^(]*([^"]*"[^"]*"[^)]*)) + ;; then this regexp: (\([a-z]*\) + (adrian + (widget-insert + "\ +Adrian has done invaluable work rewriting and maintaining the XEmacs +web pages at www.xemacs.org. During his tenureship, he has +established a consistent look and feel, placed the web pages under +CVS, set up maintenance procedures, written scripts to handle +automatic updating, validation and mirroring, and done innumerable +other tasks. He has also helped with many other administrative tasks, +such as the thankless work of dealing with the providers of resources +to XEmacs at SourceForge and tux.org.\n")) (aj (widget-insert "\ -I'm a software developer working for the SuSE Labs of the Linux -distributor SuSE. My main task is to improve the GNU C library.") +Former `Package Patch Tender', beta tester and GNU libc developer.\n")) + (ajc + (widget-insert "\ +Former XEmacs web site maintainer.\n")) + (alastair + (widget-insert + "\ +Rewrote the selection code, adding many new features such as better +support for arbitrary selection types (especially under MS Windows, +where the full power of the clipboard system is available under +XEmacs).\n")) + (baw + (widget-insert "\ +I'm the author of ") + (about-url-link 'cc-mode "CC Mode" "Visit the CC Mode page") + (widget-insert ", for C, C++, Objective-C and Java editing, +Supercite for mail and news citing, and sundry other XEmacs packages +such as ELP (the Emacs Lisp Profiler), Reporter, xrdb-mode, and +winring. Even though I still live almost 100% in XEmacs these days, +my Lisp hacking has fallen off in recent years as I became more +involved in Python, and in fact, I currently maintain the Python +editing mode. See also: ") + (about-url-link "http://www.python.org/emacs" nil + "Visit the python.org Emacs Goodies page") + (widget-insert ".\n")) + (ben + (widget-insert + "\ +I am the largest code contributor to XEmacs, and the architect of many +of the features that distinguish XEmacs from GNU Emacs and other Emacs +versions. My main contributions to XEmacs include rewriting large +parts of the internals and the gory Xt/Xlib interfacing, adding the +Mule \(international) support, improving the MS Windows support, +adding many GUI features to XEmacs, architecting the +device-abstraction and specifier code, writing most of the XEmacs +Internals Manual and the XEmacs-specific parts of the XEmacs Lisp +Reference Manual, synching a great deal of code with GNU Emacs, and +being a general nuisance ... er, brainstormer for many of the new +features of XEmacs.\n")) + (bw + (widget-insert "\ +Author of the Hyperbole everyday information management hypertext +system and the OO-Browser multi-language code browser. He also +designed the BeOpen InfoDock integrated development environment +for software engineers. It runs atop XEmacs and is available from +his firm, BeOpen, which offers distributions, custom development, +support, and training packages for corporate users of XEmacs, GNU +Emacs and InfoDock. See ") + (about-url-link 'beopen nil "Visit BeOpen WWW page") (widget-insert ".\n")) -)) + (cgw + (widget-insert + "\ +Author of an earlier version of the MS Windows setup program for XEmacs.\n")) + (chr + (widget-insert "\ +Maintainer of the XEmacs FAQ and proud author of `zap-up-to-char'.\n")) + (craig + (widget-insert + "\ +Sorry, no information about my XEmacs contributions yet.\n")) + (cthomp + (widget-insert + "\ +Maintainer of XEmacs from mid-1994 through 1996. Author of the +redisplay engine, the original toolbar and scrollbars and some of the +device-abstraction, TTY and glyph code. Creator of the xemacs.org +domain and comp.emacs.xemacs.\n")) + (daiki + (widget-insert + "\ +Sorry, no information about my XEmacs contributions yet.\n")) + (dan + (widget-insert + "\ +Sorry, no information about my XEmacs contributions yet.\n")) + (darrylo + (widget-insert + "\ +Sorry, no information about my XEmacs contributions yet.\n")) + (devin + (widget-insert "\ +Part of the original (pre-19.0) Lucid Emacs development team. +Matthieu wrote the initial Energize interface, designed the +toolkit-independent Lucid Widget library, and fixed enough redisplay +bugs to last a lifetime. The features in Lucid Emacs were largely +inspired by Matthieu's initial prototype of an Energize interface +using Epoch.\n")) + (dkindred + (widget-insert "\ +Darrell tends to come out of the woodwork a couple of weeks +before a new release with a flurry of fixes for bugs that +annoy him. He hopes he's spared you from a core dump or two.\n")) + (dmoore + (widget-insert "\ +David has contributed greatly to the quest to speed up XEmacs.\n")) + (dv + (widget-insert "\ +I joined the development of XEmacs in 1996, and have been one of the +core maintainers since 1998. Although I'm mostly interested in the +GUI, ergonomics, redisplay and autoconf issues, it's probably simpler +to describe what I'm *not* involved in: I've never touched the Lisp +implementation, and I probably never will... + +I'm the author of the multicast support, I wrote and maintain some +external Emacs Lisp packages (including mchat) and I'm also +responsible for some of the core Lisp code (including the rectangle +library which I rewrote for both XEmacs and GNU Emacs).\n")) + (eb + (widget-insert "\ +Also part of the original Lucid Emacs development team. Eric played a +big part in the design of many aspects of the system, including the +new command loop and keymaps, fixed numerous bugs, and has been a +reliable beta tester ever since.\n")) + (fabrice + (widget-insert + "\ +I have started to provide binary kits for the 21.2 series when there +was no installer available. I contributed a few lines of core code +occasionally to make things smoother with the native win32 port which +I'm using all the day. + +I also contributed elisp code long ago to make Gnus run under XEmacs.\n")) + (golubev + (widget-insert + "\ +Sorry, no information about my XEmacs contributions yet.\n")) + (gunnar + (widget-insert + "\ +Sorry, no information about my XEmacs contributions yet.\n")) + (hbs + (widget-insert "\ +Part of the original (pre-19.0) Lucid Emacs development team. Harlan +designed and implemented many of the low level data structures which +are original to the Lucid version of Emacs, including extents and hash +tables.\n")) + (hisashi + (widget-insert + "\ +Sorry, no information about my XEmacs contributions yet.\n")) + (hmuller + (widget-insert "\ +Author of the code used to connect XEmacs with ToolTalk, and of an +early client of the external Emacs widget.\n")) + (hniksic + (widget-insert + "\ +Hrvoje's contribution to XEmacs consists of many hours spent working +on code and taking part in public discussions. + +He wrote `savehist' and `htmlize' packages, the latter having a pretty +large gathering of users. He worked to improve many parts of XEmacs +Lisp code, including isearch (FSF synch and new features), cl, edmacro +\(FSF synch and an almost complete rewrite), profile, gnuserv, +hyper-apropos, etags, about, and custom. + +He has worked on improving and optimizing the C core. He ported many +FSF core features such as indirect buffers, tty-erase-char, +save-current-buffer and friends, debug-ignored-errors, etc. He also +wrote line numbering optimizations for large buffers, initial support +for TTY frames, abbrev improvements, Lisp printer and reader +improvements, support for extent modification functions, and lots of +minor bugfixes, optimizations, and Muleifications. + +He contributed to Lispref and Internals documentation, including a +section on writing Mule-compliant C code. Maintains NEWS. He +participated on xemacs-beta since 1996 and on the Patch Review Board +since its inception in 1998.\n")) + (hobley + (widget-insert + "\ +Creator of the earliest version of the MS Windows port of XEmacs.\n")) + (jan + (widget-insert "\ +Apart from hunting down redisplay bugs Jan has worked on such +things as improvements to the package system, implementing lazy-shot, +a short stint at tracking patches and currently acts as a guardian +of the XEmacs custom subsystem and gnuserv.\n")) + (jareth + (widget-insert "\ +Owner of cvs.xemacs.org, the machine that holds the XEmacs CVS +repository, and author of some of the graphics code in XEmacs.\n")) + (jason + (widget-insert "\ +Beta tester, manager of the various XEmacs mailing lists and binary +kit manager. Also, originator and maintainer of the gnus.org domain.\n")) + (jens + (widget-insert "\ +Jens did the artwork for graphics added to XEmacs 20.2 and 19.15. He's +also the author of \"XEmacs Mine\", a game similar to Minesweeper, but +running in XEmacs\n")) + (jmiller + (widget-insert "\ +Beta tester and last hacker of calendar.\n")) + (jonathan + (widget-insert "\ +I started the native port of XEmacs to MS Windows. Author of the +Windows frame, redisplay, face and event loop support.\n")) + (juhp + (widget-insert "\ +Author of \"find-func.el\", improvements to \"help.el\" and a good +number of bug fixes during June 1997 to December 1998.\n")) + (jwz + (widget-insert + "\ +Creator and maintainer of Lucid Emacs (the predecessor of XEmacs), +from 1991 through mid-1994.\n")) + (kazz + (widget-insert "\ +IENAGA Kazuyuki is the XEmacs technical lead on BSD, particularly +FreeBSD.\n")) + (kirill + (widget-insert + "\ +Abstracted the subprocess code and wrote much of the MS Windows +support in XEmacs, including the subprocess interface, dialog boxes, +printing support, and much of the event loop.\n")) + (kyle + (widget-insert "\ +Author of VM, a mail-reading package that is included in the standard +XEmacs distribution, and contributor of many improvements and bug +fixes. Unlike RMAIL and MH-E, VM uses the standard UNIX mailbox +format for its folders; thus, you can use VM concurrently with other +UNIX mail readers such as Berkeley Mail and ELM. + +Also rewrote the object allocation system in XEmacs to support full +32-bit pointers and 31-bit integers.\n")) + (larsi + (widget-insert "\ +Author of Gnus the Usenet news and Mail reading package in the +standard XEmacs distribution, and contributor of various enhancements +and portability fixes.\n")) + (marcpa + (widget-insert + "\ +Sorry, no information about my XEmacs contributions yet.\n")) + (martin + (widget-insert + "\ +Beta release manager and author of many stability fixes and speed +improvements in XEmacs.\n")) + (mcook + (widget-insert "\ +Author of the \"shy groups\" and minimal matching regular expression +extensions.\n")) + (mly + (widget-insert "\ +Early code contributor to Lucid Emacs. Synched up Lucid Emacs with +the first actual release of GNU Emacs 19, and architected and wrote +the first version of XEmacs's object allocation system.\n")) + (morioka + (widget-insert "\ +I am the author of tm-view (general MIME Viewer for GNU Emacs) and +major author and maintainer of tm (Tools for MIME; general MIME +package for GNU Emacs). In addition, I am working to unify MULE API +for Emacs and XEmacs. In XEmacs, I have ported many mule features.\n")) + (mta + (widget-insert + "\ +Contributed minor improvements to the Windows support, especially +related to subprocess communication and portable dumping as well as +a bit of general bug fixing.\n")) + (ograf + (widget-insert "\ +Author of the XEmacs Drag'n'Drop API.\n")) + (olivier + (widget-insert + "\ +Author of the portable dumper.\n")) + (oscar + (widget-insert "\ +Oscar's major contributions to XEmacs are the internal LDAP support +and the EUDC package, an interface to query various directory services +in a uniform manner (when composing mail for instance).\n")) + (pelegri + (widget-insert "\ +Author of EOS, a package included in the standard XEmacs distribution +that integrates XEmacs with the SPARCworks development environment +from Sun. Past lead for XEmacs at Sun; advocated the validity of +using Epoch, and later Lemacs, at Sun through several early +prototypes.\n")) + (pez + (widget-insert "\ +Author of SQL Mode, edit-toolbar, mailtool-mode, and various other +small packages with varying degrees of usefulness.\n")) + (piper + (widget-insert "\ +Author of the Cygwin port of XEmacs including unexec, the widget, +gutter and buffer-tab support, glyphs under MS-Windows, toolbars under +MS-Windows, the original \"fake\" XEmacs toolbar, outl-mouse for mouse +gesture based outlining, and the original CDE drag-n-drop +support.\n")) + (pittman + (widget-insert + "\ +Sorry, no information about my XEmacs contributions yet.\n")) + (rickc + (widget-insert "\ +Maintainer of ILISP.\n")) + (rose + (widget-insert "\ +Author of many extensions to the `extents' code, including the initial +implementation of `duplicable' properties.\n")) + (rossini + (widget-insert "\ +Author of the first XEmacs FAQ; +Development lead on Emacs Speaks Statistics; +Assisted Jareth Hein with setting up the JitterBug tracking system.\n")) + (slb + (widget-insert + "\ +Maintainer of XEmacs from 1996 through 1998. Author of the package +system.\n")) + (sperber + (widget-insert "\ +Mike ported EFS to XEmacs 20 and integrated EFS into XEmacs. He's +also responsible for the ports of facemenu.el and enriched.el, the +code to handle path-frobbing at startup for the XEmacs core and the +package system, the init file migration from .emacs to +.xemacs/init.el, and the CVS Great Trunk Move.\n")) + (stig + (widget-insert "\ +Implemented the faster stay-up Lucid menus and hyper-apropos. +Contributor of many dispersed improvements in the core Lisp code, and +back-seat contributor for several of its major packages.\n")) + (stigb + (widget-insert "\ +Maintainer of the RPM package.\n")) + (thiessel + (widget-insert "\ +Does beta testing and helps take care of the XEmacs web site.\n")) + (tomonori + (widget-insert + "\ +Sorry, no information about my XEmacs contributions yet.\n")) + (tuck + (widget-insert + "\ +Sorry, no information about my XEmacs contributions yet.\n")) + (turnbull + (widget-insert + "\ +Responsible for getting the current release of XEmacs out the +door.\n")) + (vin + (widget-insert "\ +Vin helps maintain the older, more mature (read: moldy) versions of +XEmacs. Vin maintains the XEmacs patch pages in order to bring a more +stable XEmacs. (Actually, he does it 'cause it's fun and he's been +using emacs for a long, long time.) Vin also contributed the detached +minibuffer code as well as a few minor enhancements to the menubar +options.\n")) + (vladimir + (widget-insert "\ +Former technical lead for XEmacs at Sun.\n")) + (wmperry + (widget-insert "\ +Author of the GTK support in XEmacs, Emacs-w3 (the builtin web browser +that comes with XEmacs), and various additions to the C code (e.g. the +database support, the PNG support, some of the GIF/JPEG support, the +strikethru face attribute support).\n")) + (yoshiki + (widget-insert + "\ +Sorry, no information about my XEmacs contributions yet.\n")) + (youngs + (widget-insert "\ +Maintainer and release manager of the packages.\n")) + )) ;; Setup the buffer for a maintainer. (defun about-maintainer (widget &optional event) @@ -1040,10 +1779,16 @@ (widget-create 'default :format "%t" :tag-glyph (about-maintainer-glyph who)) (widget-insert - " " (about-with-face (format "%s" name) 'bold) - " <" address ">\n\n") + "\n\n" (about-with-face (format "%s" name) 'bold) + " <") + (about-mailto-link address) + (widget-insert ">\n\n") ;; Display the actual info - (about-maintainer-info entry) + (about-personal-info entry) + (widget-insert "\n") + (widget-insert + (about-with-face "Contributions to XEmacs:\n\n" 'about-headline-face)) + (about-hacker-contribution entry) (widget-insert "\n") (about-finish-buffer 'kill) (forward-line 2)))) @@ -1055,7 +1800,7 @@ ((>= x 8) "\t\t") (t "\t\t\t")))) -(defun about-show-linked-info (who shortinfo) +(defun about-show-linked-info (who) (let* ((entry (assq who xemacs-hackers)) (name (cadr entry)) (address (caddr entry))) @@ -1066,11 +1811,15 @@ :tag name :value who) (widget-insert (about-tabs name) - (format "<%s>\n%s\n" address shortinfo)))) + "<") + (about-mailto-link address) + (widget-insert ">\n") + (about-hacker-contribution entry) + (widget-insert "\n"))) (defun about-hackers (&rest ignore) (unless (about-get-buffer "*About Contributors*") - (let ((title "Other Contributors to XEmacs")) + (let ((title "A Legion of Contributors to XEmacs")) (widget-insert (about-center title) (about-with-face title 'bold))) @@ -1078,484 +1827,275 @@ "\n Like most free software, XEmacs is a collaborative effort. These are some of the contributors. We have no doubt forgotten someone; we -apologize! You can see some of our faces under the links.\n\n") - (about-show-linked-info 'vladimir "\ -Former technical lead for XEmacs at Sun. He is now with a startup -marketing embedded Java databases.\n") - (about-show-linked-info 'stig "\ -Peripatetic uninominal Emacs hacker. Stig sometimes operates out of a -big white van set up for nomadic living and hacking. Implemented the -faster stay-up Lucid menus and hyper-apropos. Contributor of many -dispersed improvements in the core Lisp code, and back-seat -contributor for several of its major packages.\n") - (about-show-linked-info 'baw "\ -Author of CC Mode for C, C++, Objective-C and Java editing, and -Supercite for mail and news citing. Also various and sundry other -Emacs utilities, fixes, enhancements and kludgery as whimsy, boredom, -and ToT dictate (but not necessarily in that order).\n") - (about-show-linked-info 'piper "\ -Created the prototype for the toolbars. Has been the first to make -use of many of the new XEmacs graphics features. Has implemented many -of XEmacs' graphics features under MS-Windows and has ported XEmacs -to cygwin under MS-Windows.\n") - (about-show-linked-info 'bw "\ -Author of the Hyperbole everyday information management hypertext -system and the OO-Browser multi-language code browser. He also -designed the BeOpen InfoDock integrated development environment -for software engineers. It runs atop XEmacs and is available from -his firm, BeOpen, which offers custom development and support packages -for corporate users of XEmacs, GNU Emacs and InfoDock. His interests -include user interfaces, information management, CASE tools, -communications and enterprise integration.\n") - (about-show-linked-info 'wmperry "\ -Author of Emacs-w3, the builtin web browser that comes with XEmacs, -and various additions to the C code (e.g. the database support, the -PNG support, some of the GIF/JPEG support, the strikethru face -attribute support).\n") - (about-show-linked-info 'kyle "\ -Author of VM, a mail-reading package that is included in the standard -XEmacs distribution, and contributor of many improvements and bug -fixes. Unlike RMAIL and MH-E, VM uses the standard UNIX mailbox -format for its folders; thus, you can use VM concurrently with other -UNIX mail readers such as Berkeley Mail and ELM.\n") - (about-show-linked-info 'larsi "\ -Author of Gnus the Usenet news and Mail reading package in the -standard XEmacs distribution, and contributor of various enhancements -and portability fixes. Lars is a student at the Institute of -Informatics at the University of Oslo. He is currently plumbing away -at his majors work at the Institute of Physics, working on an SCI -project connected with CASCADE and CERN and stuff.\n") - (about-show-linked-info 'jan "\ -Apart from hunting down redisplay bugs Jan has worked on such -things as improvements to the package system, implementing lazy-shot, -a short stint at tracking patches and currently acts as a guardian -of the XEmacs custom subsystem and gnuserv. Having finished his PhD -he is now working on Java virtual machines.\n") - (about-show-linked-info 'jens "\ -I'm currently working at the University of Karlsruhe, Germany on -getting my diploma thesis on Supersymmetry (uuh, that's physics) done. -After that (and all the remaining exams) I'm looking forward to make a -living out of my hobbies -- computers (and graphics). But because I -have no deadline for the exams and XEmacs betas are released at a high -rate this may take some time...\n") - (about-show-linked-info 'jareth "\ -Jareth Hein is a mountain boy who abandoned his home state of Colorado -for the perpetual state of chaos known as Tokyo in a failed attempt to -become a cel-animator, and a more successful one to become a -computer-game programmer. As he happens to be bilingual (guess which -two?) he's been doing quite a bit of MULE hacking. He's also getting -his hands dirty in the graphics areas as well.\n") - (about-show-linked-info 'morioka "\ -I am the author of tm-view (general MIME Viewer for GNU Emacs) and -major author and maintainer of tm (Tools for MIME; general MIME -package for GNU Emacs). In addition, I am working to unify MULE API -for Emacs and XEmacs. In XEmacs, I have ported many mule features. - -I am a doctoral student at School of Information Science of JAIST -\(Japan Advanced Institute of Science and Technology, Hokuriku). I'm -interested in Natural Language, Affordance and writing systems.\n") - (about-show-linked-info 'dmoore "\ -David has contributed greatly to the quest to speed up XEmacs. He is -a student in the Computer Systems Laboratory at UCSD. When he manages -to have free time, he usually spends it on 200 mile bicycle rides, -learning german or showing people the best mail & news environment -he's found in 10 years. (That'd be XEmacs, Gnus and bbdb, of course.) -He can be found at `druidmuck.egbt.org 4201' at various hours of the -day.\n") - (about-show-linked-info 'sperber "\ -Mike ported EFS to XEmacs 20 and integrated EFS into XEmacs. He's -also responsible for the ports of facemenu.el and enriched.el. When -Mike isn't busy putting together patches for free software he has just -installed or changing his hairstyle, he does research in modern -programming languages and their implementation, and hopes that one day -XEmacs will speak Scheme.\n") - (about-show-linked-info 'vin "\ -Vin helps maintain the older, more mature (read: moldy) versions of -XEmacs. Vin has maintained the official XEmacs patch pages.\n") - (about-show-linked-info 'thiessel "\ -Worked at University of Kaiserslautern where he took part in the -development and design of a CAD framework for analog integrated -circuits with special emphasis on distributed software concepts. He -has now joined HP as technical consultant. - -For XEmacs he does beta testing and tries to take care of XEmacs -website at .\n") - (about-show-linked-info 'ajc "\ -When not helping maintain the XEmacs website, Andrew is a Network -Software Engineer(tm) for Monash University in Australia, maintaining -webservers and doing random other things. As well as spending spare -time being an Eager Young Space Cadet and fiddling with XEmacs/Gnus -et. al., he spends his time pursuing, among other things, a Life. -Some of this currently involves doing an A-Z (by country) of -restaurants with friends, and has, in the past, involved dyeing his -hair various colours.\n") - (about-show-linked-info 'kazz "\ -IENAGA Kazuyuki is the XEmacs technical lead on BSD, particularly -FreeBSD.\n") - (about-show-linked-info 'dkindred "\ -Darrell tends to come out of the woodwork a couple of weeks -before a new release with a flurry of fixes for bugs that -annoy him. He hopes he's spared you from a core dump or two. - -Darrell is currently a doctoral student in computer science at -Carnegie Mellon University, but he's trying hard to kick that -habit.\n") - (about-show-linked-info 'dv "\ -I joined the development of XEmacs in 1996, and have been one of the -core maintainers since 1998. Although I'm mostly interested in the -GUI, ergonomics, redisplay and autoconf issues, it's probably simpler -to describe what I'm *not* involved in: I've never touched the Lisp -implementation, and I probably never will... - -I'm the author of the multicast support, I wrote and maintain some -external Emacs Lisp packages (including mchat) and I'm also -responsible for some of the core Lisp code (including the rectangle -library which I rewrote for both XEmacs and GNU Emacs).\n") - (about-show-linked-info 'marcpa "\ -I work for Positron Industries Inc., Public Safety Division.\n") - (about-show-linked-info 'pez "\ -Author of SQL Mode, edit-toolbar, mailtool-mode, and various other -small packages with varying degrees of usefulness.\n") - (about-show-linked-info 'rickc "\ -The hacker formerly known as Rick Busdiecker, maintainer of ILISP.\n") - (about-show-linked-info 'rossini "\ -Author of the first XEmacs FAQ, as well as minor priest in the -movement to get every statistician in the world to use XEmacs for -statistical programming and data analysis. Current development lead -for ESS (Emacs Speaks Statistics), a mode and inferior mode for -statistical programming and data analysis for SAS, S, S-PLUS, R, -XLispStat; configurable for nearly any other statistical -language/package one might want. In spare time, acts as a -Ph.D. (bio)statistician for money and amusement. Current position: -Assistant Professor of Statistics at the University of South Carolina.\n") - (about-show-linked-info 'stigb "\ -Currently studying computer science in Trondheim, Norway. Full time -Linux user and proud of it. XEmacs hacker light. Maintainer of the -RPM package.\n") - (about-show-linked-info 'ograf "\ -Author of the XEmacs Drag'n'Drop API.\n") - (about-show-linked-info 'juhp "\ -Author of \"find-func.el\".\n") - (about-show-linked-info 'jason "\ -Beta tester, manager of the various XEmacs mailing lists and binary -kit manager. Also, originator and maintainer of the gnus.org domain.\n") - (about-show-linked-info 'jmiller "\ -Beta tester and last hacker of calendar.\n") - (about-show-linked-info 'chr "\ -Maintainer of the XEmacs FAQ and proud author of `zap-up-to-char'.\n") - (about-show-linked-info 'aj "\ -Former `Package Patch Tender', beta tester and GNU libc developer.\n") - +apologize! You can see some of our faces under the links.\n\n" + (about-with-face "Primary maintainers for this release:" + 'about-headline-face) + "\n\n") + (mapc 'about-show-linked-info about-current-release-maintainers) + (widget-insert + "\n" + (about-with-face "Other notable current hackers:" + 'about-headline-face) + "\n\n") + (mapc 'about-show-linked-info about-other-current-hackers) + (widget-insert + "\n" + (about-with-face "Other notable once and future hackers:" + 'about-headline-face) + "\n\n") + (mapc 'about-show-linked-info about-once-and-future-hackers) (flet ((print-short (name addr &optional shortinfo) - (concat (about-with-face name 'italic) - (about-tabs name) - "<" addr ">\n" - (if shortinfo (concat shortinfo "\n") "")))) + (widget-insert (concat (about-with-face name 'italic) + (about-tabs name) + "<")) + (about-mailto-link addr) + (widget-insert + (concat ">\n" + (if shortinfo (concat shortinfo "\n") ""))))) (widget-insert - (print-short "Eduardo Pelegri-Llopart" "pelegri@eng.sun.com" "\ -Author of EOS, a package included in the standard XEmacs distribution -that integrates XEmacs with the SPARCworks development environment -from Sun. Past lead for XEmacs at Sun; advocated the validity of -using Epoch, and later Lemacs, at Sun through several early -prototypes.\n") - (print-short "Matthieu Devin" "devin@rs.com" "\ -Part of the original (pre-19.0) Lucid Emacs development team. -Matthieu wrote the initial Energize interface, designed the -toolkit-independent Lucid Widget library, and fixed enough redisplay -bugs to last a lifetime. The features in Lucid Emacs were largely -inspired by Matthieu's initial prototype of an Energize interface -using Epoch.\n") - (print-short "Harlan Sexton" "hbs@odi.com" "\ -Part of the original (pre-19.0) Lucid Emacs development team. Harlan -designed and implemented many of the low level data structures which -are original to the Lucid version of Emacs, including extents and hash -tables.\n") - (print-short "Eric Benson" "eb@kaleida.com" "\ -Also part of the original Lucid Emacs development team. Eric played a -big part in the design of many aspects of the system, including the -new command loop and keymaps, fixed numerous bugs, and has been a -reliable beta tester ever since.\n") - (print-short "John Rose" "john.rose@sun.com" "\ -Author of many extensions to the `extents' code, including the initial -implementation of `duplicable' properties.\n") - (print-short "Hans Muller" "hmuller@eng.sun.com" "\ -Author of the code used to connect XEmacs with ToolTalk, and of an -early client of the external Emacs widget.\n") - (print-short "David hobley" "david.hobley@usa.net" "\ -I used to do real work, but now I am a Project Manager for one of the -Telco's in Australia. In my spare time I like to get back to basics and -muck around with things. As a result I started the NT port. Hopefully I -will get to finish it sometime sooner rather than later. I do vaguely -remember University where it seems like I had more spare time that I can -believe now. Oh well, such is life.\n") - (print-short "Jonathan Harris" "jhar@tardis.ed.ac.uk" "\ -Manages the team responsible for the EPOC kernel at Symbian Ltd. Started -the mswindows native-GUI port of XEmacs because he felt lost using -Microsoft Windows without a real editor.\n") - (print-short "Michael R. Cook" "mcook@cognex.com" "\ -Author of the \"shy groups\" and minimal matching regular expression -extensions.\n") - (print-short "Darryl Okahata" "darrylo@sr.hp.com" "\ -Perennial Emacs hacker since 1986 or so, when he first started on GNU -Emacs 17.something. Over the years, he's developed \"OEmacs\", the first -version of GNU Emacs 19 for MSDOS, and \"bigperl\", a 32-bit version of -Perl4 for MSDOS. In recent years, reality has intruded and he no longer -has much time for playing with cool programs. What little time he has -now goes to XEmacs hacking, where he's worked on speeding up dired under -MS Windows, and to feeding his two cats.\n") "\n\ In addition to those just mentioned, the following people have spent a great deal of effort providing feedback, testing beta versions of XEmacs, providing patches to the source code, or doing all of the -above. We couldn't have done it without them.\n\n" - (print-short "Nagi M. Aboulenein" "aboulene@ponder.csci.unt.edu") - (print-short "Per Abrahamsen" "abraham@dina.kvl.dk") - (print-short "Gary Adams" "gra@zeppo.East.Sun.COM") - (print-short "Gennady Agranov" "agranov@csa.CS.Technion.Ac.IL") - (print-short "Adrian Aichner" "adrian@xemacs.org") - (print-short "Mark Allender" "allender@vnet.IBM.COM") - (print-short "Stephen R. Anderson" "sra@bloch.ling.yale.edu") - (print-short "Butch Anton" "butch@zaphod.uchicago.edu") - (print-short "Fred Appelman" "Fred.Appelman@cv.ruu.nl") - (print-short "Erik \"The Pope\" Arneson" "lazarus@mind.net") - (print-short "Tor Arntsen" "tor@spacetec.no") - (print-short "Marc Aurel" "4-tea-2@bong.saar.de") - (print-short "Larry Auton" "lda@control.att.com") - (print-short "Larry Ayers" "layers@marktwain.net") - (print-short "Oswald P. Backus IV" "backus@altagroup.com") - (print-short "Mike Battaglia" "mbattagl@dsccc.com") - (print-short "Neal Becker" "neal@ctd.comsat.com") - (print-short "Paul Bibilo" "peb@delcam.com") - (print-short "Leonard Blanks" "ltb@haruspex.demon.co.uk") - (print-short "Jan Borchers" "job@tk.uni-linz.ac.at") - (print-short "Mark Borges" "mdb@cdc.noaa.gov") - (print-short "David P. Boswell" "daveb@tau.space.thiokol.com") - (print-short "Tim Bradshaw" "tfb@edinburgh.ac.uk") - (print-short "Rick Braumoeller" "rickb@mti.sgi.com") - (print-short "Matthew J. Brown" "mjb@doc.ic.ac.uk") - (print-short "Alastair Burt" "burt@dfki.uni-kl.de") - (print-short "David Bush" "david.bush@adn.alcatel.com") - (print-short "Richard Caley" "rjc@cstr.edinburgh.ac.uk") - (print-short "Stephen Carney" "carney@gvc.dec.com") - (print-short "Lorenzo M. Catucci" "lorenzo@argon.roma2.infn.it") - (print-short "Philippe Charton" "charton@lmd.ens.fr") - (print-short "Peter Cheng" "peter.cheng@sun.com") - (print-short "Jin S. Choi" "jin@atype.com") - (print-short "Tomasz J. Cholewo" "tjchol01@mecca.spd.louisville.edu") - (print-short "Serenella Ciongoli" "czs00@ladybug.oes.amdahl.com") - (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 "Mauro Condarelli" "MC5686@mclink.it") - (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") - (print-short "Soren Dayton" "csdayton@cs.uchicago.edu") - (print-short "Chris Dean" "ctdean@cogit.com") - (print-short "Michael Diers" "mdiers@logware.de") - (print-short "William G. Dubuque" "wgd@martigny.ai.mit.edu") - (print-short "Steve Dunham" "dunham@dunham.tcimet.net") - (print-short "Samuel J. Eaton" "samuele@cogs.susx.ac.uk") - (print-short "Carl Edman" "cedman@Princeton.EDU") - (print-short "Dave Edmondson" "davided@sco.com") - (print-short "Jonathan Edwards" "edwards@intranet.com") - (print-short "Eric Eide" "eeide@asylum.cs.utah.edu") - (print-short "EKR" "ekr@terisa.com") - (print-short "Gunnar Evermann" "ge204@eng.cam.ac.uk") - (print-short "Oscar Figueiredo" "Oscar.Figueiredo@di.epfl.ch") - (print-short "David Fletcher" "frodo@tsunami.com") - (print-short "Paul Flinders" "ptf@delcam.co.uk") - (print-short "Jered J Floyd" "jered@mit.edu") - (print-short "Gary D. Foster" "Gary.Foster@Corp.Sun.COM") - (print-short "Jerry Frain" "jerry@sneffels.tivoli.com") - (print-short "Holger Franz" "hfranz@physik.rwth-aachen.de") - (print-short "Benjamin Fried" "bf@morgan.com") - (print-short "Barry Friedman" "friedman@nortel.ca") - (print-short "Noah Friedman" "friedman@splode.com") - (print-short "Kazuyoshi Furutaka" "furutaka@Flux.tokai.jaeri.go.jp") - (print-short "Lew Gaiter III" "lew@StarFire.com") - (print-short "Olivier Galibert" "Olivier.Galibert@mines.u-nancy.fr") - (print-short "Itay Gat" "itay@cs.huji.ac.il") - (print-short "Tim Geisler" "Tim.Geisler@informatik.uni-muenchen.de") - (print-short "Dave Gillespie" "daveg@synaptics.com") - (print-short "Christian F. Goetze" "cg@bigbook.com") - (print-short "Yusuf Goolamabbas" "yusufg@iss.nus.sg") - (print-short "Wolfgang Grieskamp" "wg@cs.tu-berlin.de") - (print-short "John Griffith" "griffith@sfs.nphil.uni-tuebingen.de") - (print-short "James Grinter" "jrg@demon.net") - (print-short "Ben Gross" "bgross@uiuc.edu") - (print-short "Dirk Grunwald" "grunwald@foobar.cs.Colorado.EDU") - (print-short "Michael Guenther" "michaelg@igor.stuttgart.netsurf.de") - (print-short "Dipankar Gupta" "dg@hplb.hpl.hp.com") - (print-short "Markus Gutschke" "gutschk@GOEDEL.UNI-MUENSTER.DE") - (print-short "Kai Haberzettl" "khaberz@synnet.de") - (print-short "Adam Hammer" "hammer@cs.purdue.edu") - (print-short "Magnus Hammerin" "magnush@epact.se") - (print-short "ChangGil Han" "cghan@phys401.phys.pusan.ac.kr") - (print-short "Derek Harding" "dharding@lssec.bt.co.uk") - (print-short "Michael Harnois" "mharnois@sbt.net") - (print-short "Yoshiki Hayashi" "yoshiki@xemacs.org") - (print-short "John Haxby" "J.Haxby@isode.com") - (print-short "Karl M. Hegbloom" "karlheg@inetarena.com") - (print-short "Benedikt Heinen" "beh@icemark.thenet.ch") - (print-short "Stephan Herrmann" "sh@first.gmd.de") - (print-short "August Hill" "awhill@inlink.com") - (print-short "Mike Hill" "mikehill@hgeng.com") - (print-short "Charles Hines" "chuck_hines@VNET.IBM.COM") - (print-short "Shane Holder" "holder@rsn.hp.com") - (print-short "Chris Holt" "xris@migraine.stanford.edu") - (print-short "Tetsuya HOYANO" "hoyano@ari.bekkoame.or.jp") - (print-short "David Hughes" "djh@harston.cv.com") - (print-short "Tudor Hulubei" "tudor@cs.unh.edu") - (print-short "Tatsuya Ichikawa" "ichikawa@hv.epson.co.jp") - (print-short "Andrew Innes" "andrewi@harlequin.co.uk") - (print-short "Markku Jarvinen" "Markku.Jarvinen@simpukka.funet.fi") - (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") - (print-short "Amir Katz" "amir@ndsoft.com") - (print-short "Doug Keller" "dkeller@vnet.ibm.com") - (print-short "Hunter Kelly" "retnuh@corona") - (print-short "Gregor Kennedy" "gregork@dadd.ti.com") - (print-short "Michael Kifer" "kifer@cs.sunysb.edu") - (print-short "Yasuhiko Kiuchi" "kiuchi@dsp.ksp.fujixerox.co.jp") - (print-short "Greg Klanderman" "greg.klanderman@alum.mit.edu") - (print-short "Valdis Kletnieks" "Valdis.Kletnieks@vt.edu") - (print-short "Norbert Koch" "n.koch@delta-ii.de") - (print-short "Rob Kooper" "kooper@cc.gatech.edu") - (print-short "Peter Skov Knudsen" "knu@dde.dk") - (print-short "Jens Krinke" "krinke@ips.cs.tu-bs.de") - (print-short "Maximilien Lincourt" "max@toonboom.com") - (print-short "Mats Larsson" "Mats.Larsson@uab.ericsson.se") - (print-short "Simon Leinen" "simon@instrumatic.ch") - (print-short "Carsten Leonhardt" "leo@arioch.oche.de") - (print-short "James LewisMoss" "moss@cs.sc.edu") - (print-short "Mats Lidell" "mats.lidell@contactor.se") - (print-short "Matt Liggett" "mliggett@seven.ucs.indiana.edu") - (print-short "Christian Limpach" "Christian.Limpach@nice.ch") - (print-short "Maximilien Lincourt" "max@toonboom.com") - (print-short "Markus Linnala" "maage@b14b.tupsu.ton.tut.fi") - (print-short "Robert Lipe" "robertl@arnet.com") - (print-short "Derrell Lipman" "derrell@vis-av.com") - (print-short "Damon Lipparelli" "lipp@aa.net") - (print-short "Hamish Macdonald" "hamish@bnr.ca") - (print-short "Ian MacKinnon" "imackinnon@telia.co.uk") - (print-short "Patrick MacRoberts" "macro@hpcobr30.cup.hp.com") - (print-short "Tonny Madsen" "Tonny.Madsen@netman.dk") - (print-short "Ketil Z Malde" "ketil@ii.uib.no") - (print-short "Steve March" "smarch@quaver.urbana.mcd.mot.com") - (print-short "Ricardo Marek" "ricky@ornet.co.il") - (print-short "Pekka Marjola" "pema@iki.fi") - (print-short "Simon Marshall" "simon@gnu.ai.mit.edu") - (print-short "Dave Mason" "dmason@plg.uwaterloo.ca") - (print-short "Jaye Mathisen" "mrcpu@cdsnet.net") - (print-short "Jason McLaren" "mclaren@math.mcgill.ca") - (print-short "Michael McNamara" "mac@silicon-sorcery.com") - (print-short "Michael Meissner" "meissner@osf.org") - (print-short "David M. Meyer" "meyer@ns.uoregon.edu") - (print-short "John Mignault" "jbm@panix.com") - (print-short "Brad Miller" "bmiller@cs.umn.edu") - (print-short "John Morey" "jmorey@crl.com") - (print-short "Rob Mori" "rob.mori@sun.com") - (print-short "Heiko Muenkel" "muenkel@tnt.uni-hannover.de") - (print-short "Arup Mukherjee" "arup+@cs.cmu.edu") - (print-short "Colas Nahaboo" "Colas.Nahaboo@sophia.inria.fr") - (print-short "Lynn D. Newton" "lynn@ives.phx.mcd.mot.com") - (print-short "Casey Nielson" "knielson@joule.elee.calpoly.edu") - (print-short "Georg Nikodym" "Georg.Nikodym@canada.sun.com") - (print-short "Andy Norman" "ange@hplb.hpl.hp.com") - (print-short "Joe Nuspl" "nuspl@sequent.com") - (print-short "Kim Nyberg" "kny@tekla.fi") - (print-short "Kevin Oberman" "oberman@es.net") - (print-short "David Ofelt" "ofelt@getalife.Stanford.EDU") - (print-short "Alexandre Oliva" "oliva@dcc.unicamp.br") - (print-short "Tore Olsen" "toreo@colargol.idb.hist.no") - (print-short "Greg Onufer" "Greg.Onufer@eng.sun.com") - (print-short "Achim Oppelt" "aoppelt@theorie3.physik.uni-erlangen.de") - (print-short "Rebecca Ore" "rebecca.ore@op.net") - (print-short "Sudeep Kumar Palat" "palat@idt.unit.no") - (print-short "Joel Peterson" "tarzan@aosi.com") - (print-short "Thomas A. Peterson" "tap@src.honeywell.com") - (print-short "Tibor Polgar" "tibor@alteon.com") - (print-short "Fabrice POPINEAU" "popineau@esemetz.ese-metz.fr") - (print-short "Frederic Poncin" "fp@info.ucl.ac.be") - (print-short "E. Rehmi Post" "rehmi@asylum.sf.ca.us") - (print-short "Martin Pottendorfer" "Martin.Pottendorfer@aut.alcatel.at") - (print-short "Colin Rafferty" "colin@xemacs.org") - (print-short "Rick Rankin" "Rick_Rankin-P15254@email.mot.com") - (print-short "Paul M Reilly" "pmr@pajato.com") - (print-short "Jack Repenning" "jackr@sgi.com") - (print-short "Daniel Rich" "drich@cisco.com") - (print-short "Roland Rieke" "rol@darmstadt.gmd.de") - (print-short "Art Rijos" "art.rijos@SNET.com") - (print-short "Russell Ritchie" "ritchier@britannia-life.co.uk") - (print-short "Roland" "rol@darmstadt.gmd.de") - (print-short "Mike Russell" "mjruss@rchland.vnet.ibm.com") - (print-short "Hajime Saitou" "hajime@jsk.t.u-tokyo.ac.jp") - (print-short "Jan Sandquist" "etxquist@iqa.ericsson.se") - (print-short "Marty Sasaki" "sasaki@spdcc.com") - (print-short "SATO Daisuke" "densuke@ga2.so-net.or.jp") - (print-short "Kenji Sato" "ken@ny.kdd.com") - (print-short "Mike Scheidler" "c23mts@eng.delcoelect.com") - (print-short "Daniel Schepler" "daniel@shep13.wustl.edu") - (print-short "Holger Schauer" "schauer@coling.uni-freiburg.de") - (print-short "Darrel Schneider" "darrel@slc.com") - (print-short "Hayden Schultz" "haydens@ll.mit.edu") - (print-short "Cotton Seed" "cottons@cybercom.net") - (print-short "Axel Seibert" "seiberta@informatik.tu-muenchen.de") - (print-short "Odd-Magne Sekkingstad" "oddms@ii.uib.no") - (print-short "Gregory Neil Shapiro" "gshapiro@sendmail.org") - (print-short "Justin Sheehy" "justin@linus.mitre.org") - (print-short "John Shen" "zfs60@cas.org") - (print-short "Murata Shuuichirou" "mrt@mickey.ai.kyutech.ac.jp") - (print-short "Matt Simmons" "simmonmt@acm.org") - (print-short "Dinesh Somasekhar" "somasekh@ecn.purdue.edu") - (print-short "Jeffrey Sparkes" "jsparkes@bnr.ca") - (print-short "Manoj Srivastava" "srivasta@pilgrim.umass.edu") - (print-short "Francois Staes" "frans@kiwi.uia.ac.be") - (print-short "Anders Stenman" "stenman@isy.liu.se") - (print-short "Jason Stewart" "jasons@cs.unm.edu") - (print-short "Rick Tait" "rickt@gnu.ai.mit.edu") - (print-short "TANAKA Hayashi" "tanakah@mxa.mesh.ne.jp") - (print-short "Samuel Tardieu" "sam@inf.enst.fr") - (print-short "James Thompson" "thompson@wg2.waii.com") - (print-short "Nobu Toge" "toge@accad1.kek.jp") - (print-short "Raymond L. Toy" "toy@rtp.ericsson.se") - (print-short "Remek Trzaska" "remek@npac.syr.edu") - (print-short "TSUTOMU Nakamura" "tsutomu@rs.kyoto.omronsoft.co.jp") - (print-short "Stefanie Teufel" "s.teufel@ndh.net") - (print-short "Gary Thomas" "g.thomas@opengroup.org") - (print-short "Stephen Turnbull" "turnbull@sk.tsukuba.ac.jp") - (print-short "John Turner" "turner@xdiv.lanl.gov") - (print-short "UENO Fumihiro" "7m2vej@ritp.ye.IHI.CO.JP") - (print-short "Aki Vehtari" "Aki.Vehtari@hut.fi") - (print-short "Juan E. Villacis" "jvillaci@cs.indiana.edu") - (print-short "Vladimir Vukicevic" "vladimir@intrepid.com") - (print-short "Charles G. Waldman" "cgw@fnal.gov") - (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 "Peter B. West" "p.west@uq.net.au") - (print-short "Rod Whitby" "rwhitby@asc.corp.mot.com") - (print-short "Rich Williams" "rdw@hplb.hpl.hp.com") - (print-short "Raymond Wiker" "raymond@orion.no") - (print-short "Peter Windle" "peterw@SDL.UG.EDS.COM") - (print-short "David C Worenklein" "dcw@gcm.com") - (print-short "Takeshi Yamada" "yamada@sylvie.kecl.ntt.jp") - (print-short "Katsumi Yamaoka" "yamaoka@ga.sony.co.jp") - (print-short "Jason Yanowitz" "yanowitz@eternity.cs.umass.edu") - (print-short "La Monte Yarroll" "piggy@hilbert.maths.utas.edu.au") - (print-short "Blair Zajac" "blair@olympia.gps.caltech.edu") - (print-short "Volker Zell" "vzell@de.oracle.com") - (print-short "Daniel Zivkovic" "daniel@canada.sun.com") - (print-short "Karel Zuiderveld" "Karel.Zuiderveld@cv.ruu.nl") - "\n")) +above. We couldn't have done it without them.\n\n") + (print-short "Nagi M. Aboulenein" "aboulene@ponder.csci.unt.edu") + (print-short "Per Abrahamsen" "abraham@dina.kvl.dk") + (print-short "Gary Adams" "gra@zeppo.East.Sun.COM") + (print-short "Gennady Agranov" "agranov@csa.CS.Technion.Ac.IL") + (print-short "Mark Allender" "allender@vnet.IBM.COM") + (print-short "Stephen R. Anderson" "sra@bloch.ling.yale.edu") + (print-short "Butch Anton" "butch@zaphod.uchicago.edu") + (print-short "Fred Appelman" "Fred.Appelman@cv.ruu.nl") + (print-short "Erik \"The Pope\" Arneson" "lazarus@mind.net") + (print-short "Tor Arntsen" "tor@spacetec.no") + (print-short "Marc Aurel" "4-tea-2@bong.saar.de") + (print-short "Larry Auton" "lda@control.att.com") + (print-short "Larry Ayers" "layers@marktwain.net") + (print-short "Oswald P. Backus IV" "backus@altagroup.com") + (print-short "Mike Battaglia" "mbattagl@dsccc.com") + (print-short "Neal Becker" "neal@ctd.comsat.com") + (print-short "Paul Bibilo" "peb@delcam.com") + (print-short "Leonard Blanks" "ltb@haruspex.demon.co.uk") + (print-short "Jan Borchers" "job@tk.uni-linz.ac.at") + (print-short "Mark Borges" "mdb@cdc.noaa.gov") + (print-short "David P. Boswell" "daveb@tau.space.thiokol.com") + (print-short "Tim Bradshaw" "tfb@edinburgh.ac.uk") + (print-short "Rick Braumoeller" "rickb@mti.sgi.com") + (print-short "Matthew J. Brown" "mjb@doc.ic.ac.uk") + (print-short "Alastair Burt" "burt@dfki.uni-kl.de") + (print-short "David Bush" "david.bush@adn.alcatel.com") + (print-short "Richard Caley" "rjc@cstr.edinburgh.ac.uk") + (print-short "Stephen Carney" "carney@gvc.dec.com") + (print-short "Lorenzo M. Catucci" "lorenzo@argon.roma2.infn.it") + (print-short "Philippe Charton" "charton@lmd.ens.fr") + (print-short "Peter Cheng" "peter.cheng@sun.com") + (print-short "Jin S. Choi" "jin@atype.com") + (print-short "Tomasz J. Cholewo" "tjchol01@mecca.spd.louisville.edu") + (print-short "Serenella Ciongoli" "czs00@ladybug.oes.amdahl.com") + (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 "Mauro Condarelli" "MC5686@mclink.it") + (print-short "Nick J. Crabtree" "nickc@scopic.com") + (print-short "Christopher Davis" "ckd@kei.com") + (print-short "Soren Dayton" "csdayton@cs.uchicago.edu") + (print-short "Chris Dean" "ctdean@cogit.com") + (print-short "Michael Diers" "mdiers@logware.de") + (print-short "William G. Dubuque" "wgd@martigny.ai.mit.edu") + (print-short "Steve Dunham" "dunham@dunham.tcimet.net") + (print-short "Samuel J. Eaton" "samuele@cogs.susx.ac.uk") + (print-short "Carl Edman" "cedman@Princeton.EDU") + (print-short "Dave Edmondson" "davided@sco.com") + (print-short "Jonathan Edwards" "edwards@intranet.com") + (print-short "Eric Eide" "eeide@asylum.cs.utah.edu") + (print-short "EKR" "ekr@terisa.com") + (print-short "David Fletcher" "frodo@tsunami.com") + (print-short "Paul Flinders" "ptf@delcam.co.uk") + (print-short "Jered J Floyd" "jered@mit.edu") + (print-short "Gary D. Foster" "Gary.Foster@Corp.Sun.COM") + (print-short "Jerry Frain" "jerry@sneffels.tivoli.com") + (print-short "Holger Franz" "hfranz@physik.rwth-aachen.de") + (print-short "Benjamin Fried" "bf@morgan.com") + (print-short "Barry Friedman" "friedman@nortel.ca") + (print-short "Noah Friedman" "friedman@splode.com") + (print-short "Kazuyoshi Furutaka" "furutaka@Flux.tokai.jaeri.go.jp") + (print-short "Lew Gaiter III" "lew@StarFire.com") + (print-short "Itay Gat" "itay@cs.huji.ac.il") + (print-short "Tim Geisler" "Tim.Geisler@informatik.uni-muenchen.de") + (print-short "Dave Gillespie" "daveg@synaptics.com") + (print-short "Christian F. Goetze" "cg@bigbook.com") + (print-short "Yusuf Goolamabbas" "yusufg@iss.nus.sg") + (print-short "Wolfgang Grieskamp" "wg@cs.tu-berlin.de") + (print-short "John Griffith" "griffith@sfs.nphil.uni-tuebingen.de") + (print-short "James Grinter" "jrg@demon.net") + (print-short "Ben Gross" "bgross@uiuc.edu") + (print-short "Dirk Grunwald" "grunwald@foobar.cs.Colorado.EDU") + (print-short "Michael Guenther" "michaelg@igor.stuttgart.netsurf.de") + (print-short "Dipankar Gupta" "dg@hplb.hpl.hp.com") + (print-short "Markus Gutschke" "gutschk@GOEDEL.UNI-MUENSTER.DE") + (print-short "Kai Haberzettl" "khaberz@synnet.de") + (print-short "Adam Hammer" "hammer@cs.purdue.edu") + (print-short "Magnus Hammerin" "magnush@epact.se") + (print-short "ChangGil Han" "cghan@phys401.phys.pusan.ac.kr") + (print-short "Derek Harding" "dharding@lssec.bt.co.uk") + (print-short "Michael Harnois" "mharnois@sbt.net") + (print-short "John Haxby" "J.Haxby@isode.com") + (print-short "Karl M. Hegbloom" "karlheg@inetarena.com") + (print-short "Benedikt Heinen" "beh@icemark.thenet.ch") + (print-short "Stephan Herrmann" "sh@first.gmd.de") + (print-short "August Hill" "awhill@inlink.com") + (print-short "Mike Hill" "mikehill@hgeng.com") + (print-short "Charles Hines" "chuck_hines@VNET.IBM.COM") + (print-short "Shane Holder" "holder@rsn.hp.com") + (print-short "Chris Holt" "xris@migraine.stanford.edu") + (print-short "Tetsuya HOYANO" "hoyano@ari.bekkoame.or.jp") + (print-short "David Hughes" "djh@harston.cv.com") + (print-short "Tudor Hulubei" "tudor@cs.unh.edu") + (print-short "Tatsuya Ichikawa" "ichikawa@hv.epson.co.jp") + (print-short "Andrew Innes" "andrewi@harlequin.co.uk") + (print-short "Markku Jarvinen" "Markku.Jarvinen@simpukka.funet.fi") + (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 "Amir Katz" "amir@ndsoft.com") + (print-short "Doug Keller" "dkeller@vnet.ibm.com") + (print-short "Hunter Kelly" "retnuh@corona") + (print-short "Gregor Kennedy" "gregork@dadd.ti.com") + (print-short "Michael Kifer" "kifer@cs.sunysb.edu") + (print-short "Yasuhiko Kiuchi" "kiuchi@dsp.ksp.fujixerox.co.jp") + (print-short "Greg Klanderman" "greg.klanderman@alum.mit.edu") + (print-short "Valdis Kletnieks" "Valdis.Kletnieks@vt.edu") + (print-short "Norbert Koch" "n.koch@delta-ii.de") + (print-short "Rob Kooper" "kooper@cc.gatech.edu") + (print-short "Peter Skov Knudsen" "knu@dde.dk") + (print-short "Jens Krinke" "krinke@ips.cs.tu-bs.de") + (print-short "Maximilien Lincourt" "max@toonboom.com") + (print-short "Mats Larsson" "Mats.Larsson@uab.ericsson.se") + (print-short "Simon Leinen" "simon@instrumatic.ch") + (print-short "Carsten Leonhardt" "leo@arioch.oche.de") + (print-short "James LewisMoss" "moss@cs.sc.edu") + (print-short "Mats Lidell" "mats.lidell@contactor.se") + (print-short "Matt Liggett" "mliggett@seven.ucs.indiana.edu") + (print-short "Christian Limpach" "Christian.Limpach@nice.ch") + (print-short "Maximilien Lincourt" "max@toonboom.com") + (print-short "Markus Linnala" "maage@b14b.tupsu.ton.tut.fi") + (print-short "Robert Lipe" "robertl@arnet.com") + (print-short "Derrell Lipman" "derrell@vis-av.com") + (print-short "Damon Lipparelli" "lipp@aa.net") + (print-short "Hamish Macdonald" "hamish@bnr.ca") + (print-short "Ian MacKinnon" "imackinnon@telia.co.uk") + (print-short "Patrick MacRoberts" "macro@hpcobr30.cup.hp.com") + (print-short "Tonny Madsen" "Tonny.Madsen@netman.dk") + (print-short "Ketil Z Malde" "ketil@ii.uib.no") + (print-short "Steve March" "smarch@quaver.urbana.mcd.mot.com") + (print-short "Ricardo Marek" "ricky@ornet.co.il") + (print-short "Pekka Marjola" "pema@iki.fi") + (print-short "Simon Marshall" "simon@gnu.ai.mit.edu") + (print-short "Dave Mason" "dmason@plg.uwaterloo.ca") + (print-short "Jaye Mathisen" "mrcpu@cdsnet.net") + (print-short "Jason McLaren" "mclaren@math.mcgill.ca") + (print-short "Michael McNamara" "mac@silicon-sorcery.com") + (print-short "Michael Meissner" "meissner@osf.org") + (print-short "David M. Meyer" "meyer@ns.uoregon.edu") + (print-short "John Mignault" "jbm@panix.com") + (print-short "Brad Miller" "bmiller@cs.umn.edu") + (print-short "John Morey" "jmorey@crl.com") + (print-short "Rob Mori" "rob.mori@sun.com") + (print-short "Heiko Muenkel" "muenkel@tnt.uni-hannover.de") + (print-short "Arup Mukherjee" "arup+@cs.cmu.edu") + (print-short "Colas Nahaboo" "Colas.Nahaboo@sophia.inria.fr") + (print-short "Lynn D. Newton" "lynn@ives.phx.mcd.mot.com") + (print-short "Casey Nielson" "knielson@joule.elee.calpoly.edu") + (print-short "Georg Nikodym" "Georg.Nikodym@canada.sun.com") + (print-short "Andy Norman" "ange@hplb.hpl.hp.com") + (print-short "Joe Nuspl" "nuspl@sequent.com") + (print-short "Kim Nyberg" "kny@tekla.fi") + (print-short "Kevin Oberman" "oberman@es.net") + (print-short "David Ofelt" "ofelt@getalife.Stanford.EDU") + (print-short "Alexandre Oliva" "oliva@dcc.unicamp.br") + (print-short "Tore Olsen" "toreo@colargol.idb.hist.no") + (print-short "Greg Onufer" "Greg.Onufer@eng.sun.com") + (print-short "Achim Oppelt" "aoppelt@theorie3.physik.uni-erlangen.de") + (print-short "Rebecca Ore" "rebecca.ore@op.net") + (print-short "Sudeep Kumar Palat" "palat@idt.unit.no") + (print-short "Joel Peterson" "tarzan@aosi.com") + (print-short "Thomas A. Peterson" "tap@src.honeywell.com") + (print-short "Tibor Polgar" "tibor@alteon.com") + (print-short "Frederic Poncin" "fp@info.ucl.ac.be") + (print-short "E. Rehmi Post" "rehmi@asylum.sf.ca.us") + (print-short "Martin Pottendorfer" "Martin.Pottendorfer@aut.alcatel.at") + (print-short "Colin Rafferty" "colin@xemacs.org") + (print-short "Rick Rankin" "Rick_Rankin-P15254@email.mot.com") + (print-short "Paul M Reilly" "pmr@pajato.com") + (print-short "Jack Repenning" "jackr@sgi.com") + (print-short "Daniel Rich" "drich@cisco.com") + (print-short "Roland Rieke" "rol@darmstadt.gmd.de") + (print-short "Art Rijos" "art.rijos@SNET.com") + (print-short "Russell Ritchie" "ritchier@britannia-life.co.uk") + (print-short "Roland" "rol@darmstadt.gmd.de") + (print-short "Mike Russell" "mjruss@rchland.vnet.ibm.com") + (print-short "Hajime Saitou" "hajime@jsk.t.u-tokyo.ac.jp") + (print-short "Jan Sandquist" "etxquist@iqa.ericsson.se") + (print-short "Marty Sasaki" "sasaki@spdcc.com") + (print-short "SATO Daisuke" "densuke@ga2.so-net.or.jp") + (print-short "Kenji Sato" "ken@ny.kdd.com") + (print-short "Mike Scheidler" "c23mts@eng.delcoelect.com") + (print-short "Daniel Schepler" "daniel@shep13.wustl.edu") + (print-short "Holger Schauer" "schauer@coling.uni-freiburg.de") + (print-short "Darrel Schneider" "darrel@slc.com") + (print-short "Hayden Schultz" "haydens@ll.mit.edu") + (print-short "Cotton Seed" "cottons@cybercom.net") + (print-short "Axel Seibert" "seiberta@informatik.tu-muenchen.de") + (print-short "Odd-Magne Sekkingstad" "oddms@ii.uib.no") + (print-short "Gregory Neil Shapiro" "gshapiro@sendmail.org") + (print-short "Justin Sheehy" "justin@linus.mitre.org") + (print-short "John Shen" "zfs60@cas.org") + (print-short "Murata Shuuichirou" "mrt@mickey.ai.kyutech.ac.jp") + (print-short "Matt Simmons" "simmonmt@acm.org") + (print-short "Dinesh Somasekhar" "somasekh@ecn.purdue.edu") + (print-short "Jeffrey Sparkes" "jsparkes@bnr.ca") + (print-short "Manoj Srivastava" "srivasta@pilgrim.umass.edu") + (print-short "Francois Staes" "frans@kiwi.uia.ac.be") + (print-short "Anders Stenman" "stenman@isy.liu.se") + (print-short "Jason Stewart" "jasons@cs.unm.edu") + (print-short "Rick Tait" "rickt@gnu.ai.mit.edu") + (print-short "TANAKA Hayashi" "tanakah@mxa.mesh.ne.jp") + (print-short "Samuel Tardieu" "sam@inf.enst.fr") + (print-short "James Thompson" "thompson@wg2.waii.com") + (print-short "Nobu Toge" "toge@accad1.kek.jp") + (print-short "Raymond L. Toy" "toy@rtp.ericsson.se") + (print-short "Remek Trzaska" "remek@npac.syr.edu") + (print-short "TSUTOMU Nakamura" "tsutomu@rs.kyoto.omronsoft.co.jp") + (print-short "Stefanie Teufel" "s.teufel@ndh.net") + (print-short "Gary Thomas" "g.thomas@opengroup.org") + (print-short "John Turner" "turner@xdiv.lanl.gov") + (print-short "UENO Fumihiro" "7m2vej@ritp.ye.IHI.CO.JP") + (print-short "Aki Vehtari" "Aki.Vehtari@hut.fi") + (print-short "Juan E. Villacis" "jvillaci@cs.indiana.edu") + (print-short "Vladimir Vukicevic" "vladimir@intrepid.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 "Peter B. West" "p.west@uq.net.au") + (print-short "Rod Whitby" "rwhitby@asc.corp.mot.com") + (print-short "Rich Williams" "rdw@hplb.hpl.hp.com") + (print-short "Raymond Wiker" "raymond@orion.no") + (print-short "Peter Windle" "peterw@SDL.UG.EDS.COM") + (print-short "David C Worenklein" "dcw@gcm.com") + (print-short "Takeshi Yamada" "yamada@sylvie.kecl.ntt.jp") + (print-short "Katsumi Yamaoka" "yamaoka@ga.sony.co.jp") + (print-short "Jason Yanowitz" "yanowitz@eternity.cs.umass.edu") + (print-short "La Monte Yarroll" "piggy@hilbert.maths.utas.edu.au") + (print-short "Blair Zajac" "blair@olympia.gps.caltech.edu") + (print-short "Volker Zell" "vzell@de.oracle.com") + (print-short "Daniel Zivkovic" "daniel@canada.sun.com") + (print-short "Karel Zuiderveld" "Karel.Zuiderveld@cv.ruu.nl") + (widget-insert "\n")) (about-finish-buffer))) ;;; about.el ends here diff --text -u 'xemacs-21.5.0/lisp/apropos.el' 'xemacs-21.5.1/lisp/apropos.el' Index: ./lisp/apropos.el --- ./lisp/apropos.el Fri Apr 13 03:21:10 2001 +++ ./lisp/apropos.el Sat May 5 19:50:20 2001 @@ -69,21 +69,21 @@ Slows them down more or less. Set this non-nil if you have a fast machine.") ;; XEmacs addition -(defvar apropos-symbol-face (if (boundp 'font-lock-keyword-face) +(defvar apropos-symbol-face (if-boundp 'font-lock-keyword-face font-lock-keyword-face 'bold) "*Face for symbol name in apropos output or `nil'. This looks good, but slows down the commands several times.") ;; XEmacs addition -(defvar apropos-keybinding-face (if (boundp 'font-lock-string-face) +(defvar apropos-keybinding-face (if-boundp 'font-lock-string-face font-lock-string-face 'underline) "*Face for keybinding display in apropos output or `nil'. This looks good, but slows down the commands several times.") ;; XEmacs addition -(defvar apropos-label-face (if (boundp 'font-lock-comment-face) +(defvar apropos-label-face (if-boundp 'font-lock-comment-face font-lock-comment-face 'italic) "*Face for label (Command, Variable ...) in apropos output or `nil'. @@ -93,7 +93,7 @@ text-property list for efficiency.") ;; XEmacs addition -(defvar apropos-property-face (if (boundp 'font-lock-variable-name-face) +(defvar apropos-property-face (if-boundp 'font-lock-variable-name-face font-lock-variable-name-face 'bold-italic) "*Face for property name in apropos output or `nil'. diff --text -u 'xemacs-21.5.0/lisp/auto-autoloads.el' 'xemacs-21.5.1/lisp/auto-autoloads.el' Index: ./lisp/auto-autoloads.el --- ./lisp/auto-autoloads.el Fri Apr 13 03:21:10 2001 +++ ./lisp/auto-autoloads.el Sat May 5 19:50:23 2001 @@ -131,19 +131,22 @@ ;;;### (autoloads (build-report) "build-report" "lisp/build-report.el") (autoload 'build-report "build-report" "\ -Composes a fresh mail message with the contents of the built XEmacs -Installation file and excerpts from XEmacs make output. -`compose-mail' is used to create the mail message. Point is left at -the beginning of the mail text. You may add some personal notes if -you like and send the report. -See also - `compose-mail', `mail-user-agent', - `build-report-destination', - `build-report-keep-regexp', - `build-report-delete-regexp', - `build-report-make-output-dir', - `build-report-make-output-files', and - `build-report-installation-file'." t nil) +Report build information including Installation and make output. + +Prompts for status (usually \"Success\" or \"Failure\"). Then uses +`compose-mail' to create a mail message. The Subject header contains +status and version information. Point is left at the beginning of the +mail text. Add some notes if you like, and send the report. + +Looks for Installation and the make output file (`beta.err' by +default, customizable via `build-report-make-output-files') in the +build directory of the running XEmacs by default (customizable via +`build-report-make-output-dir'). The output from make is filtered +through `build-report-keep-regexp' and `build-report-delete-regexp' +before including in the message. + +See also `mail-user-agent', `build-report-destination', and +`build-report-installation-file'." t nil) ;;;*** @@ -1278,13 +1281,19 @@ ;;;*** -;;;### (autoloads (hyper-apropos-popup-menu hyper-apropos-set-variable hyper-set-variable hyper-apropos-read-variable-symbol hyper-describe-function hyper-where-is hyper-describe-variable hyper-describe-face hyper-describe-key-briefly hyper-describe-key hyper-apropos) "hyper-apropos" "lisp/hyper-apropos.el") +;;;### (autoloads (hyper-apropos-popup-menu hyper-apropos-set-variable hyper-set-variable hyper-apropos-read-variable-symbol hyper-describe-function hyper-where-is hyper-describe-variable hyper-describe-face hyper-describe-key-briefly hyper-describe-key hyper-apropos command-hyper-apropos) "hyper-apropos" "lisp/hyper-apropos.el") + +(autoload 'command-hyper-apropos "hyper-apropos" "\ +Display lists of commands and user options matching REGEXP +in buffer \"*Hyper Apropos*\". See `hyper-apropos-mode' for a +description of the available commands in a Hyper-Apropos buffer." t nil) (autoload 'hyper-apropos "hyper-apropos" "\ Display lists of functions and variables matching REGEXP in buffer \"*Hyper Apropos*\". If optional prefix arg is given, then the value of `hyper-apropos-programming-apropos' is toggled for this search. -See also `hyper-apropos-mode'." t nil) +See `hyper-apropos-mode' for a description of the available commands in +a Hyper-Apropos buffer." t nil) (autoload 'hyper-describe-key "hyper-apropos" nil t nil) @@ -1327,7 +1336,7 @@ ;;;*** -;;;### (autoloads (Info-elisp-ref Info-emacs-key Info-goto-emacs-key-command-node Info-goto-emacs-command-node Info-emacs-command Info-search Info-visit-file Info-goto-node Info-batch-rebuild-dir Info-find-node Info-query info) "info" "lisp/info.el") +;;;### (autoloads (Info-search-index-in-xemacs-and-lispref Info-search-index-in-lispref Info-search-text-in-xemacs Info-search-text-in-lispref Info-elisp-ref Info-emacs-key Info-goto-emacs-key-command-node Info-goto-emacs-command-node Info-emacs-command Info-search Info-visit-file Info-goto-node Info-batch-rebuild-dir Info-find-node Info-query info) "info" "lisp/info.el") (defvar Info-directory-list nil "\ List of directories to search for Info documentation files. @@ -1406,6 +1415,19 @@ Look up an Emacs Lisp function in the Elisp manual in the Info system. This command is designed to be used whether you are already in Info or not." t nil) +(autoload 'Info-search-text-in-lispref "info" "\ +Search for REGEXP in Lispref text and select node it's found in." t nil) + +(autoload 'Info-search-text-in-xemacs "info" "\ +Search for REGEXP in User's Manual text and select node it's found in." t nil) + +(autoload 'Info-search-index-in-lispref "info" "\ +Search for REGEXP in Lispref index and select node it's found in." t nil) + +(autoload 'Info-search-index-in-xemacs-and-lispref "info" "\ +Search for REGEXP in both User's Manual and Lispref indices. +Select node it's found in." t nil) + ;;;*** ;;;### (autoloads nil "itimer-autosave" "lisp/itimer-autosave.el") @@ -1820,10 +1842,11 @@ You can only play sound files if you are running on display 0 of the console of a machine with native sound support or running a NetAudio -server and XEmacs has the necessary sound support compiled in. +or ESD server and XEmacs has the necessary sound support compiled in. -The sound file must be in the Sun/NeXT U-LAW format, except on Linux, -where .wav files are also supported by the sound card drivers." t nil) +The sound file must be in the Sun/NeXT U-LAW format, except on Linux +and MS Windows, where .wav files are also supported by the sound card +drivers." t nil) (autoload 'load-default-sounds "sound" "\ Load and install some sound files as beep-types, using diff --text -u /dev/null 'xemacs-21.5.1/lisp/behavior-defs.el' Index: ./lisp/behavior-defs.el --- ./lisp/behavior-defs.el Thu Jan 1 09:00:00 1970 +++ ./lisp/behavior-defs.el Sat May 5 07:41:59 2001 @@ -0,0 +1,299 @@ +;;; behavior-defs.el --- definitions of specific behaviors + +;; Copyright (C) 2000, 2001 Ben Wing. + +;; Author: Ben Wing +;; Maintainer: XEmacs Development Team +;; Keywords: internal, dumped + +;; This file is part of XEmacs. + +;; XEmacs is free software; you can redistribute it and/or modify it +;; under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 2, or (at your option) +;; any later version. + +;; XEmacs is distributed in the hope that it will be useful, but +;; WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with XEmacs; see the file COPYING. If not, write to the +;; Free Software Foundation, 59 Temple Place - Suite 330, +;; Boston, MA 02111-1307, USA. + +;;; Synched up with: Not in FSF. + +;;; Authorship: + +;; Created July 2000 by Ben Wing. + +;;; Commentary: + +;; This file will be dumped with XEmacs. + +;;; Code: + +(require 'behavior) + +(define-behavior 'mouse-avoidance + "Mouse avoidance mode" + :title "Mouse Avoidance" + :enable #'(lambda () + (mouse-avoidance-mode 'animate)) + :disable #'(lambda () + (mouse-avoidance-mode 'none))) + +(define-behavior 'resize-minibuffer + "When this behavior is enabled, the minibuffer is dynamically resized to +contain the entire region of text put in it as you type. + +The maximum height to which the minibuffer can grow is controlled by the +variable `resize-minibuffer-window-max-height'. + +The variable `resize-minibuffer-window-exactly' determines whether the +minibuffer window should ever be shrunk to make it no larger than needed to +display its contents. + +When using a window system, it is possible for a minibuffer to be the sole +window in a frame. Since that window is already its maximum size, the only +way to make more text visible at once is to increase the size of the frame. +The variable `resize-minibuffer-frame' controls whether this should be +done. The variables `resize-minibuffer-frame-max-height' and +`resize-minibuffer-frame-exactly' are analogous to their window +counterparts." + :title "Resize Minibuffer Automatically" + :enable #'(lambda () + (resize-minibuffer-mode 1)) + :disable #'(lambda () + (resize-minibuffer-mode -1))) + +(define-behavior 'func-menu + "Suppose you have a file with a lot of functions in it. Well, this +package makes it easy to jump to any of those functions. The names of +the functions in the current buffer are automatically put into menubar +menu, you select one of the function-names and the point is moved to +that very function. The mark is pushed on the mark-ring, so you can +easily go back to where you were. Alternatively, you can use enter the +name of the desired function via the minibuffer which offers +completing read input. In addition, the name of the function before +point is optionally displayed in the modeline." + :title "Function Menu" + :require 'func-menu + :enable #'(lambda () + (add-hook 'find-file-hooks 'fume-add-menubar-entry) + (mapc #'(lambda (buffer) + (with-current-buffer buffer + (setq fume-display-in-modeline-p t) + (fume-add-menubar-entry))) + (buffer-list))) + :disable #'(lambda () + (remove-hook 'find-file-hooks 'fume-add-menubar-entry) + (fset 'widen (symbol-function 'fume-widen)) + (fset 'narrow-to-region (symbol-function 'narrow-to-region)) + (mapc #'(lambda (buffer) + (with-current-buffer buffer + (fume-remove-menubar-entry) + (setq fume-display-in-modeline-p nil) + (fume-remove-post-command-hook + 'fume-tickle-modeline) + (fume-remove-post-command-hook + 'fume-maybe-install-modeline-feature) + (fume-remove-post-command-hook + 'fume-rescan-buffer-trigger))) + (buffer-list)))) + +(define-behavior 'mwheel + "This code enables the use of the infamous 'wheel' on the new +crop of mice. Under XFree86 and the XSuSE X Servers, the wheel +events are sent as button4/button5 events, which are automatically +set up to do scrolling in the expected way. The actual way that the +scrolling works can be controlled by `mwheel-scroll-amount' and +`mwheel-follow-mouse'." + :title "Mouse Wheel Support" + :enable 'mwheel-install) + +(define-behavior 'recent-files +"Recent-files adds the menu \"Recent Files\" (or whatever name you +choose, see \"Customization:\" below) to Emacs's menubar. Its +entries are the files (and directories) that have recently been +opened by Emacs. You can open one of these files again by +selecting its entry in the \"Recent Files\" menu. The list of file +entries in this menu is preserved from one Emacs session to +another. You can prevent Emacs from saving this list by selecting +\"Don't save recent-files list on exit\" from the menu. If you have +disabled saving, you can re-enable it by selecting \"Save +recent-files list on exit\". + +The menu has permanent and non-permanent entries. Permanent +entries are marked with an asterisk in front of the filename. The +non-permanent entries are hidden in a submenu. + +Each time you open a file in Emacs, it is added as a non-permanent +entry to the menu. The value of `recent-files-number-of-entries' +determines how many non-permanent entries are held in the +menu. When the number of non-permanent entries reaches this value, +the least recently added non-permanent entry is removed from the +menu when another non-permanent entry is added. It is not removed +from the list, though; it may reappear when entries are deleted +from the list. The number of entries saved to disk is the value of +the variable `recent-files-number-of-saved-entries'. + +Permanent entries are not removed from the menu. You can make a +file entry permanent by selecting \"Make permanent\" (where + is the name of the current buffer) when the current +buffer holds this file. \"Make non-permanent\" makes the +file entry of the current buffer non-permanent. + +The command \"Kill buffer and delete entry\" is handy when +you have accidently opened a file but want to keep neither the +buffer nor the entry. + +You can erase the list of non-permanent entries by selecting +\"Erase non-permanent entries\" from the menu. + +Customization: + +There are lots of variables to control the behaviour of +recent-files. You do not have to change any of them if you like it +as it comes out of the box. However, you may want to look at these +options to make it behave different. + +`recent-files-number-of-entries' + Controls how many non-permanent entries are shown in the + recent-files list. The default is 15. + +`recent-files-number-of-saved-entries' + Controls how many non-permanent entries are saved to disk when + Emacs exits or recent-files-save-the-list is called. The + default is 50. + +`recent-files-save-file' + The name of the file where the recent-files list is saved + between Emacs session. You probably don't need to change this. + The default is \".recent-files.el\" in your home directory. + +`recent-files-dont-include' + A list of regular expressions for files that should not be + included into the recent-files list. This list is empty by + default. For instance, a list to exclude all .newsrc + files, all auto-save-files, and all files in the /tmp + directory (but not the /tmp directory itself) would look + like this: + (setq recent-files-dont-include + '(\"/\\.newsrc\" \"~$\" \"^/tmp/.\")) + The default is empty. + +`recent-files-use-full-names' + If the value of this variable is non-nil, the full pathnames of + the files are shown in the recent-files menu. Otherwise only + the filename part (or the last name component if it is a + directory) is shown in the menu. The default it t, i.e. show + full names. + +`recent-files-filename-replacements' + This is a list of pairs of regular expressions and replacement + strings. If a filename matches one of the regular expressions, + the matching part is replaced by the replacement string for + display in the recent-files menu. + Example: My home directory is \"/users/mmc/nickel/\". I want to + replace it with \"~/\". I also want to replace the directory + \"/imports/teleservices/mmc/avc2/\", where I work a lot, with + \".../avc2/\". The list then looks like + (setq recent-files-filename-replacements + '((\"/users/mmc/nickel/\" . \"~/\") + (\"/imports/teleservices/mmc/avc2/\" . \".../avc2/\"))) + Only the first match is replaced. So, if you have several + entries in this list that may match a filename simultaneously, + put the one you want to match (usually the most special) in + front of the others. The default is to replace the home + directory with \"~\". + +`recent-files-sort-function' + Contains a function symbol to sort the display of filenames in + the recent-files menu. Supplied are two functions, + 'recent-files-dont-sort and 'recent-files-sort-alphabetically. + The first, which is the default, preserves the order of \"most + recent on top\". + +`recent-files-permanent-submenu' + If this variable is non-nil, the permanent entries are put into + a separate submenu of the recent-files menu. The default is + nil. + +`recent-files-non-permanent-submenu' + If this variable is non-nil, the non-permanent entries are put + into a separate submenu of the recent-files menu. The default + is nil. (You can set both `recent-files-permanent-submenu' and + `recent-files-non-permanent-submenu' to t to have both lists in + separate submenus.) + +`recent-files-commands-submenu' + If this variable is non-nil, the commands if recent-files are + placed in a submenu of the recent-files menu. The default is + nil. + +`recent-files-commands-submenu-title' + If the commands are placed in a submenu, this string is used as + the title of the submenu. The default is \"Commands...\". + +`recent-files-actions-on-top' + If this variable is non-nil, the \"action\" menu entries (\"Make + permanent\" etc.) are put on top of the menu. Otherwise + they appear below the file entries or submenus. The default is + nil. + +`recent-files-permanent-first' + If this variable is t, the permanent entries are put first in + the recent-files menu, i.e. above the non-permanent entries. If + the value is nil, non-permanent entries appear first. If the + value is neither t nor nil, the entries are sorted according to + recent-files-sort-function. The default is 'sort. + +`recent-files-find-file-command' + This variable contains to commandto execute when a file entry + is selected from the menu. Usually this will be `find-file', + which is the default. + +KNOWN BUG: + - recent-files overwrites the recent-files-save-file + unconditionally when Emacs exits. If you have two Emacs + processes running, the one exiting later will overwrite the + file without merging in the new entries from the other Emacs + process. This can be avoided by disabling the save on exit from + the menu." + :title "Recent Files Menu" + :enable 'recent-files-initialize) + +(define-behavior 'filladapt + "These functions enhance the default behavior of Emacs' Auto Fill +mode and the commands `fill-paragraph', `lisp-fill-paragraph', +`fill-region-as-paragraph' and `fill-region'. + +The chief improvement is that the beginning of a line to be +filled is examined and, based on information gathered, an +appropriate value for fill-prefix is constructed. Also the +boundaries of the current paragraph are located. This occurs +only if the fill prefix is not already non-nil. + +The net result of this is that blurbs of text that are offset +from left margin by asterisks, dashes, and/or spaces, numbered +examples, included text from USENET news articles, etc. are +generally filled correctly with no fuss." + :title "Adaptive Filling" + :require 'filladapt + :enable #'(lambda () + (setq-default filladapt-mode t) + (mapc #'(lambda (buffer) + (with-current-buffer buffer + (unless filladapt-mode + (filladapt-mode 1)))) + (buffer-list))) + :disable #'(lambda () + (setq-default filladapt-mode nil) + (mapc #'(lambda (buffer) + (with-current-buffer buffer + (when filladapt-mode + (filladapt-mode -1)))) + (buffer-list)))) diff --text -u /dev/null 'xemacs-21.5.1/lisp/behavior.el' Index: ./lisp/behavior.el --- ./lisp/behavior.el Thu Jan 1 09:00:00 1970 +++ ./lisp/behavior.el Sat May 5 07:41:59 2001 @@ -0,0 +1,140 @@ +;;; behavior.el --- consistent interface onto behaviors + +;; Copyright (C) 2000, 2001 Ben Wing. + +;; Author: Ben Wing +;; Maintainer: XEmacs Development Team +;; Keywords: internal, dumped + +;; This file is part of XEmacs. + +;; XEmacs is free software; you can redistribute it and/or modify it +;; under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 2, or (at your option) +;; any later version. + +;; XEmacs is distributed in the hope that it will be useful, but +;; WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with XEmacs; see the file COPYING. If not, write to the +;; Free Software Foundation, 59 Temple Place - Suite 330, +;; Boston, MA 02111-1307, USA. + +;;; Synched up with: Not in FSF. + +;;; Authorship: + +;; Created July 2000 by Ben Wing. + +;;; Commentary: + +;; This file will be dumped with XEmacs. + +;;; Code: + +(defvar behavior-hash-table (make-hash-table)) + +(defvar behavior-history nil + "History of entered behaviors.") + +(defun define-behavior (name doc-string &rest cl-keys) + "Define a behavior named NAME. +DOC-STRING must be specified, a description of what the behavior does +when it's enabled and how to further control it (typically through +custom variables). Accepted keywords are + +:title A \"pretty\" version of the name, for use in menus. If omitted + a prettified name will be generated. +:require A single symbol or a list of such symbols, which need to be + present at enable time, or will be loaded using `require'. +:enable A function of no variables, which turns the behavior on. +:disable A function of no variables, which turns the behavior off. + +Behaviors are assumed to be global, and to take effect immediately; if +the underlying package is per-buffer, it may have to scan all existing +buffers and frob them. When a behavior is disabled, it should completely +go away *everywhere*, as if it were never invoked at all. + +The :disable keywords can be missing, although this is considered bad +practice. In such a case, attempting to disable the behavior will signal +an error unless you use the `force' option." + (cl-parsing-keywords + ((:title (capitalize-string-as-title (replace-in-string + (symbol-name name) "-" " "))) + :require + :enable + :disable) + () + (let ((entry (list :title cl-title :require cl-require + :enable cl-enable :disable cl-disable))) + (puthash name entry behavior-hash-table)))) + +(defun read-behavior (prompt &optional must-match initial-contents history + default-value) + "Return a behavior symbol from the minibuffer, prompting with string PROMPT. +If non-nil, optional second arg INITIAL-CONTENTS is a string to insert + in the minibuffer before reading. +Third arg HISTORY, if non-nil, specifies a history list. (It defaults to +`behavior-history'.) +Fourth arg DEFAULT-VALUE is the default value. If non-nil, it is used + for history command, and as the value to return if the user enters the + empty string." + (let ((result + (completing-read + prompt + (let ((table (let (lis) + (maphash #'(lambda (key val) + (push (cons key val) lis)) + behavior-hash-table) + (nreverse lis)))) + (mapc #'(lambda (aentry) + (setcar aentry (symbol-name + (car aentry)))) + table) + table) + nil must-match initial-contents + (or history 'behavior-history) + default-value))) + (if (and result (stringp result)) + (intern result) + result))) + +(defun behavior-enabled-p (name)) + +(defun enable-behavior (behavior &optional force) + "Enable the specified behavior." + (interactive (list (read-behavior "Enable Behavior: " t) current-prefix-arg)) + (let ((plist (gethash behavior behavior-hash-table))) + (or plist (error 'invalid-argument "Not a behavior" behavior)) + (let ((require (getf plist :require)) + (enable (getf plist :enable))) + (cond ((listp require) + (mapc #'(lambda (sym) (require sym)) require)) + ((symbolp require) + (require require)) + ((null require)) + (t (error 'invalid-argument "Invalid :require spec" require))) + (if enable (funcall enable))))) + +(defun disable-behavior (behavior &optional force) + "Disable the specified behavior." + (interactive (list (read-behavior "Disable Behavior: " t) + current-prefix-arg)) + (let ((plist (gethash behavior behavior-hash-table))) + (or plist (error 'invalid-argument "Not a behavior" behavior)) + (let ((require (getf plist :require)) + (disable (getf plist :disable))) + (cond ((listp require) + (mapc #'(lambda (sym) (require sym)) require)) + ((symbolp require) + (require require)) + ((null require)) + (t (error 'invalid-argument "Invalid :require spec" require))) + (if disable (funcall disable))))) + +(provide 'behavior) + +;;; finder-inf.el ends here diff --text -u 'xemacs-21.5.0/lisp/build-report.el' 'xemacs-21.5.1/lisp/build-report.el' Index: ./lisp/build-report.el --- ./lisp/build-report.el Fri Apr 13 18:11:23 2001 +++ ./lisp/build-report.el Sat May 5 19:50:24 2001 @@ -1,10 +1,8 @@ ;;; build-report.el --- Automatically formatted build reports for XEmacs -;; Copyright (C) 1997 Adrian Aichner +;; Copyright (C) 1997-2001 Adrian Aichner ;; Author: Adrian Aichner -;; Date: Sun., Apr. 20, 1997-2000. -;; Version: $Revision: 1.9 $ ;; Keywords: internal ;; This file is part of XEmacs. @@ -164,7 +162,7 @@ alias mk 'make \!* >>&\! \!$.err &' -under csh, so that you get beta.err went you run `mk beta'." +under csh, so that you get beta.err when you run `mk beta'." :type '(repeat :custom-show t :documentation-shown t diff --text -u 'xemacs-21.5.0/lisp/bytecomp-runtime.el' 'xemacs-21.5.1/lisp/bytecomp-runtime.el' Index: ./lisp/bytecomp-runtime.el --- ./lisp/bytecomp-runtime.el Fri Apr 13 03:21:12 2001 +++ ./lisp/bytecomp-runtime.el Sat May 5 19:50:24 2001 @@ -183,7 +183,253 @@ (funcall bodythunk) (setq after-load-alist (cons '(,file . (list 'lambda '() bodythunk)) after-load-alist)))))) - + + + +;;; Functions to cleanly eliminate warnings about undefined functions +;;; or variables when the code knows what it's doing. These macros DO +;;; NOT rely on any byte-compiler changes, and thus can be copied into +;;; a package and used within it. + +;; NOTE: As a result of the above requirement, the macros rely on +;; "tricks" to get the warnings suppressed. A cleaner way, of course, +;; would be to extend the byte compiler to provide a proper interface. + +;; #### Should we require an unquoted symbol rather than a quoted one, +;; as we currently do? The quoting gets no generality, as `eval' is +;; called at compile time. But most functions and macros want quoted +;; arguments, and I find it extremely confusing to deal with cases +;; such as `throw' requiring a quoted argument but `block' an unquoted +;; one. + +(put 'with-boundp 'lisp-indent-function 1) +(defmacro with-boundp (symbols &rest body) + "Evaluate BODY, but do not issue bytecomp warnings about SYMBOLS undefined. +SYMBOLS can be a symbol or a list of symbols and must be quoted. When +compiling this file, the warning `reference to free variable SYMBOL' +will not occur. This is a clean way to avoid such warnings. See also +`declare-boundp' and `if-boundp'." + (setq symbols (eval symbols)) + (unless (consp symbols) + (setq symbols (list symbols))) + `(progn + (declare (special ,@symbols)) + ,@body)) + +(put 'if-boundp 'lisp-indent-function 2) +(defmacro if-boundp (symbol then &rest else) + "Equivalent to (if (boundp SYMBOL) THEN ELSE) but handles bytecomp warnings. +When compiling this file, the warning `reference to free variable SYMBOL' +will not occur. This is a clean way to avoid such warnings. See also +`with-boundp' and `declare-boundp'." + `(with-boundp ,symbol + (if (boundp ,symbol) ,then ,@else))) + +(defmacro declare-boundp (symbol) + "Evaluate SYMBOL without bytecomp warnings about the symbol. +Sample usage is + + (declare-boundp gpm-minor-mode) + +which is equivalent to + + (with-fboundp 'gpm-minor-mode + gpm-minor-mode)" + `(with-boundp ',symbol ,symbol)) + +(defmacro globally-declare-boundp (symbol) + "Declare that all free uses of SYMBOL in this file are valid. +SYMBOL can also be a list of symbols. SYMBOL must be quoted. + +When compiling this file, the warning `reference to free variable +SYMBOL' will not occur regardless of where calls to SYMBOL occur in +the file. + +In general, you should *NOT* use this; use `declare-boundp', +`if-boundp', or `with-boundp' to wrap individual uses, as necessary. +That way, you're more likely to remember to put in the explicit checks +for the variable's existence that are usually necessary. However, +`globally-declare-boundp' is better in some circumstances, such as +when writing an ELisp package that makes integral use of +optionally-compiled-in functionality (typically, an interface onto a +system library) and checks for the existence of the functionality at +some entry point to the package. See `globally-declare-fboundp' for +more information." + (setq symbol (eval symbol)) + (if (not (consp symbol)) + (setq symbol (list symbol))) + `(progn + ;; (defvar FOO) has no side effects. + ,@(mapcar #'(lambda (sym) `(defvar ,sym)) symbol))) + +(defun byte-compile-with-fboundp (form) + (byte-compile-form (cons 'progn (cdr (cdr form)))) + ;; Unfortunately, byte-compile-unresolved-functions is used not only + ;; for unresolved-function warnings, but also in connection with the + ;; following warnings: + + ;; "defsubst %s was used before it was defined" + ;; "%s being defined to take %s%s, but was previously called with %s" + + ;; By hacking byte-compile-unresolved-functions like this, we + ;; effectively disable these warnings. But code should not be using + ;; `with-fboundp' with a function defined later on in the same + ;; file, so this is not a big deal. + + (let ((symbols (eval (car (cdr form))))) + (unless (consp symbols) + (setq symbols (list symbols))) + (setq symbols (mapcar #'(lambda (sym) (cons sym nil)) symbols)) + (setq byte-compile-unresolved-functions + (set-difference byte-compile-unresolved-functions symbols + :key #'car)) + )) + +;; EEEEEEEEVIL hack. We need to create our own byte-compilation +;; method so that the proper variables are bound while compilation +;; takes place (which is when the warnings get noticed and batched +;; up). What we really want to do is make `with-fboundp' a macro +;; that simply `progn's its BODY; but GOD DAMN IT, macros can't have +;; their own byte-compilation methods! So we make `with-fboundp' a +;; macro calling `with-fboundp-1', which is cleverly aliased to +;; progn. This way we can put a byte-compilation method on +;; `with-fboundp-1', and when interpreting, progn will duly skip +;; the first, quoted argument, i.e. the symbol name. (We could make +;; `with-fboundp-1' a regular function, but then we'd have to thunk +;; BODY and eval it at runtime. We could probably just do this using +;; (apply 'progn BODY), but the existing method is more obviously +;; guaranteed to work.) +;; +;; In defense, cl-macs.el does a very similar thing with +;; `cl-block-wrapper'. + +(put 'with-fboundp-1 'byte-compile 'byte-compile-with-fboundp) +(defalias 'with-fboundp-1 'progn) + +(put 'with-fboundp 'lisp-indent-function 1) +(defmacro with-fboundp (symbol &rest body) + "Evaluate BODY, but do not issue bytecomp warnings about SYMBOL. +SYMBOL must be quoted. When compiling this file, the warning `the +function SYMBOL is not known to be defined' will not occur. This is a +clean way to avoid such warnings. See also `declare-fboundp', +`if-fboundp', and `globally-declare-fboundp'." + `(with-fboundp-1 ,symbol ,@body)) + +(put 'if-fboundp 'lisp-indent-function 2) +(defmacro if-fboundp (symbol then &rest else) + "Equivalent to (if (fboundp SYMBOL) THEN ELSE) but handles bytecomp warnings. +When compiling this file, the warning `the function SYMBOL is not +known to be defined' will not occur. This is a clean way to avoid +such warnings. See also `declare-fboundp', `with-fboundp', and +`globally-declare-fboundp'." + `(with-fboundp ,symbol + (if (fboundp ,symbol) ,then ,@else))) + +(defmacro declare-fboundp (form) + "Execute FORM (a function call) without bytecomp warnings about the call. +Sample usage is + + (declare-fboundp (x-keysym-on-keyboard-sans-modifiers-p 'backspace)) + +which is equivalent to + + (with-fboundp 'x-keysym-on-keyboard-sans-modifiers-p + (x-keysym-on-keyboard-sans-modifiers-p 'backspace))" + `(with-fboundp ',(car form) ,form)) + +(defmacro globally-declare-fboundp (symbol) + "Declare that all calls to function SYMBOL in this file are valid. +SYMBOL can also be a list of symbols. SYMBOL must be quoted. + +When compiling this file, the warning `the function SYMBOL is not +known to be defined' will not occur regardless of where calls to +SYMBOL occur in the file. + +In general, you should *NOT* use this; use `declare-fboundp', +`if-fboundp', or `with-fboundp' to wrap individual uses, as necessary. +That way, you're more likely to remember to put in the explicit checks +for the function's existence that are usually necessary. However, +`globally-declare-fboundp' is better in some circumstances, such as +when writing an ELisp package that makes integral use of +optionally-compiled-in functionality (typically, an interface onto a +system library) and checks for the existence of the functionality at +some entry point to the package. The file `ldap.el' is a good +example: It provides a layer on top of the optional LDAP ELisp +primitives, makes calls to them throughout its code, and verifies the +presence of LDAP support at load time. Putting calls to +`declare-fboundp' throughout the code would be a major annoyance." + (when (cl-compiling-file) + (setq symbol (eval symbol)) + (if (not (consp symbol)) + (setq symbol (list symbol))) + ;; Another hack. This works because the autoload environment is + ;; currently used ONLY to suppress warnings, and the actual + ;; autoload definition is not used. (NOTE: With this definition, + ;; we will get spurious "multiple autoloads for %s" warnings if we + ;; have an autoload later in the file for any functions in SYMBOL. + ;; This is not something that code should ever do, though.) + (setq byte-compile-autoload-environment + (append (mapcar #'(lambda (sym) (cons sym nil)) symbol) + byte-compile-autoload-environment))) + nil) + +(defun byte-compile-with-byte-compiler-warnings-suppressed (form) + (let ((byte-compile-warnings byte-compile-warnings) + (types (car (cdr form)))) + (unless (consp types) + (setq types (list types))) + (if (eq byte-compile-warnings t) + (setq byte-compile-warnings byte-compile-default-warnings)) + (setq byte-compile-warnings (set-difference byte-compile-warnings types)) + (byte-compile-form (cons 'progn (cdr (cdr form)))))) + +;; Same hack here as with `with-fboundp'. +(put 'with-byte-compiler-warnings-suppressed-1 'byte-compile + 'byte-compile-with-byte-compiler-warnings-suppressed) +(defalias 'with-byte-compiler-warnings-suppressed-1 'progn) + +(put 'with-byte-compiler-warnings-suppressed 'lisp-indent-function 1) +(defmacro with-byte-compiler-warnings-suppressed (type &rest body) + "Evaluate BODY, but do not issue bytecomp warnings TYPE. +TYPE should be one of `redefine', `callargs', `subr-callargs', +`free-vars', `unresolved', `unused-vars', `obsolete', or `pedantic', +or a list of one or more of these symbols. (See `byte-compile-warnings'.) +TYPE must be quoted. + +NOTE: You should *NOT* under normal circumstances be using this! +There are better ways of avoiding most of these warnings. In particular: + +-- use (declare (special ...)) if you are making use of + dynamically-scoped variables. +-- use `with-fboundp', `declare-fboundp', `if-fboundp', or + `globally-declare-fboundp' to avoid warnings about undefined + functions when you know the function actually exists. +-- use `with-boundp', `declare-boundp', or `if-boundp' to avoid + warnings about undefined variables when you know the variable + actually exists. +-- use `with-obsolete-variable' or `with-obsolete-function' if you + are purposely using such a variable or function." + `(with-byte-compiler-warnings-suppressed-1 ,type ,@body)) + +;; #### These should be more clever. You could (e.g.) try fletting +;; `byte-compile-obsolete' or temporarily removing the obsolete info +;; from the symbol and putting it back with an unwind-protect. (Or +;; better, modify the byte-compiler to provide a proper solution, and +;; fix these macros to use it if available, or fall back on the way +;; below. Remember, these definitions need to work with an unchanged +;; byte compiler so that they can be copied and used in packages.) + +(put 'with-obsolete-variable 'lisp-indent-function 1) +(defmacro with-obsolete-variable (symbol &rest body) + "Evaluate BODY but do not warn about usage of obsolete variable SYMBOL. +SYMBOL must be quoted. See also `with-obsolete-function'." + `(with-byte-compiler-warnings-suppressed 'obsolete ,@body)) + +(put 'with-obsolete-function 'lisp-indent-function 1) +(defmacro with-obsolete-function (symbol &rest body) + "Evaluate BODY but do not warn about usage of obsolete function SYMBOL. +SYMBOL must be quoted. See also `with-obsolete-variable'." + `(with-byte-compiler-warnings-suppressed 'obsolete ,@body)) ;;; Interface to file-local byte-compiler parameters. @@ -222,8 +468,11 @@ unused-vars references to non-global variables bound but not referenced. unresolved calls to unknown functions. callargs lambda calls with args that don't match the definition. + subr-callargs calls to subrs with args that don't match the definition. redefine function cell redefined from a macro to a lambda or vice versa, or redefined to take a different number of arguments. + obsolete use of an obsolete function or variable. + pedantic warn of use of compatible symbols. If the first element if the list is `+' or `-' then the specified elements are added to or removed from the current set of warnings, instead of the diff --text -u 'xemacs-21.5.0/lisp/bytecomp.el' 'xemacs-21.5.1/lisp/bytecomp.el' Index: ./lisp/bytecomp.el --- ./lisp/bytecomp.el Fri Apr 13 03:21:12 2001 +++ ./lisp/bytecomp.el Sat May 5 19:50:31 2001 @@ -421,6 +421,12 @@ when an error occurs in a file. This is bound to t by `batch-byte-recompile-directory'.") +(defvar byte-recompile-ignore-uncompilable-mule-files t + "If non-nil, `byte-recompile-*' ignores non-ASCII .el files in a non-Mule +XEmacs. This assumes that such files have a -*- coding: ??? -*- magic +cookie in their first line or a ;;;###coding system: magic cookie +early in the file.") + (defvar byte-recompile-directory-recursively t "*If true, then `byte-recompile-directory' will recurse on subdirectories.") @@ -943,11 +949,63 @@ " at " (current-time-string) "\n") (setq byte-compile-current-file nil)))) +(defvar byte-compile-inbuffer) +(defvar byte-compile-outbuffer) + (defun byte-compile-warn (format &rest args) (setq format (apply 'format format args)) (if byte-compile-error-on-warn (error "%s" format) ; byte-compile-file catches and logs it (byte-compile-log-1 (concat "** " format) t) + + ;; This was a first attempt to add line numbers to the + ;; byte-compilation output. Unfortunately, it doesn't work + ;; perfectly: it reports the line number at the end of the form + ;; (which may be an entire function), rather than the line number + ;; of the actual problem. Doing this right is hard because we + ;; currently use the built-in Lisp parser to parse the entire form + ;; at once. What we basically need is a whole separate parser + ;; that annotates its output with line numbers. For example, we + ;; might modify the parser in lread.c so that, with the right + ;; option set, it replaces every Lisp object contained in the + ;; structure it returns with a cons of that object and the line + ;; number it was found on (determined by counting newlines, + ;; starting from some arbitrary point). You then have two + ;; options: (a) Modify the byte compiler so that everything that + ;; compiles a form deals with the new annotated form rather than + ;; the old one, or (b) The byte compiler saves this structure + ;; while converting it into a normal structure that's given to the + ;; various form handlers, which need no (or less) modification. + ;; In the former case, finding the line number is trivial because + ;; it's in the form. In the latter case, finding the line number + ;; depends on having a unique Lisp object that can be looked up in + ;; the annotated structure -- i.e. a list, vector, or string. + ;; You'd have to look at the various places where errors are spit + ;; out (not very many, really), and make sure that such a unique + ;; object is available. Then you do a depth-first search through + ;; the annotated structure to find the object. + ;; + ;; An alternative way of doing (b) that's probably much more + ;; efficient (and easier to implement) is simply to have the + ;; parser in lread.c annotate every unique object using a separate + ;; hash table. This also eliminates the need for a search to find + ;; the line number. In order to be fine-grained enough to get at + ;; every symbol in a form -- e.g. if we want to pinpoint a + ;; particular undefined variable in a function call -- we need to + ;; annotate every cons, not just each list. We still have + ;; (probably unimportant) problems with vectors, since all we have + ;; is the start of the vector. If we cared about this, we could + ;; store in the hash table a list of the line numbers for each + ;; item in the vector, not just its start. + ;; + ;; --ben + +; (byte-compile-log-1 (concat "** line: " +; (save-excursion +; (set-buffer byte-compile-inbuffer) +; (int-to-string (line-number))) +; " " +; format) t) ;;; RMS says: ;;; It is useless to flash warnings too fast to be read. ;;; Besides, they will all be shown at the end. @@ -1436,6 +1494,11 @@ ;; It is an ordinary file. Decide whether to compile it. (if (and (string-match emacs-lisp-file-regexp source) (not (auto-save-file-name-p source)) + ;; make sure not a mule file we can't handle. + (or (not byte-recompile-ignore-uncompilable-mule-files) + (featurep 'mule) + (not (find-coding-system-magic-cookie-in-file + source))) (setq dest (byte-compile-dest-file source)) (if (file-exists-p dest) ;; File was already compiled. @@ -1480,7 +1543,10 @@ (file-newer-than-file-p filename dest) (and force (or (eq 0 force) - (y-or-n-p (concat "Compile " filename "? ")))))) + (y-or-n-p (concat "Compile " filename "? "))))) + (or (not byte-recompile-ignore-uncompilable-mule-files) + (featurep 'mule) + (not (find-coding-system-magic-cookie-in-file filename)))) (byte-compile-file filename)))) ;;;###autoload @@ -1621,9 +1687,6 @@ (prin1 value (current-buffer)) (insert "\n")) ((message "%s" (prin1-to-string value))))))) - -(defvar byte-compile-inbuffer) -(defvar byte-compile-outbuffer) (defun byte-compile-from-buffer (byte-compile-inbuffer filename &optional eval) ;; buffer --> output-buffer, or buffer --> eval form, return nil diff --text -u 'xemacs-21.5.0/lisp/cl-extra.el' 'xemacs-21.5.1/lisp/cl-extra.el' Index: ./lisp/cl-extra.el --- ./lisp/cl-extra.el Fri Apr 13 03:21:13 2001 +++ ./lisp/cl-extra.el Sat May 5 19:50:35 2001 @@ -307,44 +307,47 @@ (defun cl-map-overlays (cl-func &optional cl-buffer cl-start cl-end cl-arg) (or cl-buffer (setq cl-buffer (current-buffer))) - (if (fboundp 'overlay-lists) + (with-fboundp '(overlay-start overlay-end overlays-at next-overlay-change) + (if-fboundp 'overlay-lists - ;; This is the preferred algorithm, though overlay-lists is undocumented. - (let (cl-ovl) - (save-excursion - (set-buffer cl-buffer) - (setq cl-ovl (overlay-lists)) - (if cl-start (setq cl-start (copy-marker cl-start))) - (if cl-end (setq cl-end (copy-marker cl-end)))) - (setq cl-ovl (nconc (car cl-ovl) (cdr cl-ovl))) - (while (and cl-ovl - (or (not (overlay-start (car cl-ovl))) - (and cl-end (>= (overlay-start (car cl-ovl)) cl-end)) - (and cl-start (<= (overlay-end (car cl-ovl)) cl-start)) - (not (funcall cl-func (car cl-ovl) cl-arg)))) - (setq cl-ovl (cdr cl-ovl))) - (if cl-start (set-marker cl-start nil)) - (if cl-end (set-marker cl-end nil))) + ;; This is the preferred algorithm, though overlay-lists is + ;; undocumented. + (let (cl-ovl) + (save-excursion + (set-buffer cl-buffer) + (setq cl-ovl (overlay-lists)) + (if cl-start (setq cl-start (copy-marker cl-start))) + (if cl-end (setq cl-end (copy-marker cl-end)))) + (setq cl-ovl (nconc (car cl-ovl) (cdr cl-ovl))) + (while (and cl-ovl + (or (not (overlay-start (car cl-ovl))) + (and cl-end (>= (overlay-start (car cl-ovl)) cl-end)) + (and cl-start (<= (overlay-end (car cl-ovl)) + cl-start)) + (not (funcall cl-func (car cl-ovl) cl-arg)))) + (setq cl-ovl (cdr cl-ovl))) + (if cl-start (set-marker cl-start nil)) + (if cl-end (set-marker cl-end nil))) - ;; This alternate algorithm fails to find zero-length overlays. - (let ((cl-mark (save-excursion (set-buffer cl-buffer) - (copy-marker (or cl-start (point-min))))) - (cl-mark2 (and cl-end (save-excursion (set-buffer cl-buffer) - (copy-marker cl-end)))) - cl-pos cl-ovl) - (while (save-excursion - (and (setq cl-pos (marker-position cl-mark)) - (< cl-pos (or cl-mark2 (point-max))) - (progn - (set-buffer cl-buffer) - (setq cl-ovl (overlays-at cl-pos)) - (set-marker cl-mark (next-overlay-change cl-pos))))) - (while (and cl-ovl - (or (/= (overlay-start (car cl-ovl)) cl-pos) - (not (and (funcall cl-func (car cl-ovl) cl-arg) - (set-marker cl-mark nil))))) - (setq cl-ovl (cdr cl-ovl)))) - (set-marker cl-mark nil) (if cl-mark2 (set-marker cl-mark2 nil))))) + ;; This alternate algorithm fails to find zero-length overlays. + (let ((cl-mark (save-excursion (set-buffer cl-buffer) + (copy-marker (or cl-start (point-min))))) + (cl-mark2 (and cl-end (save-excursion (set-buffer cl-buffer) + (copy-marker cl-end)))) + cl-pos cl-ovl) + (while (save-excursion + (and (setq cl-pos (marker-position cl-mark)) + (< cl-pos (or cl-mark2 (point-max))) + (progn + (set-buffer cl-buffer) + (setq cl-ovl (overlays-at cl-pos)) + (set-marker cl-mark (next-overlay-change cl-pos))))) + (while (and cl-ovl + (or (/= (overlay-start (car cl-ovl)) cl-pos) + (not (and (funcall cl-func (car cl-ovl) cl-arg) + (set-marker cl-mark nil))))) + (setq cl-ovl (cdr cl-ovl)))) + (set-marker cl-mark nil) (if cl-mark2 (set-marker cl-mark2 nil)))))) ;;; Support for `setf'. (defun cl-set-frame-visible-p (frame val) diff --text -u 'xemacs-21.5.0/lisp/code-files.el' 'xemacs-21.5.1/lisp/code-files.el' Index: ./lisp/code-files.el --- ./lisp/code-files.el Fri Apr 13 03:21:14 2001 +++ ./lisp/code-files.el Sat May 5 19:50:35 2001 @@ -204,53 +204,6 @@ ;(defun convert-mbox-coding-system (filename visit start end) ;... -(defun find-coding-system-magic-cookie () - "Look for the coding-system magic cookie in the current buffer. -The coding-system magic cookie is the exact string -\";;;###coding system: \" followed by a valid coding system symbol, -somewhere within the first 3000 characters of the file. If found, -the coding system symbol is returned; otherwise nil is returned. -Note that it is extremely unlikely that such a string would occur -coincidentally as the result of encoding some characters in a non-ASCII -charset, and that the spaces make it even less likely since the space -character is not a valid octet in any ISO 2022 encoding of most non-ASCII -charsets." - (save-excursion - (goto-char (point-min)) - (or (and (looking-at - "^[^\n]*-\\*-[^\n]*coding: \\([^ \t\n;]+\\)[^\n]*-\\*-") - (let ((codesys (intern (buffer-substring - (match-beginning 1)(match-end 1))))) - (if (find-coding-system codesys) codesys))) - ;; (save-excursion - ;; (let (start end) - ;; (and (re-search-forward "^;+[ \t]*Local Variables:" nil t) - ;; (setq start (match-end 0)) - ;; (re-search-forward "\n;+[ \t]*End:") - ;; (setq end (match-beginning 0)) - ;; (save-restriction - ;; (narrow-to-region start end) - ;; (goto-char start) - ;; (re-search-forward "^;;; coding: \\([^\n]+\\)$" nil t) - ;; ) - ;; (let ((codesys - ;; (intern (buffer-substring - ;; (match-beginning 1)(match-end 1))))) - ;; (if (find-coding-system codesys) codesys)) - ;; ))) - (let ((case-fold-search nil)) - (if (search-forward - ";;;###coding system: " (+ (point-min) 3000) t) - (let ((start (point)) - (end (progn - (skip-chars-forward "^ \t\n\r") - (point)))) - (if (> end start) - (let ((codesys (intern (buffer-substring start end)))) - (if (find-coding-system codesys) codesys))) - ))) - ))) - (defun load (file &optional noerror nomessage nosuffix) "Execute a file of Lisp code named FILE. First tries FILE with .elc appended, then tries with .el, @@ -270,7 +223,8 @@ (if (or (<= (length filename) 0) (null (setq path (locate-file filename load-path - (and (not nosuffix) '(".elc" ".el" "")))))) + (and (not nosuffix) + '(".elc" ".el" "")))))) (and (null noerror) (signal 'file-error (list "Cannot open load file" filename))) ;; now use the internal load to actually load the file. @@ -280,12 +234,10 @@ (string= ".elc" (downcase (substring path -4))))) (or (and (not elc) coding-system-for-read) ; prefer for source file ;; find magic-cookie - (save-excursion - (set-buffer (get-buffer-create " *load*")) - (erase-buffer) - (let ((coding-system-for-read 'raw-text)) - (insert-file-contents path nil 1 3001)) - (find-coding-system-magic-cookie)) + (let ((codesys (find-coding-system-magic-cookie-in-file path))) + (when codesys + (setq codesys (intern codesys)) + (if (find-coding-system codesys) codesys))) (if elc ;; if reading a byte-compiled file and we didn't find ;; a coding-system magic cookie, then use `binary'. diff --text -u 'xemacs-21.5.0/lisp/coding.el' 'xemacs-21.5.1/lisp/coding.el' Index: ./lisp/coding.el --- ./lisp/coding.el Fri Apr 13 03:21:14 2001 +++ ./lisp/coding.el Sat May 5 19:50:35 2001 @@ -31,6 +31,10 @@ ;;; Code: +(globally-declare-fboundp + '(coding-system-lock-shift + coding-system-seven coding-system-charset charset-dimension)) + (defalias 'check-coding-system 'get-coding-system) (defconst modeline-multibyte-status '("%C") @@ -105,8 +109,8 @@ (get-coding-system coding-system) ; correctness check (setq keyboard-coding-system coding-system) (if (eq (device-type) 'tty) - (set-console-tty-input-coding-system - (device-console) keyboard-coding-system)) + (declare-fboundp (set-console-tty-input-coding-system + (device-console) keyboard-coding-system))) (redraw-modeline t)) (defsubst terminal-coding-system () @@ -120,8 +124,8 @@ (setq terminal-coding-system coding-system) ; #### should this affect all current tty consoles ? (if (eq (device-type) 'tty) - (set-console-tty-output-coding-system - (device-console) terminal-coding-system)) + (declare-fboundp (set-console-tty-output-coding-system + (device-console) terminal-coding-system))) (redraw-modeline t)) (defun set-pathname-coding-system (coding-system) @@ -193,6 +197,62 @@ 0 (string-match "-unix$\\|-dos$\\|-mac$" (symbol-name (coding-system-name coding-system)))))))) + + +;;; #### bleagh!!!!!!! + +(defun coding-system-get (coding-system prop) + "Extract a value from CODING-SYSTEM's property list for property PROP." + (or (plist-get + (get (coding-system-name coding-system) 'coding-system-property) + prop) + (condition-case nil + (coding-system-property coding-system prop) + (error nil)))) + +(defun coding-system-put (coding-system prop value) + "Change value in CODING-SYSTEM's property list PROP to VALUE." + (put (coding-system-name coding-system) + 'coding-system-property + (plist-put (get (coding-system-name coding-system) + 'coding-system-property) + prop value))) + +(defun coding-system-category (coding-system) + "Return the coding category of CODING-SYSTEM." + (or (coding-system-get coding-system 'category) + (let ((type (coding-system-type coding-system))) + (cond ((eq type 'no-conversion) + 'no-conversion) + ((eq type 'shift-jis) + 'shift-jis) + ((eq type 'ucs-4) + 'ucs-4) + ((eq type 'utf-8) + 'utf-8) + ((eq type 'big5) + 'big5) + ((eq type 'iso2022) + (cond ((coding-system-lock-shift coding-system) + 'iso-lock-shift) + ((coding-system-seven coding-system) + 'iso-7) + (t + (let ((dim 0) + ccs + (i 0)) + (while (< i 4) + (setq ccs (coding-system-charset coding-system i)) + (if (and ccs + (> (charset-dimension ccs) dim)) + (setq dim (charset-dimension ccs)) + ) + (setq i (1+ i))) + (cond ((= dim 1) 'iso-8-1) + ((= dim 2) 'iso-8-2) + (t 'iso-8-designate)) + )))))))) + ;;;; Definitions of predefined coding systems diff --text -u 'xemacs-21.5.0/lisp/console.el' 'xemacs-21.5.1/lisp/console.el' Index: ./lisp/console.el --- ./lisp/console.el Sun Nov 9 16:06:29 1997 +++ ./lisp/console.el Sat May 5 19:50:35 2001 @@ -41,7 +41,8 @@ "Resume the consoles with a controlling process of PID." (mapc (lambda (c) (if (and (eq (console-type c) 'tty) - (eql pid (console-tty-controlling-process c))) + (eql pid + (declare-fboundp (console-tty-controlling-process c)))) (resume-console c))) (console-list)) nil) diff --text -u 'xemacs-21.5.0/lisp/cus-edit.el' 'xemacs-21.5.1/lisp/cus-edit.el' Index: ./lisp/cus-edit.el --- ./lisp/cus-edit.el Fri Apr 13 03:21:15 2001 +++ ./lisp/cus-edit.el Mon Apr 30 23:07:47 2001 @@ -304,7 +304,7 @@ obarray (lambda (symbol) (and (boundp symbol) (or (get symbol 'custom-type) - (user-variable-p symbol)))) + (user-variable-p symbol)))) t nil nil (and v (symbol-name v)))) (list (if (equal val "") (if (symbolp v) v nil) @@ -562,14 +562,24 @@ children))) (defun Custom-save () - "Set all modified group members and save them." + "Set all modified options and save them." (interactive) - (let ((children custom-options)) + (let ((all-children custom-options) + children) (mapc (lambda (child) (when (memq (widget-get child :custom-state) '(modified set)) - (widget-apply child :custom-save))) - children)) - (custom-save-all)) + (push child children))) + all-children) + (let ((the-children children) + child) + (while (setq child (pop the-children)) + (widget-apply child :custom-pre-save))) + (custom-save-all) + (let ((the-children children) + child) + (while (setq child (pop the-children)) + (widget-apply child :custom-post-save))) + )) (defvar custom-reset-menu '(("Current" . Custom-reset-current) @@ -610,11 +620,23 @@ (defun Custom-reset-standard (&rest ignore) "Reset all modified, set, or saved group members to their standard settings." (interactive) - (let ((children custom-options)) + (let ((all-children custom-options) + children must-save) (mapc (lambda (child) - (when (eq (widget-get child :custom-state) 'modified) - (widget-apply child :custom-reset-standard))) - children))) + (when (memq (widget-get child :custom-state) '(modified set saved)) + (push child children))) + all-children) + (let ((the-children children) + child) + (while (setq child (pop the-children)) + (and (widget-apply child :custom-pre-reset-standard) + (setq must-save t)))) + (and must-save (custom-save-all)) + (let ((the-children children) + child) + (while (setq child (pop the-children)) + (widget-apply child :custom-post-reset-standard))) + )) ;;; The Customize Commands @@ -1848,10 +1870,14 @@ :value-create 'custom-variable-value-create :action 'custom-variable-action :custom-set 'custom-variable-set + :custom-pre-save 'custom-variable-pre-save :custom-save 'custom-variable-save + :custom-post-save 'custom-variable-post-save :custom-reset-current 'custom-redraw :custom-reset-saved 'custom-variable-reset-saved - :custom-reset-standard 'custom-variable-reset-standard) + :custom-pre-reset-standard 'custom-variable-pre-reset-standard + :custom-reset-standard 'custom-variable-reset-standard + :custom-post-reset-standard 'custom-variable-post-reset-standard) (defun custom-variable-type (symbol) "Return a widget suitable for editing the value of SYMBOL. @@ -2175,8 +2201,8 @@ (custom-variable-state-set widget) (custom-redraw-magic widget))) -(defun custom-variable-save (widget) - "Set and save the value for the variable being edited by WIDGET." +(defun custom-variable-pre-save (widget) + "Prepare for saving the value for the variable being edited by WIDGET." (let* ((form (widget-get widget :custom-form)) (state (widget-get widget :custom-state)) (child (car (widget-get widget :children))) @@ -2213,15 +2239,24 @@ child)))) (custom-push-theme 'theme-value symbol 'user 'set (list (custom-quote (widget-value - child)))) + child)))) (funcall set symbol (widget-value child)) (put symbol 'variable-comment comment) (put symbol 'saved-variable-comment comment))) (put symbol 'customized-value nil) (put symbol 'customized-variable-comment nil) - (custom-save-all) - (custom-variable-state-set widget) - (custom-redraw-magic widget))) + )) + +(defun custom-variable-post-save (widget) + "Finish saving the variable being edited by WIDGET." + (custom-variable-state-set widget) + (custom-redraw-magic widget)) + +(defun custom-variable-save (widget) + "Set and save the value for the variable being edited by WIDGET." + (custom-variable-pre-save widget) + (custom-save-all) + (custom-variable-post-save widget)) (defun custom-variable-reset-saved (widget) "Restore the saved value for the variable being edited by WIDGET." @@ -2242,8 +2277,10 @@ ;; This call will possibly make the comment invisible (custom-redraw widget))) -(defun custom-variable-reset-standard (widget) - "Restore the standard setting for the variable being edited by WIDGET." +;; This function returns non nil if we need to re-save the options --dv. +(defun custom-variable-pre-reset-standard (widget) + "Prepare for restoring the variable being edited by WIDGET to its +standard setting." (let* ((symbol (widget-value widget)) (set (or (get symbol 'custom-set) 'set-default))) (if (get symbol 'standard-value) @@ -2256,14 +2293,26 @@ (put symbol 'saved-value nil) (custom-push-theme 'theme-value symbol 'user 'reset 'standard) ;; As a special optimizations we do not (explictly) - ;; save resets to standard when no theme set the value. + ;; save resets to standard when no theme sets the value. (if (null (cdr (get symbol 'theme-value))) (put symbol 'theme-value nil)) (put symbol 'saved-variable-comment nil) - (custom-save-all)) - (widget-put widget :custom-state 'unknown) - ;; This call will possibly make the comment invisible - (custom-redraw widget))) + widget) + )) + +(defun custom-variable-post-reset-standard (widget) + "Finish resetting the variable being edited by WIDGET to its standard +value." + (widget-put widget :custom-state 'unknown) + ;; This call will possibly make the comment invisible + (custom-redraw widget)) + +(defun custom-variable-reset-standard (widget) + "Restore the standard setting for the variable being edited by WIDGET." + (when (custom-variable-pre-reset-standard widget) + (custom-save-all)) + (custom-variable-post-reset-standard widget)) + ;;; The `custom-face-edit' Widget. @@ -2390,10 +2439,14 @@ :custom-category 'face :custom-form nil ; defaults to value of `custom-face-default-form' :custom-set 'custom-face-set + :custom-pre-save 'custom-face-pre-save :custom-save 'custom-face-save + :custom-post-save 'custom-face-post-save :custom-reset-current 'custom-redraw :custom-reset-saved 'custom-face-reset-saved + :custom-pre-reset-standard 'custom-face-pre-reset-standard :custom-reset-standard 'custom-face-reset-standard + :custom-post-reset-standard 'custom-face-post-reset-standard :custom-menu 'custom-face-menu-create) (define-widget 'custom-face-all 'editable-list @@ -2636,8 +2689,8 @@ (custom-face-state-set widget) (custom-redraw-magic widget))) -(defun custom-face-save (widget) - "Make the face attributes in WIDGET default." +(defun custom-face-pre-save (widget) + "Prepare for saving the face being edited by WIDGET." (let* ((symbol (widget-value widget)) (child (car (widget-get widget :children))) (value (widget-value child)) @@ -2655,12 +2708,21 @@ (put symbol 'face-comment comment) (put symbol 'customized-face-comment nil) (put symbol 'saved-face-comment comment) - (custom-save-all) - (custom-face-state-set widget) - (custom-redraw-magic widget))) + )) + +(defun custom-face-post-save (widget) + "Finish saving the face being edited by WIDGET." + (custom-face-state-set widget) + (custom-redraw-magic widget)) + +(defun custom-face-save (widget) + "Save the face being edited by WIDGET." + (custom-face-pre-save widget) + (custom-save-all) + (custom-face-post-save widget)) (defun custom-face-reset-saved (widget) - "Restore WIDGET to the face's default attributes." + "Reset the face being edited by WIDGET to its saved value." (let* ((symbol (widget-value widget)) (child (car (widget-get widget :children))) (value (get symbol 'saved-face)) @@ -2678,12 +2740,12 @@ (custom-face-state-set widget) (custom-redraw-magic widget))) -(defun custom-face-reset-standard (widget) - "Restore WIDGET to the face's standard settings." +;; This function returns non nil if we need to re-save the options --dv. +(defun custom-face-pre-reset-standard (widget) + "Prepare for restoring the face edited by WIDGET to its standard +settings." (let* ((symbol (widget-value widget)) - (child (car (widget-get widget :children))) - (value (get symbol 'face-defface-spec)) - (comment-widget (widget-get widget :comment-widget))) + (value (get symbol 'face-defface-spec))) (unless value (signal 'error (list "No standard setting for this face" symbol))) (put symbol 'customized-face nil) @@ -2695,14 +2757,30 @@ (if (null (cdr (get symbol 'theme-face))) (put symbol 'theme-face nil)) (put symbol 'saved-face-comment nil) - (custom-save-all)) + widget) + )) + +(defun custom-face-post-reset-standard (widget) + "Finish restoring the face edited by WIDGET to its standard settings." + (let* ((symbol (widget-value widget)) + (child (car (widget-get widget :children))) + (value (get symbol 'face-defface-spec)) + (comment-widget (widget-get widget :comment-widget))) (face-spec-set symbol value nil '(custom)) (put symbol 'face-comment nil) (widget-value-set child value) ;; This call manages the comment visibility (widget-value-set comment-widget "") (custom-face-state-set widget) - (custom-redraw-magic widget))) + (custom-redraw-magic widget) + )) + +(defun custom-face-reset-standard (widget) + "Restore the face edited by WIDGET to its standard settings." + (when (custom-face-pre-reset-standard widget) + (custom-save-all)) + (custom-face-post-reset-standard widget)) + ;;; The `face' Widget. @@ -2875,10 +2953,14 @@ :action 'custom-group-action :custom-category 'group :custom-set 'custom-group-set + :custom-pre-save 'custom-group-pre-save :custom-save 'custom-group-save + :custom-post-save 'custom-group-post-save :custom-reset-current 'custom-group-reset-current :custom-reset-saved 'custom-group-reset-saved + :custom-pre-reset-standard 'custom-group-pre-reset-standard :custom-reset-standard 'custom-group-reset-standard + :custom-post-reset-standard 'custom-group-post-reset-standard :custom-menu 'custom-group-menu-create) (defun custom-group-sample-face-get (widget) @@ -3187,14 +3269,28 @@ (widget-apply child :custom-set))) children))) -(defun custom-group-save (widget) +(defun custom-group-pre-save (widget) + "Prepare for saving all modified group members." + (let ((children (widget-get widget :children))) + (mapc (lambda (child) + (when (memq (widget-get child :custom-state) '(modified set)) + (widget-apply child :custom-pre-save))) + children))) + +(defun custom-group-post-save (widget) "Save all modified group members." (let ((children (widget-get widget :children))) (mapc (lambda (child) (when (memq (widget-get child :custom-state) '(modified set)) - (widget-apply child :custom-save))) + (widget-apply child :custom-post-save))) children))) +(defun custom-group-save (widget) + "Save all modified group members." + (custom-group-pre-save widget) + (custom-save-all) + (custom-group-post-save widget)) + (defun custom-group-reset-current (widget) "Reset all modified group members." (let ((children (widget-get widget :children))) @@ -3211,14 +3307,34 @@ (widget-apply child :custom-reset-saved))) children))) -(defun custom-group-reset-standard (widget) - "Reset all modified, set, or saved group members." +;; This function returns non nil when we need to re-save the options --dv. +(defun custom-group-pre-reset-standard (widget) + "Prepare for resetting all modified, set, or saved group members." + (let ((children (widget-get widget :children)) + must-save) + (mapc (lambda (child) + (when (memq (widget-get child :custom-state) + '(modified set saved)) + (and (widget-apply child :custom-pre-reset-standard) + (setq must-save t)))) + children) + must-save + )) + +(defun custom-group-post-reset-standard (widget) + "Finish resetting all modified, set, or saved group members." (let ((children (widget-get widget :children))) (mapc (lambda (child) (when (memq (widget-get child :custom-state) '(modified set saved)) - (widget-apply child :custom-reset-standard))) + (widget-apply child :custom-post-reset-standard))) children))) + +(defun custom-group-reset-standard (widget) + "Reset all modified, set, or saved group members." + (when (custom-group-pre-reset-standard widget) + (custom-save-all)) + (custom-group-post-reset-standard widget)) (defun custom-group-state-update (widget) "Update magic." diff --text -u 'xemacs-21.5.0/lisp/custom-load.el' 'xemacs-21.5.1/lisp/custom-load.el' Index: ./lisp/custom-load.el --- ./lisp/custom-load.el Fri Apr 13 03:21:16 2001 +++ ./lisp/custom-load.el Sat May 5 19:50:35 2001 @@ -4,89 +4,89 @@ (autoload 'custom-add-loads "cus-load") -(custom-add-loads 'extensions '("auto-show" "wid-edit")) -(custom-add-loads 'info-faces '("info")) -(custom-add-loads 'custom-buffer '("cus-edit")) -(custom-add-loads 'custom-faces '("cus-edit")) -(custom-add-loads 'auto-show '("auto-show")) -(custom-add-loads 'drag-n-drop '("dragdrop")) -(custom-add-loads 'mouse '("mouse" "mwheel")) -(custom-add-loads 'etags '("etags")) -(custom-add-loads 'package-tools '("package-get" "package-ui")) -(custom-add-loads 'widgets '("wid-browse" "wid-edit")) (custom-add-loads 'menu '("menubar-items")) -(custom-add-loads 'minibuffer '("simple" "minibuf")) -(custom-add-loads 'log-message '("simple")) -(custom-add-loads 'environment '("frame" "keydefs" "minibuf" "modeline" "window-xemacs" "menubar" "gutter" "toolbar-items" "cus-edit" "gnuserv" "sound" "x-init")) -(custom-add-loads 'sound '("sound")) +(custom-add-loads 'printing '("printer")) +(custom-add-loads 'frames '("frame" "window-xemacs" "gui" "gnuserv")) +(custom-add-loads 'hypermedia '("wid-edit")) +(custom-add-loads 'programming '("cus-edit")) +(custom-add-loads 'widget-faces '("wid-edit")) +(custom-add-loads 'dired '("files")) +(custom-add-loads 'help '("help" "cus-edit" "hyper-apropos" "info")) +(custom-add-loads 'languages '("lisp-mode" "cus-edit" "font-lock")) +(custom-add-loads 'matching '("simple" "isearch-mode" "hyper-apropos")) +(custom-add-loads 'internal '("cus-edit")) +(custom-add-loads 'processes '("process" "gnuserv")) +(custom-add-loads 'font-lock '("font-lock")) +(custom-add-loads 'backup '("files")) +(custom-add-loads 'custom-buffer '("cus-edit")) (custom-add-loads 'pui '("package-ui")) -(custom-add-loads 'terminals '("gnuserv")) -(custom-add-loads 'auto-save '("files" "auto-save")) +(custom-add-loads 'fill-comments '("simple")) +(custom-add-loads 'build-report '("build-report")) (custom-add-loads 'mail '("simple" "startup")) -(custom-add-loads 'custom-menu '("cus-edit")) -(custom-add-loads 'docs '("hyper-apropos" "info")) -(custom-add-loads 'tools '("etags" "hyper-apropos")) -(custom-add-loads 'editing-basics '("cmdloop" "simple" "files" "lisp")) -(custom-add-loads 'internal '("cus-edit")) +(custom-add-loads 'development '("process" "lisp-mode" "cus-edit")) +(custom-add-loads 'log-message '("simple")) +(custom-add-loads 'auto-save '("files" "auto-save")) (custom-add-loads 'help-appearance '("help" "help-macro")) -(custom-add-loads 'build-report '("build-report")) -(custom-add-loads 'buffers-menu '("menubar-items")) -(custom-add-loads 'hypermedia '("wid-edit")) -(custom-add-loads 'lisp '("lisp" "lisp-mode" "hyper-apropos")) +(custom-add-loads 'find-file '("files")) +(custom-add-loads 'package-tools '("package-get" "package-ui")) +(custom-add-loads 'widget-documentation '("wid-edit")) +(custom-add-loads 'build '("build-report")) +(custom-add-loads 'font-lock-faces '("font-lock")) +(custom-add-loads 'i18n '("cus-edit")) +(custom-add-loads 'custom-menu '("cus-edit")) +(custom-add-loads 'fill '("simple" "fill")) +(custom-add-loads 'display '("modeline" "toolbar" "scrollbar" "auto-show")) +(custom-add-loads 'terminals '("gnuserv")) +(custom-add-loads 'mouse '("mouse" "mwheel")) +(custom-add-loads 'dnd-debug '("dragdrop")) (custom-add-loads 'applications '("cus-edit")) -(custom-add-loads 'help '("help" "cus-edit" "hyper-apropos" "info")) -(custom-add-loads 'keyboard '("cmdloop")) -(custom-add-loads 'hyper-apropos-faces '("hyper-apropos")) -(custom-add-loads 'ldap '("ldap")) -(custom-add-loads 'widget-browse '("wid-browse")) +(custom-add-loads 'emacs '("faces" "help" "files" "cus-edit" "package-get")) (custom-add-loads 'data '("auto-save")) -(custom-add-loads 'warnings '("simple")) -(custom-add-loads 'widget-documentation '("wid-edit")) (custom-add-loads 'comm '("ldap")) -(custom-add-loads 'backup '("files")) -(custom-add-loads 'frames '("frame" "window-xemacs" "gui" "gnuserv")) -(custom-add-loads 'customize '("wid-edit" "cus-edit")) -(custom-add-loads 'custom-browse '("cus-edit")) -(custom-add-loads 'abbrev '("abbrev" "files")) -(custom-add-loads 'programming '("cus-edit")) -(custom-add-loads 'printing '("printer")) -(custom-add-loads 'toolbar '("toolbar-items")) -(custom-add-loads 'dired '("files")) -(custom-add-loads 'dnd-debug '("dragdrop")) (custom-add-loads 'package-get '("package-get")) -(custom-add-loads 'killing '("simple")) -(custom-add-loads 'widget-button '("wid-edit")) +(custom-add-loads 'lisp '("lisp" "lisp-mode" "hyper-apropos")) (custom-add-loads 'paren-blinking '("simple")) -(custom-add-loads 'find-file '("files")) -(custom-add-loads 'font-menu '("font-menu")) -(custom-add-loads 'files '("files")) -(custom-add-loads 'build '("build-report")) -(custom-add-loads 'font-lock '("font-lock")) -(custom-add-loads 'external '("process" "cus-edit")) -(custom-add-loads 'development '("process" "lisp-mode" "cus-edit")) (custom-add-loads 'gnuserv '("gnuserv")) -(custom-add-loads 'gutter '("gutter" "gutter-items")) -(custom-add-loads 'fill-comments '("simple")) -(custom-add-loads 'windows '("window" "window-xemacs")) -(custom-add-loads 'widget-faces '("wid-edit")) -(custom-add-loads 'languages '("lisp-mode" "cus-edit" "font-lock")) -(custom-add-loads 'fill '("simple" "fill")) -(custom-add-loads 'custom-magic-faces '("cus-edit")) -(custom-add-loads 'display '("modeline" "toolbar" "scrollbar" "auto-show")) -(custom-add-loads 'faces '("faces" "cus-edit" "font-lock" "font" "hyper-apropos" "info" "wid-edit")) -(custom-add-loads 'emacs '("faces" "help" "files" "cus-edit" "package-get")) -(custom-add-loads 'processes '("process" "gnuserv")) +(custom-add-loads 'toolbar '("toolbar-items")) +(custom-add-loads 'modeline '("modeline")) +(custom-add-loads 'drag-n-drop '("dragdrop")) +(custom-add-loads 'customize '("wid-edit" "cus-edit")) +(custom-add-loads 'buffers-tab '("gutter-items")) +(custom-add-loads 'widget-browse '("wid-browse")) +(custom-add-loads 'custom-browse '("cus-edit")) (custom-add-loads 'hyper-apropos '("hyper-apropos")) +(custom-add-loads 'custom-faces '("cus-edit")) +(custom-add-loads 'minibuffer '("simple" "minibuf")) +(custom-add-loads 'info '("toolbar-items" "info")) (custom-add-loads 'wp '("printer" "cus-edit")) (custom-add-loads 'vc '("files")) +(custom-add-loads 'keyboard '("cmdloop")) +(custom-add-loads 'docs '("hyper-apropos" "info")) (custom-add-loads 'isearch '("isearch-mode")) -(custom-add-loads 'font-lock-faces '("font-lock")) -(custom-add-loads 'modeline '("modeline")) +(custom-add-loads 'gutter '("gutter" "gutter-items")) +(custom-add-loads 'custom-magic-faces '("cus-edit")) +(custom-add-loads 'etags '("etags")) +(custom-add-loads 'info-faces '("info")) +(custom-add-loads 'widgets '("wid-browse" "wid-edit")) +(custom-add-loads 'auto-show '("auto-show")) +(custom-add-loads 'sound '("sound")) (custom-add-loads 'editing '("simple" "abbrev" "fill" "mouse" "dragdrop" "cus-edit")) -(custom-add-loads 'matching '("simple" "isearch-mode" "hyper-apropos")) -(custom-add-loads 'i18n '("cus-edit")) -(custom-add-loads 'info '("toolbar-items" "info")) +(custom-add-loads 'abbrev '("abbrev" "files")) +(custom-add-loads 'files '("files")) +(custom-add-loads 'environment '("frame" "keydefs" "minibuf" "modeline" "window-xemacs" "menubar" "gutter" "toolbar-items" "cus-edit" "gnuserv" "sound" "x-init")) +(custom-add-loads 'buffers-menu '("menubar-items")) +(custom-add-loads 'external '("process" "cus-edit")) +(custom-add-loads 'killing '("simple")) +(custom-add-loads 'editing-basics '("cmdloop" "simple" "files" "lisp")) +(custom-add-loads 'ldap '("ldap")) +(custom-add-loads 'extensions '("auto-show" "wid-edit")) +(custom-add-loads 'faces '("faces" "cus-edit" "font-lock" "font" "hyper-apropos" "info" "wid-edit")) +(custom-add-loads 'font-menu '("font-menu")) +(custom-add-loads 'widget-button '("wid-edit")) +(custom-add-loads 'tools '("etags" "hyper-apropos")) +(custom-add-loads 'warnings '("simple")) +(custom-add-loads 'hyper-apropos-faces '("hyper-apropos")) +(custom-add-loads 'windows '("window" "window-xemacs")) (custom-add-loads 'x '("gtk-faces" "x-faces")) -(custom-add-loads 'buffers-tab '("gutter-items")) ;;; custom-load.el ends here diff --text -u 'xemacs-21.5.0/lisp/dialog-gtk.el' 'xemacs-21.5.1/lisp/dialog-gtk.el' Index: ./lisp/dialog-gtk.el --- ./lisp/dialog-gtk.el Fri Apr 13 03:21:16 2001 +++ ./lisp/dialog-gtk.el Sat May 5 19:50:35 2001 @@ -32,6 +32,20 @@ (require 'gtk-password-dialog) (require 'gtk-file-dialog) +(globally-declare-fboundp +'(gtk-signal-connect + gtk-main-quit gtk-window-set-transient-for + gtk-widget-show-all gtk-main gtk-color-selection-dialog-new + gtk-color-selection-dialog-ok-button gtk-widget-hide-all + gtk-color-selection-get-color + gtk-color-selection-dialog-colorsel + gtk-color-selection-dialog-cancel-button gtk-widget-show-now + gtk-widget-grab-focus gtk-widget-destroy gtk-dialog-new + gtk-window-set-title gtk-container-set-border-width + gtk-box-set-spacing gtk-dialog-vbox gtk-container-add + gtk-label-new gtk-button-new-with-label + gtk-widget-set-sensitive gtk-widget-show gtk-dialog-action-area)) + (defun popup-builtin-open-dialog (keys) ;; Allowed keywords are: ;; @@ -48,7 +62,6 @@ ;; :no-read-only-return t/nil (let ((initial-filename (plist-get keys :initial-filename)) (clicked-ok nil) - (filename nil) (widget nil)) (setq widget (gtk-file-dialog-new :directory (plist-get keys :directory) @@ -76,7 +89,7 @@ (defun popup-builtin-color-dialog (keys) ;; Allowed keys: ;; :initial-color COLOR - (let ((initial-color (or (plist-get keys :initial-color) "white")) + (let (;(initial-color (or (plist-get keys :initial-color) "white")) (title (or (plist-get keys :title "Select color..."))) (dialog nil) (clicked-ok nil) diff --text -u 'xemacs-21.5.0/lisp/dialog.el' 'xemacs-21.5.1/lisp/dialog.el' Index: ./lisp/dialog.el --- ./lisp/dialog.el Fri Apr 13 03:21:17 2001 +++ ./lisp/dialog.el Mon May 7 16:50:40 2001 @@ -189,12 +189,10 @@ :spec The widget spec -- anything that can be passed to `make-glyph'. - :title The title of the frame. :parent The frame is made a child of this frame (defaults to the selected frame). - :properties Additional properties of the frame, as well as `dialog-frame-plist'. @@ -276,13 +274,21 @@ An 'msprinter device. :print-settings A printer settings object. +:allow-selection + t or nil -- whether the \"Selection\" button is enabled (defaults to nil). +:allow-pages + t or nil -- whether the \"Pages\" button and associated edit controls + are enabled (defaults to t). +:selected-page-button + `all', `selection', or `pages' -- which page button is initially + selected. -Exactly one of these keywords must be given. +Exactly one of :device and :print-settings must be given. The function brings up the Print dialog, where the user can -select a different printer and/or change printer options. Connection +select a different printer and/or change printer options. Connection name can change as a result of selecting a different printer device. If -a printer is specified, then changes are stored into the settings object +a device is specified, then changes are stored into the settings object currently selected into that printer. If a settings object is supplied, then changes are recorded into it, and, it it is selected into a printer, then changes are propagated to that printer @@ -290,29 +296,31 @@ Return value is nil if the user has canceled the dialog. Otherwise, it is a new plist, with the following properties: - name Printer device name, even if unchanged by the user. - from-page First page to print, 1-based. If not specified by the user, - then this value is not included in the plist. - to-page Last page to print, inclusive, 1-based. If not specified by - the user, then this value is not included in the plist. - copies Number of copies to print. Always returned. + name Printer device name, even if unchanged by the user. + from-page First page to print, 1-based. Returned if + `selected-page-button' is `pages'. + user, then this value is not included in the plist. + to-page Last page to print, inclusive, 1-based. Returned if + `selected-page-button' is `pages'. + copies Number of copies to print. Always returned. + selected-page-button Which page button was selected (`all', `selection', + or `pages'). The DEVICE is destroyed and an error is signaled in case of initialization problem with the new printer. -See also the `page-setup' and `print-setup' dialog boxes. +See also the `page-setup' dialog box type. --------------------------------------------------------------------------- For type `page-setup': This invokes the Windows standard Page Setup dialog. -This dialog is usually invoked in response to the Page Setup command, and -used to choose such parameters as page orientation, print margins etc. -Note that this dialog contains the \"Printer\" button, which invokes -the Printer Setup dialog (see `msprinter-print-setup-dialog') so that the -user can update the printer options or even select a different printer -as well. +This dialog is usually invoked in response to the Page Setup command, +and used to choose such parameters as page orientation, print margins +etc. Note that this dialog contains the \"Printer\" button, which +invokes the Printer Setup dialog so that the user can update the +printer options or even select a different printer as well. The keywords allowed are @@ -328,7 +336,7 @@ The function brings up the Page Setup dialog, where the user can select a different printer and/or change printer options. Connection name can change as a result of selecting a different printer -device. If a printer is specified, then changes are stored into the +device. If a device is specified, then changes are stored into the settings object currently selected into that printer. If a settings object is supplied, then changes are recorded into it, and, it it is selected into a printer, then changes are propagated to that printer @@ -341,45 +349,13 @@ Return value is nil if the user has canceled the dialog. Otherwise, it is a new plist, containing the new list of properties. +NOTE: The margin properties (returned by this function) are *NOT* stored +into the print-settings or device object. + The DEVICE is destroyed and an error is signaled in case of initialization problem with the new printer. -See also the `print' and `print-setup' dialogs. - ---------------------------------------------------------------------------- - -For type `print-setup': - -This invokes the Windows standard Print Setup dialog. -This dialog is usually invoked when the user selects the Printer Setup -command. - -The keywords allowed are - -:device - An 'msprinter device. -:print-settings - A printer settings object. - -Exactly one of these keywords must be given. - -The function brings up the Print Setup dialog, where the user -can select a different printer and/or change printer options. -Connection name can change as a result of selecting a different printer -device. If a printer is specified, then changes are stored into the -settings object currently selected into that printer. If a settings -object is supplied, then changes are recorded into it, and, it it is -selected into a printer, then changes are propagated to that printer -too. - -Return value is nil if the user has canceled the dialog. Otherwise, it -is a new plist, with the following properties: - name Printer device name, even if unchanged by the user. - -The printer device is destroyed and an error is signaled if new printer -is selected by the user, but cannot be initialized. - -See also the `print' and `page-setup' dialogs. +See also the `print' dialog box type. --------------------------------------------------------------------------- @@ -613,45 +589,44 @@ (setq frame (make-frame (append cl-properties - `(popup ,cl-parent initially-unmapped t - menubar-visible-p nil - has-modeline-p nil - default-toolbar-visible-p nil - top-gutter-visible-p t - top-gutter-height , - (* dfheight fonth) - top-gutter ,gutter-spec - minibuffer none - name ,name - modeline-shadow-thickness 0 - vertical-scrollbar-visible-p nil - horizontal-scrollbar-visible-p nil - unsplittable t - left ,(+ fleft (- (/ fwidth 2) - (/ (* dfwidth - fontw) - 2))) - top ,(+ ftop (- (/ fheight 2) - (/ (* dfheight - fonth) - 2))))))) + `(popup + ,cl-parent initially-unmapped t + menubar-visible-p nil + has-modeline-p nil + default-toolbar-visible-p nil + top-gutter-visible-p t + top-gutter-height ,(* dfheight fonth) + top-gutter ,gutter-spec + minibuffer none + name ,name + modeline-shadow-thickness 0 + vertical-scrollbar-visible-p nil + horizontal-scrollbar-visible-p nil + unsplittable t + left ,(+ fleft (- (/ fwidth 2) + (/ (* dfwidth + fontw) + 2))) + top ,(+ ftop (- (/ fheight 2) + (/ (* dfheight + fonth) + 2))))))) (set-face-foreground 'modeline [default foreground] frame) (set-face-background 'modeline [default background] frame) (unless unmapped (make-frame-visible frame)) (let ((newbuf (generate-new-buffer " *dialog box*"))) (set-buffer-dedicated-frame newbuf frame) (set-frame-property frame 'dialog-box-buffer newbuf) + (set-window-buffer (frame-root-window frame) newbuf) (with-current-buffer newbuf - ;; Should be frame specific, so - ;; we don't do this for now. - ;; (setq frame-title-format cl-title) - (make-local-hook 'delete-frame-hook) - (add-hook 'delete-frame-hook - #'(lambda (frame) - (kill-buffer - (frame-property - frame - 'dialog-box-buffer)))))) + (set (make-local-variable 'frame-title-format) + cl-title) + (add-local-hook 'delete-frame-hook + #'(lambda (frame) + (kill-buffer + (frame-property + frame + 'dialog-box-buffer)))))) frame))) (if cl-modal (dialog-box-modal-loop '(create-dialog-box-frame)) diff --text -u 'xemacs-21.5.0/lisp/dragdrop.el' 'xemacs-21.5.1/lisp/dragdrop.el' Index: ./lisp/dragdrop.el --- ./lisp/dragdrop.el Fri Apr 13 03:21:17 2001 +++ ./lisp/dragdrop.el Sat May 5 19:50:36 2001 @@ -304,7 +304,7 @@ (erase-buffer) (insert data) (and (featurep 'tm-view) - (mime/viewer-mode buf))) + (declare-fboundp (mime/viewer-mode buf)))) ((and (listp data) (= (length data) 3)) ;; change the internal content-type representation to the @@ -318,7 +318,8 @@ (and (featurep 'tm-view) ;; this list of (car data) should be done before ;; enqueing the event - (mime/viewer-mode buf (car data) (cadr data)))) + (declare-fboundp + (mime/viewer-mode buf (car data) (cadr data))))) (t (display-message 'error "Wrong drop data"))))) (undo-boundary) @@ -423,13 +424,13 @@ (defun gtk-start-drag (event data &optional type) (interactive "esi") (if (featurep 'gtk) - (gtk-start-drag-internal event data type) + (declare-fboundp (gtk-start-drag-internal event data type)) (error "GTK functionality not compiled in."))) (defun gtk-start-drag-region (event begin end) (interactive "_er") (if (featurep 'gtk) - (gtk-start-drag-internal event (buffer-substring-no-properties begin end) "text/plain") + (declare-fboundp (gtk-start-drag-internal event (buffer-substring-no-properties begin end) "text/plain")) (error "GTK functionality not compiled in."))) ;;; dragdrop.el ends here diff --text -u 'xemacs-21.5.0/lisp/dumped-lisp.el' 'xemacs-21.5.1/lisp/dumped-lisp.el' Index: ./lisp/dumped-lisp.el --- ./lisp/dumped-lisp.el Fri Apr 13 03:21:17 2001 +++ ./lisp/dumped-lisp.el Sat May 5 19:50:36 2001 @@ -30,6 +30,7 @@ "objects" "extents" "events" + "hash-table" "text-props" "process" ;; This is bad. network-streams may not be defined. (when-feature multicast "multicast") ; #+network-streams implicitly true diff --text -u 'xemacs-21.5.0/lisp/easymenu.el' 'xemacs-21.5.1/lisp/easymenu.el' Index: ./lisp/easymenu.el --- ./lisp/easymenu.el Fri Apr 13 03:21:17 2001 +++ ./lisp/easymenu.el Sat May 5 19:50:36 2001 @@ -159,7 +159,7 @@ ,doc (interactive "@e") (run-hooks 'activate-menubar-hook) - (setq zmacs-region-stays 't) + (setq zmacs-region-stays t) (popup-menu ,symbol))))) (defun easy-menu-change (&rest args) diff --text -u 'xemacs-21.5.0/lisp/etags.el' 'xemacs-21.5.1/lisp/etags.el' Index: ./lisp/etags.el --- ./lisp/etags.el Fri Apr 13 03:21:17 2001 +++ ./lisp/etags.el Sat May 5 19:50:38 2001 @@ -172,6 +172,11 @@ :type 'boolean :group 'etags) +(defcustom tags-check-parent-directories-for-tag-files t + "*If non-nil, look for TAGS files in all parent directories." + :type 'boolean + :group 'etags) + ;; Buffer tag tables. @@ -185,10 +190,13 @@ ;; Current directory (when (file-readable-p (concat default-directory "TAGS")) (push (concat default-directory "TAGS") result)) - ;; Parent directory - (let ((parent-tag-file (expand-file-name "../TAGS" default-directory))) - (when (file-readable-p parent-tag-file) - (push parent-tag-file result))) + ;; Parent directories + (when tags-check-parent-directories-for-tag-files + (let ((cur default-directory)) + (while (file-exists-p (setq cur (expand-file-name ".." cur))) + (let ((parent-tag-file (expand-file-name "TAGS" cur))) + (when (file-readable-p parent-tag-file) + (push parent-tag-file result)))))) ;; tag-table-alist (let* ((key (or buffer-file-name (concat default-directory (buffer-name)))) @@ -622,6 +630,7 @@ (autoload 'get-symbol-syntax-table "symbol-syntax") (defun find-tag-internal (tagname) + (let ((next (null tagname)) (tmpnext (null tagname)) ;; If tagname is a list: (TAGNAME), this indicates @@ -631,7 +640,7 @@ (exact-syntax-table (get-symbol-syntax-table (syntax-table))) tag-table-currently-matching-exact tag-target exact-tagname - tag-tables tag-table-point file linebeg startpos buf + tag-tables tag-table-point file linebeg line startpos buf offset found pat syn-tab) (when (consp tagname) (setq tagname (car tagname))) @@ -697,45 +706,117 @@ (if exact "matching" "containing") tagname)) (beginning-of-line) - (search-forward "\C-?") - (setq file (expand-file-name (file-of-tag) - ;; In XEmacs, this needs to be - ;; relative to: - (or (file-name-directory (car tag-tables)) - "./"))) - (setq linebeg (buffer-substring (1- (point)) (point-at-bol))) - (search-forward ",") - (setq startpos (read (current-buffer))) + + ;; from here down, synched with FSF 20.7 + ;; etags-snarf-tag and etags-goto-tag-location. --ben + + (if (save-excursion + (forward-line -1) + (looking-at "\f\n")) + (progn + ;; The match was for a source file name, not any tag + ;; within a file. Give text of t, meaning to go exactly + ;; to the location we specify, the beginning of the file. + (setq linebeg t + line nil + startpos 1) + (setq file + (expand-file-name (file-of-tag) + ;; In XEmacs, this needs to be + ;; relative to: + (or (file-name-directory (car tag-tables)) + "./")))) + (search-forward "\C-?") + (setq file + (expand-file-name (file-of-tag) + ;; In XEmacs, this needs to be + ;; relative to: + (or (file-name-directory (car tag-tables)) + "./"))) + (setq linebeg (buffer-substring (1- (point)) (point-at-bol))) + ;; Skip explicit tag name if present. + (search-forward "\001" (save-excursion (forward-line 1) (point)) t) + (if (looking-at "[0-9]") + (setq line (string-to-int (buffer-substring + (point) + (progn (skip-chars-forward "0-9") + (point)))))) + (search-forward ",") + (if (looking-at "[0-9]") + (setq startpos (string-to-int (buffer-substring + (point) + (progn (skip-chars-forward "0-9") + (point))))))) + ;; Leave point on the next line of the tags file. + (forward-line 1) (setq last-tag-data (nconc (list tagname (point) tag-table-currently-matching-exact) tag-tables)) (setq buf (find-file-noselect file)) + + ;; LINEBEG is the initial part of a line containing the tag and + ;; STARTPOS is the character position of LINEBEG within the file + ;; (starting from 1); LINE is the line number. If LINEBEG is t, + ;; it means the tag refers to exactly LINE or STARTPOS + ;; (whichever is present, LINE having preference, no searching). + ;; Either LINE or STARTPOS may be nil; STARTPOS is used if + ;; present. If the tag isn't exactly at the given position then + ;; look around that position using a search window which expands + ;; until it hits the start of file. + (with-current-buffer buf (save-excursion (save-restriction (widen) - ;; Here we search for PAT in the range [STARTPOS - OFFSET, - ;; STARTPOS + OFFSET], with increasing values of OFFSET. - ;; - ;; We used to set the initial offset to 1000, but the - ;; actual sources show that finer-grained control is - ;; needed (e.g. two `hash_string's in src/symbols.c.) So, - ;; I changed 100 to 100, and (* 3 offset) to (* 5 offset). - (setq offset 100) - (setq pat (concat "^" (regexp-quote linebeg))) - (or startpos (setq startpos (point-min))) - (while (and (not found) - (progn - (goto-char (- startpos offset)) - (not (bobp)))) - (setq found (re-search-forward pat (+ startpos offset) t)) - (setq offset (* 5 offset))) - ;; Finally, try finding it anywhere in the buffer. - (or found - (re-search-forward pat nil t) - (error "%s not found in %s" pat file)) - (beginning-of-line) - (setq startpos (point))))) + (if (eq linebeg t) + ;; Direct file tag. + (cond (line (goto-line line)) + (startpos (goto-char startpos)) + (t (error "etags.el BUG: bogus direct file tag"))) + ;; Here we search for PAT in the range [STARTPOS - OFFSET, + ;; STARTPOS + OFFSET], with increasing values of OFFSET. + ;; + ;; We used to set the initial offset to 1000, but the + ;; actual sources show that finer-grained control is + ;; needed (e.g. two `hash_string's in src/symbols.c.) So, + ;; I changed 1000 to 100, and (* 3 offset) to (* 5 offset). + (setq offset 100) + (setq pat (concat (if (eq selective-display t) + "\\(^\\|\^m\\)" "^") + (regexp-quote linebeg))) + + ;; The character position in the tags table is 0-origin. + ;; Convert it to a 1-origin Emacs character position. + (if startpos (setq startpos (1+ startpos))) + ;; If no char pos was given, try the given line number. + (or startpos + (if line + (setq startpos (progn (goto-line line) + (point))))) + (or startpos + (setq startpos (point-min))) + ;; First see if the tag is right at the specified location. + (goto-char startpos) + (setq found (looking-at pat)) + (while (and (not found) + (progn + (goto-char (- startpos offset)) + (not (bobp)))) + (setq found + (re-search-forward pat (+ startpos offset) t) + offset (* 5 offset))) ; expand search window + ;; Finally, try finding it anywhere in the buffer. + (or found + (re-search-forward pat nil t) + (error "Rerun etags: `%s' not found in %s" + pat file)))) + ;; Position point at the right place + ;; if the search string matched an extra Ctrl-m at the beginning. + (and (eq selective-display t) + (looking-at "\^m") + (forward-char 1)) + (beginning-of-line) + (setq startpos (point)))) (cons buf startpos)))) ;;;###autoload diff --text -u 'xemacs-21.5.0/lisp/faces.el' 'xemacs-21.5.1/lisp/faces.el' Index: ./lisp/faces.el --- ./lisp/faces.el Fri Apr 13 03:21:17 2001 +++ ./lisp/faces.el Sat May 5 19:50:40 2001 @@ -1030,7 +1030,9 @@ '(x) locale tags)) (when (featurep 'mswindows) (frob-face-property face 'font 'mswindows-make-font-bold - '(mswindows) locale tags)) + '(mswindows) locale tags) + (frob-face-property face 'font 'mswindows-make-font-bold + '(msprinter) locale tags)) ) '(([default] . [bold]) ([bold] . t) @@ -1060,7 +1062,9 @@ '(x) locale tags)) (when (featurep 'mswindows) (frob-face-property face 'font 'mswindows-make-font-italic - '(mswindows) locale tags)) + '(mswindows) locale tags) + (frob-face-property face 'font 'mswindows-make-font-italic + '(msprinter) locale tags)) ) '(([default] . [italic]) ([bold] . [bold-italic]) @@ -1091,7 +1095,9 @@ '(x) locale tags)) (when (featurep 'mswindows) (frob-face-property face 'font 'mswindows-make-font-bold-italic - '(mswindows) locale tags)) + '(mswindows) locale tags) + (frob-face-property face 'font 'mswindows-make-font-bold-italic + '(msprinter) locale tags)) ) '(([default] . [italic]) ([bold] . [bold-italic]) @@ -1121,7 +1127,9 @@ '(x) locale tags)) (when (featurep 'mswindows) (frob-face-property face 'font 'mswindows-make-font-unbold - '(mswindows) locale tags)) + '(mswindows) locale tags) + (frob-face-property face 'font 'mswindows-make-font-unbold + '(msprinter) locale tags)) ) '(([default] . t) ([bold] . [default]) @@ -1151,7 +1159,9 @@ '(x) locale tags)) (when (featurep 'mswindows) (frob-face-property face 'font 'mswindows-make-font-unitalic - '(mswindows) locale tags)) + '(mswindows) locale tags) + (frob-face-property face 'font 'mswindows-make-font-unitalic + '(msprinter) locale tags)) ) '(([default] . t) ([bold] . t) @@ -1174,7 +1184,9 @@ '(x) locale)) (when (featurep 'mswindows) (frob-face-property face 'font 'mswindows-find-smaller-font - '(mswindows) locale))) + '(mswindows) locale) + (frob-face-property face 'font 'mswindows-find-smaller-font + '(msprinter) locale))) (defun make-face-larger (face &optional locale) "Make the font of FACE be larger, if possible. @@ -1186,7 +1198,9 @@ '(x) locale)) (when (featurep 'mswindows) (frob-face-property face 'font 'mswindows-find-larger-font - '(mswindows) locale))) + '(mswindows) locale) + (frob-face-property face 'font 'mswindows-find-larger-font + '(msprinter) locale))) (defun invert-face (face &optional locale) "Swap the foreground and background colors of the face." @@ -1482,7 +1496,7 @@ ((framep locale) (frame-type locale)) (t nil)))) (cond ((or (and (not devtype) (featurep 'x)) (eq 'x devtype)) - (x-init-face-from-resources face locale)) + (declare-fboundp (x-init-face-from-resources face locale))) ((or (not devtype) (eq 'tty devtype)) ;; Nothing to do for TTYs? )))))) @@ -1494,11 +1508,11 @@ (init-face-from-resources face device)) ;; Then do any device-specific initialization. (cond ((eq 'x (device-type device)) - (x-init-device-faces device)) + (declare-fboundp (x-init-device-faces device))) ((eq 'gtk (device-type device)) - (gtk-init-device-faces device)) + (declare-fboundp (gtk-init-device-faces device))) ((eq 'mswindows (device-type device)) - (mswindows-init-device-faces device)) + (declare-fboundp (mswindows-init-device-faces device))) ;; Nothing to do for TTYs? ) (or (eq 'stream (device-type device)) @@ -1511,11 +1525,11 @@ (init-face-from-resources face frame)) ;; Then do any frame-specific initialization. (cond ((eq 'x (frame-type frame)) - (x-init-frame-faces frame)) + (declare-fboundp (x-init-frame-faces frame))) ((eq 'gtk (frame-type frame)) - (gtk-init-frame-faces frame)) + (declare-fboundp (gtk-init-frame-faces frame))) ((eq 'mswindows (frame-type frame)) - (mswindows-init-frame-faces frame)) + (declare-fboundp (mswindows-init-frame-faces frame))) ;; Is there anything which should be done for TTY's? ))) @@ -1530,8 +1544,8 @@ (loop for face in (face-list) do (init-face-from-resources face 'global)) ;; Further X frobbing. - (and (featurep 'x) (x-init-global-faces)) - (and (featurep 'gtk) (gtk-init-global-faces)) + (and (featurep 'x) (declare-fboundp (x-init-global-faces))) + (and (featurep 'gtk) (declare-fboundp (gtk-init-global-faces))) ;; for bold and the like, make the global specification be bold etc. ;; if the user didn't already specify a value. These will also be @@ -1687,9 +1701,10 @@ in that frame; otherwise change each frame." (while (not (find-face face)) (setq face (wrong-type-argument 'facep face))) - (let ((bitmap-path (ecase (console-type) - (x x-bitmap-file-path) - (mswindows mswindows-bitmap-file-path))) + (let ((bitmap-path + (ecase (console-type) + (x (declare-boundp x-bitmap-file-path)) + (mswindows (declare-boundp mswindows-bitmap-file-path)))) instantiator) (while (null diff --text -u 'xemacs-21.5.0/lisp/files.el' 'xemacs-21.5.1/lisp/files.el' Index: ./lisp/files.el --- ./lisp/files.el Fri Apr 13 03:21:18 2001 +++ ./lisp/files.el Sat May 5 19:50:43 2001 @@ -1708,6 +1708,52 @@ ;; Ordinary variable, really set it. (t (make-local-variable var) (set var val)))) + +(defun find-coding-system-magic-cookie-in-file (file) + "Look for the coding-system magic cookie in FILE. +The coding-system magic cookie is either the local variable specification +-*- ... coding: ... -*- on the first line, or the exact string +\";;;###coding system: \" somewhere within the first 3000 characters +of the file. If found, the coding system name (as a string) is returned; +otherwise nil is returned. Note that it is extremely unlikely that +either such string would occur coincidentally as the result of encoding +some characters in a non-ASCII charset, and that the spaces make it +even less likely since the space character is not a valid octet in any +ISO 2022 encoding of most non-ASCII charsets." + (save-excursion + (with-temp-buffer + (let ((coding-system-for-read 'raw-text)) + (insert-file-contents file nil 1 3001)) + (goto-char (point-min)) + (or (and (looking-at + "^[^\n]*-\\*-[^\n]*coding: \\([^ \t\n;]+\\)[^\n]*-\\*-") + (buffer-substring (match-beginning 1) (match-end 1))) + ;; (save-excursion + ;; (let (start end) + ;; (and (re-search-forward "^;+[ \t]*Local Variables:" nil t) + ;; (setq start (match-end 0)) + ;; (re-search-forward "\n;+[ \t]*End:") + ;; (setq end (match-beginning 0)) + ;; (save-restriction + ;; (narrow-to-region start end) + ;; (goto-char start) + ;; (re-search-forward "^;;; coding: \\([^\n]+\\)$" nil t) + ;; ) + ;; (let ((codesys + ;; (intern (buffer-substring + ;; (match-beginning 1)(match-end 1))))) + ;; (if (find-coding-system codesys) codesys)) + ;; ))) + (let ((case-fold-search nil)) + (if (search-forward + ";;;###coding system: " (+ (point-min) 3000) t) + (let ((start (point)) + (end (progn + (skip-chars-forward "^ \t\n\r") + (point)))) + (if (> end start) (buffer-substring start end)) + ))) + )))) (defcustom change-major-mode-with-file-name t "*Non-nil means \\[write-file] should set the major mode from the file name. @@ -1789,10 +1835,11 @@ (kill-local-variable 'backup-inhibited) ;; If buffer was read-only because of version control, ;; that reason is gone now, so make it writable. - (when (boundp 'vc-mode) - (if vc-mode - (setq buffer-read-only nil)) - (kill-local-variable 'vc-mode)) + (if-boundp 'vc-mode + (progn + (if vc-mode + (setq buffer-read-only nil)) + (kill-local-variable 'vc-mode))) ;; Turn off backup files for certain file names. ;; Since this is a permanent local, the major mode won't eliminate it. (and buffer-file-name @@ -2290,8 +2337,8 @@ ;; delete it now. (delete-auto-save-file-if-necessary recent-save) ;; Support VC `implicit' locking. - (when (fboundp 'vc-after-save) - (vc-after-save)) + (if-fboundp 'vc-after-save + (vc-after-save)) (run-hooks 'after-save-hook)) (display-message 'no-log "(No changes need to be saved)")))) @@ -2477,9 +2524,10 @@ ;; #### FSF has an EXIT-ACTION argument ;; to `view-buffer'. (view-buffer buf) - (setq view-exit-action - (lambda (ignore) - (exit-recursive-edit))) + (with-boundp 'view-exit-action + (setq view-exit-action + (lambda (ignore) + (exit-recursive-edit)))) (recursive-edit) ;; Return nil to ask about BUF again. nil) @@ -3223,8 +3271,10 @@ (defun file-remote-p (file-name) "Test whether FILE-NAME is looked for on a remote system." (cond ((not allow-remote-paths) nil) - ((featurep 'ange-ftp) (ange-ftp-ftp-path file-name)) - ((fboundp 'efs-ftp-path) (efs-ftp-path file-name)) + ((fboundp 'ange-ftp-ftp-path) + (declare-fboundp (ange-ftp-ftp-path file-name))) + ((fboundp 'efs-ftp-path) + (declare-fboundp (efs-ftp-path file-name))) (t nil))) ;; #### FSF has file-name-non-special here. diff --text -u 'xemacs-21.5.0/lisp/fill.el' 'xemacs-21.5.1/lisp/fill.el' Index: ./lisp/fill.el --- ./lisp/fill.el Fri Apr 13 03:21:18 2001 +++ ./lisp/fill.el Sat May 5 19:50:44 2001 @@ -128,7 +128,7 @@ (forward-char -1) (if (< (point) opoint) (forward-char)))) - (if (featurep 'mule) (kinsoku-process-extend))) + (if (featurep 'mule) (declare-fboundp (kinsoku-process-extend)))) (defun fill-end-of-sentence-p () (save-excursion @@ -458,7 +458,7 @@ ;; 97/3/14 jhod: Kinsoku ;(skip-chars-backward "^ \n" linebeg))) (fill-move-backward-to-break-point re-break-point linebeg))) - (if (featurep 'mule) (kinsoku-process)) + (if (featurep 'mule) (declare-fboundp (kinsoku-process))) ;end patch ;; If the left margin and fill prefix by themselves @@ -662,14 +662,13 @@ (fill-region-as-paragraph (point) end justify nosqueeze) (goto-char end))))))) -;; XEmacs addition: from Tim Bradshaw (defun fill-paragraph-or-region (arg) "Fill the current region, if it's active; otherwise, fill the paragraph. See `fill-paragraph' and `fill-region' for more information." (interactive "*P") (if (region-active-p) - (fill-region (point) (mark) arg) - (fill-paragraph arg))) + (call-interactively 'fill-region) + (call-interactively 'fill-paragraph))) (defconst default-justification 'left @@ -787,7 +786,7 @@ (defun find-space-insertable-point () "Search backward for a permissible point for inserting justification spaces." (if (boundp 'space-insertable) - (if (re-search-backward space-insertable nil t) + (if (re-search-backward (declare-boundp space-insertable) nil t) (progn (forward-char 1) t) nil) diff --text -u 'xemacs-21.5.0/lisp/font-lock.el' 'xemacs-21.5.1/lisp/font-lock.el' Index: ./lisp/font-lock.el --- ./lisp/font-lock.el Fri Apr 13 03:21:19 2001 +++ ./lisp/font-lock.el Sat May 5 19:50:47 2001 @@ -1237,40 +1237,38 @@ ;; syntactically-sectionize any more. Do we still ;; need the widen? (widen) - (let ((zmacs-region-stays - zmacs-region-stays)) ; protect from change! - (map-extents - #'(lambda (ex dummy-maparg) - ;; first expand the ranges to full lines, - ;; because that is what will be fontified; - ;; then use a range table to merge the - ;; ranges. (we could also do this simply using - ;; text properties. the range table code was - ;; here from a previous version of this code - ;; and works just as well.) - (let* ((beg (extent-start-position ex)) - (end (extent-end-position ex)) - (beg (progn (goto-char beg) - (beginning-of-line) - (point))) - (end (progn (goto-char end) - (forward-line 1) - (point)))) - (put-range-table beg end t - font-lock-range-table))) - nil nil nil nil nil 'font-lock-pending t) - ;; clear all pending extents first in case of error below. - (put-text-property (point-min) (point-max) - 'font-lock-pending nil) - (map-range-table - #'(lambda (beg end val) + (map-extents + #'(lambda (ex dummy-maparg) + ;; first expand the ranges to full lines, + ;; because that is what will be fontified; + ;; then use a range table to merge the + ;; ranges. (we could also do this simply using + ;; text properties. the range table code was + ;; here from a previous version of this code + ;; and works just as well.) + (let* ((beg (extent-start-position ex)) + (end (extent-end-position ex)) + (beg (progn (goto-char beg) + (beginning-of-line) + (point))) + (end (progn (goto-char end) + (forward-line 1) + (point)))) + (put-range-table beg end t + font-lock-range-table))) + nil nil nil nil nil 'font-lock-pending t) + ;; clear all pending extents first in case of error below. + (put-text-property (point-min) (point-max) + 'font-lock-pending nil) + (map-range-table + #'(lambda (beg end val) ;; This creates some unnecessary progress gauges. ;; (if (and (= beg (point-min)) ;; (= end (point-max))) ;; (font-lock-fontify-buffer) ;; (font-lock-fontify-region beg end))) - (font-lock-fontify-region beg end)) - font-lock-range-table))))))) + (font-lock-fontify-region beg end)) + font-lock-range-table)))))) font-lock-pending-buffer-table))) ;; Syntactic fontification functions. @@ -1664,12 +1662,12 @@ ((and (boundp 'lazy-shot-mode) lazy-shot-mode) (lazy-shot-mode -1)))) -;; Do something special for these packages after fontifying. I prefer a hook. +; Do something special for these packages after fontifying. I prefer a hook. (defun font-lock-after-fontify-buffer () (cond ((and (boundp 'fast-lock-mode) fast-lock-mode) - (fast-lock-after-fontify-buffer)) + (declare-fboundp (fast-lock-after-fontify-buffer))) ((and (boundp 'lazy-lock-mode) lazy-lock-mode) - (lazy-lock-after-fontify-buffer)))) + (declare-fboundp (lazy-lock-after-fontify-buffer))))) ;; Various functions. diff --text -u 'xemacs-21.5.0/lisp/font.el' 'xemacs-21.5.1/lisp/font.el' Index: ./lisp/font.el --- ./lisp/font.el Fri Apr 13 03:21:19 2001 +++ ./lisp/font.el Sat May 5 19:50:48 2001 @@ -1,34 +1,44 @@ ;;; font.el --- New font model + +;; Copyright (c) 1995, 1996 by William M. Perry (wmperry@cs.indiana.edu) +;; Copyright (c) 1996, 1997 Free Software Foundation, Inc. + ;; Author: wmperry +;; Maintainer: XEmacs Development Team ;; Created: 1997/09/05 15:44:37 -;; Version: 1.52 ;; Keywords: faces +;; Version: 1.52 -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; Copyright (c) 1995, 1996 by William M. Perry (wmperry@cs.indiana.edu) -;;; Copyright (c) 1996, 1997 Free Software Foundation, Inc. -;;; -;;; This file is part of GNU Emacs. -;;; -;;; 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 -;;; the Free Software Foundation; either version 2, or (at your option) -;;; any later version. -;;; -;;; GNU Emacs is distributed in the hope that it will be useful, -;;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Emacs; see the file COPYING. If not, write to the -;;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;;; Boston, MA 02111-1307, USA. -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; XEmacs is free software; you can redistribute it and/or modify it +;; under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 1, or (at your option) +;; any later version. + +;; XEmacs is distributed in the hope that it will be useful, but +;; WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with XEmacs; see the file COPYING. If not, write to the Free +;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +;; 02111-1307, USA. + +;;; Synched up with: Not in FSF + +;;; Commentary: + +;;; Code: + +(globally-declare-fboundp + '(x-list-fonts + mswindows-list-fonts ns-list-fonts internal-facep fontsetp get-font-info + get-fontset-info mswindows-define-rgb-color cancel-function-timers)) + +(globally-declare-boundp + '(global-face-data + x-font-regexp x-font-regexp-foundry-and-family)) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; The emacsen compatibility package - load it up before anything else -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (require 'cl) (eval-and-compile @@ -75,12 +85,6 @@ (require 'disp-table) -(if (not (fboundp '<<)) (fset '<< 'lsh)) -(if (not (fboundp '&)) (fset '& 'logand)) -(if (not (fboundp '|)) (fset '| 'logior)) -(if (not (fboundp '~)) (fset '~ 'lognot)) -(if (not (fboundp '>>)) (defun >> (value count) (<< value (- count)))) - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Lots of variables / keywords for use later in the program @@ -149,40 +153,40 @@ (defvar font-style-keywords nil) -(defsubst set-font-family (fontobj family) +(defun set-font-family (fontobj family) (aset fontobj 1 family)) -(defsubst set-font-weight (fontobj weight) +(defun set-font-weight (fontobj weight) (aset fontobj 3 weight)) -(defsubst set-font-style (fontobj style) +(defun set-font-style (fontobj style) (aset fontobj 5 style)) -(defsubst set-font-size (fontobj size) +(defun set-font-size (fontobj size) (aset fontobj 7 size)) -(defsubst set-font-registry (fontobj reg) +(defun set-font-registry (fontobj reg) (aset fontobj 9 reg)) -(defsubst set-font-encoding (fontobj enc) +(defun set-font-encoding (fontobj enc) (aset fontobj 11 enc)) -(defsubst font-family (fontobj) +(defun font-family (fontobj) (aref fontobj 1)) -(defsubst font-weight (fontobj) +(defun font-weight (fontobj) (aref fontobj 3)) -(defsubst font-style (fontobj) +(defun font-style (fontobj) (aref fontobj 5)) -(defsubst font-size (fontobj) +(defun font-size (fontobj) (aref fontobj 7)) -(defsubst font-registry (fontobj) +(defun font-registry (fontobj) (aref fontobj 9)) -(defsubst font-encoding (fontobj) +(defun font-encoding (fontobj) (aref fontobj 11)) (eval-when-compile @@ -194,13 +198,13 @@ (quote ,(intern (format "set-font-%s-p" attr))) (quote ,(intern (format "font-%s-p" attr))))) font-style-keywords)) - (defconst ,(intern (format "font-%s-mask" attr)) (<< 1 ,mask) + (defconst ,(intern (format "font-%s-mask" attr)) (lsh 1 ,mask) ,(format "Bitmask for whether a font is to be rendered in %s or not." attr)) (defun ,(intern (format "font-%s-p" attr)) (fontobj) ,(format "Whether FONTOBJ will be renderd in `%s' or not." attr) - (if (/= 0 (& (font-style fontobj) + (if (/= 0 (logand (font-style fontobj) ,(intern (format "font-%s-mask" attr)))) t nil)) @@ -209,9 +213,9 @@ attr) (cond (val - (set-font-style fontobj (| (font-style fontobj) - ,(intern - (format "font-%s-mask" attr))))) + (set-font-style fontobj (logior (font-style fontobj) + ,(intern + (format "font-%s-mask" attr))))) ((,(intern (format "font-%s-p" attr)) fontobj) (set-font-style fontobj (- (font-style fontobj) ,(intern @@ -254,7 +258,7 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Utility functions ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(defsubst set-font-style-by-keywords (fontobj styles) +(defun set-font-style-by-keywords (fontobj styles) (make-local-variable 'font-func) (declare (special font-func)) (if (listp styles) @@ -265,9 +269,8 @@ (setq font-func (car-safe (cdr-safe (assq styles font-style-keywords)))) (and (fboundp font-func) (funcall font-func fontobj t)))) -(defsubst font-properties-from-style (fontobj) - (let ((style (font-style fontobj)) - (todo font-style-keywords) +(defun font-properties-from-style (fontobj) + (let ((todo font-style-keywords) type func retval) (while todo (setq func (cdr (cdr (car todo))) @@ -394,7 +397,8 @@ (font-weight fontobj-2))) (set-font-family retval (font-unique (append (font-family fontobj-1) (font-family fontobj-2)))) - (set-font-style retval (| (font-style fontobj-1) (font-style fontobj-2))) + (set-font-style retval (logior (font-style fontobj-1) + (font-style fontobj-2))) (set-font-registry retval (or (font-registry fontobj-1) (font-registry fontobj-2))) (set-font-encoding retval (or (font-encoding fontobj-1) @@ -454,9 +458,9 @@ ((- "[-?]") (foundry "[^-]*") (family "[^-]*") - (weight "\\(bold\\|demibold\\|medium\\|black\\)") + ;(weight "\\(bold\\|demibold\\|medium\\|black\\)") (weight\? "\\([^-]*\\)") - (slant "\\([ior]\\)") + ;(slant "\\([ior]\\)") (slant\? "\\([^-]?\\)") (swidth "\\([^-]*\\)") (adstyle "\\([^-]*\\)") @@ -523,7 +527,6 @@ (not (string-match font-x-font-regexp fontname))) (make-font) (let ((family nil) - (style nil) (size nil) (weight (match-string 1 fontname)) (slant (match-string 2 fontname)) @@ -634,7 +637,6 @@ (font-family default) (x-font-families-for-device device))) (weight (or (font-weight fontobj) :medium)) - (style (font-style fontobj)) (size (or (if font-running-xemacs (font-size fontobj)) (font-size default))) @@ -717,9 +719,7 @@ (ns-font-families-for-device device))) (weight (or (font-weight fontobj) :medium)) (style (or (font-style fontobj) (list :normal))) - (size (font-size fontobj)) - (registry (or (font-registry fontobj) "*")) - (encoding (or (font-encoding fontobj) "*"))) + (size (font-size fontobj))) ;; Create a font, wow! (if (stringp family) (setq family (list family))) @@ -863,7 +863,6 @@ (family (or (font-family fontobj) (font-family default))) (weight (or (font-weight fontobj) :regular)) - (style (font-style fontobj)) (size (or (if font-running-xemacs (font-size fontobj)) (font-size default))) @@ -996,7 +995,6 @@ ;; create-device-hook. This is XEmacs 19.12+ specific (let ((faces (face-list 2)) (cur nil) - (font nil) (font-spec nil)) (while faces (setq cur (car faces) @@ -1012,8 +1010,7 @@ (if (devicep device-list) (setq device-list (list device-list))) (let* ((cur-device nil) - (font-spec (face-property face 'font-specification)) - (font nil)) + (font-spec (face-property face 'font-specification))) (if (not font-spec) ;; Hey! Don't mess with fonts we didn't create in the ;; first place. @@ -1189,14 +1186,14 @@ b 0))) (list r g b) )) -(defsubst font-rgb-color-p (obj) +(defun font-rgb-color-p (obj) (or (and (vectorp obj) (= (length obj) 4) (eq (aref obj 0) 'rgb)))) -(defsubst font-rgb-color-red (obj) (aref obj 1)) -(defsubst font-rgb-color-green (obj) (aref obj 2)) -(defsubst font-rgb-color-blue (obj) (aref obj 3)) +(defun font-rgb-color-red (obj) (aref obj 1)) +(defun font-rgb-color-green (obj) (aref obj 2)) +(defun font-rgb-color-blue (obj) (aref obj 3)) (defun font-color-rgb-components (color) "Return the RGB components of COLOR as a list of integers (R G B). @@ -1237,7 +1234,7 @@ (t (font-lookup-rgb-components color))))) -(defsubst font-tty-compute-color-delta (col1 col2) +(defun font-tty-compute-color-delta (col1 col2) (+ (* (- (aref col1 0) (aref col2 0)) (- (aref col1 0) (aref col2 0))) @@ -1295,7 +1292,7 @@ (tty (apply 'font-tty-find-closest-color (font-color-rgb-components color))) (ns - (let ((vals (mapcar #'(lambda (x) (>> x 8)) + (let ((vals (mapcar #'(lambda (x) (lsh x -8)) (font-color-rgb-components color)))) (apply 'format "RGB%02x%02x%02xff" vals))) (otherwise diff --text -u 'xemacs-21.5.0/lisp/frame.el' 'xemacs-21.5.1/lisp/frame.el' Index: ./lisp/frame.el --- ./lisp/frame.el Fri Apr 13 03:21:20 2001 +++ ./lisp/frame.el Sat May 5 19:50:50 2001 @@ -782,7 +782,8 @@ (cond ((device-on-window-system-p) (iconify-emacs)) ((and (eq (device-type) 'tty) - (console-tty-controlling-process (selected-console))) + (declare-fboundp (console-tty-controlling-process + (selected-console)))) (suspend-console (selected-console))) (t (suspend-emacs)))) @@ -797,7 +798,8 @@ (cond ((device-on-window-system-p) (iconify-frame)) ((and (eq (frame-type) 'tty) - (console-tty-controlling-process (selected-console))) + (declare-fboundp (console-tty-controlling-process + (selected-console)))) (suspend-console (selected-console))) (t (suspend-emacs)))) diff --text -u 'xemacs-21.5.0/lisp/gdk.el' 'xemacs-21.5.1/lisp/gdk.el' Index: ./lisp/gdk.el --- ./lisp/gdk.el Fri Apr 13 03:21:20 2001 +++ ./lisp/gdk.el Sat May 5 19:50:50 2001 @@ -31,6 +31,9 @@ (eval-and-compile (require 'gtk-ffi)) +(globally-declare-fboundp + '(gtk-import-function-internal gtk-call-function)) + (gtk-import-function nil gdk_set_show_events (gboolean . show_events)) (gtk-import-function nil gdk_set_use_xshm (gboolean . use_xshm)) (gtk-import-function GtkString gdk_get_display) diff --text -u 'xemacs-21.5.0/lisp/generic-widgets.el' 'xemacs-21.5.1/lisp/generic-widgets.el' Index: ./lisp/generic-widgets.el --- ./lisp/generic-widgets.el Fri Apr 13 03:21:20 2001 +++ ./lisp/generic-widgets.el Sat May 5 19:50:50 2001 @@ -28,6 +28,21 @@ ;; This file is dumped with XEmacs. +(globally-declare-fboundp + '(gtk-label-new + gtk-widget-show-all gtk-signal-connect + gtk-window-new gtk-container-add gtk-vbox-new gtk-hbox-new + gtk-box-pack-start gtk-notebook-new + gtk-notebook-set-homogeneous-tabs gtk-notebook-set-scrollable + gtk-notebook-set-show-tabs gtk-notebook-set-tab-pos + gtk-notebook-append-page gtk-text-new gtk-text-set-editable + gtk-text-set-word-wrap gtk-text-set-line-wrap + gtk-widget-set-style gtk-text-insert gtk-label-set-line-wrap + gtk-label-set-justify gtk-radio-button-new + gtk-radio-button-group gtk-check-button-new + gtk-toggle-button-new gtk-button-new gtk-progress-bar-new + gtk-progress-bar-set-orientation gtk-progress-bar-set-bar-style)) + (defun build-ui (ui) (if (null ui) (gtk-label-new "[empty]") @@ -222,6 +237,7 @@ (defun build-ui::radio-group (spec) "A convenience when specifying a group of radio buttons." + (declare (special build-ui::radio-group)) (let ((build-ui::radio-group nil)) (mapcar 'build-ui (plist-get (cdr spec) :items)))) @@ -236,10 +252,10 @@ NOTE: Radio buttons must be in a radio-group object for them to work. " - (let ((plist (cdr spec)) - (button nil) - (button-type (plist-get plist :type 'normal)) - (label nil)) + (declare (special build-ui::radio-group)) + (let* ((plist (cdr spec)) + (button nil) + (button-type (plist-get plist :type 'normal))) (case button-type (radio (if (not (boundp 'build-ui::radio-group)) diff --text -u 'xemacs-21.5.0/lisp/glade.el' 'xemacs-21.5.1/lisp/glade.el' Index: ./lisp/glade.el --- ./lisp/glade.el Fri Apr 13 03:21:20 2001 +++ ./lisp/glade.el Sat May 5 19:50:50 2001 @@ -31,6 +31,9 @@ (eval-and-compile (require 'gtk-ffi)) +(globally-declare-fboundp + '(gtk-import-function-internal gtk-call-function)) + (gtk-import-function none glade_init) (gtk-import-function none glade_gnome_init) (gtk-import-function none glade_bonobo_init) diff --text -u 'xemacs-21.5.0/lisp/gnome-widgets.el' 'xemacs-21.5.1/lisp/gnome-widgets.el' Index: ./lisp/gnome-widgets.el --- ./lisp/gnome-widgets.el Fri Apr 13 03:21:21 2001 +++ ./lisp/gnome-widgets.el Sat May 5 19:50:51 2001 @@ -31,6 +31,11 @@ (eval-and-compile (require 'gtk-ffi)) +(globally-declare-fboundp + '(gtk-import-function-internal + gtk-call-function + gtk-button-new-with-label)) + (gtk-import-function GtkType gnome_about_get_type) (gtk-import-function GtkWidget gnome_about_new (GtkString . title) diff --text -u 'xemacs-21.5.0/lisp/gnome.el' 'xemacs-21.5.1/lisp/gnome.el' Index: ./lisp/gnome.el --- ./lisp/gnome.el Fri Apr 13 03:21:21 2001 +++ ./lisp/gnome.el Sat May 5 19:50:51 2001 @@ -1,3 +1,8 @@ +(globally-declare-fboundp + '(gtk-type-from-name + gtk-import-function-internal + gtk-call-function)) + (defvar gnome-init-called nil) (defun gnome-init (app-id app-version argv) diff --text -u 'xemacs-21.5.0/lisp/gpm.el' 'xemacs-21.5.1/lisp/gpm.el' Index: ./lisp/gpm.el --- ./lisp/gpm.el Fri Apr 13 03:21:22 2001 +++ ./lisp/gpm.el Sat May 5 19:50:51 2001 @@ -26,25 +26,26 @@ :size 13 :weakness 'key) "A hash table of devices with GPM currently turned on.") - + (defun gpm-mode (&optional arg device) "Toggle GPM mouse mode. With prefix arg, turn GPM mouse mode on if and only if arg is positive." (interactive (list current-prefix-arg (selected-device))) - (cond - ((null arg) ; Toggle - (if (gethash device gpm-enabled-devices) - (progn - (gpm-enable device nil) - (remhash device gpm-enabled-devices)) + (with-fboundp 'gpm-enable + (cond + ((null arg) ; Toggle + (if (gethash device gpm-enabled-devices) + (progn + (gpm-enable device nil) + (remhash device gpm-enabled-devices)) + (gpm-enable device t) + (puthash device t gpm-enabled-devices))) + ((> arg 0) ; Turn on (gpm-enable device t) - (puthash device t gpm-enabled-devices))) - ((> arg 0) ; Turn on - (gpm-enable device t) - (puthash device t gpm-enabled-devices)) - ((gethash device gpm-enabled-devices) ; Turn off - (gpm-enable device nil) - (remhash device gpm-enabled-devices)))) + (puthash device t gpm-enabled-devices)) + ((gethash device gpm-enabled-devices) ; Turn off + (gpm-enable device nil) + (remhash device gpm-enabled-devices))))) (defun turn-on-gpm-mouse-tracking (&optional device) ;; Enable mouse tracking on linux console @@ -54,22 +55,24 @@ ;; Disable mouse tracking on linux console (gpm-mode -5 device)) +(defun gpm-is-supported-p (device) + "Returns non-nil if GPM is usable right now on DEVICE in this XEmacs session. +This checks whether GPM support was compiled in, TTY support was +compiled in, XEmacs is running on Linux, the current console/device is +TTY, and its terminal type has been set to `linux'." + (and (not noninteractive) ; Don't want to do this in batch mode + (fboundp 'gpm-enable) ; Must have C-level GPM support + (eq system-type 'linux) ; Must be running linux + (eq (device-type device) 'tty) ; on a tty + (equal "linux" (declare-fboundp ; an a linux terminal type + (console-tty-terminal-type (device-console device)))))) + (defun gpm-create-device-hook (device) - (if (and (not noninteractive) ; Don't want to do this in batch mode - (fboundp 'gpm-enable) ; Must have C-level GPM support - (eq system-type 'linux) ; Must be running linux - (eq (device-type device) 'tty) ; on a tty - (equal "linux" (console-tty-terminal-type ; an a linux terminal type - (device-console device)))) + (if (gpm-is-supported-p device) (turn-on-gpm-mouse-tracking device))) (defun gpm-delete-device-hook (device) - (if (and (not noninteractive) ; Don't want to do this in batch mode - (fboundp 'gpm-enable) ; Must have C-level GPM support - (eq system-type 'linux) ; Must be running linux - (eq (device-type device) 'tty) ; on a tty - (equal "linux" (console-tty-terminal-type ; an a linux terminal type - (device-console device)))) + (if (gpm-is-supported-p device) (turn-off-gpm-mouse-tracking device))) ;; Restore normal mouse behavior outside Emacs diff --text -u 'xemacs-21.5.0/lisp/gtk-extra.el' 'xemacs-21.5.1/lisp/gtk-extra.el' Index: ./lisp/gtk-extra.el --- ./lisp/gtk-extra.el Fri Apr 13 03:21:22 2001 +++ ./lisp/gtk-extra.el Sat May 5 19:50:52 2001 @@ -31,6 +31,9 @@ (eval-and-compile (require 'gtk-ffi)) +(globally-declare-fboundp + '(gtk-import-function-internal gtk-call-function)) + ;;; gtkbordercombo.h (gtk-import-function GtkType gtk_border_combo_get_type) (gtk-import-function GtkWidget gtk_border_combo_new) diff --text -u 'xemacs-21.5.0/lisp/gtk-faces.el' 'xemacs-21.5.1/lisp/gtk-faces.el' Index: ./lisp/gtk-faces.el --- ./lisp/gtk-faces.el Fri Apr 13 03:21:22 2001 +++ ./lisp/gtk-faces.el Sat May 5 19:50:52 2001 @@ -31,6 +31,16 @@ ;; This file is dumped with XEmacs (when GTK support is compiled in). +(globally-declare-fboundp + '(gtk-init-pointers + gtk-font-selection-dialog-new + gtk-widget-set-sensitive gtk-font-selection-dialog-apply-button + gtk-signal-connect gtk-main-quit + gtk-font-selection-dialog-ok-button + gtk-font-selection-dialog-get-font-name gtk-widget-destroy + font-menu-set-font font-family font-size + gtk-font-selection-dialog-cancel-button gtk-widget-show-all + gtk-main)) (defun gtk-init-find-device () (let ((dev nil) @@ -282,7 +292,6 @@ 'clicked (lambda (button data) (let* ((dialog (car data)) - (locale (cdr data)) (font (font-create-object (gtk-font-selection-dialog-get-font-name dialog)))) (gtk-widget-destroy dialog) diff --text -u 'xemacs-21.5.0/lisp/gtk-file-dialog.el' 'xemacs-21.5.1/lisp/gtk-file-dialog.el' Index: ./lisp/gtk-file-dialog.el --- ./lisp/gtk-file-dialog.el Fri Apr 13 03:21:23 2001 +++ ./lisp/gtk-file-dialog.el Sat May 5 19:50:52 2001 @@ -38,6 +38,21 @@ ;; ;; This attempts to rectify the situation. +(globally-declare-fboundp + '(gtk-clist-clear + gtk-clist-freeze gtk-clist-append + gtk-clist-thaw gtk-combo-set-popdown-strings gtk-dialog-new + gtk-dialog-vbox gtk-dialog-action-area gtk-window-set-title + gtk-button-new-with-label gtk-container-add gtk-signal-connect + gtk-entry-get-text gtk-widget-destroy gtk-combo-new + gtk-combo-disable-activate gtk-box-pack-start gtk-combo-entry + gtk-hbox-new gtk-clist-new-with-titles gtk-scrolled-window-new + gtk-widget-set-usize gtk-clist-get-text gtk-entry-set-text + gtk-button-clicked gtk-option-menu-new gtk-menu-new + gtk-label-new gtk-menu-item-new-with-label gtk-menu-append + gtk-widget-show gtk-option-menu-set-menu gtk-box-pack-end + gtk-entry-new gtk-widget-set-sensitive gtk-widget-realize)) + (defun gtk-file-dialog-fill-file-list (dialog dir) (if (not dir) (setq dir (get dialog 'x-file-dialog-current-dir nil))) @@ -45,7 +60,8 @@ (put dialog 'x-file-dialog-current-dir dir) (let ((list (get dialog 'x-file-dialog-files-list nil)) - (remotep (file-remote-p dir))) + ;(remotep (file-remote-p dir)) + ) (if (not list) nil (gtk-clist-clear list) @@ -53,11 +69,12 @@ ;; NOTE: Current versions of efs / ange-ftp do not honor the ;; files-only flag to directory-files, but actually DOING these ;; checks is hideously expensive. Leave it turned off for now. - (mapc (lambda (f) - (if (or t ; Lets just wait for EFS to - (not remotep) ; fix itself, shall we? - (not (file-directory-p (expand-file-name f dir)))) - (gtk-clist-append list (list f)))) + (mapc #'(lambda (f) + (if (or t ; Lets just wait for EFS to + ;(not remotep) ; fix itself, shall we? + ;(not (file-directory-p (expand-file-name f dir))) + ) + (gtk-clist-append list (list f)))) (directory-files dir nil (get dialog 'x-file-dialog-active-filter nil) nil t)) @@ -65,8 +82,8 @@ (defun gtk-file-dialog-fill-directory-list (dialog dir) (let ((subdirs (directory-files dir nil nil nil 5)) - (remotep (file-remote-p dir)) - (selected-dir (get dialog 'x-file-dialog-current-dir "/")) + ;(remotep (file-remote-p dir)) + ;(selected-dir (get dialog 'x-file-dialog-current-dir "/")) (directory-list (get dialog 'x-file-dialog-directory-list))) (gtk-clist-freeze directory-list) @@ -79,8 +96,9 @@ ;; files-only flag to directory-files, but actually DOING these ;; checks is hideously expensive. Leave it turned off for now. (if (or t ; Lets just wait for EFS to - (not remotep) ; fix itself, shall we? - (file-directory-p (expand-file-name (car subdirs) dir))) + ;(not remotep) ; fix itself, shall we? + ;(file-directory-p (expand-file-name (car subdirs) dir)) + ) (gtk-clist-append directory-list (list (car subdirs))))) (pop subdirs)) (gtk-clist-thaw directory-list))) @@ -121,7 +139,7 @@ (vbox (gtk-dialog-vbox dialog)) (dir (plist-get keywords :initial-directory default-directory)) (button-area (gtk-dialog-action-area dialog)) - (initializing-gtk-file-dialog t) + ;(initializing-gtk-file-dialog t) (select-box nil) button hbox) @@ -171,8 +189,7 @@ ;; Directory listing (let ((directories (gtk-clist-new-with-titles 1 '("Directories"))) - (scrolled (gtk-scrolled-window-new nil nil)) - (item nil)) + (scrolled (gtk-scrolled-window-new nil nil))) (gtk-container-add scrolled directories) (gtk-widget-set-usize scrolled 200 300) (gtk-box-pack-start hbox scrolled t t 0) diff --text -u 'xemacs-21.5.0/lisp/gtk-font-menu.el' 'xemacs-21.5.1/lisp/gtk-font-menu.el' Index: ./lisp/gtk-font-menu.el --- ./lisp/gtk-font-menu.el Fri Apr 13 03:21:23 2001 +++ ./lisp/gtk-font-menu.el Sat May 5 19:50:52 2001 @@ -35,6 +35,10 @@ (require 'font-menu) +(globally-declare-boundp + '(gtk-font-regexp + gtk-font-regexp-foundry-and-family gtk-font-regexp-spacing)) + (defvar gtk-font-menu-registry-encoding nil "Registry and encoding to use with font menu fonts.") @@ -82,7 +86,8 @@ ;; recalculate the menus from the cache w/o having to do list-fonts again. (unless gtk-font-regexp-ascii (setq gtk-font-regexp-ascii (if (featurep 'mule) - (charset-registry 'ascii) + (declare-fboundp + (charset-registry 'ascii)) "iso8859-1"))) (setq gtk-font-menu-registry-encoding (if (featurep 'mule) "*-*" "iso8859-1")) diff --text -u 'xemacs-21.5.0/lisp/gtk-init.el' 'xemacs-21.5.1/lisp/gtk-init.el' Index: ./lisp/gtk-init.el --- ./lisp/gtk-init.el Fri Apr 13 03:21:23 2001 +++ ./lisp/gtk-init.el Sat May 5 19:50:53 2001 @@ -23,6 +23,13 @@ ;; Free Software Foundation, 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. +(globally-declare-boundp + '(gtk-initial-argv-list + gtk-initial-geometry)) + +(globally-declare-fboundp + '(gtk-keysym-on-keyboard-p)) + (defvar gtk-win-initted nil) (defvar gtk-pre-win-initted nil) (defvar gtk-post-win-initted nil) @@ -126,11 +133,6 @@ (defun init-post-gtk-win () (unless gtk-post-win-initted - (if (and (not (featurep 'infodock)) (featurep 'toolbar)) - (init-x-toolbar)) - (if (and (featurep 'infodock) (featurep 'toolbar)) - (require 'id-x-toolbar)) - (when (featurep 'mule) (define-specifier-tag 'mule-fonts (lambda (device) (eq 'gtk (device-type device)))) @@ -187,20 +189,6 @@ ) 'global '(mule-fonts) 'append)) - (add-hook 'zmacs-deactivate-region-hook - (lambda () - (if (console-on-window-system-p) - (disown-selection)))) - (add-hook 'zmacs-activate-region-hook - (lambda () - (if (console-on-window-system-p) - (activate-region-as-selection)))) - (add-hook 'zmacs-update-region-hook - (lambda () - (if (console-on-window-system-p) - (activate-region-as-selection)))) - - (define-key global-map 'menu 'popup-mode-menu) (setq gtk-post-win-initted t))) (push '("-geometry" . gtk-init-handle-geometry) command-switch-alist) diff --text -u 'xemacs-21.5.0/lisp/gtk-package.el' 'xemacs-21.5.1/lisp/gtk-package.el' Index: ./lisp/gtk-package.el --- ./lisp/gtk-package.el Fri Apr 13 03:21:24 2001 +++ ./lisp/gtk-package.el Sat May 5 19:50:53 2001 @@ -1,5 +1,9 @@ ;; A GTK version of package-ui.el +(globally-declare-fboundp + '(gtk-window-new + gtk-hbox-new gtk-container-add gtk-widget-show-all)) + (require 'package-get) (require 'package-ui) diff --text -u 'xemacs-21.5.0/lisp/gtk-password-dialog.el' 'xemacs-21.5.1/lisp/gtk-password-dialog.el' Index: ./lisp/gtk-password-dialog.el --- ./lisp/gtk-password-dialog.el Fri Apr 13 03:21:25 2001 +++ ./lisp/gtk-password-dialog.el Sat May 5 19:50:53 2001 @@ -24,6 +24,15 @@ ;;; Synched up with: Not in FSF. +(globally-declare-fboundp + '(gtk-dialog-new + gtk-dialog-vbox gtk-dialog-action-area + gtk-window-set-title gtk-button-new-with-label + gtk-container-add gtk-signal-connect gtk-entry-get-text + gtk-widget-destroy gtk-container-set-border-width gtk-label-new + gtk-misc-set-alignment gtk-entry-new gtk-widget-set-sensitive + gtk-entry-set-text gtk-entry-select-region)) + (defun gtk-password-dialog-ok-button (dlg) (get dlg 'x-ok-button)) diff --text -u 'xemacs-21.5.0/lisp/gtk-widget-accessors.el' 'xemacs-21.5.1/lisp/gtk-widget-accessors.el' Index: ./lisp/gtk-widget-accessors.el --- ./lisp/gtk-widget-accessors.el Fri Apr 13 03:21:25 2001 +++ ./lisp/gtk-widget-accessors.el Sat May 5 19:50:53 2001 @@ -1,3 +1,6 @@ +(globally-declare-fboundp + '(gtk-fundamental-type)) + (require 'gtk-ffi) (defconst GTK_TYPE_INVALID 0) diff --text -u 'xemacs-21.5.0/lisp/gtk-widgets.el' 'xemacs-21.5.1/lisp/gtk-widgets.el' Index: ./lisp/gtk-widgets.el --- ./lisp/gtk-widgets.el Fri Apr 13 03:21:25 2001 +++ ./lisp/gtk-widgets.el Sat May 5 19:50:55 2001 @@ -31,6 +31,10 @@ (eval-and-compile (require 'gtk-ffi)) +(globally-declare-fboundp + '(gtk-import-function-internal + gtk-call-function gtk-import-variable-internal gtk-ctree-recurse)) + (gtk-import-function GtkType gtk_accel_label_get_type) (gtk-import-function GtkWidget gtk_accel_label_new GtkString) (gtk-import-function guint gtk_accel_label_get_accel_width GtkAccelLabel) diff --text -u 'xemacs-21.5.0/lisp/gtk.el' 'xemacs-21.5.1/lisp/gtk.el' Index: ./lisp/gtk.el --- ./lisp/gtk.el Fri Apr 13 03:21:26 2001 +++ ./lisp/gtk.el Sat May 5 19:50:55 2001 @@ -1,3 +1,9 @@ +(globally-declare-fboundp + '(gtk-import-function-internal gtk-call-function gtk-type-name)) + +(globally-declare-boundp + '(gtk-enumeration-info)) + (gtk-import-function nil "gdk_flush") (defun gtk-describe-enumerations () diff --text -u 'xemacs-21.5.0/lisp/gutter-items.el' 'xemacs-21.5.1/lisp/gutter-items.el' Index: ./lisp/gutter-items.el --- ./lisp/gutter-items.el Fri Apr 13 03:21:26 2001 +++ ./lisp/gutter-items.el Sat May 5 19:50:56 2001 @@ -488,8 +488,7 @@ (clear-message label frame nil no-restore) (or frame (setq frame (selected-frame))) (remove-progress-feedback label frame) - (let ((inhibit-read-only t) - (zmacs-region-stays zmacs-region-stays)) ; preserve from change + (let ((inhibit-read-only t)) (erase-buffer (get-buffer-create " *Gutter Area*"))) (if no-restore nil ; just preparing to put another msg up @@ -558,8 +557,7 @@ (or frame (setq frame (selected-frame))) ;; Add a new entry to the message-stack, or modify an existing one (let* ((top (car progress-stack)) - (inhibit-read-only t) - (zmacs-region-stays zmacs-region-stays)) + (inhibit-read-only t)) (if (eq label (car top)) (setcdr top message) (push (cons label message) progress-stack)) @@ -589,7 +587,6 @@ (defun raw-append-progress-feedback (message &optional value frame) (unless (equal message "") (let* ((inhibit-read-only t) - (zmacs-region-stays zmacs-region-stays) (val (or value 0)) (gutter-string (copy-sequence "\n")) (ext (make-extent 0 1 gutter-string))) diff --text -u 'xemacs-21.5.0/lisp/gutter.el' 'xemacs-21.5.1/lisp/gutter.el' Index: ./lisp/gutter.el --- ./lisp/gutter.el Fri Apr 13 03:21:27 2001 +++ ./lisp/gutter.el Mon Apr 30 23:07:51 2001 @@ -178,11 +178,6 @@ corresponding symbol occurs in the gutter-visible instantiator." (make-specifier-and-init 'gutter-visible spec-list)) -(defun init-gutter () - "Initialize the gutter." - ;; do nothing as yet. - ) - ;;; gutter.el ends here. diff --text -u /dev/null 'xemacs-21.5.1/lisp/hash-table.el' Index: ./lisp/hash-table.el --- ./lisp/hash-table.el Thu Jan 1 09:00:00 1970 +++ ./lisp/hash-table.el Sat May 5 07:42:06 2001 @@ -0,0 +1,70 @@ +;;; hash-table.el --- hash-table utility functions + +;; Copyright (C) 2000 Ben Wing. + +;; Author: Ben Wing +;; Maintainer: XEmacs Development Team +;; Keywords: internal, dumped + +;; This file is part of XEmacs. + +;; XEmacs is free software; you can redistribute it and/or modify it +;; under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 2, or (at your option) +;; any later version. + +;; XEmacs is distributed in the hope that it will be useful, but +;; WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with XEmacs; see the file COPYING. If not, write to the +;; Free Software Foundation, 59 Temple Place - Suite 330, +;; Boston, MA 02111-1307, USA. + +;;; Synched up with: Not in FSF. + +;;; Authorship: + +;; Created July 2000 by Ben Wing. + +;;; Commentary: + +;; This file is dumped with XEmacs. + +;;; Code: + +(defun hash-table-key-list (hash-table) + "Return a list of all keys in HASH-TABLE." + (let (lis) + (maphash #'(lambda (key val) + (push key lis)) + hash-table) + (nreverse lis))) + +(defun hash-table-value-list (hash-table) + "Return a list of all values in HASH-TABLE." + (let (lis) + (maphash #'(lambda (key val) + (push val lis)) + hash-table) + (nreverse lis))) + +(defun hash-table-key-value-alist (hash-table) + "Return an alist of (KEY . VALUE) for all keys and values in HASH-TABLE." + (let (lis) + (maphash #'(lambda (key val) + (push (cons key val) lis)) + hash-table) + (nreverse lis))) + +(defun hash-table-key-value-plist (hash-table) + "Return a plist for all keys and values in HASH-TABLE. +A plist is a simple list containing alternating keys and values." + (let (lis) + (maphash #'(lambda (key val) + (push key lis) + (push val lis)) + hash-table) + (nreverse lis))) diff --text -u 'xemacs-21.5.0/lisp/help-macro.el' 'xemacs-21.5.1/lisp/help-macro.el' Index: ./lisp/help-macro.el --- ./lisp/help-macro.el Sun Jan 25 18:54:45 1998 +++ ./lisp/help-macro.el Sat May 5 19:50:56 2001 @@ -78,13 +78,15 @@ (defmacro make-help-screen (fname help-line help-text helped-map) "Construct help-menu function name FNAME. -When invoked, FNAME shows HELP-LINE and reads a command using HELPED-MAP. -If the command is the help character, FNAME displays HELP-TEXT -and continues trying to read a command using HELPED-MAP. -When FNAME finally does get a command, it executes that command -and then returns." +When invoked, FNAME shows HELP-LINE and reads a command using +HELPED-MAP. If the command is the help character, FNAME displays +HELP-TEXT and continues trying to read a command using HELPED-MAP. +When FNAME finally does get a command, it executes that command and +then returns. As of 21.5 (or 21.4?), HELP-LINE and HELP-TEXT are +`eval'd, just like for a function call. This allows you to place +Lisp expressions in those arguments." `(defun ,fname () - ,help-text + ,(eval help-text) (interactive) (flet ((help-read-key (prompt) ;; This is in `flet' to avoid problems with autoloading. @@ -105,7 +107,7 @@ (car key) key))))) (let ((line-prompt - (substitute-command-keys ,help-line))) + (substitute-command-keys ,(eval help-line)))) (when three-step-help (message "%s" line-prompt)) (let* ((help-screen (documentation (quote ,fname))) diff --text -u 'xemacs-21.5.0/lisp/help.el' 'xemacs-21.5.1/lisp/help.el' Index: ./lisp/help.el --- ./lisp/help.el Fri Apr 13 03:21:27 2001 +++ ./lisp/help.el Sat May 5 19:50:58 2001 @@ -64,118 +64,77 @@ (define-key help-map 'help 'help-for-help) (define-key help-map '(f1) 'help-for-help) -(define-key help-map "\C-l" 'describe-copying) ; on \C-c in FSFmacs -(define-key help-map "\C-d" 'describe-distribution) -(define-key help-map "\C-w" 'describe-no-warranty) (define-key help-map "a" 'hyper-apropos) ; 'command-apropos in FSFmacs -(define-key help-map "A" 'command-apropos) +(define-key help-map "A" 'command-hyper-apropos) +;; #### should be hyper-apropos-documentation, once that's written. +(define-key help-map "\C-a" 'apropos-documentation) (define-key help-map "b" 'describe-bindings) (define-key help-map "B" 'describe-beta) -(define-key help-map "\C-p" 'describe-pointer) -(define-key help-map "C" 'customize) (define-key help-map "c" 'describe-key-briefly) -(define-key help-map "k" 'describe-key) +(define-key help-map "C" 'customize) +;; FSFmacs has Info-goto-emacs-command-node on C-f, no binding +;; for Info-elisp-ref +(define-key help-map "\C-c" 'Info-goto-emacs-command-node) (define-key help-map "d" 'describe-function) -(define-key help-map "e" 'describe-last-error) -(define-key help-map "f" 'describe-function) +(define-key help-map "\C-d" 'describe-distribution) +(define-key help-map "e" (if (fboundp 'view-last-error) 'view-last-error + 'describe-last-error)) + +(define-key help-map "f" 'describe-function) +;; #### not a good interface. no way to specify that C-h is preferred +;; as a prefix and not BS. should instead be specified as part of +;; `define-key'. +;; (put 'describe-function 'preferred-key-sequence "\C-hf") (define-key help-map "F" 'xemacs-local-faq) +(define-key help-map "\C-f" 'Info-elisp-ref) (define-key help-map "i" 'info) -(define-key help-map '(control i) 'Info-query) -;; FSFmacs has Info-goto-emacs-command-node on C-f, no binding -;; for Info-elisp-ref -(define-key help-map '(control c) 'Info-goto-emacs-command-node) -(define-key help-map '(control k) 'Info-goto-emacs-key-command-node) -(define-key help-map '(control f) 'Info-elisp-ref) +(define-key help-map "I" 'Info-search-index-in-xemacs-and-lispref) +(define-key help-map "\C-i" 'Info-query) + +(define-key help-map "k" 'describe-key) +(define-key help-map "\C-k" 'Info-goto-emacs-key-command-node) (define-key help-map "l" 'view-lossage) +(define-key help-map "\C-l" 'describe-copying) ; on \C-c in FSFmacs (define-key help-map "m" 'describe-mode) -(define-key help-map "\C-n" 'view-emacs-news) (define-key help-map "n" 'view-emacs-news) +(define-key help-map "\C-n" 'view-emacs-news) (define-key help-map "p" 'finder-by-keyword) +(define-key help-map "\C-p" 'describe-pointer) + +(define-key help-map "q" 'help-quit) ;; Do this right with an autoload cookie in finder.el. ;;(autoload 'finder-by-keyword "finder" ;; "Find packages matching a given keyword." t) (define-key help-map "s" 'describe-syntax) +(define-key help-map "S" 'view-sample-init-el) (define-key help-map "t" 'help-with-tutorial) -(define-key help-map "w" 'where-is) - (define-key help-map "v" 'describe-variable) -(if (fboundp 'view-last-error) - (define-key help-map "e" 'view-last-error)) - - -(define-key help-map "q" 'help-quit) - -;#### This stuff was an attempt to have font locking and hyperlinks in the -;help buffer, but it doesn't really work. Some of this stuff comes from -;FSF Emacs; but the FSF Emacs implementation is rather broken, as usual. -;What needs to happen is this: -; -; -- we probably need a "hyperlink mode" from which help-mode is derived. -; -- this means we probably need multiple inheritance of modes! -; Thankfully this is not hard to implement; we already have the -; ability for a keymap to have multiple parents. However, we'd -; have to define any multiply-inherited-from modes using a standard -; `define-mode' construction instead of manually doing it, because -; we don't want each guy calling `kill-all-local-variables' and -; messing up the previous one. -; -- we need to scan the buffer ourselves (not from font-lock, because -; the user might not have font-lock enabled) and highlight only -; those words that are *documented* functions and variables (and -; probably excluding words without dashes in them unless enclosed -; in quotes, so that common words like "list" and "point" don't -; become hyperlinks. -; -- we should *not* use font-lock keywords like below. Instead we -; should add the font-lock stuff ourselves during the scanning phase, -; if font-lock is enabled in this buffer. - -;(defun help-follow-reference (event extent user-data) -; (let ((symbol (intern-soft (extent-string extent)))) -; (cond ((and symbol (fboundp symbol)) -; (describe-function symbol)) -; ((and symbol (boundp symbol)) -; (describe-variable symbol)) -; (t nil)))) - -;(defvar help-font-lock-keywords -; (let ((name-char "[-+a-zA-Z0-9_*]") (sym-char "[-+a-zA-Z0-9_:*]")) -; (list -; ;; -; ;; The symbol itself. -; (list (concat "\\`\\(" name-char "+\\)\\(:\\)?") -; '(1 (if (match-beginning 2) -; 'font-lock-function-name-face -; 'font-lock-variable-name-face) -; nil t)) -; ;; -; ;; Words inside `' which tend to be symbol names. -; (list (concat "`\\(" sym-char sym-char "+\\)'") -; 1 '(prog1 -; 'font-lock-reference-face -; (add-list-mode-item (match-beginning 1) -; (match-end 1) -; nil -; 'help-follow-reference)) -; t) -; ;; -; ;; CLisp `:' keywords as references. -; (list (concat "\\<:" sym-char "+\\>") 0 'font-lock-reference-face t))) -; "Default expressions to highlight in Help mode.") +(define-key help-map "w" 'where-is) +(define-key help-map "\C-w" 'describe-no-warranty) -;(put 'help-mode 'font-lock-defaults '(help-font-lock-keywords)) +;; #### It would be nice if the code below to add hyperlinks was +;; generalized. We would probably need a "hyperlink mode" from which +;; help-mode is derived. This means we probably need multiple +;; inheritance of modes! Thankfully this is not hard to implement; we +;; already have the ability for a keymap to have multiple parents. +;; However, we'd have to define any multiply-inherited-from modes using +;; a standard `define-mode' construction instead of manually doing it, +;; because we don't want each guy calling `kill-all-local-variables' and +;; messing up the previous one. (define-derived-mode help-mode view-major-mode "Help" "Major mode for viewing help text. @@ -819,41 +778,68 @@ (make-help-screen help-for-help "A B C F I K L M N P S T V W C-c C-d C-f C-i C-k C-n C-w; ? for more help:" - "Type a Help option: + (concat + "Type a Help option: \(Use SPC or DEL to scroll through this text. Type \\\\[help-quit] to exit the Help command.) +Help on key bindings: + +\\[describe-bindings] Table of all key bindings. +\\[describe-key-briefly] Type a key sequence or select a menu item; + it displays the corresponding command name. +\\[describe-key] Type a key sequence or select a menu item; + it displays the documentation for the command bound to that key. + (Terser but more up-to-date than what's in the manual.) +\\[Info-goto-emacs-key-command-node] Type a key sequence or select a menu item; + it jumps to the full documentation in the XEmacs User's Manual + for the corresponding command. +\\[view-lossage] Recent input keystrokes and minibuffer messages. +\\[describe-mode] Documentation of current major and minor modes. +\\[describe-pointer] Table of all mouse-button bindings. +\\[where-is] Type a command name; it displays which keystrokes invoke that command. + +Help on functions and variables: + \\[hyper-apropos] Type a substring; it shows a hypertext list of functions and variables that contain that substring. - See also the `apropos' command. -\\[command-apropos] Type a substring; it shows a list of commands - (interactively callable functions) that contain that substring. -\\[describe-bindings] Table of all key bindings. -\\[describe-key-briefly] Type a command key sequence; - it displays the function name that sequence runs. -\\[customize] Customize Emacs options. -\\[Info-goto-emacs-command-node] Type a function name; it displays the Info node for that command. -\\[describe-function] Type a function name; it shows its documentation. +\\[command-apropos] Older version of apropos; superseded by previous command. +\\[apropos-documentation] Type a substring; it shows a hypertext list of + functions and variables containing that substring anywhere + in their documentation. +\\[Info-goto-emacs-command-node] Type a command name; it jumps to the full documentation + in the XEmacs User's Manual. +\\[describe-function] Type a command or function name; it shows its documentation. + (Terser but more up-to-date than what's in the manual.) \\[Info-elisp-ref] Type a function name; it jumps to the full documentation - in the XEmacs Lisp Programmer's Manual. + in the XEmacs Lisp Reference Manual. +\\[Info-search-index-in-xemacs-and-lispref] Type a substring; it looks it up in the indices of both + the XEmacs User's Manual and the XEmacs Lisp Reference Manual. + It jumps to the first match (preferring an exact match); you + can use `\\\\[Info-index-next]\\' to successively visit other matches. +\\[describe-variable] Type a variable name; it displays its documentation and value. + +Miscellaneous: + +" + (if (string-match "beta" emacs-version) +"\\[describe-beta] Special considerations about running a beta version of XEmacs. +" +"") +" +\\[customize] Customize Emacs options. +\\[describe-distribution] How to obtain XEmacs. +\\[describe-last-error] Information about the most recent error. \\[xemacs-local-faq] Local copy of the XEmacs FAQ. \\[info] Info documentation reader. \\[Info-query] Type an Info file name; it displays it in Info reader. -\\[describe-key] Type a command key sequence; - it displays the documentation for the command bound to that key. -\\[Info-goto-emacs-key-command-node] Type a command key sequence; - it displays the Info node for the command bound to that key. -\\[view-lossage] Recent input keystrokes and minibuffer messages. -\\[describe-mode] Documentation of current major and minor modes. +\\[describe-copying] XEmacs copying permission (General Public License). \\[view-emacs-news] News of recent XEmacs changes. \\[finder-by-keyword] Type a topic keyword; it finds matching packages. -\\[describe-pointer] Table of all mouse-button bindings. \\[describe-syntax] Contents of syntax table with explanations. +\\[view-sample-init-el] View the sample init.el that comes with XEmacs. \\[help-with-tutorial] XEmacs learn-by-doing tutorial. -\\[describe-variable] Type a variable name; it displays its documentation and value. -\\[where-is] Type a command name; it displays which keystrokes invoke that command. -\\[describe-distribution] XEmacs ordering information. -\\[describe-no-warranty] Information on absence of warranty for XEmacs. -\\[describe-copying] XEmacs copying permission (General Public License)." +\\[describe-no-warranty] Information on absence of warranty for XEmacs." +) help-map) (defmacro with-syntax-table (syntab &rest body) @@ -1222,12 +1208,13 @@ (setq def (symbol-function def))) (if (and (fboundp 'compiled-function-annotation) (compiled-function-p def)) - (setq file-name (compiled-function-annotation def))) + (setq file-name (declare-fboundp (compiled-function-annotation def)))) (if (eq 'macro (car-safe def)) (setq fndef (cdr def) file-name (and (compiled-function-p (cdr def)) (fboundp 'compiled-function-annotation) - (compiled-function-annotation (cdr def))) + (declare-fboundp + (compiled-function-annotation (cdr def)))) macrop t) (setq fndef def)) (if aliases (princ aliases)) @@ -1413,7 +1400,7 @@ (let ((print-escape-newlines t)) (princ "`") ;; (Help-princ-face (symbol-name variable) - ;; 'font-lock-variable-name-face) overkill + ;; 'font-lock-variable-name-face) overkill (princ (symbol-name variable)) (princ "' is ") (while (variable-alias variable) diff --text -u 'xemacs-21.5.0/lisp/hyper-apropos.el' 'xemacs-21.5.1/lisp/hyper-apropos.el' Index: ./lisp/hyper-apropos.el --- ./lisp/hyper-apropos.el Fri Apr 13 03:21:27 2001 +++ ./lisp/hyper-apropos.el Sat May 5 19:50:59 2001 @@ -1,11 +1,12 @@ ;;; hyper-apropos.el --- Hypertext emacs lisp documentation interface. -;; Copyright (C) 1997 Free Software Foundation, Inc. +;; Copyright (C) 1997 Free Software Foundation, Inc. ;; Copyright (C) 1994, 1995 Tinker Systems and INS Engineering Corp. ;; Copyright (C) 1995 Sun Microsystems. ;; Copyright (C) 1996 Ben Wing. -;; Maintainer: Jonathan Stigelman +;; Author: Jonathan Stigelman +;; Maintainer: XEmacs Development Team ;; Keywords: lisp, tools, help, docs, matching ;; This file is part of XEmacs. @@ -79,13 +80,19 @@ :group 'hyper-apropos) (define-obsolete-variable-alias 'hypropos-show-brief-docs 'hyper-apropos-show-brief-docs) -;; I changed this to true because I think it's more useful this way. --ben + +;; I changed the following to true because it's obviously more useful +;; that way, and is a very good example of following the principle of +;; least surprise. --ben (defcustom hyper-apropos-programming-apropos t "*If non-nil, list all the functions and variables. This will cause more output to be generated, and take a longer time. +Otherwise, only the interactive functions and user variables will be listed. -Otherwise, only the interactive functions and user variables will be listed." +If you're thinking of setting it to nil, consider that you can get the +equivalent just by using the command \\[command-hyper-apropos]. (And if you do set it to nil, +you can get the full output by using \\[universal-argument] \\[hyper-apropos].)" :type 'boolean :group 'hyper-apropos) (define-obsolete-variable-alias @@ -231,13 +238,26 @@ (defconst hyper-apropos-help-buf "*Hyper Help*") ;;;###autoload +(defun command-hyper-apropos (regexp) + "Display lists of commands and user options matching REGEXP +in buffer \"*Hyper Apropos*\". See `hyper-apropos-mode' for a +description of the available commands in a Hyper-Apropos buffer." + (interactive (list (read-from-minibuffer + "List symbols matching regexp: " + nil nil nil 'hyper-apropos-regexp-history))) + (let ((hyper-apropos-programming-apropos nil)) + (hyper-apropos regexp nil))) + +;;;###autoload (defun hyper-apropos (regexp toggle-apropos) "Display lists of functions and variables matching REGEXP in buffer \"*Hyper Apropos*\". If optional prefix arg is given, then the value of `hyper-apropos-programming-apropos' is toggled for this search. -See also `hyper-apropos-mode'." - (interactive (list (read-from-minibuffer "List symbols matching regexp: " - nil nil nil 'hyper-apropos-regexp-history) +See `hyper-apropos-mode' for a description of the available commands in +a Hyper-Apropos buffer." + (interactive (list (read-from-minibuffer + "List symbols matching regexp: " + nil nil nil 'hyper-apropos-regexp-history) current-prefix-arg)) (or (memq major-mode '(hyper-apropos-mode hyper-apropos-help-mode)) (setq hyper-apropos-prev-wconfig (current-window-configuration))) diff --text -u 'xemacs-21.5.0/lisp/info.el' 'xemacs-21.5.1/lisp/info.el' Index: ./lisp/info.el --- ./lisp/info.el Fri Apr 13 03:21:27 2001 +++ ./lisp/info.el Sat May 5 19:51:02 2001 @@ -6,7 +6,7 @@ ;; Author: Dave Gillespie ;; Richard Stallman ;; Maintainer: Dave Gillespie -;; Version: 1.07 of 7/22/93 +;; Version: diverged at version 1.07 of 7/22/93 ;; Keywords: docs, help ;; This file is part of XEmacs. @@ -26,7 +26,8 @@ ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. -;;; Synched up with: Not synched with FSF. +;;; Synched up with: Not synched with FSF. Highly divergent, and with +;;; many new features added for XEmacs. ;; Commentary: @@ -37,7 +38,8 @@ ;; Also, Info tries adding ".info" to a file name if the name itself ;; is not found. ;; -;; See the change log below for further details. +;; See the partial change log below for further details, and look into +;; ChangeLog for the rest. ;; LCD Archive Entry: @@ -1795,7 +1797,16 @@ (Info-select-node) (or (and (equal onode Info-current-node) (equal ofile Info-current-file)) - (Info-history-add ofile onode opoint))))) + (Info-history-add ofile onode opoint)))) + (message "Found \"%s\" in %s. Press `z' to continue search." + regexp Info-current-node) + ) + +(defun Info-search-next () + "Repeat search starting from point with last regexp used in `Info-search'." + (interactive) + (Info-search Info-last-search)) + ;; Extract the value of the node-pointer named NAME. ;; If there is none, use ERRORNAME in the error message; @@ -2255,17 +2266,9 @@ (Info-page-prev) (setq this-command 'Info)) (scroll-down arg))) + -(defun Info-index (topic) - "Look up a string in the index for this file. -The index is defined as the first node in the top-level menu whose -name contains the word \"Index\", plus any immediately following -nodes whose names also contain the word \"Index\". -If there are no exact matches to the specified topic, this chooses -the first match which is a case-insensitive substring of a topic. -Use the `,' command to see the other matches. -Give a blank topic name to go to the Index node itself." - (interactive "sIndex topic: ") +(defun Info-find-index-alternatives (topic) (let ((pattern (format "\n\\* \\([^\n:]*%s[^\n:]*\\):[ \t]*%s" (regexp-quote topic) "\\(.*\\)\\.[ t]*\\([0-9]*\\)$")) @@ -2283,9 +2286,7 @@ (Info-goto-node (Info-extract-menu-node-name))) (or (equal topic "") (let ((matches nil) - (exact nil) - (Info-keeping-history nil) - found) + (Info-keeping-history nil)) (while (progn (goto-char (point-min)) @@ -2305,17 +2306,41 @@ (string-match "\\" node))) (let ((Info-fontify nil)) (Info-goto-node node))) - (or matches - (progn - (Info-last) - (error "No \"%s\" in index" topic))) - ;; Here it is a feature that assoc is case-sensitive. - (while (setq found (assoc topic matches)) - (setq exact (cons found exact) - matches (delq found matches))) - (setq Info-index-alternatives (nconc exact (nreverse matches)) - Info-index-first-alternative (car Info-index-alternatives)) - (Info-index-next 0))))) + (nreverse matches))))) + +(defun Info-index (topic &optional starting-nodes) + "Look up a string in the index for this file. +The index is defined as the first node in the top-level menu whose +name contains the word \"Index\", plus any immediately following +nodes whose names also contain the word \"Index\". +If there are no exact matches to the specified topic, this chooses +the first match which is a case-insensitive substring of a topic. +Use the `,' command to see the other matches. +Give a blank topic name to go to the Index node itself. + +If STARTING-NODES is given, it should be a list of nodes specifying +files in which the indices will be searched. The results will be +combined together." + (interactive "sIndex topic: ") + (let ((matches (if starting-nodes + (mapcan #'(lambda (node) + (Info-goto-node node) + (Info-find-index-alternatives topic)) + starting-nodes) + (Info-find-index-alternatives topic))) + exact found) + (or matches + (progn + (if (or (not starting-nodes) (< (length starting-nodes) 2)) + (Info-last)) + (error "No \"%s\" in index" topic))) + ;; Here it is a feature that assoc is case-sensitive. + (while (setq found (assoc topic matches)) + (setq exact (cons found exact) + matches (delq found matches))) + (setq Info-index-alternatives (nconc exact matches) + Info-index-first-alternative (car Info-index-alternatives)) + (Info-index-next 0))) (defun Info-index-next (num) "Go to the next matching index item from the last `i' command." @@ -2441,6 +2466,43 @@ (error (Info-find-node "elisp" "Top"))) (Info-index (symbol-name func))) (pop-to-buffer "*info*")) + +(defun Info-read-search-text-regexp () + (read-from-minibuffer + (if (and (boundp 'Info-last-search) Info-last-search) + (format "Search (regexp, default %s): " + Info-last-search) + "Search (regexp): ") + nil nil nil nil nil (and (boundp 'Info-last-search) Info-last-search))) + +;;;###autoload +(defun Info-search-text-in-lispref (regexp) + "Search for REGEXP in Lispref text and select node it's found in." + (interactive (list (Info-read-search-text-regexp))) + (Info-goto-node "(Lispref)") + (Info-search regexp)) + +;;;###autoload +(defun Info-search-text-in-xemacs (regexp) + "Search for REGEXP in User's Manual text and select node it's found in." + (interactive (list (Info-read-search-text-regexp))) + (Info-goto-node "(XEmacs)") + (Info-search regexp)) + +;;;###autoload +(defun Info-search-index-in-lispref (regexp) + "Search for REGEXP in Lispref index and select node it's found in." + (interactive "sIndex topic: ") + (Info-goto-node "(Lispref)") + (Info-index regexp)) + +;;;###autoload +(defun Info-search-index-in-xemacs-and-lispref (regexp) + "Search for REGEXP in both User's Manual and Lispref indices. +Select node it's found in." + (interactive "sIndex topic: ") + (Info-index regexp '("(XEmacs)" "(Lispref)"))) + (defun Info-reannotate-node () (let ((bufs (delq nil (mapcar 'get-file-buffer Info-annotations-path)))) @@ -2852,6 +2914,7 @@ (define-key Info-mode-map "u" 'Info-up) (define-key Info-mode-map "v" 'Info-visit-file) (define-key Info-mode-map "x" 'Info-bookmark) + (define-key Info-mode-map "z" 'Info-search-next) (define-key Info-mode-map "<" 'Info-top) (define-key Info-mode-map ">" 'Info-end) (define-key Info-mode-map "[" 'Info-global-prev) diff --text -u 'xemacs-21.5.0/lisp/isearch-mode.el' 'xemacs-21.5.1/lisp/isearch-mode.el' Index: ./lisp/isearch-mode.el --- ./lisp/isearch-mode.el Fri Apr 13 03:21:28 2001 +++ ./lisp/isearch-mode.el Sat May 5 19:51:04 2001 @@ -969,8 +969,9 @@ (interactive) (if (and delete-key-deletes-forward (case (device-type) - ('tty (eq tty-erase-char ?\C-h)) - ('x (not (x-keysym-on-keyboard-sans-modifiers-p 'backspace))))) + ('tty (eq (declare-boundp tty-erase-char) ?\C-h)) + ('x (not (declare-fboundp + (x-keysym-on-keyboard-sans-modifiers-p 'backspace)))))) (isearch-delete-char) (isearch-mode-help))) diff --text -u 'xemacs-21.5.0/lisp/keydefs.el' 'xemacs-21.5.1/lisp/keydefs.el' Index: ./lisp/keydefs.el --- ./lisp/keydefs.el Fri Apr 13 03:21:28 2001 +++ ./lisp/keydefs.el Mon Apr 30 23:07:52 2001 @@ -265,7 +265,7 @@ ;;; Done. -hniksic ;(put 'set-goal-column 'disabled t) -(define-key global-map [menu] 'execute-extended-command) +(define-key global-map 'menu 'popup-mode-menu) (define-key global-map [find] 'search-forward) (define-key global-map "\C-t" 'transpose-chars) diff --text -u 'xemacs-21.5.0/lisp/keymap.el' 'xemacs-21.5.1/lisp/keymap.el' Index: ./lisp/keymap.el --- ./lisp/keymap.el Fri Apr 13 03:21:29 2001 +++ ./lisp/keymap.el Sat May 5 19:51:05 2001 @@ -374,28 +374,35 @@ (defun key-sequence-list-description (keys) "Convert a key sequence KEYS to the full [(modifiers... key)...] form. -Argument KEYS can be in any form accepted by `define-key' function." +Argument KEYS can be in any form accepted by `define-key' function. +The output is always in a canonical form, meaning you can use this +function to determine if two key sequence specifications are equivalent +by comparing the respective outputs of this function using `equal'." (let ((vec - (cond ((vectorp keys) - keys) - ((stringp keys) - (vconcat keys)) - (t - (vector keys)))) - (event-to-list - #'(lambda (ev) - (append (event-modifiers ev) (list (event-key ev)))))) - (mapvector - #'(lambda (key) - (cond ((key-press-event-p key) - (funcall event-to-list key)) - ((characterp key) - (funcall event-to-list (character-to-event key))) - ((listp key) - key) - (t - (list key)))) - vec))) + (cond ((vectorp keys) + keys) + ((stringp keys) + (vconcat keys)) + (t + (vector keys))))) + (flet ((event-to-list (ev) + (append (event-modifiers ev) (list (event-key ev))))) + (mapvector + #'(lambda (key) + (let* ((full-key + (cond ((key-press-event-p key) + (event-to-list key)) + ((characterp key) + (event-to-list (character-to-event key))) + ((listp key) + (copy-sequence key)) + (t + (list key)))) + (keysym (car (last full-key)))) + (if (characterp keysym) + (setcar (last full-key) (intern (char-to-string keysym)))) + full-key)) + vec)))) ;;; Support keyboard commands to turn on various modifiers. diff --text -u 'xemacs-21.5.0/lisp/ldap.el' 'xemacs-21.5.1/lisp/ldap.el' Index: ./lisp/ldap.el --- ./lisp/ldap.el Fri Apr 13 18:11:24 2001 +++ ./lisp/ldap.el Sat May 5 19:51:05 2001 @@ -5,7 +5,7 @@ ;; Author: Oscar Figueiredo ;; Maintainer: Oscar Figueiredo ;; Created: Jan 1998 -;; Version: $Revision: 1.11 $ +;; Version: $Revision: 1.12 $ ;; Keywords: help comm ;; This file is part of XEmacs @@ -34,6 +34,9 @@ ;;; Code: + +(globally-declare-fboundp '(ldapp ldap-open ldap-close ldap-add ldap-modify + ldap-delete)) (eval-when '(load) (if (not (fboundp 'ldap-open)) diff --text -u 'xemacs-21.5.0/lisp/lib-complete.el' 'xemacs-21.5.1/lisp/lib-complete.el' Index: ./lisp/lib-complete.el --- ./lisp/lib-complete.el Fri Apr 13 03:21:29 2001 +++ ./lisp/lib-complete.el Sat May 5 19:51:06 2001 @@ -221,6 +221,7 @@ (defun read-library-internal (FILE FILTER FLAG) "Don't call this." ;; Relies on read-library-internal-search-path being let-bound + (declare (special read-library-internal-search-path)) (let ((completion-table (lib-complete:get-completion-table FILE read-library-internal-search-path FILTER))) @@ -248,6 +249,7 @@ filter the completions. This function is passed the filename, and should return a transformed filename (possibly a null transformation) or nil, indicating that the filename should not be included in the completions." + (declare (special read-library-internal-search-path)) (let* ((read-library-internal-search-path SEARCH-PATH) (library (completing-read PROMPT 'read-library-internal FILTER (or MUST-MATCH FULL) nil))) @@ -258,8 +260,10 @@ (t library)))) (defun read-library-name (prompt) - "PROMPTs for and returns an existing Elisp library name (without any suffix) or the empty string." + "PROMPTs for and returns an existing Elisp library name (without any suffix) +or the empty string." (interactive) + (declare (special read-library-internal-search-path)) (let ((read-library-internal-search-path load-path)) (completing-read prompt 'read-library-internal diff --text -u 'xemacs-21.5.0/lisp/lisp-mnt.el' 'xemacs-21.5.1/lisp/lisp-mnt.el' Index: ./lisp/lisp-mnt.el --- ./lisp/lisp-mnt.el Fri Apr 13 03:21:29 2001 +++ ./lisp/lisp-mnt.el Sat May 5 19:51:06 2001 @@ -561,7 +561,7 @@ (if addr (concat (car addr) " <" (cdr addr) ">") (or (and (boundp 'report-emacs-bug-beta-address) - report-emacs-bug-beta-address) + (declare-boundp report-emacs-bug-beta-address)) "")) topic) (goto-char (point-max)) diff --text -u 'xemacs-21.5.0/lisp/lisp-mode.el' 'xemacs-21.5.1/lisp/lisp-mode.el' Index: ./lisp/lisp-mode.el --- ./lisp/lisp-mode.el Fri Apr 13 03:21:29 2001 +++ ./lisp/lisp-mode.el Sat May 5 19:51:07 2001 @@ -101,6 +101,9 @@ :active (fboundp 'untrace-all)] "---" ["%_Comment Out Region" comment-region :active (region-exists-p)] + ["Unc%_omment Region" (comment-region (region-beginning) + (region-end) '(4)) + :active (region-exists-p)] "---" ["%_Indent Region or Balanced Expression" ,(popup-wrap '(if (region-exists-p) diff --text -u 'xemacs-21.5.0/lisp/menubar-items.el' 'xemacs-21.5.1/lisp/menubar-items.el' Index: ./lisp/menubar-items.el --- ./lisp/menubar-items.el Fri Apr 13 03:21:30 2001 +++ ./lisp/menubar-items.el Mon May 7 16:50:49 2001 @@ -141,15 +141,19 @@ ["Save %_As..." write-file] ["Save So%_me Buffers" save-some-buffers] "-----" + ,@(if (eq system-type 'windows-nt) + '(["Page Set%_up..." generic-page-setup])) ["%_Print" generic-print-buffer :active (or (valid-specifier-tag-p 'msprinter) (and (not (eq system-type 'windows-nt)) - (fboundp 'lpr-buffer))) - :suffix (if put-buffer-names-in-file-menu (concat (buffer-name) "...") - "...")] - ["Prett%_y-Print" ps-print-buffer-with-faces - :active (fboundp 'ps-print-buffer-with-faces) - :suffix (if put-buffer-names-in-file-menu (buffer-name) "")] + (fboundp 'lpr-region))) + :suffix (if (region-active-p) "Selection..." + (if put-buffer-names-in-file-menu (concat (buffer-name) "...") + "..."))] + ,@(unless (eq system-type 'windows-nt) + '(["Prett%_y-Print" ps-print-buffer-with-faces + :active (fboundp 'ps-print-buffer-with-faces) + :suffix (if put-buffer-names-in-file-menu (buffer-name) "")])) "-----" ["%_Revert Buffer" revert-buffer :active (or buffer-file-name revert-buffer-function) @@ -190,6 +194,8 @@ "----" ["Select %_All" mark-whole-buffer] ["Select Pa%_ge" mark-page] + ["Select Paragrap%_h" mark-paragraph] + ["Re%_select Region" activate-region :active (mark t)] "----" ["%_Find..." make-search-dialog] ["R%_eplace..." query-replace] @@ -335,14 +341,7 @@ ["%_Save Abbrevs As..." write-abbrev-file] ["L%_oad Abbrevs..." read-abbrev-file] ) - ("%_Register" - ["%_Copy to Register..." copy-to-register :active (region-exists-p)] - ["%_Paste Register..." insert-register] - "---" - ["%_Save Point to Register" point-to-register] - ["%_Jump to Register" register-to-point] - ) - ("R%_ectangles" + ("%_Rectangles" ["%_Kill Rectangle" kill-rectangle] ["%_Yank Rectangle" yank-rectangle] ["Rectangle %_to Register" copy-rectangle-to-register] @@ -355,6 +354,13 @@ (not mouse-track-rectangle-p)) :style toggle :selected mouse-track-rectangle-p] ) + ("Re%_gister" + ["%_Copy to Register..." copy-to-register :active (region-exists-p)] + ["%_Paste Register..." insert-register] + "---" + ["%_Save Point to Register" point-to-register] + ["%_Jump to Register" register-to-point] + ) ("%_Sort" ["%_Lines in Region" sort-lines :active (region-exists-p)] ["%_Paragraphs in Region" sort-paragraphs :active (region-exists-p)] @@ -382,6 +388,16 @@ ["%_Balanced Expression" indent-sexp] ["%_C Expression" indent-c-exp] ) + ("%_Tabs" + ["%_Convert Tabs to Spaces" untabify :active (and (region-exists-p) + (fboundp 'untabify))] + ["Convert %_Spaces to Tabs" tabify :active (and (region-exists-p) + (fboundp 'tabify))] + "---" + ["%_Tab to Tab Stop" tab-to-tab-stop] + ["%_Move to Tab Stop" move-to-tab-stop] + ["%_Edit Tab Stops" edit-tab-stops] + ) ("S%_pell-Check" ["%_Buffer" ispell-buffer :active (fboundp 'ispell-buffer)] @@ -1403,9 +1419,13 @@ ["Edit I%_nit File" ;; #### there should be something that holds the name that the init ;; file should be created as, when it's not present. - (progn (find-file (or user-init-file "~/.xemacs/init.el")) - (or (eq major-mode 'emacs-lisp-mode) - (emacs-lisp-mode)))] + (let ((el-file (or user-init-file "~/.xemacs/init.el"))) + (if (string-match "\\.elc$" el-file) + (setq el-file + (substring user-init-file 0 (1- (length el-file))))) + (find-file el-file) + (or (eq major-mode 'emacs-lisp-mode) + (emacs-lisp-mode)))] ["%_Save Options to Init File" customize-save-customized] ) @@ -1424,54 +1444,67 @@ ("%_Help" ["%_About XEmacs..." about-xemacs] + ["%_Home Page (www.xemacs.org)" xemacs-www-page + :active (fboundp 'browse-url)] "-----" - ["XEmacs %_News" view-emacs-news] + ["What's %_New in XEmacs" view-emacs-news] ["%_Obtaining XEmacs" describe-distribution] "-----" ("%_Info (Online Docs)" - ["%_Info Contents" info] - ["Lookup %_Key Binding..." Info-goto-emacs-key-command-node] - ["Lookup %_Command..." Info-goto-emacs-command-node] - ["Lookup %_Function..." Info-elisp-ref] - ["Lookup %_Topic..." Info-query]) + ["Info Con%_tents" (Info-goto-node "(dir)")] + "-----" + ["XEmacs %_User's Manual" (Info-goto-node "(XEmacs)")] + ["XEmacs %_Lisp Reference Manual" (Info-goto-node "(Lispref)")] + ["All About %_Packages" (Info-goto-node "(xemacs)Packages")] + ["%_Getting Started with XEmacs" (Info-goto-node "(New-Users-Guide)")] + ["XEmacs In%_ternals Manual" (Info-goto-node "(Internals)")] + ["%_How to Use Info" (Info-goto-node "(Info)")] + "-----" + ["Lookup %_Key Sequence in User's Manual..." + Info-goto-emacs-key-command-node] + ["Lookup %_Command in User's Manual..." Info-goto-emacs-command-node] + ["Lookup %_Function in Lisp Reference..." Info-elisp-ref] + "-----" + ["Search %_Index in User's Manual/Lispref..." + Info-search-index-in-xemacs-and-lispref] + ["%_Search Text in User's Manual..." Info-search-text-in-xemacs] + ["S%_earch Text in Lisp Reference..." + Info-search-text-in-lispref] + ) ("XEmacs %_FAQ" ["%_FAQ (local)" xemacs-local-faq] ["FAQ via %_WWW" xemacs-www-faq - :active (fboundp 'browse-url)] - ["%_Home Page" xemacs-www-page :active (fboundp 'browse-url)]) ("%_Tutorials" :filter tutorials-menu-filter) ("%_Samples" - ["Sample %_init.el" - (find-file (locate-data-file "sample.init.el")) + ["View Sample %_init.el" view-sample-init-el :active (locate-data-file "sample.init.el")] - ["Sample .%_gtkrc" - (find-file (locate-data-file "sample.gtkrc")) + ["View Sample .%_gtkrc" + (Help-find-file (locate-data-file "sample.gtkrc")) :included (featurep 'gtk) :active (locate-data-file "sample.gtkrc")] - ["Sample .%_Xdefaults" - (find-file (locate-data-file "sample.Xdefaults")) + ["View Sample .%_Xdefaults" + (Help-find-file (locate-data-file "sample.Xdefaults")) :included (featurep 'x) :active (locate-data-file "sample.Xdefaults")] - ["Sample %_enriched" - (find-file (locate-data-file "enriched.doc")) + ["View Sample %_enriched.doc" + (Help-find-file (locate-data-file "enriched.doc")) :active (locate-data-file "enriched.doc")]) - ("%_Commands & Keys" - ["%_Mode" describe-mode] + ("%_Commands, Variables, Keys" + ["Describe %_Mode" describe-mode] ["%_Apropos..." hyper-apropos] + ["%_Command-Only Apropos..." command-hyper-apropos] ["Apropos %_Docs..." apropos-documentation] "-----" - ["%_Key..." describe-key] - ["%_Bindings" describe-bindings] - ["%_Mouse Bindings" describe-pointer] + ["Describe %_Key..." describe-key] + ["Show %_Bindings" describe-bindings] + ["Show M%_ouse Bindings" describe-pointer] ["%_Recent Keys" view-lossage] "-----" - ["%_Function..." describe-function] - ["%_Variable..." describe-variable] - ["%_Locate Command..." where-is]) - "-----" - ["%_Recent Messages" view-lossage] + ["Describe %_Function..." describe-function] + ["Describe %_Variable..." describe-variable] + ["%_Locate Command in Keymap..." where-is]) ("%_Misc" ["%_Current Installation Info" describe-installation :active (boundp 'Installation-string)] @@ -1480,6 +1513,8 @@ ["Find %_Packages" finder-by-keyword] ["View %_Splash Screen" xemacs-splash-buffer] ["%_Unix Manual..." manual-entry]) + "-----" + ["%_Recent Messages" view-lossage] ["Send %_Bug Report..." report-emacs-bug :active (fboundp 'report-emacs-bug)]))) @@ -1924,24 +1959,12 @@ (defconst default-popup-menu '("XEmacs Commands" - ["%_Undo" advertised-undo - :active (and (not (eq buffer-undo-list t)) - (or buffer-undo-list pending-undo-list)) - :suffix (if (or (eq last-command 'undo) - (eq last-command 'advertised-undo)) - "More" "")] - ["Cu%_t" kill-primary-selection - :active (selection-owner-p)] - ["%_Copy" copy-primary-selection - :active (selection-owner-p)] - ["%_Paste" yank-clipboard-selection - :active (selection-exists-p 'CLIPBOARD)] - ["%_Delete" delete-primary-selection - :active (selection-owner-p)] - "-----" - ["Select %_Block" mark-paragraph] - ["Sp%_lit Window" split-window-vertically] - ["U%_nsplit Window" delete-other-windows] + ["%_Split Window" split-window-vertically] + ["S%_plit Window (Side by Side)" split-window-horizontally] + ["%_Un-Split (Keep This)" delete-other-windows + :active (not (one-window-p t))] + ["Un-Split (Keep %_Others)" delete-window + :active (not (one-window-p t))] )) ;; In an effort to avoid massive menu clutter, this mostly worthless menu is diff --text -u 'xemacs-21.5.0/lisp/menubar.el' 'xemacs-21.5.1/lisp/menubar.el' Index: ./lisp/menubar.el --- ./lisp/menubar.el Fri Apr 13 03:21:31 2001 +++ ./lisp/menubar.el Sat May 5 19:51:10 2001 @@ -564,7 +564,7 @@ )) (defun popup-buffer-menu (event) - "Pop up a copy of the Buffers menu (from the menubar) where the mouse is clicked." + "Pop up a copy of the menubar Buffers menu where the mouse is clicked." (interactive "e") (let ((window (and (event-over-text-area-p event) (event-window event))) (bmenu nil)) @@ -717,11 +717,11 @@ (define-key menu-accelerator-map [up] 'menu-up) (define-key menu-accelerator-map [down] 'menu-down) (define-key menu-accelerator-map [return] 'menu-select) - (define-key menu-accelerator-map [kp_down] 'menu-down) - (define-key menu-accelerator-map [kp_up] 'menu-down) - (define-key menu-accelerator-map [kp_left] 'menu-left) - (define-key menu-accelerator-map [kp_right] 'menu-right) - (define-key menu-accelerator-map [kp_enter] 'menu-select) + (define-key menu-accelerator-map [kp-down] 'menu-down) + (define-key menu-accelerator-map [kp-up] 'menu-down) + (define-key menu-accelerator-map [kp-left] 'menu-left) + (define-key menu-accelerator-map [kp-right] 'menu-right) + (define-key menu-accelerator-map [kp-enter] 'menu-select) (define-key menu-accelerator-map "\C-g" 'menu-quit))) diff --text -u 'xemacs-21.5.0/lisp/minibuf.el' 'xemacs-21.5.1/lisp/minibuf.el' Index: ./lisp/minibuf.el --- ./lisp/minibuf.el Fri Apr 13 03:21:31 2001 +++ ./lisp/minibuf.el Mon May 7 16:51:03 2001 @@ -340,11 +340,7 @@ integer) :group 'minibuffer) -(define-error 'input-error "Keyboard input error") - -(put 'input-error 'display-error - #'(lambda (error-object stream) - (princ (cadr error-object) stream))) +(define-error 'input-error "Keyboard input error" 'io-error) (defun read-from-minibuffer (prompt &optional initial-contents keymap @@ -1099,9 +1095,11 @@ (if (and filename-kludge-p ;; #### evil evil evil evil (or (and (fboundp 'ange-ftp-ftp-path) - (ange-ftp-ftp-path string)) + (declare-fboundp + (ange-ftp-ftp-path string))) (and (fboundp 'efs-ftp-path) - (efs-ftp-path string)))) + (declare-fboundp + (efs-ftp-path string))))) (setq comp t) (setq comp (try-completion string @@ -1126,11 +1124,12 @@ (set-buffer mouse-grabbed-buffer) ; the minibuf (let ((kludge-string (concat (buffer-string) string))) (if (or (and (fboundp 'ange-ftp-ftp-path) - (ange-ftp-ftp-path kludge-string)) - (and (fboundp 'efs-ftp-path) (efs-ftp-path kludge-string))) - ;; #### evil evil evil, but more so. - string - (append-expand-filename (buffer-string) string))))) + (declare-fboundp (ange-ftp-ftp-path kludge-string))) + (and (fboundp 'efs-ftp-path) + (declare-fboundp (efs-ftp-path kludge-string)))) + ;; #### evil evil evil, but more so. + string + (append-expand-filename (buffer-string) string))))) (defun minibuffer-smart-select-highlighted-completion (event) "Select the highlighted text under the mouse as a minibuffer response. @@ -1787,10 +1786,12 @@ ((eq action 't) ;; all completions (mapcar #'(lambda (p) (concat "~" p)) - (user-name-all-completions user))) + (declare-fboundp + (user-name-all-completions user)))) (t;; 'nil ;; complete - (let* ((val+uniq (user-name-completion-1 user)) + (let* ((val+uniq (declare-fboundp + (user-name-completion-1 user))) (val (car val+uniq)) (uniq (cdr val+uniq))) (cond ((stringp val) @@ -2239,9 +2240,9 @@ (setq x-read-color-completion-table clist) x-read-color-completion-table))) (mswindows - (mapcar #'list (mswindows-color-list))) + (mapcar #'list (declare-fboundp (mswindows-color-list)))) (tty - (mapcar #'list (tty-color-list))))) + (mapcar #'list (declare-fboundp (tty-color-list)))))) (defun read-color (prompt &optional must-match initial-contents) "Read the name of a color from the minibuffer. diff --text -u 'xemacs-21.5.0/lisp/modeline.el' 'xemacs-21.5.1/lisp/modeline.el' Index: ./lisp/modeline.el --- ./lisp/modeline.el Fri Apr 13 03:21:31 2001 +++ ./lisp/modeline.el Sat May 5 19:51:13 2001 @@ -672,7 +672,7 @@ modeline is clicked. It will call `vc-toggle-read-only' if available, otherwise it will call the usual `toggle-read-only'." (interactive) - (if (fboundp 'vc-toggle-read-only) + (if-fboundp 'vc-toggle-read-only (vc-toggle-read-only) (toggle-read-only))) diff --text -u 'xemacs-21.5.0/lisp/mouse.el' 'xemacs-21.5.1/lisp/mouse.el' Index: ./lisp/mouse.el --- ./lisp/mouse.el Fri Apr 13 03:21:31 2001 +++ ./lisp/mouse.el Sat May 5 19:51:15 2001 @@ -90,7 +90,7 @@ (interactive) (if (and (not (console-on-window-system-p)) (and (featurep 'gpm) - (not gpm-minor-mode))) + (not (declare-boundp gpm-minor-mode)))) (yank) (push-mark) (if (region-active-p) @@ -471,7 +471,10 @@ Unlike all of the other mouse-track hooks, this is a \"normal\" hook: the hook functions are called with no arguments, and all hook functions are called regardless of their return -values.") +values. + +This function is called with the buffer where the mouse was clicked +set to the current buffer, unless that buffer was killed.") (defcustom mouse-track-multi-click-time 400 "*Maximum number of milliseconds allowed between clicks for a multi-click. @@ -711,7 +714,7 @@ (if mouse-track-timeout-id (disable-timeout mouse-track-timeout-id)) (setq mouse-track-timeout-id nil) - (and buffer + (and (buffer-live-p buffer) (save-excursion (set-buffer buffer) (run-hooks 'mouse-track-cleanup-hook)))))) @@ -1036,29 +1039,33 @@ ;; (and (eq (console-type) 'x) (sit-for 0.15 t)) + ;; zmacs-activate-region -> zmacs-activate-region-hook -> + ;; activate-region-as-selection -> either own-selection or + ;; mouse-track-activate-rectangular-selection (zmacs-activate-region))) ((console-on-window-system-p) + ;; #### do we need this? we don't do it when zmacs-regions = t (if (= start end) (disown-selection type) - (if (consp default-mouse-track-extent) - ;; own the rectangular region - ;; this is a hack - (let ((r default-mouse-track-extent)) - (save-excursion - (set-buffer (get-buffer-create " *rect yank temp buf*")) - (while r - (insert (extent-string (car r)) "\n") - (setq r (cdr r))) - (own-selection (buffer-substring (point-min) (point-max))) - (kill-buffer (current-buffer)))) - (own-selection (cons (set-marker (make-marker) start) - (set-marker (make-marker) end)) - type))))) + (activate-region-as-selection)))) (if (and (eq 'x (console-type)) (not (= start end))) ;; I guess cutbuffers should do something with rectangles too. ;; does anybody use them? - (x-store-cutbuffer (buffer-substring start end))))) + (declare-fboundp (x-store-cutbuffer (buffer-substring start end)))))) + +(defun mouse-track-activate-rectangular-selection () + (if (consp default-mouse-track-extent) + ;; own the rectangular region + ;; this is a hack + (let ((r default-mouse-track-extent)) + (save-excursion + (set-buffer (get-buffer-create " *rect yank temp buf*")) + (erase-buffer) + (while r + (insert (extent-string (car r)) "\n") + (setq r (cdr r))) + (own-selection (buffer-substring (point-min) (point-max))))))) (defun default-mouse-track-deal-with-down-event (click-count) (let ((event default-mouse-track-down-event)) diff --text -u 'xemacs-21.5.0/lisp/msw-font-menu.el' 'xemacs-21.5.1/lisp/msw-font-menu.el' Index: ./lisp/msw-font-menu.el --- ./lisp/msw-font-menu.el Fri Apr 13 03:21:32 2001 +++ ./lisp/msw-font-menu.el Sat May 5 19:51:15 2001 @@ -64,9 +64,11 @@ or if you change your font path, you can call this to re-initialize the menus." (unless mswindows-font-regexp-ascii (setq mswindows-font-regexp-ascii (if (featurep 'mule) - (charset-registry 'ascii) + (declare-fboundp + (charset-registry 'ascii)) "Western"))) - (setq mswindows-font-menu-registry-encoding (if (featurep 'mule) "" "Western")) + (setq mswindows-font-menu-registry-encoding (if (featurep 'mule) "" + "Western")) (let ((case-fold-search t) family size weight entry dev-cache cache families sizes weights) diff --text -u 'xemacs-21.5.0/lisp/msw-init.el' 'xemacs-21.5.1/lisp/msw-init.el' Index: ./lisp/msw-init.el --- ./lisp/msw-init.el Fri Apr 13 03:21:32 2001 +++ ./lisp/msw-init.el Mon Apr 30 23:07:56 2001 @@ -43,23 +43,6 @@ (defun init-post-mswindows-win (console) "Initialize mswindows GUI at startup (post). Don't call this." (unless mswindows-post-win-initted - (if (featurep 'toolbar) - (if (featurep 'infodock) - (require 'id-x-toolbar) - (init-x-toolbar))) - (if (featurep 'gutter) (init-gutter)) - (add-hook 'zmacs-deactivate-region-hook - (lambda () - (if (console-on-window-system-p) - (disown-selection)))) - (add-hook 'zmacs-activate-region-hook - (lambda () - (if (console-on-window-system-p) - (activate-region-as-selection)))) - (add-hook 'zmacs-update-region-hook - (lambda () - (if (console-on-window-system-p) - (activate-region-as-selection)))) ;; Old-style mswindows bindings. The new-style mswindows bindings ;; (namely Ctrl-X, Ctrl-C and Ctrl-V) are already spoken for by XEmacs. (global-set-key '(shift delete) 'kill-primary-selection) @@ -68,9 +51,6 @@ (global-set-key '(control insert) 'copy-primary-selection) (global-set-key '(meta f4) 'save-buffers-kill-emacs) - - ;; Random stuff - (global-set-key 'menu 'popup-mode-menu) (setq mswindows-post-win-initted t))) diff --text -u 'xemacs-21.5.0/lisp/mule/arabic.el' 'xemacs-21.5.1/lisp/mule/arabic.el' Index: ./lisp/mule/arabic.el --- ./lisp/mule/arabic.el Wed Feb 17 22:59:31 1999 +++ ./lisp/mule/arabic.el Sat May 5 19:52:09 2001 @@ -1,4 +1,4 @@ -;;; arabic.el --- pre-loaded support for Arabic. +;;; arabic.el --- pre-loaded support for Arabic. -*- coding: iso-2022-7bit; -*- ;; Copyright (C) 1992,93,94,95 Free Software Foundation, Inc. ;; Copyright (C) 1995 Amdahl Corporation. diff --text -u 'xemacs-21.5.0/lisp/mule/canna-leim.el' 'xemacs-21.5.1/lisp/mule/canna-leim.el' Index: ./lisp/mule/canna-leim.el --- ./lisp/mule/canna-leim.el Wed Feb 17 22:59:31 1999 +++ ./lisp/mule/canna-leim.el Sat May 5 19:52:09 2001 @@ -1,4 +1,4 @@ -;;; canna-leim.el --- Canna-related code for LEIM +;;; canna-leim.el --- Canna-related code for LEIM -*- coding: iso-2022-7bit; -*- ;; Copyright (C) 1997 Stephen Turnbull ;; Copyright (C) 1997 Free Software Foundation, Inc. ;; diff --text -u 'xemacs-21.5.0/lisp/mule/english.el' 'xemacs-21.5.1/lisp/mule/english.el' Index: ./lisp/mule/english.el --- ./lisp/mule/english.el Fri Apr 13 03:21:44 2001 +++ ./lisp/mule/english.el Sat May 5 19:52:09 2001 @@ -1,4 +1,4 @@ -;;; english.el --- English support +;;; english.el --- English support -*- coding: iso-2022-7bit; -*- ;; Copyright (C) 1997,1999 Electrotechnical Laboratory, JAPAN. ;; Licensed to the Free Software Foundation. diff --text -u 'xemacs-21.5.0/lisp/mule/greek.el' 'xemacs-21.5.1/lisp/mule/greek.el' Index: ./lisp/mule/greek.el --- ./lisp/mule/greek.el Fri Apr 13 03:21:45 2001 +++ ./lisp/mule/greek.el Sat May 5 19:52:09 2001 @@ -1,4 +1,4 @@ -;;; greek.el --- Support for Greek +;;; greek.el --- Support for Greek -*- coding: iso-2022-7bit; -*- ;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. ;; Licensed to the Free Software Foundation. diff --text -u 'xemacs-21.5.0/lisp/mule/kinsoku.el' 'xemacs-21.5.1/lisp/mule/kinsoku.el' Index: ./lisp/mule/kinsoku.el --- ./lisp/mule/kinsoku.el Wed Feb 17 22:59:32 1999 +++ ./lisp/mule/kinsoku.el Sat May 5 19:52:09 2001 @@ -1,4 +1,4 @@ -;; kinsoku.el -- Kinsoku (line wrap) processing for XEmacs/Mule +;; kinsoku.el -- Kinsoku (line wrap) processing for XEmacs/Mule -*- coding: iso-2022-7bit; -*- ;; Copyright (C) 1997 Free Software Foundation, Inc. ;; This file is part of Mule (MULtilingual Enhancement of XEmacs). diff --text -u 'xemacs-21.5.0/lisp/mule/latin.el' 'xemacs-21.5.1/lisp/mule/latin.el' Index: ./lisp/mule/latin.el --- ./lisp/mule/latin.el Fri Apr 13 03:21:45 2001 +++ ./lisp/mule/latin.el Sat May 5 19:52:10 2001 @@ -1,4 +1,4 @@ -;;; latin.el --- Support for Latin charsets. +;;; latin.el --- Support for Latin charsets. -*- coding: iso-2022-7bit; -*- ;; Copyright (C) 2001 Free Software Foundation, Inc. diff --text -u 'xemacs-21.5.0/lisp/mule/misc-lang.el' 'xemacs-21.5.1/lisp/mule/misc-lang.el' Index: ./lisp/mule/misc-lang.el --- ./lisp/mule/misc-lang.el Fri Apr 13 03:21:45 2001 +++ ./lisp/mule/misc-lang.el Sat May 5 19:52:10 2001 @@ -1,4 +1,4 @@ -;;; misc-lang.el --- support for miscellaneous languages (characters) +;;; misc-lang.el --- support for miscellaneous languages (characters) -*- coding: iso-2022-7bit; -*- ;; Copyright (C) 1995,1999 Electrotechnical Laboratory, JAPAN. ;; Licensed to the Free Software Foundation. diff --text -u 'xemacs-21.5.0/lisp/mule/mule-category.el' 'xemacs-21.5.1/lisp/mule/mule-category.el' Index: ./lisp/mule/mule-category.el --- ./lisp/mule/mule-category.el Fri Apr 13 03:21:45 2001 +++ ./lisp/mule/mule-category.el Sat May 5 19:52:10 2001 @@ -1,4 +1,4 @@ -;;; mule-category.el --- category functions for XEmacs/Mule. +;;; mule-category.el --- category functions for XEmacs/Mule. -*- coding: iso-2022-7bit; -*- ;; Copyright (C) 1992,93,94,95 Free Software Foundation, Inc. ;; Copyright (C) 1995, 1997, 1999 Electrotechnical Laboratory, JAPAN. diff --text -u 'xemacs-21.5.0/lisp/mule/mule-ccl.el' 'xemacs-21.5.1/lisp/mule/mule-ccl.el' Index: ./lisp/mule/mule-ccl.el --- ./lisp/mule/mule-ccl.el Fri Apr 13 03:21:45 2001 +++ ./lisp/mule/mule-ccl.el Sat May 5 19:52:11 2001 @@ -1,4 +1,4 @@ -;;; mule-ccl.el --- CCL (Code Conversion Language) compiler +;;; mule-ccl.el --- CCL (Code Conversion Language) compiler -*- coding: iso-2022-7bit; -*- ;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. ;; Licensed to the Free Software Foundation. diff --text -u 'xemacs-21.5.0/lisp/mule/mule-charset.el' 'xemacs-21.5.1/lisp/mule/mule-charset.el' Index: ./lisp/mule/mule-charset.el --- ./lisp/mule/mule-charset.el Fri Apr 13 03:21:45 2001 +++ ./lisp/mule/mule-charset.el Sat May 5 19:52:11 2001 @@ -1,4 +1,4 @@ -;;; mule-charset.el --- Charset functions for Mule. +;;; mule-charset.el --- Charset functions for Mule. -*- coding: iso-2022-7bit; -*- ;; Copyright (C) 1992 Free Software Foundation, Inc. ;; Copyright (C) 1995 Amdahl Corporation. diff --text -u 'xemacs-21.5.0/lisp/mule/mule-cmds.el' 'xemacs-21.5.1/lisp/mule/mule-cmds.el' Index: ./lisp/mule/mule-cmds.el --- ./lisp/mule/mule-cmds.el Fri Apr 13 03:21:45 2001 +++ ./lisp/mule/mule-cmds.el Sat May 5 19:52:13 2001 @@ -1,4 +1,4 @@ -;;; mule-cmds.el --- Commands for multilingual environment +;;; mule-cmds.el --- Commands for multilingual environment -*- coding: iso-2022-7bit; -*- ;; Copyright (C) 1995,1999 Electrotechnical Laboratory, JAPAN. ;; Licensed to the Free Software Foundation. diff --text -u 'xemacs-21.5.0/lisp/mule/mule-coding.el' 'xemacs-21.5.1/lisp/mule/mule-coding.el' Index: ./lisp/mule/mule-coding.el --- ./lisp/mule/mule-coding.el Fri Apr 13 03:21:46 2001 +++ ./lisp/mule/mule-coding.el Sat May 5 19:52:13 2001 @@ -1,4 +1,4 @@ -;;; mule-coding.el --- Coding-system functions for Mule. +;;; mule-coding.el --- Coding-system functions for Mule. -*- coding: iso-2022-7bit; -*- ;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. ;; Licensed to the Free Software Foundation. diff --text -u 'xemacs-21.5.0/lisp/mule/mule-help.el' 'xemacs-21.5.1/lisp/mule/mule-help.el' Index: ./lisp/mule/mule-help.el --- ./lisp/mule/mule-help.el Fri Apr 13 03:21:46 2001 +++ ./lisp/mule/mule-help.el Sat May 5 19:52:13 2001 @@ -1,4 +1,4 @@ -;;; mule-help.el --- Mule-ized Help functions +;;; mule-help.el --- Mule-ized Help functions -*- coding: iso-2022-7bit; -*- ;; Copyright (C) 1997 by Free Software Foundation, Inc. diff --text -u 'xemacs-21.5.0/lisp/mule/mule-init.el' 'xemacs-21.5.1/lisp/mule/mule-init.el' Index: ./lisp/mule/mule-init.el --- ./lisp/mule/mule-init.el Fri Apr 13 03:21:46 2001 +++ ./lisp/mule/mule-init.el Sat May 5 19:52:13 2001 @@ -1,4 +1,4 @@ -;; Mule default configuration file +;; Mule default configuration file -*- coding: iso-2022-7bit; -*- ;; This file is part of XEmacs. diff --text -u 'xemacs-21.5.0/lisp/mule/mule-misc.el' 'xemacs-21.5.1/lisp/mule/mule-misc.el' Index: ./lisp/mule/mule-misc.el --- ./lisp/mule/mule-misc.el Fri Apr 13 03:21:46 2001 +++ ./lisp/mule/mule-misc.el Sat May 5 19:52:13 2001 @@ -1,4 +1,4 @@ -;; mule-misc.el --- Miscellaneous Mule functions. +;; mule-misc.el --- Miscellaneous Mule functions. -*- coding: iso-2022-7bit; -*- ;; Copyright (C) 1995,1999 Electrotechnical Laboratory, JAPAN. ;; Licensed to the Free Software Foundation. @@ -285,57 +285,5 @@ ;;; @ coding-system category ;;; - -(defun coding-system-get (coding-system prop) - "Extract a value from CODING-SYSTEM's property list for property PROP." - (or (plist-get - (get (coding-system-name coding-system) 'coding-system-property) - prop) - (condition-case nil - (coding-system-property coding-system prop) - (error nil)))) - -(defun coding-system-put (coding-system prop value) - "Change value in CODING-SYSTEM's property list PROP to VALUE." - (put (coding-system-name coding-system) - 'coding-system-property - (plist-put (get (coding-system-name coding-system) - 'coding-system-property) - prop value))) - -(defun coding-system-category (coding-system) - "Return the coding category of CODING-SYSTEM." - (or (coding-system-get coding-system 'category) - (let ((type (coding-system-type coding-system))) - (cond ((eq type 'no-conversion) - 'no-conversion) - ((eq type 'shift-jis) - 'shift-jis) - ((eq type 'ucs-4) - 'ucs-4) - ((eq type 'utf-8) - 'utf-8) - ((eq type 'big5) - 'big5) - ((eq type 'iso2022) - (cond ((coding-system-lock-shift coding-system) - 'iso-lock-shift) - ((coding-system-seven coding-system) - 'iso-7) - (t - (let ((dim 0) - ccs - (i 0)) - (while (< i 4) - (setq ccs (coding-system-charset coding-system i)) - (if (and ccs - (> (charset-dimension ccs) dim)) - (setq dim (charset-dimension ccs)) - ) - (setq i (1+ i))) - (cond ((= dim 1) 'iso-8-1) - ((= dim 2) 'iso-8-2) - (t 'iso-8-designate)) - )))))))) ;;; mule-misc.el ends here diff --text -u 'xemacs-21.5.0/lisp/mule/mule-tty-init.el' 'xemacs-21.5.1/lisp/mule/mule-tty-init.el' Index: ./lisp/mule/mule-tty-init.el --- ./lisp/mule/mule-tty-init.el Wed Feb 17 22:59:34 1999 +++ ./lisp/mule/mule-tty-init.el Sat May 5 19:52:13 2001 @@ -1,4 +1,4 @@ -;;; mule-tty-init.el --- Initialization code for console tty under MULE +;;; mule-tty-init.el --- Initialization code for console tty under MULE -*- coding: iso-2022-7bit; -*- ;; Copyright (C) 1998 Free Software Foundation, Inc. ;; Copyright (C) 1998 Kazuyuki IENAGA diff --text -u 'xemacs-21.5.0/lisp/mule/mule-x-init.el' 'xemacs-21.5.1/lisp/mule/mule-x-init.el' Index: ./lisp/mule/mule-x-init.el --- ./lisp/mule/mule-x-init.el Fri Apr 13 03:21:46 2001 +++ ./lisp/mule/mule-x-init.el Sat May 5 19:52:13 2001 @@ -1,4 +1,4 @@ -;;; mule-x-init.el --- initialization code for X Windows under MULE +;;; mule-x-init.el --- initialization code for X Windows under MULE -*- coding: iso-2022-7bit; -*- ;; Copyright (C) 1994 Free Software Foundation, Inc. ;; Copyright (C) 1996 Ben Wing diff --text -u 'xemacs-21.5.0/lisp/mule/thai-xtis-chars.el' 'xemacs-21.5.1/lisp/mule/thai-xtis-chars.el' Index: ./lisp/mule/thai-xtis-chars.el --- ./lisp/mule/thai-xtis-chars.el Sun Aug 15 10:51:45 1999 +++ ./lisp/mule/thai-xtis-chars.el Sat May 5 19:52:13 2001 @@ -1,4 +1,4 @@ -;;; thai-xtis-chars.el --- definition of the Thai XTIS charset. +;;; thai-xtis-chars.el --- definition of the Thai XTIS charset. -*- coding: iso-2022-7bit; -*- ;; Copyright (C) 1999 Electrotechnical Laboratory, JAPAN. ;; Licensed to the Free Software Foundation. diff --text -u 'xemacs-21.5.0/lisp/mule/viet-chars.el' 'xemacs-21.5.1/lisp/mule/viet-chars.el' Index: ./lisp/mule/viet-chars.el --- ./lisp/mule/viet-chars.el Wed Feb 17 22:59:35 1999 +++ ./lisp/mule/viet-chars.el Sat May 5 19:52:14 2001 @@ -1,4 +1,4 @@ -;;; vietnamese-chars.el --- pre-loaded support for Vietnamese, part 1. +;;; vietnamese-chars.el --- pre-loaded support for Vietnamese, part 1. -*- coding: iso-2022-7bit; -*- ;; Copyright (C) 1992,93,94,95 Free Software Foundation, Inc. ;; Copyright (C) 1995 Amdahl Corporation. diff --text -u 'xemacs-21.5.0/lisp/multicast.el' 'xemacs-21.5.1/lisp/multicast.el' Index: ./lisp/multicast.el --- ./lisp/multicast.el Fri Apr 13 03:21:32 2001 +++ ./lisp/multicast.el Sat May 5 19:51:15 2001 @@ -75,7 +75,7 @@ (error "invalid port specification.")) (and (= 0 (setq ttl (string-to-int (match-string 3 address)))) (error "invalid ttl specification.")) - (open-multicast-group-internal name buffer dest port ttl) + (declare-fboundp (open-multicast-group-internal name buffer dest port ttl)) )) ;;; multicast.el ends here diff --text -u 'xemacs-21.5.0/lisp/mwheel.el' 'xemacs-21.5.1/lisp/mwheel.el' Index: ./lisp/mwheel.el --- ./lisp/mwheel.el Wed Jan 31 11:10:54 2001 +++ ./lisp/mwheel.el Sat May 5 19:51:15 2001 @@ -45,6 +45,10 @@ (require 'custom) (require 'cl) +(globally-declare-fboundp + '(event-basic-type + posn-window event-start mwheel-event-window mwheel-event-button)) + (defcustom mwheel-scroll-amount '(5 . 1) "Amount to scroll windows by when spinning the mouse wheel. This is actually a cons cell, where the first item is the amount to scroll diff --text -u 'xemacs-21.5.0/lisp/package-get.el' 'xemacs-21.5.1/lisp/package-get.el' Index: ./lisp/package-get.el --- ./lisp/package-get.el Fri Apr 13 03:21:33 2001 +++ ./lisp/package-get.el Sat May 5 19:51:16 2001 @@ -445,7 +445,7 @@ (fboundp 'mc-pgp-verify-region) (or (not (condition-case err - (mc-pgp-verify-region beg end) + (declare-fboundp (mc-pgp-verify-region beg end)) (file-error (and (string-match "No such file" (nth 2 err)) (or (not package-get-require-signed-base-updates) diff --text -u 'xemacs-21.5.0/lisp/printer.el' 'xemacs-21.5.1/lisp/printer.el' Index: ./lisp/printer.el --- ./lisp/printer.el Fri Apr 13 03:21:34 2001 +++ ./lisp/printer.el Mon May 7 16:51:06 2001 @@ -53,8 +53,7 @@ ;; hidden from the user and there is a consistent set of options to ;; control how to print, which works across all implementations. ;; -;; The code here is just a start and needs a huge amount of work. Probably -;; the interfaces below will change and the functions renamed. +;; The code here currently only really supports Windows. (defgroup printing nil "Generic printing support." @@ -68,10 +67,19 @@ :type 'string :group 'printing) -(defcustom printer-page-header '(date buffer-name) -"*Controls printed page header. +(defstruct Print-context pageno window start-time printer-name) + +(defvar printer-current-device nil) + +(defun Printer-get-device () + (or printer-current-device (setq printer-current-device + (make-device 'msprinter printer-name)))) -#### not yet implemented. +(defun Printer-clear-device () + (setq printer-current-device nil)) + +(defcustom printer-page-header '((face bold date) nil (face bold buffer-name)) +"*Controls printed page header. This can be: - nil. Header is not printed. @@ -79,12 +87,13 @@ one parameter, a print-context object, every time the headers need to be set up. It can use the function `print-context-property' to query the properties of this object. The return value is treated as - if it was literally specified: i.e. it will be reprocessed. + if it was literally specified: i.e. it will be reprocessed. - A list of up to three elements, for left, center and right portions of the header. Each of these can be - nil, not to print the portion - A string, which will be printed literally. - A predefined symbol, on of the following: + printer-name Name of printer being printed to short-file-name File name only, no path long-file-name File name with its path buffer-name Buffer name @@ -93,6 +102,8 @@ page Current printout page number, 1-based user-id User logon id user-name User full name + - A list of three elements: (face FACE-NAME EXPR). EXPR is any of the + items given here. The item will be displayed in the given face. - A cons of an extent and any of the items given here. The item will be displayed using the extent's face, begin-glyph and end-glyph properties. @@ -105,108 +116,332 @@ :type 'sexp :group 'printing) -(defcustom printer-page-footer '(nil page) +(defcustom printer-page-footer '(nil (face bold ("Page " page))) "*Controls printed page footer. -#### not yet implemented. - Format is the same as `printer-page-header'." :type 'sexp :group 'printing) +(defun generate-header-element (element context) + (cond ((null element) nil) + ((stringp element) (insert element)) + ((memq element '(printer-name + short-file-name long-file-name buffer-name + date time page user-id user-name)) + (insert (print-context-property context element))) + ((and (consp element) (eq 'face (car element))) + (let ((p (point))) + (generate-header-element (third element) context) + (let ((x (make-extent p (point)))) + (set-extent-face x (second element))))) + ((and (consp element) (extentp (car element))) + (let ((p (point))) + (generate-header-element (cdr element) context) + (let ((x (make-extent p (point)))) + (set-extent-face x (extent-face (car element))) + (set-extent-begin-glyph x (extent-begin-glyph (car element))) + (set-extent-end-glyph x (extent-end-glyph (car element)))))) + ((listp element) + (mapcar #'(lambda (el) (generate-header-element el context)) + element)) + ((functionp element) + (generate-header-element (funcall element context) context)) + (t (error 'invalid-argument "Unknown header element" element)))) + +(defun generate-header-line (spec context) + (let* ((left (first spec)) + (middle (second spec)) + (right (third spec)) + (left-start (point)) + (middle-start (progn (generate-header-element left context) + (point))) + (right-start (progn (generate-header-element middle context) + (point))) + (right-end (progn (generate-header-element right context) + (point))) + (left-width (- middle-start left-start)) + (middle-width (- right-start middle-start)) + (right-width (- right-end right-start)) + (winwidth (- (window-width (Print-context-window context)) 1)) + (spaces1 (max (- (/ (- winwidth middle-width) 2) left-width) 0)) + (spaces2 (max (- (- winwidth right-width) + (+ left-width spaces1 middle-width)) + 0))) + (goto-char right-start) + (insert-char ?\ spaces2) + (goto-char middle-start) + (insert-char ?\ spaces1))) + (defun print-context-property (print-context prop) "Return property PROP of PRINT-CONTEXT. Valid properties are -print-buffer Buffer being printed. -print-window Window on printer device containing print buffer. -print-frame Frame on printer device corresponding to current page. -print-device Device referring to printer. -printer-name Name of printer being printed to. +print-buffer Buffer being printed +print-window Window on printer device containing print buffer +print-frame Frame on printer device corresponding to current page +print-device Device referring to printer +print-start-time Time current when printing started (`current-time' format) +print-page Current printout page number, 1-based +printer-name Name of printer being printed to short-file-name File name only, no path long-file-name File name with its path buffer-name Buffer name -date Date current when printing started -time Time current when printing started -page Current printout page number, 1-based -user-id User logon id +date Date current when printing started (as a string) +time Time current when printing started (as a string) +page Current printout page number, 1-based (as a string) +user-id User logon id (as a string) user-name User full name" - (error "not yet implemented")) + (let* ((window (Print-context-window print-context)) + (pageno (Print-context-pageno print-context)) + (start-time (Print-context-start-time print-context)) + (printer-name (Print-context-printer-name print-context)) + (buffer (window-buffer window))) + (case prop + (print-buffer buffer) + (print-window window) + (print-frame (window-frame window)) + (print-device (frame-device (window-frame window))) + (print-start-time start-time) + (print-page pageno) + (printer-name printer-name) + (short-file-name (let ((name (buffer-file-name buffer))) + (if name (file-name-nondirectory name) ""))) + (long-file-name (let ((name (buffer-file-name buffer))) + (or name ""))) + (buffer-name (buffer-name buffer)) + (date (format-time-string "%x" start-time)) + (time (format-time-string "%X" start-time)) + (page (format "%d" pageno)) + (user-id (format "%d" (user-uid))) + (user-name (format "%d" (user-login-name))) + (t (error 'invalid-argument "Unrecognized print-context property" + prop))))) + +(defun generic-page-setup () + "Display the Page Setup dialog box. +Changes made are recorded internally." + (interactive) + (let* ((d (Printer-get-device)) + (props + (condition-case err + (make-dialog-box 'page-setup :device d + :properties default-msprinter-frame-plist) + (error + (Printer-clear-device) + (signal (car err) (cdr err)))))) + (while props + (setq default-msprinter-frame-plist + (plist-put default-msprinter-frame-plist (car props) (cadr props))) + (setq props (cddr props))))) -(defun generic-print-buffer (&optional buffer) +(defun generic-print-buffer (&optional buffer display-print-dialog) "Print buffer BUFFER using a printing method appropriate to the O.S. being run. Under Unix, `lpr' is normally used to spool out a no-frills version of the buffer, or the `ps-print' package is used to pretty-print the buffer to a PostScript printer. Under MS Windows, the built-in printing support is used. +If DISPLAY-PRINT-DIALOG is t, the print dialog will first be +displayed, allowing the user to select various printing settings +\(e.g. which printer to print to, the range of pages, number of copies, +modes such landscape/portrait/2-up/4-up [2 or 4 (small!) logical pages +per physical page], etc.). At this point the user can cancel the printing +operation using the dialog box, and `generic-print-buffer' will not print +anything. When called interactively, use a prefix arg to suppress the +display of the print dialog box. + If BUFFER is nil or omitted, the current buffer is used." - (interactive) - (generic-print-region (point-min buffer) (point-max buffer) buffer)) + (interactive (list nil (not current-prefix-arg))) + (let* ((print-region (and (interactive-p) (region-active-p))) + (start (if print-region (region-beginning) (point-min buffer))) + (end (if print-region (region-end) (point-max buffer)))) + (if (or (not (valid-specifier-tag-p 'msprinter)) + (not display-print-dialog)) + (generic-print-region start end buffer) + (let* ((d (Printer-get-device)) + (props (condition-case err + (make-dialog-box 'print :device d + :allow-selection print-region + :selected-page-button + (if print-region 'selection 'all)) + (error + (Printer-clear-device) + (signal (car err) (cdr err)))))) + (and props + (let ((really-print-region + (eq (plist-get props 'selected-page-button) 'selection))) + (generic-print-region (if really-print-region start + (point-min buffer)) + (if really-print-region end + (point-max buffer)) + buffer d props))))))) -(defun generic-print-region (start end &optional buffer) +(defun generic-print-region (start end &optional buffer print-device props) "Print region using a printing method appropriate to the O.S. being run. The region between START and END of BUFFER (defaults to the current buffer) is printed. Under Unix, `lpr' is normally used to spool out a no-frills version of the buffer, or the `ps-print' package is used to pretty-print the buffer to a -PostScript printer. Under MS Windows, the built-in printing support is used." +PostScript printer. Under MS Windows, the built-in printing support is used. + +Optional PRINT-DEVICE is a device, already created, to use to do the +printing. This is typically used when this function was invoked from +`generic-print-buffer' and it displayed a dialog box. That function created +the device, and then the dialog box stuffed it with the user's selections +of how the buffer should be printed. + +PROPS, if given, is typically the plist returned from the call to +`make-dialog-box' that displayed the Print box. It contains properties +relevant to us when we print. + +Recognized properties are the same as those in `make-dialog-box': + + name Printer device name. If omitted, the current system-selected + printer will be used. + from-page First page to print, 1-based. If omitted, printing starts from + the beginning. + to-page Last page to print, inclusive, If omitted, printing ends at + the end. + copies Number of copies to print. If omitted, one copy is printed." (cond ((valid-specifier-tag-p 'msprinter) - (let (d f) - (setq buffer (decode-buffer buffer)) - (unwind-protect - (progn - (setq d (make-device 'msprinter printer-name)) - (setq f (make-frame - (list* 'name (concat (substitute ?_ ?. - (buffer-name buffer)) - " - XEmacs") - '(menubar-visible-p nil - has-modeline-p nil - default-toolbar-visible-p nil - default-gutter-visible-p nil - minibuffer none - modeline-shadow-thickness 0 - vertical-scrollbar-visible-p nil - horizontal-scrollbar-visible-p nil)) - d)) - (let* ((w (frame-root-window f)) - (vertdpi (cdr (device-system-metric d 'device-dpi))) - (pixel-vertical-clip-threshold (/ vertdpi 2)) - (last-end 0) - done) - (set-window-buffer w (or buffer (current-buffer))) - (set-window-start w start) - (while (not done) - (redisplay-frame f) - (print-job-eject-page f) - (let ((this-end (window-end w)) - (pixvis (window-last-line-visible-height w))) - ;; in case we get stuck somewhere, bow out - ;; rather than printing an infinite number of - ;; pages. #### this will fail with an image - ;; bigger than an entire page. but we really - ;; need this check here. we should be more - ;; clever in our check, to deal with this case. - (if (or (= this-end last-end) - ;; #### fuckme! window-end returns a value - ;; outside of the valid range of buffer - ;; positions!!! - (>= this-end end)) - (setq done t) - (setq last-end this-end) - (set-window-start w this-end) - (if pixvis - (save-selected-window - (select-window w) - ;; #### scroll-down should take a window arg. - (let ((window-pixel-scroll-increment pixvis)) - (scroll-down 1))))))))) - (and f (delete-frame f)) - (and d (delete-device d)) - ))) + ;; loop, printing one copy of document per loop. kill and + ;; re-create the frame each time so that we eject the piece + ;; of paper at the end even if we're printing more than one + ;; page per sheet of paper. + (let ((copies (plist-get props 'copies 1))) + (while (> copies 0) + (let (d f header-buffer footer-buffer) + (setq buffer (decode-buffer buffer)) + (unwind-protect + (with-current-buffer buffer + (save-restriction + (narrow-to-region start end) + (setq d (or print-device (Printer-get-device))) + (setq f (make-frame + (list* 'name + (concat + (substitute ?_ ?. (buffer-name buffer)) + " - XEmacs") + '(menubar-visible-p + nil + has-modeline-p nil + default-toolbar-visible-p nil + default-gutter-visible-p nil + minibuffer none + modeline-shadow-thickness 0 + vertical-scrollbar-visible-p nil + horizontal-scrollbar-visible-p nil)) + d)) + (let* ((w (frame-root-window f)) + (vertdpi + (cdr (device-system-metric d 'device-dpi))) + (pixel-vertical-clip-threshold (/ vertdpi 2)) + (from-page (plist-get props 'from-page 1)) + (to-page (plist-get props 'to-page)) + (context (make-Print-context + :start-time (current-time) + ;; #### bogus! we need accessors for + ;; print-settings objects. + :printer-name + (or (plist-get props 'name) + printer-name + (mswindows-get-default-printer)))) + header-window + footer-window) + + (when printer-page-header + (let ((window-min-height 2)) + (setq header-window w) + (setq w (split-window w 2))) + (setq header-buffer + (generate-new-buffer " *header*")) + (set-window-buffer header-window header-buffer)) + + (when printer-page-footer + (let ((window-min-height 2)) + (setq footer-window + (split-window w (- (window-height w) 2)))) + (setq footer-buffer + (generate-new-buffer " *footer*")) + (set-window-buffer footer-window footer-buffer)) + + (setf (Print-context-window context) w) + + (let ((last-end 0) ; bufpos at end of previous page + reached-end ; t if we've reached the end of the + ; text we're printing + (pageno 1)) + (set-window-buffer w buffer) + (set-window-start w start) + + ;; loop, printing one page per loop + (while (and (not reached-end) + ;; stop at end of region of text or + ;; outside of ranges of pages given + (or (not to-page) (<= pageno to-page))) + + (setf (Print-context-pageno context) pageno) + + ;; only actually print the page if it's in the + ;; range. + (when (>= pageno from-page) + (when printer-page-header + (with-current-buffer header-buffer + (erase-buffer) + (generate-header-line printer-page-header + context) + (goto-char (point-min)) + (set-window-start header-window + (point-min)))) + + (when printer-page-footer + (with-current-buffer footer-buffer + (erase-buffer) + (insert "\n") + (generate-header-line printer-page-footer + context) + (goto-char (point-min)) + (set-window-start footer-window + (point-min)))) + + (redisplay-frame f t) + (print-job-eject-page f) + ) + ;; but use the GUARANTEE argument to `window-end' + ;; so that we get the right value even if we + ;; didn't do a redisplay. + (let ((this-end (window-end w t)) + (pixvis + (window-last-line-visible-height w))) + ;; in case we get stuck somewhere, bow out + ;; rather than printing an infinite number of + ;; pages. #### this will fail with an image + ;; bigger than an entire page. but we really + ;; need this check here. we should be more + ;; clever in our check, to deal with this case. + (if (or (= this-end last-end) + ;; #### fuckme! window-end returns a + ;; value outside of the valid range of + ;; buffer positions!!! + (>= this-end end)) + (setq reached-end t) + (setq last-end this-end) + (set-window-start w this-end) + (if pixvis + (with-selected-window w + ;; #### scroll-down should take a + ;; window arg. + (let ((window-pixel-scroll-increment + pixvis)) + (scroll-down 1)))))) + (setq pageno (1+ pageno)))))) + (and f (delete-frame f)) + (and header-buffer (kill-buffer header-buffer)) + (and footer-buffer (kill-buffer footer-buffer))))) + (setq copies (1- copies))))) ((and (not (eq system-type 'windows-nt)) - (fboundp 'lpr-buffer)) + (fboundp 'lpr-region)) (lpr-region buffer)) (t (error "No print support available")))) diff --text -u 'xemacs-21.5.0/lisp/scrollbar.el' 'xemacs-21.5.1/lisp/scrollbar.el' Index: ./lisp/scrollbar.el --- ./lisp/scrollbar.el Fri Apr 13 03:21:35 2001 +++ ./lisp/scrollbar.el Sat May 5 19:51:17 2001 @@ -45,11 +45,11 @@ (when (and (featurep 'x) (or (eq locale 'global) (eq 'x (device-or-frame-type locale)))) - (x-init-scrollbar-from-resources locale)) + (declare-fboundp (x-init-scrollbar-from-resources locale))) (when (and (featurep 'mswindows) (or (eq locale 'global) (eq 'mswindows (device-or-frame-type locale)))) - (mswindows-init-scrollbar-metrics locale))) + (declare-fboundp (mswindows-init-scrollbar-metrics locale)))) ;; ;; vertical scrollbar functions diff --text -u 'xemacs-21.5.0/lisp/select.el' 'xemacs-21.5.1/lisp/select.el' Index: ./lisp/select.el --- ./lisp/select.el Fri Apr 13 03:21:35 2001 +++ ./lisp/select.el Mon Apr 30 23:07:57 2001 @@ -196,8 +196,9 @@ (own-selection string 'CLIPBOARD)) (defun disown-selection (&optional secondary-p) - "Assuming we own the selection, disown it. With an argument, discard the -secondary selection instead of the primary selection." + "Assuming we own the selection, disown it. +With an argument, discard the secondary selection instead of the +primary selection." (disown-selection-internal (if secondary-p 'SECONDARY 'PRIMARY)) (when (and selection-sets-clipboard (or (not secondary-p) @@ -205,7 +206,6 @@ (eq secondary-p 'CLIPBOARD))) (disown-selection-internal 'CLIPBOARD))) -;; from x-init.el ;; selections and active regions ;; If and only if zmacs-regions is true: @@ -220,10 +220,10 @@ ;; application asserts the selection. This is probably not a big deal. (defun activate-region-as-selection () - (if (marker-buffer (mark-marker t)) - (own-selection (cons (point-marker t) (mark-marker t))))) + (cond (mouse-track-rectangle-p (mouse-track-activate-rectangular-selection)) + ((marker-buffer (mark-marker t)) + (own-selection (cons (point-marker t) (mark-marker t)))))) -; moved from x-select.el (defvar primary-selection-extent nil "The extent of the primary selection; don't use this.") @@ -294,7 +294,6 @@ )) previous-extent)))) -;; moved from x-select.el (defun valid-simple-selection-p (data) "An obsolete function that tests whether something was a valid simple selection using the old XEmacs selection support. You shouldn't use this diff --text -u 'xemacs-21.5.0/lisp/simple.el' 'xemacs-21.5.1/lisp/simple.el' Index: ./lisp/simple.el --- ./lisp/simple.el Fri Apr 13 03:21:35 2001 +++ ./lisp/simple.el Sat May 5 19:51:22 2001 @@ -58,10 +58,10 @@ ;; this isn't a user-visible change. These functions have also been altered ;; to use (mark t) for the same reason. -;; 97/3/14 Jareth Hein (jhod@po.iijnet.or.jp) added kinsoku processing (support -;; for filling of Asian text) into the fill code. This was ripped bleeding from -;; Mule-2.3, and could probably use some feature additions (like additional wrap -;; styles, etc) +;; 97/3/14 Jareth Hein (jhod@po.iijnet.or.jp) added kinsoku processing +;; (support for filling of Asian text) into the fill code. This was +;; ripped bleeding from Mule-2.3, and could probably use some feature +;; additions (like additional wrap styles, etc) ;; 97/06/11 Steve Baur (steve@xemacs.org) Convert use of ;; (preceding|following)-char to char-(after|before). @@ -453,7 +453,8 @@ (defsubst delete-forward-p () (and delete-key-deletes-forward (or (not (eq (device-type) 'x)) - (x-keysym-on-keyboard-sans-modifiers-p 'backspace)))) + (declare-fboundp + (x-keysym-on-keyboard-sans-modifiers-p 'backspace))))) (defun backward-or-forward-delete-char (arg) "Delete either one character backwards or one character forwards. @@ -1115,8 +1116,7 @@ (defcustom kill-whole-line nil "*If non-nil, kill the whole line if point is at the beginning. Otherwise, `kill-line' kills only up to the end of the line, but not -the terminating newline. Note: This only applies when `kill-line' is -called interactively. +the terminating newline. WARNING: This is a misnamed variable! It should be called something like `kill-whole-line-when-at-beginning'. If you simply want @@ -1125,7 +1125,7 @@ :type 'boolean :group 'killing) -(defun kill-line-1 (arg entire-line interactive-p) +(defun kill-line-1 (arg entire-line) (kill-region (if entire-line (save-excursion (beginning-of-line) @@ -1147,8 +1147,7 @@ (signal 'end-of-buffer nil)) (if (or (looking-at "[ \t]*$") (or entire-line - (and interactive-p - (and kill-whole-line (bolp))))) + (and kill-whole-line (bolp)))) (forward-line 1) (end-of-line))) (point)))) @@ -1161,7 +1160,7 @@ When calling from a program, nil means \"no arg\", a number counts as a prefix arg." (interactive "*P") - (kill-line-1 arg t (interactive-p))) + (kill-line-1 arg t)) (defun kill-line (&optional arg) "Kill the rest of the current line, or the entire line. @@ -1177,7 +1176,7 @@ When calling from a program, nil means \"no arg\", a number counts as a prefix arg." (interactive "*P") - (kill-line-1 arg nil (interactive-p))) + (kill-line-1 arg nil)) ;; XEmacs (defun backward-kill-line nil @@ -2088,9 +2087,7 @@ (setq zmacs-region-stays t)) ((and (getf last-command-properties 'shifted-motion-command) unshifted-motion-keys-deselect-region) - (setq zmacs-region-stays nil)) - (t - (setq zmacs-region-stays t))))) + (setq zmacs-region-stays nil))))) (defun forward-char-command (&optional arg buffer) "Move point right ARG characters (left if ARG negative) in BUFFER. @@ -2793,6 +2790,15 @@ (if arg (forward-line 1)) (setq count (1- count))))) +;; This variable: Synched up with 20.7. +(defvar comment-padding 1 + "Number of spaces `comment-region' puts between comment chars and text. + +Extra spacing between the comment characters and the comment text +makes the comment easier to read. Default is 1. Nil means 0 and is +more efficient.") + +;; This function: Synched up with 20.7. (defun comment-region (start end &optional arg) "Comment or uncomment each line in the region. With just C-u prefix arg, uncomment each line in region. @@ -2810,6 +2816,8 @@ (save-excursion (save-restriction (let ((cs comment-start) (ce comment-end) + (cp (when comment-padding + (make-string comment-padding ? ))) numarg) (if (consp arg) (setq numarg t) (setq numarg (prefix-numeric-value arg)) @@ -2822,17 +2830,40 @@ ;; Loop over all lines from START to END. (narrow-to-region start end) (goto-char start) - (while (not (eobp)) - (if (or (eq numarg t) (< numarg 0)) - (progn + ;; if user didn't specify how many comments to remove, be smart + ;; and remove the minimal number that all lines have. that way, + ;; comments in a region of Elisp code that gets commented out will + ;; get put back correctly. + (if (eq numarg t) + (let ((min-comments 999999)) + (while (not (eobp)) + (let ((this-comments 0)) + (while (looking-at (regexp-quote cs)) + (incf this-comments) + (forward-char (length cs))) + (if (and (> this-comments 0) (< this-comments min-comments)) + (setq min-comments this-comments)) + (forward-line 1))) + (if (< min-comments 999999) + (setq numarg (- min-comments))) + (goto-char start))) + (if (or (eq numarg t) (< numarg 0)) + (while (not (eobp)) + (let (found-comment) ;; Delete comment start from beginning of line. (if (eq numarg t) (while (looking-at (regexp-quote cs)) + (setq found-comment t) (delete-char (length cs))) (let ((count numarg)) (while (and (> 1 (setq count (1+ count))) (looking-at (regexp-quote cs))) + (setq found-comment t) (delete-char (length cs))))) + ;; Delete comment padding from beginning of line + (when (and found-comment comment-padding + (looking-at (regexp-quote cp))) + (delete-char comment-padding)) ;; Delete comment end from end of line. (if (string= "" ce) nil @@ -2842,23 +2873,29 @@ ;; This is questionable if comment-end ends in ;; whitespace. That is pretty brain-damaged, ;; though. - (skip-chars-backward " \t") - (if (and (>= (- (point) (point-min)) (length ce)) - (save-excursion - (backward-char (length ce)) - (looking-at (regexp-quote ce)))) - (delete-char (- (length ce))))) + (while (progn (skip-chars-backward " \t") + (and (>= (- (point) (point-min)) + (length ce)) + (save-excursion + (backward-char (length ce)) + (looking-at (regexp-quote ce))))) + (delete-char (- (length ce))))) (let ((count numarg)) (while (> 1 (setq count (1+ count))) (end-of-line) ;; This is questionable if comment-end ends in ;; whitespace. That is pretty brain-damaged though (skip-chars-backward " \t") - (save-excursion - (backward-char (length ce)) - (if (looking-at (regexp-quote ce)) - (delete-char (length ce)))))))) - (forward-line 1)) + (if (>= (- (point) (point-min)) (length ce)) + (save-excursion + (backward-char (length ce)) + (if (looking-at (regexp-quote ce)) + (delete-char (length ce))))))))) + (forward-line 1))) + + (when comment-padding + (setq cs (concat cs cp))) + (while (not (eobp)) ;; Insert at beginning and at end. (if (looking-at "[ \t]*$") () (insert cs) @@ -2991,12 +3028,11 @@ (fill-point (let ((opoint (point)) bounce - ;; 97/3/14 jhod: Kinsoku - (re-break-point (if (featurep 'mule) - (concat "[ \t\n]\\|" word-across-newline - ".\\|." word-across-newline) - "[ \t\n]")) - ;; end patch + (re-break-point ;; Kinsoku processing + (if (featurep 'mule) + (concat "[ \t\n]\\|" word-across-newline + ".\\|." word-across-newline) + "[ \t\n]")) (first t)) (save-excursion (move-to-column (1+ fill-column)) @@ -3013,24 +3049,21 @@ (and (looking-at "\\. ") (not (looking-at "\\. ")))))) (setq first nil) - ;; 97/3/14 jhod: Kinsoku - ; (skip-chars-backward "^ \t\n")) + ;; XEmacs: change for Kinsoku processing (fill-move-backward-to-break-point re-break-point) - ;; end patch ;; If we find nowhere on the line to break it, ;; break after one word. Set bounce to t ;; so we will not keep going in this while loop. (if (bolp) (progn - ;; 97/3/14 jhod: Kinsoku - ; (re-search-forward "[ \t]" opoint t) + ;; XEmacs: change for Kinsoku processing (fill-move-forward-to-break-point re-break-point opoint) - ;; end patch (setq bounce t))) (skip-chars-backward " \t")) (if (and (featurep 'mule) - (or bounce (bolp))) (kinsoku-process)) ;; 97/3/14 jhod: Kinsoku + (or bounce (bolp))) + (declare-fboundp (kinsoku-process))) ;; Let fill-point be set to the place where we end up. (point))))) @@ -3049,7 +3082,8 @@ ;; break the line there. (if (save-excursion (goto-char fill-point) - (not (or (bolp) (eolp)))) ; 97/3/14 jhod: during kinsoku processing it is possible to move beyond + ;; during kinsoku processing it is possible to move beyond + (not (or (bolp) (eolp)))) (let ((prev-column (current-column))) ;; If point is at the fill-point, do not `save-excursion'. ;; Otherwise, if a comment prefix or fill-prefix is inserted, @@ -3060,7 +3094,7 @@ ;; 1999-09-17 hniksic: turn off Kinsoku until ;; it's debugged. (funcall comment-line-break-function) - ;; 97/3/14 jhod: Kinsoku processing + ;; XEmacs: Kinsoku processing ; ;(indent-new-comment-line) ; (let ((spacep (memq (char-before (point)) '(?\ ?\t)))) ; (funcall comment-line-break-function) @@ -3250,9 +3284,8 @@ (interactive) (let (comcol comstart) (skip-chars-backward " \t") - ;; 97/3/14 jhod: Kinsoku processing (if (featurep 'mule) - (kinsoku-process)) + (declare-fboundp (kinsoku-process))) (delete-region (point) (progn (skip-chars-forward " \t") (point))) @@ -3870,14 +3903,28 @@ the region is active. Otherwise, this means that the user has pushed a mark in this buffer at some point in the past. The functions `region-beginning' and `region-end' can be used to find the - limits of the region." + limits of the region. + +You should use this, *NOT* `region-active-p', in a menu item +specification that you want grayed out when the region is not active: + + [ ... ... :active (region-exists-p)] + +This correctly caters to the user's setting of `zmacs-regions'." (not (null (mark)))) ;; XEmacs (defun region-active-p () "Return non-nil if the region is active. If `zmacs-regions' is true, this is equivalent to `region-exists-p'. -Otherwise, this function always returns false." +Otherwise, this function always returns false. + +You should generally *NOT* use this in a menu item specification that you +want grayed out when the region is not active. Instead, use this: + + [ ... ... :active (region-exists-p)] + +Which correctly caters to the user's setting of `zmacs-regions'." (and zmacs-regions zmacs-region-extent)) (defvar zmacs-activate-region-hook nil @@ -3893,6 +3940,10 @@ This is called after each command that sets `zmacs-region-stays' to t. See the variable `zmacs-regions'.") +(add-hook 'zmacs-deactivate-region-hook 'disown-selection) +(add-hook 'zmacs-activate-region-hook 'activate-region-as-selection) +(add-hook 'zmacs-update-region-hook 'activate-region-as-selection) + (defvar zmacs-region-extent nil "The extent of the zmacs region; don't use this.") @@ -4214,8 +4265,7 @@ (or frame (setq frame (selected-frame))) (let ((clear-stream (and message-stack (eq 'stream (frame-type frame))))) (remove-message label frame) - (let ((inhibit-read-only t) - (zmacs-region-stays zmacs-region-stays)) ; preserve from change + (let ((inhibit-read-only t)) (erase-buffer " *Echo Area*")) (if clear-stream (send-string-to-terminal ?\n stdout-p)) @@ -4273,8 +4323,7 @@ ;; message-stack. (defun raw-append-message (message &optional frame stdout-p) (unless (equal message "") - (let ((inhibit-read-only t) - (zmacs-region-stays zmacs-region-stays)) ; preserve from change + (let ((inhibit-read-only t)) (insert-string message " *Echo Area*") ;; Conditionalizing on the device type in this way is not that clean, ;; but neither is having a device method, as I originally implemented diff --text -u 'xemacs-21.5.0/lisp/sound.el' 'xemacs-21.5.1/lisp/sound.el' Index: ./lisp/sound.el --- ./lisp/sound.el Fri Apr 13 03:21:36 2001 +++ ./lisp/sound.el Sat May 5 19:51:22 2001 @@ -140,10 +140,11 @@ You can only play sound files if you are running on display 0 of the console of a machine with native sound support or running a NetAudio -server and XEmacs has the necessary sound support compiled in. +or ESD server and XEmacs has the necessary sound support compiled in. -The sound file must be in the Sun/NeXT U-LAW format, except on Linux, -where .wav files are also supported by the sound card drivers." +The sound file must be in the Sun/NeXT U-LAW format, except on Linux +and MS Windows, where .wav files are also supported by the sound card +drivers." (interactive "fSound file name: \n\ SSymbol to name this sound: \n\ nVolume (0 for default): ") @@ -151,17 +152,14 @@ (error "sound-name not a symbol")) (unless (or (null volume) (integerp volume)) (error "volume not an integer or nil")) - (let ((file (if (file-name-absolute-p filename) - ;; For absolute file names, we don't have on choice on the - ;; location, but sound extensions however can still be tried - (setq file (locate-file filename - (list (file-name-directory filename)) - (split-string sound-extension-list - ":"))) - (setq file (locate-file filename - default-sound-directory-list - (split-string sound-extension-list - ":"))))) + (let ((file + ;; For absolute file names, we don't have on choice on the + ;; location, but sound extensions however can still be tried + (locate-file filename + (if (file-name-absolute-p filename) + (list (file-name-directory filename)) + default-sound-directory-list) + (split-string sound-extension-list ":"))) buf data) (unless file (error "Couldn't load sound file %s" filename)) diff --text -u 'xemacs-21.5.0/lisp/startup.el' 'xemacs-21.5.1/lisp/startup.el' Index: ./lisp/startup.el --- ./lisp/startup.el Wed Apr 18 00:50:12 2001 +++ ./lisp/startup.el Sat May 5 19:51:23 2001 @@ -30,11 +30,39 @@ ;; This file is dumped with XEmacs. -;; -batch, -t, and -nw are processed by main() in emacs.c and are -;; never seen by lisp code. - -;; -version and -help are special-cased as well: they imply -batch, -;; but are left on the list for lisp code to process. +;; It handles the all aspects of startup once the C code has finished +;; initializing itself. Entry from C is through the function set in +;; the `top-level' variable, which is normally `normal-top-level'. At +;; the point that `normal-top-level' has been invoked: +;; +;; (1) the dumped Elisp files are available. Either they were loaded +;; during this invocation of temacs and it was then converted to +;; XEmacs using the run-temacs mechanism, or (more likely) the +;; loadup and dumping occurred at some point in the past and we +;; just read in the dumped data. +;; +;; (2) All C subsystems have been initialized. +;; +;; (3) A "stream" device has been created, which does I/O over stdin +;; and stdout. This is the only device we have available and our +;; only means of communication, other than disk files. +;; +;; (4) The command-line arguments have been sorted according to +;; priority specs (this implies that the names of all arguments +;; must be hard-coded into emacs.c), and certain low-level +;; arguments such as -sd, -t, -nd, -nw, -batch, etc. have been +;; processed by main_1() and removed. (NOTE: main_1() is the name +;; in the source code, but in the object file it has some other +;; name, such as xemacs_21_2_34_mips_sgi_irix6().) Certain other +;; arguments such as -version and -help are partially-processed, +;; triggering some special behavior but being left on the list for +;; further processing by the Lisp code. +;; +;; The job of the code here is to process the remaining command-line +;; args, set up the various paths, locate where all the packages are +;; and set things up for them (initialize the load path, read in the +;; autoloads, etc.), read in the init files, display the splash +;; screen, and set up any remaining environment-dependent variables. ;;; Code: @@ -565,14 +593,19 @@ (push (pop args) new-args))) (t (push arg new-args)))) - (setq init-file-user (and load-user-init-file-p "")) + (with-obsolete-variable 'init-file-user + (setq init-file-user (and load-user-init-file-p ""))) (nreverse new-args))) (defconst initial-scratch-message "\ ;; This buffer is for notes you don't want to save, and for Lisp evaluation. ;; If you want to create a file, first visit that file with C-x C-f, -;; then enter the text in that file's own buffer. +;; then enter the text in that file's own buffer. (C-x is the standard +;; XEmacs abbreviation for `Control+X', i.e. hold down the Control key +;; while hitting the X key.) +;; +;; For Lisp evaluation, type an expression, move to the end and hit C-j. " "Initial message displayed in *scratch* buffer at startup. @@ -594,6 +627,11 @@ ;; Setup the toolbar icon directory (when (featurep 'toolbar) (init-toolbar-location)) + + (if (featurep 'toolbar) + (if (featurep 'infodock) + (require 'id-x-toolbar) + (init-toolbar))) ;; Run the window system's init function. tty is considered to be ;; a type of window system for this purpose. This creates the diff --text -u 'xemacs-21.5.0/lisp/subr.el' 'xemacs-21.5.1/lisp/subr.el' Index: ./lisp/subr.el --- ./lisp/subr.el Fri Apr 13 03:21:36 2001 +++ ./lisp/subr.el Mon May 7 16:51:15 2001 @@ -633,6 +633,8 @@ malformed-property-list circular-list circular-property-list + invalid-regexp + specifier-syntax-error invalid-argument wrong-type-argument @@ -640,28 +642,47 @@ wrong-number-of-arguments invalid-function no-catch + undefined-keystroke-sequence + specifier-argument-error invalid-state void-function cyclic-function-indirection void-variable cyclic-variable-indirection + protected-field + invalid-byte-code invalid-operation invalid-change setting-constant + specifier-change-error editing-error beginning-of-buffer end-of-buffer buffer-read-only io-error + file-error + file-already-exists + file-locked + file-supersession end-of-file + coding-system-error + image-conversion-error + tooltalk-error arith-error range-error domain-error singularity-error overflow-error underflow-error + dialog-box-error + search-failed + selection-conversion-error + + unimplemented + + internal-error The five most common errors you will probably use or base your new errors off of are `syntax-error', `invalid-argument', `invalid-state', diff --text -u 'xemacs-21.5.0/lisp/symbols.el' 'xemacs-21.5.1/lisp/symbols.el' Index: ./lisp/symbols.el --- ./lisp/symbols.el Fri Apr 13 03:21:36 2001 +++ ./lisp/symbols.el Sat May 5 19:51:23 2001 @@ -83,6 +83,9 @@ ;; perhaps there should be something that combines ;; `define-magic-variable-handlers' with `defvaralias'. +(globally-declare-fboundp + '(set-magic-variable-handler)) + (defun define-magic-variable-handlers (variable handler-class harg) "Set the magic variable handles for VARIABLE to those in HANDLER-CLASS. HANDLER-CLASS should be a symbol. The handlers are constructed by adding diff --text -u 'xemacs-21.5.0/lisp/syntax.el' 'xemacs-21.5.1/lisp/syntax.el' Index: ./lisp/syntax.el --- ./lisp/syntax.el Fri Apr 13 03:21:36 2001 +++ ./lisp/syntax.el Sat May 5 19:51:24 2001 @@ -248,8 +248,8 @@ (if (equal first last) (cond ((vectorp first) (princ (format "%s, row %d\t" - (charset-name - (aref first 0)) + (declare-fboundp (charset-name + (aref first 0))) (aref first 1)) stream)) ((symbolp first) @@ -260,8 +260,8 @@ (princ "\t" stream))) (cond ((vectorp first) (princ (format "%s, rows %d .. %d\t" - (charset-name - (aref first 0)) + (declare-fboundp (charset-name + (aref first 0))) (aref first 1) (aref last 1)) stream)) @@ -303,8 +303,8 @@ (and (characterp range) (characterp first-char) (or (not (featurep 'mule)) - (eq (char-charset range) - (char-charset first-char))) + (eq (declare-fboundp (char-charset range)) + (declare-fboundp (char-charset first-char)))) (= (char-int last-char) (1- (char-int range)))) (and (vectorp range) (vectorp first-char) diff --text -u 'xemacs-21.5.0/lisp/toolbar-items.el' 'xemacs-21.5.1/lisp/toolbar-items.el' Index: ./lisp/toolbar-items.el --- ./lisp/toolbar-items.el Fri Apr 13 03:21:37 2001 +++ ./lisp/toolbar-items.el Sat May 5 19:51:24 2001 @@ -37,13 +37,6 @@ ;;; Code: -;; Suppress warning message from bytecompiler -(eval-when-compile - (defvar pending-delete-mode) - ;; #### The compiler still warns about missing - ;; `pending-delete-pre-hook'. Any way to get rid of the warning? - ) - (defgroup toolbar nil "Configure XEmacs Toolbar functions and properties" :group 'environment) @@ -132,9 +125,9 @@ (interactive) ;; This horrible kludge is for pending-delete to work correctly. (and (boundp 'pending-delete-mode) - pending-delete-mode + (declare-boundp pending-delete-mode) (let ((this-command toolbar-paste-function)) - (pending-delete-pre-hook))) + (declare-fboundp (pending-delete-pre-hook)))) (call-interactively toolbar-paste-function)) (defcustom toolbar-undo-function 'undo @@ -425,7 +418,7 @@ ;;; each entry maps a variable to the prefix used. -(defvar init-x-toolbar-list +(defvar init-toolbar-list '((toolbar-last-win-icon . "last-win") (toolbar-next-win-icon . "next-win") (toolbar-file-icon . "file") @@ -444,18 +437,18 @@ (toolbar-debug-icon . "debug") (toolbar-news-icon . "news"))) -(defun init-x-toolbar () - (toolbar-add-item-data init-x-toolbar-list ) +(defun init-toolbar () + (toolbar-add-item-data init-toolbar-list) ;; do this now because errors will occur if the icon symbols ;; are not initted (set-specifier default-toolbar initial-toolbar-spec)) -(defun toolbar-add-item-data ( icon-list &optional icon-dir ) +(defun toolbar-add-item-data (icon-list &optional icon-dir) (if (eq icon-dir nil) (setq icon-dir toolbar-icon-directory)) (mapcar (lambda (cons) - (let ((prefix (expand-file-name (cdr cons) icon-dir))) + (let ((prefix (expand-file-name (cdr cons) icon-dir))) ;; #### This should use a better mechanism for finding the ;; glyphs, allowing for formats other than x[pb]m. Look at ;; `widget-glyph-find' for an example how it might be done. @@ -567,31 +560,5 @@ toolbar-vector-news ) "The initial toolbar for a buffer.") - -(defun x-init-toolbar-from-resources (locale) - (x-init-specifier-from-resources - top-toolbar-height 'natnum locale - '("topToolBarHeight" . "TopToolBarHeight")) - (x-init-specifier-from-resources - bottom-toolbar-height 'natnum locale - '("bottomToolBarHeight" . "BottomToolBarHeight")) - (x-init-specifier-from-resources - left-toolbar-width 'natnum locale - '("leftToolBarWidth" . "LeftToolBarWidth")) - (x-init-specifier-from-resources - right-toolbar-width 'natnum locale - '("rightToolBarWidth" . "RightToolBarWidth")) - (x-init-specifier-from-resources - top-toolbar-border-width 'natnum locale - '("topToolBarBorderWidth" . "TopToolBarBorderWidth")) - (x-init-specifier-from-resources - bottom-toolbar-border-width 'natnum locale - '("bottomToolBarBorderWidth" . "BottomToolBarBorderWidth")) - (x-init-specifier-from-resources - left-toolbar-border-width 'natnum locale - '("leftToolBarBorderWidth" . "LeftToolBarBorderWidth")) - (x-init-specifier-from-resources - right-toolbar-border-width 'natnum locale - '("rightToolBarBorderWidth" . "RightToolBarBorderWidth"))) ;;; toolbar-items.el ends here diff --text -u 'xemacs-21.5.0/lisp/toolbar.el' 'xemacs-21.5.1/lisp/toolbar.el' Index: ./lisp/toolbar.el --- ./lisp/toolbar.el Fri Apr 13 03:21:37 2001 +++ ./lisp/toolbar.el Sat May 5 19:51:25 2001 @@ -101,12 +101,13 @@ (setq toolbar-icon-directory (file-name-as-directory name)))))) +;; called from toolbar.c during device and frame initialization (defun init-toolbar-from-resources (locale) (if (and (featurep 'x) (not (featurep 'infodock)) (or (eq locale 'global) (eq 'x (device-or-frame-type locale)))) - (x-init-toolbar-from-resources locale))) + (declare-fboundp (x-init-toolbar-from-resources locale)))) ;; #### Is this actually needed or will the code in diff --text -u 'xemacs-21.5.0/lisp/tty-init.el' 'xemacs-21.5.1/lisp/tty-init.el' Index: ./lisp/tty-init.el --- ./lisp/tty-init.el Tue Jun 30 15:35:26 1998 +++ ./lisp/tty-init.el Sat May 5 19:51:25 2001 @@ -36,27 +36,28 @@ ;; called both from init-tty-win and from the C code. (defun init-pre-tty-win () "Initialize TTY at startup (pre). Don't call this." - (unless pre-tty-win-initted - (register-tty-color "black" "\e[30m" "\e[40m") - (register-tty-color "red" "\e[31m" "\e[41m") - (register-tty-color "green" "\e[32m" "\e[42m") - (register-tty-color "yellow" "\e[33m" "\e[43m") - (register-tty-color "blue" "\e[34m" "\e[44m") - (register-tty-color "magenta" "\e[35m" "\e[45m") - (register-tty-color "cyan" "\e[36m" "\e[46m") - (register-tty-color "white" "\e[37m" "\e[47m") + (with-fboundp 'register-tty-color + (unless pre-tty-win-initted + (register-tty-color "black" "\e[30m" "\e[40m") + (register-tty-color "red" "\e[31m" "\e[41m") + (register-tty-color "green" "\e[32m" "\e[42m") + (register-tty-color "yellow" "\e[33m" "\e[43m") + (register-tty-color "blue" "\e[34m" "\e[44m") + (register-tty-color "magenta" "\e[35m" "\e[45m") + (register-tty-color "cyan" "\e[36m" "\e[46m") + (register-tty-color "white" "\e[37m" "\e[47m") - ;; Define `highlighted' tty colors - (register-tty-color "darkgrey" "\e[1;30m" "\e[1;40m") - (register-tty-color "brightred" "\e[1;31m" "\e[1;41m") - (register-tty-color "brightgreen" "\e[1;32m" "\e[1;42m") - (register-tty-color "brightyellow" "\e[1;33m" "\e[1;43m") - (register-tty-color "brightblue" "\e[1;34m" "\e[1;44m") - (register-tty-color "brightmagenta" "\e[1;35m" "\e[1;45m") - (register-tty-color "brightcyan" "\e[1;36m" "\e[1;46m") - (register-tty-color "brightwhite" "\e[1;37m" "\e[1;47m") + ;; Define `highlighted' tty colors + (register-tty-color "darkgrey" "\e[1;30m" "\e[1;40m") + (register-tty-color "brightred" "\e[1;31m" "\e[1;41m") + (register-tty-color "brightgreen" "\e[1;32m" "\e[1;42m") + (register-tty-color "brightyellow" "\e[1;33m" "\e[1;43m") + (register-tty-color "brightblue" "\e[1;34m" "\e[1;44m") + (register-tty-color "brightmagenta" "\e[1;35m" "\e[1;45m") + (register-tty-color "brightcyan" "\e[1;36m" "\e[1;46m") + (register-tty-color "brightwhite" "\e[1;37m" "\e[1;47m") - (setq pre-tty-win-initted t))) + (setq pre-tty-win-initted t)))) ;; called both from init-tty-win and from the C code. ;; we have to do this for every created TTY console. @@ -67,7 +68,7 @@ ;; override term-file-prefix. (startup.el does it after ;; loading the init file.) (if (featurep 'mule) - (init-mule-tty-win)) + (declare-fboundp (init-mule-tty-win))) (when init-file-loaded ;; temporarily select the console so that the changes ;; to function-key-map are made for the right console. diff --text -u 'xemacs-21.5.0/lisp/update-elc.el' 'xemacs-21.5.1/lisp/update-elc.el' Index: ./lisp/update-elc.el --- ./lisp/update-elc.el Fri Apr 13 03:21:38 2001 +++ ./lisp/update-elc.el Mon May 7 16:51:15 2001 @@ -99,7 +99,7 @@ (setq preloaded-file-list (append package-preloaded-file-list preloaded-file-list - '("bytecomp") + '("bytecomp" "byte-optimize") packages-hardcoded-lisp))) (load (concat default-directory "../site-packages") t t) @@ -166,11 +166,42 @@ (if update-elc-files-to-compile (progn - (setq command-line-args - (append '("-l" "loadup-el.el" "run-temacs" - "-batch" "-q" "-no-site-file" - "-l" "bytecomp" "-f" "batch-byte-compile") - update-elc-files-to-compile)) + (let ((bytecomp-arg (locate-library "bytecomp")) + (byte-opt-arg (locate-library "byte-optimize"))) + (if (string-match "\\.elc?\\'" bytecomp-arg) + (setq bytecomp-arg (substring bytecomp-arg 0 + (match-beginning 0)))) + (setq bytecomp-arg (concat bytecomp-arg ".el")) + (if (string-match "\\.elc?\\'" byte-opt-arg) + (setq byte-opt-arg (substring byte-opt-arg 0 + (match-beginning 0)))) + (setq byte-opt-arg (concat byte-opt-arg ".el")) + ;; if bytecomp or byte-optimize need recompiling, then load + ;; the .el version of them first, recompile them, and reload + ;; the .elc versions to recompile everything else (so we won't + ;; be waiting until the cows come home). + (setq command-line-args + (append '("-l" "loadup-el.el" "run-temacs" + "-batch" "-q" "-no-site-file") + (if (or + (member bytecomp-arg update-elc-files-to-compile) + (member byte-opt-arg update-elc-files-to-compile)) + (append + '("-eval" "(setq load-ignore-elc-files t)" + "-l" "bytecomp") + (if (member bytecomp-arg + update-elc-files-to-compile) + (append '("-f" "batch-byte-compile-one-file") + (list bytecomp-arg))) + (if (member byte-opt-arg + update-elc-files-to-compile) + (append '("-f" "batch-byte-compile-one-file") + (list byte-opt-arg))) + '("-eval" "(setq load-ignore-elc-files nil)"))) + '("-l" "bytecomp" "-f" "batch-byte-compile") + (delete byte-opt-arg + (delete bytecomp-arg + update-elc-files-to-compile))))) (load "loadup-el.el")) (condition-case nil (delete-file "../src/NOBYTECOMPILE") diff --text -u 'xemacs-21.5.0/lisp/wid-browse.el' 'xemacs-21.5.1/lisp/wid-browse.el' Index: ./lisp/wid-browse.el --- ./lisp/wid-browse.el Sat Nov 8 14:34:51 1997 +++ ./lisp/wid-browse.el Sat May 5 19:51:25 2001 @@ -226,7 +226,7 @@ "Insert description of WIDGET's KEY VALUE. Nothing is assumed about value." (let ((pp (condition-case signal - (pp-to-string value) + (declare-fboundp (pp-to-string value)) (error (prin1-to-string signal))))) (when (string-match "\n\\'" pp) (setq pp (substring pp 0 (1- (length pp))))) diff --text -u 'xemacs-21.5.0/lisp/widgets-gtk.el' 'xemacs-21.5.1/lisp/widgets-gtk.el' Index: ./lisp/widgets-gtk.el --- ./lisp/widgets-gtk.el Fri Apr 13 03:21:39 2001 +++ ./lisp/widgets-gtk.el Sat May 5 19:51:25 2001 @@ -28,6 +28,17 @@ ;; This file is dumped with XEmacs (when embedded widgets are compiled in). +(globally-declare-fboundp + '(gtk-button-new-with-label + gtk-signal-connect + gtk-radio-button-new-with-label gtk-radio-button-group + gtk-toggle-button-set-active gtk-check-button-new-with-label + gtk-widget-show-all gtk-notebook-new gtk-notebook-append-page + gtk-vbox-new gtk-label-new gtk-adjustment-new + gtk-progress-bar-new-with-adjustment gtk-adjustment-set-value + gtk-entry-new gtk-entry-set-text gtk-widget-set-style + gtk-widget-get-style)) + (defvar foo) (defun gtk-widget-instantiate-button-internal (plist callback) diff --text -u 'xemacs-21.5.0/lisp/x-faces.el' 'xemacs-21.5.1/lisp/x-faces.el' Index: ./lisp/x-faces.el --- ./lisp/x-faces.el Fri Apr 13 03:21:40 2001 +++ ./lisp/x-faces.el Sat May 5 19:51:26 2001 @@ -62,6 +62,10 @@ ;;; Code: +(globally-declare-fboundp + '(x-get-resource-and-maybe-bogosity-check + x-get-resource x-init-pointer-shape)) + (defconst x-font-regexp nil) (defconst x-font-regexp-head nil) (defconst x-font-regexp-head-2 nil) diff --text -u 'xemacs-21.5.0/lisp/x-font-menu.el' 'xemacs-21.5.1/lisp/x-font-menu.el' Index: ./lisp/x-font-menu.el --- ./lisp/x-font-menu.el Fri Apr 13 03:21:40 2001 +++ ./lisp/x-font-menu.el Sat May 5 19:51:26 2001 @@ -34,6 +34,13 @@ (require 'font-menu) +(globally-declare-boundp + '(x-font-regexp + x-font-regexp-foundry-and-family x-font-regexp-spacing)) + +(globally-declare-fboundp + '(charset-registry)) + (defvar x-font-menu-registry-encoding nil "Registry and encoding to use with font menu fonts.") @@ -184,8 +191,6 @@ ;; get the truename and use the possibly suboptimal data from that. ;;;###autoload (defun* x-font-menu-font-data (face dcache) - (defvar x-font-regexp) - (defvar x-font-regexp-foundry-and-family) (let* ((case-fold-search t) (domain (if font-menu-this-frame-only-p (selected-frame) diff --text -u 'xemacs-21.5.0/lisp/x-init.el' 'xemacs-21.5.1/lisp/x-init.el' Index: ./lisp/x-init.el --- ./lisp/x-init.el Fri Apr 13 03:21:40 2001 +++ ./lisp/x-init.el Sat May 5 19:51:26 2001 @@ -32,6 +32,13 @@ ;;; Code: +(globally-declare-fboundp + '(x-keysym-on-keyboard-p + x-server-vendor x-init-specifier-from-resources init-mule-x-win)) + +(globally-declare-boundp + '(x-initial-argv-list)) + ;; If you want to change this variable, this is the place you must do it. ;; Do not set it to a string containing periods. X doesn't like that. ;(setq x-emacs-application-class "Emacs") @@ -40,23 +47,6 @@ "The X Window system." :group 'environment) -;; selections and active regions - -;; If and only if zmacs-regions is true: - -;; When a mark is pushed and the region goes into the "active" state, we -;; assert it as the Primary selection. This causes it to be hilighted. -;; When the region goes into the "inactive" state, we disown the Primary -;; selection, causing the region to be dehilighted. - -;; Note that it is possible for the region to be in the "active" state -;; and not be hilighted, if it is in the active state and then some other -;; application asserts the selection. This is probably not a big deal. - -(defun x-activate-region-as-selection () - (if (marker-buffer (mark-marker t)) - (own-selection (cons (point-marker t) (mark-marker t))))) - ;; OpenWindows-like "find" processing. These functions are really Sunisms, ;; but we put them here instead of in x-win-sun.el in case someone wants ;; to use them when not running on a Sun console (presumably after binding @@ -298,28 +288,7 @@ (defun init-post-x-win () "Initialize X Windows at startup (post). Don't call this." (when (not post-x-win-initted) - ;; We can't load this until after the initial X device is created - ;; because the icon initialization needs to access the display to get - ;; any toolbar-related color resources. - (if (and (not (featurep 'infodock)) (featurep 'toolbar)) - (init-x-toolbar)) - (if (and (featurep 'infodock) (featurep 'toolbar)) - (require 'id-x-toolbar)) - (if (featurep 'gutter) (init-gutter)) (if (featurep 'mule) (init-mule-x-win)) - ;; these are only ever called if zmacs-regions is true. - (add-hook 'zmacs-deactivate-region-hook - (lambda () - (when (console-on-window-system-p) - (disown-selection)))) - (add-hook 'zmacs-activate-region-hook - (lambda () - (when (console-on-window-system-p) - (x-activate-region-as-selection)))) - (add-hook 'zmacs-update-region-hook - (lambda () - (when (console-on-window-system-p) - (x-activate-region-as-selection)))) ;; Motif-ish bindings ;; The following two were generally unliked. ;;(define-key global-map '(shift delete) 'kill-primary-selection) @@ -331,7 +300,6 @@ (define-key global-map 'paste 'yank-clipboard-selection) (define-key global-map 'cut 'kill-primary-selection) - (define-key global-map 'menu 'popup-mode-menu) ;;(define-key global-map '(shift menu) 'x-goto-menubar) ;NYI (setq post-x-win-initted t))) diff --text -u 'xemacs-21.5.0/lisp/x-misc.el' 'xemacs-21.5.1/lisp/x-misc.el' Index: ./lisp/x-misc.el --- ./lisp/x-misc.el Fri Apr 13 03:21:40 2001 +++ ./lisp/x-misc.el Sat May 5 19:51:27 2001 @@ -31,6 +31,9 @@ ;;; Code: +(globally-declare-fboundp + '(x-get-resource)) + (defun x-bogosity-check-resource (name class type) "Check for a bogus resource specification." (let ((bogus (x-get-resource diff --text -u 'xemacs-21.5.0/lisp/x-mouse.el' 'xemacs-21.5.1/lisp/x-mouse.el' Index: ./lisp/x-mouse.el --- ./lisp/x-mouse.el Fri Apr 13 03:21:40 2001 +++ ./lisp/x-mouse.el Sat May 5 19:51:27 2001 @@ -31,6 +31,9 @@ ;;; Code: +(globally-declare-fboundp + '(x-store-cutbuffer x-get-resource)) + ;;(define-key global-map 'button2 'x-set-point-and-insert-selection) ;; This is reserved for use by Hyperbole. ;;(define-key global-map '(shift button2) 'x-mouse-kill) diff --text -u 'xemacs-21.5.0/lisp/x-scrollbar.el' 'xemacs-21.5.1/lisp/x-scrollbar.el' Index: ./lisp/x-scrollbar.el --- ./lisp/x-scrollbar.el Fri Apr 13 03:21:40 2001 +++ ./lisp/x-scrollbar.el Sat May 5 19:51:27 2001 @@ -33,6 +33,9 @@ ;;; Code: +(globally-declare-fboundp + '(x-init-specifier-from-resources x-get-resource)) + (defun x-init-scrollbar-from-resources (locale) (x-init-specifier-from-resources (specifier-fallback scrollbar-width) 'natnum locale diff --text -u 'xemacs-21.5.0/lisp/x-select.el' 'xemacs-21.5.1/lisp/x-select.el' Index: ./lisp/x-select.el --- ./lisp/x-select.el Fri Apr 13 03:21:40 2001 +++ ./lisp/x-select.el Sat May 5 19:51:27 2001 @@ -35,6 +35,10 @@ ;;; Code: +(globally-declare-fboundp + '(x-get-cutbuffer-internal + x-rotate-cutbuffers-internal x-store-cutbuffer-internal)) + (define-obsolete-function-alias 'x-selection-exists-p 'selection-exists-p) (define-obsolete-function-alias 'x-selection-owner-p 'selection-owner-p) (define-obsolete-variable-alias 'x-selection-converter-alist 'selection-converter-alist) diff --text -u 'xemacs-21.5.0/lisp/x-win-sun.el' 'xemacs-21.5.1/lisp/x-win-sun.el' Index: ./lisp/x-win-sun.el --- ./lisp/x-win-sun.el Fri Apr 13 03:21:40 2001 +++ ./lisp/x-win-sun.el Sat May 5 19:51:27 2001 @@ -64,6 +64,9 @@ ;;; Code: +(globally-declare-fboundp + '(x-keysym-on-keyboard-sans-modifiers-p)) + ;;;###autoload (defun x-win-init-sun () diff --text -u 'xemacs-21.5.0/lisp/x-win-xfree86.el' 'xemacs-21.5.1/lisp/x-win-xfree86.el' Index: ./lisp/x-win-xfree86.el --- ./lisp/x-win-xfree86.el Fri Apr 13 03:21:41 2001 +++ ./lisp/x-win-xfree86.el Sat May 5 19:51:27 2001 @@ -39,6 +39,11 @@ ;; For no obvious reason, shift-F1 is called F13, although Meta-F1 and ;; Control-F1 have normal names. +;;; Code: + +(globally-declare-fboundp + '(x-keysym-on-keyboard-p x-keysym-on-keyboard-sans-modifiers-p)) + ;;;###autoload (defun x-win-init-xfree86 () (loop for (key sane-key) in diff --text -u 'xemacs-21.5.0/lwlib/ChangeLog' 'xemacs-21.5.1/lwlib/ChangeLog' Index: ./lwlib/ChangeLog --- ./lwlib/ChangeLog Wed Apr 18 15:56:34 2001 +++ ./lwlib/ChangeLog Wed May 9 19:53:53 2001 @@ -1,3 +1,12 @@ +2001-05-09 Martin Buchholz + + * XEmacs 21.5.1 "anise" is released. + +2001-04-28 Ben Wing + + * lwlib-utils.c (destroy_all_children): fix warning reported by + Isaac Hollander . + 2001-04-18 Martin Buchholz * XEmacs 21.5.0 "alfalfa" is released. diff --text -u 'xemacs-21.5.0/lwlib/lwlib-utils.c' 'xemacs-21.5.1/lwlib/lwlib-utils.c' Index: ./lwlib/lwlib-utils.c --- ./lwlib/lwlib-utils.c Fri Apr 13 03:21:52 2001 +++ ./lwlib/lwlib-utils.c Mon Apr 30 23:09:40 2001 @@ -43,7 +43,7 @@ { /* Unmanage all children and destroy them. They will only be * really destroyed when we get out of DispatchEvent. */ - for (i = 0; i < number; i++) + for (i = 0; i < (int) number; i++) { Widget child = children [i]; if (!child->core.being_destroyed) diff --text -u 'xemacs-21.5.0/man/ChangeLog' 'xemacs-21.5.1/man/ChangeLog' Index: ./man/ChangeLog --- ./man/ChangeLog Wed Apr 18 15:56:31 2001 +++ ./man/ChangeLog Wed May 9 19:53:53 2001 @@ -1,3 +1,23 @@ +2001-05-09 Martin Buchholz + + * XEmacs 21.5.1 "anise" is released. + +2001-05-07 Martin Buchholz + + * make-stds.texi: Support makeinfo 3.12 + +2001-04-26 John H. Palmieri + + * xemacs/frame.texi (XEmacs under X): Document default-frame-plist + rather than default-frame-alist. + +2001-04-15 Ben Wing + + * xemacs-faq.texi (Q1.0.1): + * xemacs-faq.texi (Q1.0.2): + Rewrite description of XEmacs to match what's on web page, + in about.el. + 2001-04-18 Martin Buchholz * XEmacs 21.5.0 "alfalfa" is released. diff --text -u 'xemacs-21.5.0/man/make-stds.texi' 'xemacs-21.5.1/man/make-stds.texi' Index: ./man/make-stds.texi --- ./man/make-stds.texi Fri Apr 13 03:22:00 2001 +++ ./man/make-stds.texi Mon May 7 16:51:30 2001 @@ -811,7 +811,7 @@ @end smallexample @noindent -or, if you wish to support @env{DESTDIR}, +or, if you wish to support @code{DESTDIR}, @smallexample # Make sure all installation directories (e.g. $(bindir)) diff --text -u 'xemacs-21.5.0/man/xemacs-faq.texi' 'xemacs-21.5.1/man/xemacs-faq.texi' Index: ./man/xemacs-faq.texi --- ./man/xemacs-faq.texi Fri Apr 13 18:11:32 2001 +++ ./man/xemacs-faq.texi Mon Apr 30 23:09:49 2001 @@ -7,7 +7,7 @@ @finalout @titlepage @title XEmacs FAQ -@subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2001/04/13 09:11:32 $ +@subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2001/04/20 11:32:18 $ @sp 1 @author Tony Rossini @author Ben Wing @@ -491,17 +491,18 @@ @unnumberedsubsec Q1.0.1: What is XEmacs? -XEmacs is a highly customizable open source text editor and application -development system. It is protected under the GNU Public License and -related to other versions of Emacs, in particular GNU Emacs. Its -emphasis is on modern graphical user interface support and an open -software development model, similar to Linux. XEmacs has an active -development community numbering in the hundreds, and runs on Windows 95 -and NT, Linux and nearly every other version of Unix in -existence. Support for XEmacs has been supplied by Sun Microsystems, -University of Illinois, Lucid, ETL/Electrotechnical Laboratory, Amdahl -Corporation, BeOpen, and others, as well as the unpaid time of a great -number of individual developers. +XEmacs is a powerful, highly customizable open source text editor and +application development system, with full GUI support. It is protected +under the GNU Public License and related to other versions of Emacs, in +particular GNU Emacs. Its emphasis is on modern graphical user +interface support and an open software development model, similar to +Linux. XEmacs has an active development community numbering in the +hundreds (and thousands of active beta testers on top of this), and runs +on all versions of MS Windows, on Linux, and on nearly every other +version of Unix in existence. Support for XEmacs has been supplied by +Sun Microsystems, University of Illinois, Lucid, ETL/Electrotechnical +Laboratory, Amdahl Corporation, BeOpen, and others, as well as the +unpaid time of a great number of individual developers. @node Q1.0.2, Q1.0.3, Q1.0.1, Introduction @unnumberedsubsec Q1.0.2: What is the current version of XEmacs? diff --text -u 'xemacs-21.5.0/man/xemacs/frame.texi' 'xemacs-21.5.1/man/xemacs/frame.texi' Index: ./man/xemacs/frame.texi --- ./man/xemacs/frame.texi Fri Apr 13 03:22:27 2001 +++ ./man/xemacs/frame.texi Mon Apr 30 23:09:55 2001 @@ -507,14 +507,18 @@ in first. This is normally bound to @kbd{C-x 5 b}. @vindex default-frame-alist +@vindex default-frame-plist You can specify a different default frame size other than the one provided. -Use the variable @code{default-frame-alist}, which is an alist of default +Use the variable @code{default-frame-plist}, which is a plist of default values for frame creation other than the first one. These may be set in your init file, like this: @example - (setq default-frame-alist '((width . 80) (height . 55))) + (setq default-frame-plist '(width 80 height 55)) @end example + +This variable has replaced @code{default-frame-alist}, which is +considered obsolete. @vindex x-frame-defaults For values specific to the first XEmacs frame, you must use X resources. diff --text -u 'xemacs-21.5.0/netinstall/ChangeLog' 'xemacs-21.5.1/netinstall/ChangeLog' Index: ./netinstall/ChangeLog --- ./netinstall/ChangeLog Wed Apr 18 15:56:27 2001 +++ ./netinstall/ChangeLog Wed May 9 19:53:53 2001 @@ -1,3 +1,7 @@ +2001-05-09 Martin Buchholz + + * XEmacs 21.5.1 "anise" is released. + 2001-04-18 Martin Buchholz * XEmacs 21.5.0 "alfalfa" is released. diff --text -u 'xemacs-21.5.0/nt/.cvsignore' 'xemacs-21.5.1/nt/.cvsignore' Index: ./nt/.cvsignore --- ./nt/.cvsignore Fri Apr 13 03:22:57 2001 +++ ./nt/.cvsignore Mon Apr 30 23:10:12 2001 @@ -2,3 +2,4 @@ xemacs.ncb xemacs.opt xemacs.plg +obj diff --text -u 'xemacs-21.5.0/nt/ChangeLog' 'xemacs-21.5.1/nt/ChangeLog' Index: ./nt/ChangeLog --- ./nt/ChangeLog Wed Apr 18 15:56:22 2001 +++ ./nt/ChangeLog Wed May 9 19:53:53 2001 @@ -1,3 +1,51 @@ +2001-05-09 Martin Buchholz + + * XEmacs 21.5.1 "anise" is released. + +2001-05-01 Adrian Aichner + + * xemacs.mak: Define EMACS_PATCH_LEVEL like configure.in does. + * xemacs.mak (XEMACS_VERSION_STRING): Build this more like + configure.in does. + * xemacs.mak (docfile): Use del instead of $(DEL) in shell + command. + +2001-05-01 Ben Wing + + * config.inc.samp (MAKEINFO): point at more standard c: not f:. + * minitar.c: + * minitar.c (Usage): + * minitar.c (octal): + * minitar.c (makepath): + * minitar.c (main): + Fix more compiler warnings, clean up the style to conform + more to standard XEmacs. + +2001-05-01 Ben Wing + + * xemacs.mak (DEPEND): + Don't add config.inc to the horked depend file. It's not + recognized by nmake and just results in warnings. + * xemacs.mak (docfile): + Don't use $(DEL) in the middle of a shell command, because it + will try to call `-del' and fail. + +2001-04-27 Adrian Aichner + + * compface.mak (clean): New target. + * xemacs.mak: Use $(DEL) everywhere, instead of some occurences of + del and @$(DEL). Add GTK supporting variables and document it as + currently unsupported on MSWindows. + * xemacs.mak (XEMACS_VERSION_STRING): Initialize according to + emacs_is_beta. Use emacs_beta_version as patch level for non-beta + version. + * xemacs.mak (HAVE_GTK): New. + * xemacs.mak (GTK_DIR): New. + +2001-04-20 Ben Wing + + * .cvsignore: Added stuff for Windows. + 2001-04-18 Martin Buchholz * XEmacs 21.5.0 "alfalfa" is released. diff --text -u 'xemacs-21.5.0/nt/compface.mak' 'xemacs-21.5.1/nt/compface.mak' Index: ./nt/compface.mak --- ./nt/compface.mak Fri Apr 13 03:22:59 2001 +++ ./nt/compface.mak Mon Apr 30 23:10:13 2001 @@ -38,3 +38,6 @@ libcompface.lib: $(OBJS) link.exe -lib -nologo -out:$@ $(OBJS) + +clean: $(OBJS) + -rm -f $(OBJS) libcompface.lib diff --text -u 'xemacs-21.5.0/nt/config.inc.samp' 'xemacs-21.5.1/nt/config.inc.samp' Index: ./nt/config.inc.samp --- ./nt/config.inc.samp Fri Apr 13 03:22:59 2001 +++ ./nt/config.inc.samp Sat May 5 19:53:06 2001 @@ -58,7 +58,7 @@ # Set this to specify the location of makeinfo. (If not set, XEmacs will # attempt to use its built-in texinfo support when building info files.) -MAKEINFO=f:\src\texinfo-4.0\makeinfo\makeinfo.exe +MAKEINFO=c:\src\texinfo-4.0\makeinfo\makeinfo.exe ############################################################################ diff --text -u /dev/null 'xemacs-21.5.1/nt/installer/Wise/ChangeLog' Index: ./nt/installer/Wise/ChangeLog --- ./nt/installer/Wise/ChangeLog Thu Jan 1 09:00:00 1970 +++ ./nt/installer/Wise/ChangeLog Wed May 9 19:53:53 2001 @@ -0,0 +1,8 @@ +2001-05-09 Martin Buchholz + + * XEmacs 21.5.1 "anise" is released. + +2001-04-27 Ben Wing + + * renamed file `display readme.dlg' to display-readme.dlg. + diff --text -u /dev/null 'xemacs-21.5.1/nt/installer/Wise/display-readme.dlg' Index: ./nt/installer/Wise/display-readme.dlg --- ./nt/installer/Wise/display-readme.dlg Thu Jan 1 09:00:00 1970 +++ ./nt/installer/Wise/display-readme.dlg Sat Apr 28 11:10:57 2001 @@ -0,0 +1,63 @@ +Document Type: DLG +item: Custom Dialog + Name=Display ReadMe + Display Variable=DISPLAY + item: Dialog + Title=Read Me File + Title French=Fichier Lisez-moi + Title German=Liesmich-Datei + Title Portuguese=Ficheiro Leia-me + Title Spanish=Archivo Léeme + Title Italian=File Leggimi + Title Danish=Vigtigt fil + Title Dutch=Leesmij-bestand + Title Norwegian=Informasjonsfil + Title Swedish=Läs mig-fil + Width=280 + Height=224 + Font Name=Helv + Font Size=8 + item: Push Button + Rectangle=172 185 214 199 + Variable=DIRECTION + Value=N + Create Flags=01010000000000010000000000000001 + Text=I &Agree > + Text French=&Suivant> + Text German=&Weiter> + Text Portuguese=&Próximo> + Text Spanish=&Siguiente > + Text Italian=&Avanti > + Text Danish=&Næste> + Text Dutch=&Volgende> + Text Norwegian=&Neste> + Text Swedish=&Nästa > + end + item: Push Button + Rectangle=222 185 264 199 + Action=3 + Create Flags=01010000000000010000000000000000 + Text=Cancel + Text French=Annuler + Text German=Abbrechen + Text Portuguese=Cancelar + Text Spanish=Cancelar + Text Italian=Annulla + Text Danish=Slet + Text Dutch=Annuleren + Text Norwegian=Avbryt + Text Swedish=Avbryt + end + item: Static + Rectangle=9 177 263 178 + Action=3 + Create Flags=01010000000000000000000000000111 + end + item: Editbox + Rectangle=85 11 254 170 + Value=%TEMP%\%READMEFILE% + Help Context=16711681 + Create Flags=01010000101000000000100000000100 + end + end +end diff --text -u 'xemacs-21.5.0/nt/minitar.c' 'xemacs-21.5.1/nt/minitar.c' Index: ./nt/minitar.c --- ./nt/minitar.c Fri Apr 13 03:22:59 2001 +++ ./nt/minitar.c Sat May 5 19:53:06 2001 @@ -20,11 +20,12 @@ #include static int -Usage(char *name) +Usage (char *name) { - fprintf(stderr,"Usage: %s file.tar.gz [base-dir]\n",name); - fprintf(stderr,"\tExtracts the contents compressed tar file to base-dir\n"); - exit(-1); + fprintf (stderr, "Usage: %s file.tar.gz [base-dir]\n", name); + fprintf (stderr, "\tExtracts the contents compressed tar file to base-dir\n"); + exit (-1); + return 0; } @@ -32,10 +33,10 @@ #define MAXNAMELEN 1024 static int -octal(char *str) +octal (char *str) { int ret = -1; - sscanf(str,"%o",&ret); + sscanf (str, "%o", &ret); return ret; } @@ -44,39 +45,40 @@ path component, so it is not created as a directory */ static int -makepath(char *path) +makepath (char *path) { char tmp[MAXNAMELEN]; char *cp; - for (cp=path; cp; cp = (char*)strchr(cp+1,'/')){ - if (!*cp) - break; - if (*cp != '/') - continue; - strncpy(tmp, path, cp-path); - tmp[cp-path] = '\0'; - if (strlen(tmp) == 0) - continue; + for (cp=path; cp; cp = (char*)strchr (cp+1, '/')) + { + if (!*cp) + break; + if (*cp != '/') + continue; + strncpy (tmp, path, cp-path); + tmp[cp-path] = '\0'; + if (strlen (tmp) == 0) + continue; #ifdef WIN32_NATIVE - if (mkdir(tmp)){ + if (mkdir (tmp)) #else - if (mkdir(tmp,0777)){ + if (mkdir (tmp, 0777)) #endif - if (errno == EEXIST) - continue; - else - return -1; + { + if (errno == EEXIST) + continue; + else + return -1; + } } - } return 0; } - - + int -main(int argc, char **argv) +main (int argc, char **argv) { char fullname[MAXNAMELEN]; char *basedir = "."; @@ -97,124 +99,138 @@ int directory = 0; if (argc < 2 || argc > 3) - Usage(argv[0]); + Usage (argv[0]); tarfile = argv[1]; if (argc==3) basedir = argv[2]; - if (! (infile = gzopen(tarfile,"rb"))){ - fprintf(stderr,"Cannot open %s\n", tarfile); - exit(-2); - } - - while (1){ - - - nread = gzread(infile,block,512); - - if (!in_block && nread == 0) - break; - - if (nread != BLOCKSIZE){ - fprintf(stderr,"Error: incomplete block read. Exiting.\n"); - exit(-2); + if (! (infile = gzopen (tarfile, "rb"))) + { + fprintf (stderr, "Cannot open %s\n", tarfile); + exit (-2); } + + while (1) + { + nread = gzread (infile, block, 512); - if (!in_block){ - if (block[0]=='\0') /* We're done */ + if (!in_block && nread == 0) break; - strncpy(magic,block+257,6); - magic[6] = '\0'; - if (strcmp(magic,"ustar ")){ - fprintf(stderr, - "Error: incorrect magic number in tar header. Exiting\n"); - } - - strncpy(name,block,100); - name[100] = '\0'; - sprintf(fullname,"%s/%s",basedir,name); - printf("%s\n",fullname); - type = block[156]; + if (nread != BLOCKSIZE) + { + fprintf (stderr, "Error: incomplete block read. Exiting.\n"); + exit (-2); + } + + if (!in_block) + { + if (block[0]=='\0') /* We're done */ + break; + + strncpy (magic, block+257, 6); + magic[6] = '\0'; + if (strcmp (magic, "ustar ")) + { + fprintf (stderr, + "Error: incorrect magic number in tar header. Exiting\n"); + } + + strncpy (name, block, 100); + name[100] = '\0'; + sprintf (fullname, "%s/%s", basedir, name); + printf ("%s\n", fullname); + type = block[156]; - switch(type){ - case '0': - case '\0': - directory = 0; - break; - case '5': - directory = 1; - break; - default: - fprintf(stderr,"Error: unknown type flag %c. Exiting.\n",type); - break; - } + switch (type) + { + case '0': + case '\0': + directory = 0; + break; + case '5': + directory = 1; + break; + default: + fprintf (stderr, "Error: unknown type flag %c. Exiting.\n", type); + break; + } - if (directory){ - in_block = 0; + if (directory) + { + in_block = 0; - /* makepath will ignore the final path component, so make sure - dirnames have a trailing slash */ - - if (fullname[strlen(fullname)-1] != '/') - strcat(fullname,"/"); - if (makepath(fullname)){ - fprintf(stderr, "Error: cannot create directory %s. Exiting.\n", - fullname); - exit(-2); - } - continue; - } else { /*file */ - in_block = 1; - if (outfile){ - if (fclose(outfile)){ - fprintf(stderr,"Error: cannot close file %s. Exiting.\n", - fullname); - exit(-2); - } - outfile = (FILE*)0; - } - - if ( !(outfile = fopen(fullname,"wb"))){ - /*try creating the directory, maybe it's not there */ - if (makepath(fullname)){ - fprintf(stderr,"Error: cannot create file %s. Exiting.\n", - fullname); - exit(-2); - } - /* now try again to open the file */ - if (!(outfile = fopen(fullname,"wb"))){ - fprintf(stderr,"Error: cannot create file %s. Exiting.\n", - fullname); - exit(-2); - } - } + /* makepath will ignore the final path component, so make sure + dirnames have a trailing slash */ - strncpy(osize,block+124,12); - osize[12] = '\0'; - size = octal(osize); - if (size<0){ - fprintf(stderr,"Error: invalid size in tar header. Exiting.\n"); - exit(-2); - } - } - } else { /* write or continue writing file contents */ - nbytes = size>512? 512:size; + if (fullname[strlen (fullname)-1] != '/') + strcat (fullname, "/"); + if (makepath (fullname)) + { + fprintf (stderr, "Error: cannot create directory %s. Exiting.\n", + fullname); + exit (-2); + } + continue; + } + else + { /*file */ + in_block = 1; + if (outfile) + { + if (fclose (outfile)) + { + fprintf (stderr, "Error: cannot close file %s. Exiting.\n", + fullname); + exit (-2); + } + outfile = (FILE*)0; + } + + if (!(outfile = fopen (fullname, "wb"))) + { + /*try creating the directory, maybe it's not there */ + if (makepath (fullname)) + { + fprintf (stderr, "Error: cannot create file %s. Exiting.\n", + fullname); + exit (-2); + } + /* now try again to open the file */ + if (!(outfile = fopen (fullname, "wb"))) + { + fprintf (stderr, "Error: cannot create file %s. Exiting.\n", + fullname); + exit (-2); + } + } + + strncpy (osize, block+124, 12); + osize[12] = '\0'; + size = octal (osize); + if (size<0) + { + fprintf (stderr, "Error: invalid size in tar header. Exiting.\n"); + exit (-2); + } + } + } else { /* write or continue writing file contents */ + nbytes = size>512? 512:size; - nwritten = fwrite(block, 1, nbytes, outfile); - if (nwritten != nbytes){ - fprintf(stderr, "Error: only wrote %d bytes to file %s. Exiting.\n", - nwritten, fullname); - } - size -= nbytes; - if (size==0) - in_block = 0; + nwritten = fwrite (block, 1, nbytes, outfile); + if (nwritten != nbytes) + { + fprintf (stderr, "Error: only wrote %d bytes to file %s. Exiting.\n", + nwritten, fullname); + } + size -= nbytes; + if (size==0) + in_block = 0; + } } - } - exit (0); -} - + return 0; +} diff --text -u 'xemacs-21.5.0/nt/xemacs.mak' 'xemacs-21.5.1/nt/xemacs.mak' Index: ./nt/xemacs.mak --- ./nt/xemacs.mak Fri Apr 13 03:23:00 2001 +++ ./nt/xemacs.mak Sat May 5 19:53:08 2001 @@ -69,10 +69,13 @@ -DINFODOCK_MINOR_VERSION=$(infodock_minor_version) \ -DINFODOCK_BUILD_VERSION=$(infodock_build_version) !else +XEMACS_VERSION_STRING=$(emacs_major_version).$(emacs_minor_version) !if "$(emacs_beta_version)" != "" -XEMACS_VERSION_STRING=$(emacs_major_version).$(emacs_minor_version)-b$(emacs_beta_version) +!if "$(emacs_is_beta)" != "" +XEMACS_VERSION_STRING=$(XEMACS_VERSION_STRING)-b$(emacs_beta_version) !else -XEMACS_VERSION_STRING=$(emacs_major_version).$(emacs_minor_version) +XEMACS_VERSION_STRING=$(XEMACS_VERSION_STRING).$(emacs_beta_version) +!endif !endif PROGRAM_DEFINES= \ -DPATH_VERSION=\"$(XEMACS_VERSION_STRING)\" \ @@ -129,6 +132,9 @@ !if !defined(HAVE_GIF) HAVE_GIF=1 !endif +!if !defined(HAVE_GTK) +HAVE_GTK=0 +!endif !if !defined(HAVE_TOOLBARS) HAVE_TOOLBARS=$(HAVE_XPM) !endif @@ -230,6 +236,10 @@ !message Specified X11 directory does not contain "$(X11_DIR)\LIB\X11.LIB" CONFIG_ERROR=1 !endif +!if $(HAVE_MS_WINDOWS) && $(HAVE_GTK) && !defined(GTK_DIR) +!message Please specify root directory for your GTK installation: GTK_DIR=path +CONFIG_ERROR=1 +!endif !if $(HAVE_MS_WINDOWS) && $(HAVE_XPM) && !defined(XPM_DIR) !message Please specify root directory for your XPM installation: XPM_DIR=path CONFIG_ERROR=1 @@ -315,13 +325,13 @@ ! if defined(_) ! if [perl -p -e "s/^\\x23if defined(.+)/!if defined$$1/; s/^\\x23e/!e/;" \ -e "s/([\\s=^])([\\w\\d\\.\\-^]+\\.[ch^])/$$1$(SRC:\=\\\\)\\\\$$2/g;" \ - -e "s/^(.+)\\.o:(.+)/$(OUTDIR:\=\\\\)\\\\$$1.obj:$$2 $(NT:\=\\\\)\\\\config.inc/;" \ + -e "s/^(.+)\\.o:(.+)/$(OUTDIR:\=\\\\)\\\\$$1.obj:$$2/;" \ < $(SRC)\depend > $(OUTDIR)\depend.tmp] ! endif ! else ! if [perl -p -e "s/^\x23if defined(.+)/!if defined$$1/; s/^\x23e/!e/;" \ -e "s/([\s=^])([\w\d\.\-^]+\.[ch^])/$$1$(SRC:\=\\)\\$$2/g;" \ - -e "s/^(.+)\.o:(.+)/$(OUTDIR:\=\\)\\$$1.obj:$$2 $(NT:\=\\)\\config.inc/;" \ + -e "s/^(.+)\.o:(.+)/$(OUTDIR:\=\\)\\$$1.obj:$$2/;" \ < $(SRC)\depend > $(OUTDIR)\depend.tmp] ! endif ! endif @@ -822,8 +832,12 @@ # This may not exist !if "$(emacs_beta_version)" != "" +!if "$(emacs_is_beta)" != "" EMACS_BETA_VERSION=-DEMACS_BETA_VERSION=$(emacs_beta_version) -!ENDIF +!else +EMACS_PATCH_LEVEL=-DEMACS_PATCH_LEVEL=$(emacs_beta_version) +!endif +!endif !if !$(USE_PORTABLE_DUMPER) TEMACS_ENTRYPOINT=-entry:_start @@ -1057,7 +1071,7 @@ !if $(DEBUG_XEMACS) @dir /b/s $(OUTDIR)\*.sbr > bscmake.tmp bscmake -nologo -o$(TEMACS_BROWSE) @bscmake.tmp - @$(DEL) bscmake.tmp + $(DEL) bscmake.tmp !endif !if $(USE_PORTABLE_DUMPER) @if exist $(SRC)\dump-id.c del $(SRC)\dump-id.c @@ -1377,7 +1391,7 @@ # Make the resource section read/write since almost all of it is the dump # data which needs to be writable. This avoids having to copy it. editbin -nologo -section:.rsrc,rw xemacs.exe - del $(TEMACS_DIR)\xemacs.dmp + $(DEL) $(TEMACS_DIR)\xemacs.dmp !endif cd $(NT) @if not exist $(TEMACS_DIR)\SATISFIED nmake -nologo -f xemacs.mak $@ @@ -1397,7 +1411,7 @@ @echo PlaceHolder > PlaceHolder @xcopy /q PROBLEMS "$(INSTALL_DIR)\" @xcopy /q PlaceHolder "$(INSTALL_DIR)\lock\" - @$(DEL) "$(INSTALL_DIR)\lock\PlaceHolder" + $(DEL) "$(INSTALL_DIR)\lock\PlaceHolder" @xcopy /q $(LIB_SRC)\*.exe "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)\" @copy $(LIB_SRC)\DOC "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)" @copy $(CONFIG_VALUES) "$(INSTALL_DIR)\$(EMACS_CONFIGURATION)" @@ -1407,12 +1421,12 @@ @xcopy /e /q $(XEMACS)\lisp "$(INSTALL_DIR)\lisp\" @echo Making skeleton package tree in $(PACKAGE_PREFIX) ... @xcopy /q PlaceHolder "$(PACKAGE_PREFIX)\site-packages\" - @$(DEL) "$(PACKAGE_PREFIX)\site-packages\PlaceHolder" + $(DEL) "$(PACKAGE_PREFIX)\site-packages\PlaceHolder" @xcopy /q PlaceHolder "$(PACKAGE_PREFIX)\mule-packages\" - @$(DEL) "$(PACKAGE_PREFIX)\mule-packages\PlaceHolder" + $(DEL) "$(PACKAGE_PREFIX)\mule-packages\PlaceHolder" @xcopy /q PlaceHolder "$(PACKAGE_PREFIX)\xemacs-packages\" - @$(DEL) "$(PACKAGE_PREFIX)\xemacs-packages\PlaceHolder" - @$(DEL) PlaceHolder + $(DEL) "$(PACKAGE_PREFIX)\xemacs-packages\PlaceHolder" + $(DEL) PlaceHolder mostlyclean: $(DEL) $(XEMACS)\Installation @@ -1484,6 +1498,23 @@ !if $(HAVE_MULE) Compiling in MULE. !endif +!if $(HAVE_GTK) + -------------------------------------------------------------------- + WARNING: Compiling WITHOUT GTK support. + WARNING: As of xemacs-21.2-b44 + WARNING: gtk-xemacs is not supported on MSWindows (mingw or msvc). + WARNING: Yes, we know that gtk has been ported to native MSWindows + WARNING: but XEmacs is not yet ready to use that port. + -------------------------------------------------------------------- +!else + -------------------------------------------------------------------- + WARNING: Compiling without GTK support. + WARNING: As of xemacs-21.2-b44 + WARNING: gtk-xemacs is not supported on MSWindows (mingw or msvc). + WARNING: Yes, we know that gtk has been ported to native MSWindows + WARNING: but XEmacs is not yet ready to use that port. + -------------------------------------------------------------------- +!endif !if $(HAVE_XPM) Compiling in support for XPM images. !else @@ -1581,8 +1612,8 @@ update-auto-and-custom: # Combine into one invocation to avoid repeated startup penalty. $(XEMACS_BATCH) -l autoload -f batch-update-one-directory $(LISP) -f batch-byte-compile-one-file $(LISP)\auto-autoloads.el -l cus-dep -f Custom-make-one-dependency $(LISP) -f batch-byte-compile-one-file $(LISP)\custom-load.el - @$(DEL) $(LISP)\auto-autoloads.el~ - @$(DEL) $(LISP)\custom-load.el~ + $(DEL) $(LISP)\auto-autoloads.el~ + $(DEL) $(LISP)\custom-load.el~ # DO NOT DELETE THIS LINE -- make depend depends on it. diff --text -u 'xemacs-21.5.0/src/.cvsignore' 'xemacs-21.5.1/src/.cvsignore' Index: ./src/.cvsignore --- ./src/.cvsignore Fri Apr 13 03:23:17 2001 +++ ./src/.cvsignore Mon Apr 30 23:10:42 2001 @@ -13,3 +13,8 @@ update-elc.stamp *.so.* gmon.out +NEEDTODUMP +Xpm.dll +temacs.bsc +temacs.pdb +temacs.map diff --text -u 'xemacs-21.5.0/src/ChangeLog' 'xemacs-21.5.1/src/ChangeLog' Index: ./src/ChangeLog --- ./src/ChangeLog Wed Apr 18 15:56:14 2001 +++ ./src/ChangeLog Wed May 9 19:53:53 2001 @@ -1,3 +1,310 @@ +2001-05-09 Martin Buchholz + + * XEmacs 21.5.1 "anise" is released. + +2001-05-08 Yoshiki Hayashi + + * buffer.c (Vcase_fold_search): Remove obsolete + comment about non ASCII case-fold-search. This + bug has been fixed by case-table changes. + +2001-05-08 Yoshiaki Kasahara + + * mule-charset.c (Fmake_charset): Add missing else. + +2001-05-07 Martin Buchholz + + * s/bsd386.h: Use NOT_C_CODE instead of `emacs' to protect Makefiles + +2001-05-08 Martin Buchholz + + * s/bsdos4.h: Protect C code with #ifndef NOT_C_CODE. + +2000-04-22 zhaoway + + * event-stream.c (is_scrollbar_event): Return 0 when XEmacs is + compiled without scrollbars. + +2001-05-05 Martin Buchholz + + TTY configury portability improvements. + Support systems which use OXTABS instead of TAB3, without any s&m. + * s/bsd386.h: Remove definitions for system symbols TABDLY and OXTABS. + * s/freebsd.h: Likewise. + * s/gnu.h: Likewise. + * s/netbsd.h: Likewise. + * s/nextstep.h: Remove definitions for TAB3 and BSD_TERMIOS. + * systty.h: + Fix up (unused) tty tab delay/expansion code. + Better preprocessor symbol hygiene. + Remove BSD_TERMIOS cruft. + * sysdep.c (child_setup_tty): More careful code. Check for OXTABS. + * sysdep.c (tty_init_sys_modes_on_device): + Tab expansion disabling code was buggy. So I fixed it. + But it shouldn't have been done at all. So I also #if 0'ed it. + +2001-05-06 Ben Wing + + * console-msw.h: + * device-msw.c: + * device-msw.c (print_dialog_worker): + * device-msw.c (mswindows_handle_print_dialog_box): + * device-msw.c (syms_of_device_mswindows): + * dialog-msw.c (mswindows_make_dialog_box_internal): + * general-slots.h: + implement printing the selection when it's selected. + + unrelated: + + * mule-charset.c (Fset_charset_ccl_program): + * mule-charset.c (invalidate_charset_font_caches): + force redisplay when set-charset-ccl-program called. + +2001-05-04 Martin Buchholz + + * s/bsdos4.h (openpty): Add declaration, missing from system headers. + +2001-05-05 Martin Buchholz + + * search.c (warn_about_possibly_incompatible_back_references): + Target of a DEFVAR_INT should be a Fixnum, not int. + +2001-05-05 Ben Wing + + * console-msw.h: + * device-msw.c: + * device-msw.c (mswindows_get_default_margin): + * frame-msw.c (mswindows_size_frame_internal): + * frame-msw.c (msprinter_init_frame_1): + * frame-msw.c (vars_of_frame_mswindows): + Change top/bottom margin defaults to 0.5 inches. + +2001-04-23 Ben Wing + + ------------ notable bug fix: Windows event code -------------- + + * event-msw.c (FAKE_MOD_QUIT): + * event-msw.c (mswindows_dequeue_dispatch_event): + * event-msw.c (mswindows_wnd_proc): + * event-msw.c (emacs_mswindows_quit_p): + Get critical quit working. + + ------------ notable bug fix and new feature: regex code -------------- + + * lisp.h: + * regex.c: + * regex.c (enum): + * regex.c (print_compiled_pattern): + * regex.c (INIT_REG_TRANSLATE_SIZE): + * regex.c (regex_compile): + * regex.c (re_match_2_internal): + * regex.h: + * regex.h (RE_SYNTAX_AWK): + * regex.h (RE_SYNTAX_GREP): + * regex.h (RE_SYNTAX_EGREP): + * regex.h (RE_SYNTAX_POSIX_EGREP): + * regex.h (_RE_SYNTAX_POSIX_COMMON): + * regex.h (struct re_pattern_buffer): + * search.c: + * search.c (vars_of_search): + Shy groups were implemented in a horrible, half-assed way that + would cause them to screw up regex searching in most cases. + Fixed to work correctly. + + Also extended back-reference syntax past 9. Only is recognized + as such if there are at least that many non-shy groups; and + optionally will warn about such uses, to catch old code that + might be using them differently. (Added variable to control + this in search.c -- `warn-about-possibly-incompatible-back- + references', on by default for the moment. Declared in lisp.h. + + ---------------- process/SIGIO improvements ------------------- + + * process-unix.c: + * process-unix.c (get_internet_address): + * process-unix.c (unix_canonicalize_host_name): + * process-unix.c (unix_open_network_stream): + * process-unix.c (unix_open_multicast_group): + define USE_GETADDRINFO to replace more complex conditional, + and use it. the code conditionalized on this in + unix_open_network_stream had *serious* problems handling errors. + it's now fixed, and major amounts of duplicate code between + the two versions were combined. + + don't disable SIGIO and other interrupts unless + CONNECT_NEEDS_SLOWED_INTERRUPTS is defined -- don't penalize OS's + without bugs. similarly for a freebsd bug that was affecting all + OS's. + + * s\ultrix.h: + define CONNECT_NEEDS_SLOWED_INTERRUPTS, since that's the OS + mentioned as having a kernel bug. + + * sysdep.c (request_sigio_on_device): + * sysdep.c (unrequest_sigio_on_device): + fix SIGIO problems on Linux. add check for O_ASYNC in case it's + defined and FASYNC isn't. add comment about other ways to do + SIGIO on Linux. + + * callproc.c (Fold_call_process_internal): + * process.c (Fstart_process_internal): + Deal with the possibility that `default-directory' doesn't + have terminating slash. Correct comments about vfork. + + ---------------- Miscellaneous bug fixes/cleanup ------------------- + + * callint.c (Finteractive): + Add lots of documentation -- exactly what the Lisp equivalents of + all the interactive specs are. + + * console.h (struct console): change type of quit_char to Emchar. + + * event-msw.c (lstream_type_create_mswindows_selectable): spacing + change. + + * event-Xt.c: + * event-msw.c: + * event-stream.c: + * events-mod.h: + * events.c: + * events.h: + * frame-x.c: + * gpmevent.c: + * keymap.c: + Eliminate events-mod.h and combine into events.h. + + * emacs.c: + * emacs.c (make_arg_list_1): + * emacs.c (main_1): + A couple of char->Extbyte changes, add a comment. + + * glyphs-msw.c (mswindows_resource_instantiate): + * glyphs-msw.c (mswindows_xface_instantiate): + * glyphs-msw.c (mswindows_subwindow_instantiate): + * glyphs-msw.c (mswindows_widget_instantiate): + * glyphs-msw.c (mswindows_native_layout_instantiate): + * glyphs-msw.c (mswindows_button_instantiate): + * glyphs-msw.c (mswindows_edit_field_instantiate): + * glyphs-msw.c (mswindows_progress_gauge_instantiate): + * glyphs-msw.c (mswindows_tree_view_instantiate): + * glyphs-msw.c (mswindows_tab_control_instantiate): + * glyphs-msw.c (mswindows_label_instantiate): + * glyphs-msw.c (mswindows_scrollbar_instantiate): + * glyphs-msw.c (mswindows_combo_box_instantiate): + Correct indentation of function defns to not exceed 80 cols. + Try (sort of) to fix some code that sets the colors of the + progress gauge. (Commented out) + + * keymap.c (syms_of_keymap): + use DEFSYMBOL. + + * process.c (read_process_output): + No need to fiddle with zmacs_region_stays, now that bogus + clearing of it (see below) is removed. + + * search.c (Freplace_match): warning fix. + + +2001-05-03 Martin Buchholz + + * s/aix4.h: Fix crash with xlc -O3. + Improve comment explaining how -O3 works. + +2001-05-02 Jerry James + + * faces.h (SET_FACE_PROPERTY): pass parameters to + Fadd_spec_to_specifier in the correct order. + +2001-05-01 Martin Buchholz + + Fix link error with gcc 3.0 on Linux. + * terminfo.c (UP): Remove. + * terminfo.c (BC): Remove. + * terminfo.c (PC): Remove. + They weren't used, and in any case, these symbols should be + defined in the *library*. + +2001-04-30 Martin Buchholz + + Make string hashing more efficient. + Makes intern much faster. + Makes hash tables containing strings faster. + * symbols.c (hash_string): A much better hash function. + Change prototype to return unsigned value. + (init_symbols_once_early): Use unsigned type for hash value. + (oblookup): Use unsigned type for hash value. + +2001-04-04 Martin Buchholz + + * keymap.c (Fmap_keymap): Revert to previous implementation, since + elisp_maphash is now safe. + + * elhash.c: Remove erroneously added comment. + * elhash.c (copy_compress_hentries): New. + (Fmaphash): Use copy_compress_hentries. + (elisp_maphash): Use copy_compress_hentries. + (elisp_map_remhash): Use copy_compress_hentries. + (elisp_maphash_unsafe): New. + * elhash.h: Add prototype for elisp_maphash_unsafe. + + * elhash.c (Fmaphash): + Avoid crashes/unpredictable behavior if a hash table is modified + during a mapping function, perhaps indirectly via gc. + (free_hentries): New. + Avoid crash if a pdumped hash table is collected. + (maphash_unwind): New. + + * tests.c: Add C-level hash table tests. + +2001-04-28 Ben Wing + + * buffer.c (Ferase_buffer): + * editfns.c (buffer_insert1): + * editfns.c (Finsert_before_markers): + * editfns.c (Finsert_string): + * editfns.c (Finsert_char): + * editfns.c (Fdelete_region): + * editfns.c (Fwiden): + * editfns.c (Fnarrow_to_region): + remove bogus lines setting zmacs_region_stays to 0. + + * scrollbar-msw.c (mswindows_handle_mousewheel_event): + remove debug lines. + +2001-03-08 Mike Alexander + + * event-msw.c (mswindows_need_event_in_modal_loop): + Don't dispatch a message if we didn't get one. + (mswindows_need_event): + Terminate the correct process when one exits instead of the first + one on Vprocess_list and look for process termination when in + mswindows_protect_modal_loop. + +2001-04-20 Ben Wing + + * .cvsignore: Added stuff for Windows. + +2001-04-15 Ben Wing + + * cmdloop.c (call_command_loop): + Fix braino in bit-rotting code. + + * event-stream.c: + * event-stream.c (Fnext_event): + * event-stream.c (is_scrollbar_event): + * event-stream.c (execute_command_event): + Better fix for Yoshiki's `C-x @ h x causes a + crash' problem. His fix introduces other problems. We filter + out scrollbar events specifically, making them somewhat invisible + to command-building, and not appearing in `this-command-keys'. + More work is still needed (see comments in event-stream.c), but + this fixes all the major problems. + +2001-04-15 Gunnar Evermann + + * process-unix.c (unix_open_network_stream): If connect() fails + invalidate file descriptor after closing it. + 2001-04-18 Martin Buchholz * XEmacs 21.5.0 "alfalfa" is released. diff --text -u 'xemacs-21.5.0/src/buffer.c' 'xemacs-21.5.1/src/buffer.c' Index: ./src/buffer.c --- ./src/buffer.c Fri Apr 13 03:23:26 2001 +++ ./src/buffer.c Wed May 9 19:50:37 2001 @@ -1624,7 +1624,6 @@ implies that the future text is not really related to the past text. */ b->saved_size = Qzero; - zmacs_region_stays = 0; return Qnil; } @@ -2675,12 +2674,6 @@ DEFVAR_BUFFER_LOCAL ("case-fold-search", case_fold_search /* *Non-nil if searches should ignore case. Automatically becomes buffer-local when set in any fashion. - -BUG: Under XEmacs/Mule, translations to or from non-ASCII characters - (this includes chars in the range 128 - 255) are ignored by - the string/buffer-searching routines. Thus, `case-fold-search' - will not correctly conflate a-umlaut and A-umlaut even if the - case tables call for this. */ ); DEFVAR_BUFFER_LOCAL ("fill-column", fill_column /* diff --text -u 'xemacs-21.5.0/src/callint.c' 'xemacs-21.5.1/src/callint.c' Index: ./src/callint.c --- ./src/callint.c Fri Apr 13 03:23:27 2001 +++ ./src/callint.c Sat May 5 19:53:58 2001 @@ -139,6 +139,74 @@ set to t when the command exits successfully. You may use any of `@', `*' and `_' at the beginning of the string; they are processed in the order that they appear. + + +When writing your own interactive spec, it can be useful to know the +equivalent Lisp expressions for the various code letters. They are: + +a -- (read-function "PROMPT") +b -- (let ((def (current-buffer))) + (if (eq (selected-window) (active-minibuffer-window)) + (setq def (other-buffer def)) + (read-buffer "PROMPT" def t))) +B -- (read-buffer "PROMPT" (other-buffer (current-buffer))) +c -- (prog1 + (let ((cursor-in-echo-area t)) + (message "%s" "PROMPT") + (read-char)) + (message nil)) +C -- (read-command "PROMPT") +d -- (point) +D -- (read-directory-name "PROMPT" nil default-directory t) +e -- current-mouse-event ;; #### not quite right. needs access to the KEYS + ;; argument of `call-interactively', but that's + ;; currently impossible. +f -- (read-file-name "PROMPT" nil nil 0) +F -- (read-file-name "PROMPT") +i -- nil +k -- (read-key-sequence "PROMPT") +K -- (read-key-sequence "PROMPT" nil t) +m -- (mark) +n -- (read-number "PROMPT") +N -- (if current-prefix-arg + (prefix-numeric-value current-prefix-arg) + (read-number "PROMPT")) +p -- (prefix-numeric-value current-prefix-arg) +P -- current-prefix-arg +r -- (if (and zmacs-regions (not zmacs-region-active-p)) + (error "The region is not active now")) + (let ((tem (marker-buffer (mark-marker t)))) + (unless (and tem (eq tem (current-buffer))) + (error "The mark is now set now"))) + (region-beginning) + + (region-end) +s -- (read-string "PROMPT") +S -- (let (tem prev-tem) + (while (not tem) + (setq tem (completing-read "PROMPT" obarray nil nil prev-tem)) + (setq prev-tem tem) + (setq tem (intern tem)) + (if (= (length tem) 0) + (setq tem nil)))) +v -- (read-variable "PROMPT") +x -- (read-expression "PROMPT") +X -- (eval (read-expression "PROMPT")) +z -- (and (fboundp 'read-coding-system) (read-coding-system "PROMPT")) +Z -- (and current-prefix-arg (fboundp 'read-coding-system) + (read-coding-system "PROMPT")) + +`*' (barf-if-buffer-read-only) +`@' (let ((event current-mouse-event)) ;; #### not quite right; needs the + (when event ;; value from the `e' spec above. + (let ((window event-window event)) + (when window + (if (and (window-minibuffer-p window) + (not (and (> (minibuffer-depth) 0) + (eq window (active-minibuffer-window))))) + (error "Attempt to select inactive minibuffer window")) + (select window))))) +`_' (setq zmacs-region-stays t) + */ (args)) { diff --text -u 'xemacs-21.5.0/src/callproc.c' 'xemacs-21.5.1/src/callproc.c' Index: ./src/callproc.c --- ./src/callproc.c Fri Apr 13 03:23:27 2001 +++ ./src/callproc.c Sat May 5 19:53:58 2001 @@ -205,26 +205,30 @@ error ("Operating system cannot handle asynchronous subprocesses"); #endif /* NO_SUBPROCESSES */ - /* Do this before building new_argv because GC in Lisp code - * called by various filename-hacking routines might relocate strings */ + /* Do all filename munging before building new_argv because GC in + * Lisp code called by various filename-hacking routines might + * relocate strings */ locate_file (Vexec_path, args[0], Vlisp_EXEC_SUFFIXES, &path, X_OK); /* Make sure that the child will be able to chdir to the current - buffer's current directory, or its unhandled equivalent. We + buffer's current directory, or its unhandled equivalent. [[ We can't just have the child check for an error when it does the - chdir, since it's in a vfork. */ + chdir, since it's in a vfork. ]] -- not any more, we don't use + vfork. -ben + + Note: These calls are spread out to insure that the return values + of the calls (which may be newly-created strings) are properly + GC-protected. */ { struct gcpro ngcpro1, ngcpro2; - /* Do this test before building new_argv because GC in Lisp code - * called by various filename-hacking routines might relocate strings */ - /* Make sure that the child will be able to chdir to the current - buffer's current directory. We can't just have the child check - for an error when it does the chdir, since it's in a vfork. */ - - current_dir = current_buffer->directory; NGCPRO2 (current_dir, path); /* Caller gcprotects args[] */ + current_dir = current_buffer->directory; + /* If the current dir has no terminating slash, we'll get undesirable + results, so put the slash back. */ + current_dir = Ffile_name_as_directory (current_dir); current_dir = Funhandled_file_name_directory (current_dir); current_dir = expand_and_dir_to_file (current_dir, Qnil); + #if 0 /* This is in FSF, but it breaks everything in the presence of ange-ftp-visited files, so away with it. */ diff --text -u 'xemacs-21.5.0/src/cmdloop.c' 'xemacs-21.5.1/src/cmdloop.c' Index: ./src/cmdloop.c --- ./src/cmdloop.c Fri Apr 13 03:23:28 2001 +++ ./src/cmdloop.c Mon Apr 30 23:10:53 2001 @@ -415,7 +415,7 @@ call_command_loop (Lisp_Object catch_errors) { /* This function can GC */ - reset_this_command_keys (Vselected_console, Qnil); /* #### bleagh */ + reset_this_command_keys (Vselected_console, 0); /* #### bleagh */ loop: for (;;) diff --text -u 'xemacs-21.5.0/src/console-msw.h' 'xemacs-21.5.1/src/console-msw.h' Index: ./src/console-msw.h --- ./src/console-msw.h Fri Apr 13 03:23:29 2001 +++ ./src/console-msw.h Mon May 7 16:52:01 2001 @@ -376,8 +376,7 @@ Lisp_Object keys); Lisp_Object mswindows_handle_page_setup_dialog_box (struct frame *f, Lisp_Object keys); -Lisp_Object mswindows_handle_print_setup_dialog_box (struct frame *f, - Lisp_Object keys); +int mswindows_get_default_margin (Lisp_Object prop); void mswindows_register_popup_frame (Lisp_Object frame); void mswindows_unregister_popup_frame (Lisp_Object frame); diff --text -u 'xemacs-21.5.0/src/console.h' 'xemacs-21.5.1/src/console.h' Index: ./src/console.h --- ./src/console.h Fri Apr 13 03:23:30 2001 +++ ./src/console.h Sat May 5 19:54:00 2001 @@ -420,8 +420,9 @@ void *console_data; /* Character that causes a quit. Normally C-g. - #### Should be possible for this not to be ASCII. */ - int quit_char; + #### Should be possible for this not to be ASCII. (Currently works + under Windows.) */ + Emchar quit_char; /* ----- begin partially-completed console localization of event loop ---- */ diff --text -u 'xemacs-21.5.0/src/depend' 'xemacs-21.5.1/src/depend' Index: ./src/depend --- ./src/depend Fri Apr 13 03:23:32 2001 +++ ./src/depend Mon May 7 16:52:02 2001 @@ -11,7 +11,7 @@ device-msw.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h conslots.h console-msw.h console-stream.h console.h device.h events.h faces.h frame.h frameslots.h glyphs.h gui.h mule-charset.h objects-msw.h objects.h redisplay.h scrollbar.h specifier.h syscommctrl.h sysdep.h systime.h syswindows.h toolbar.h window.h winslots.h dialog-msw.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h conslots.h console-msw.h console.h device.h frame.h frameslots.h glyphs.h gui.h mule-charset.h opaque.h redisplay.h scrollbar.h specifier.h syscommctrl.h syswindows.h toolbar.h window.h winslots.h dired-msw.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h mule-charset.h ndir.h nt.h regex.h sysdir.h sysfile.h sysproc.h systime.h syswindows.h -event-msw.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h conslots.h console-msw.h console-tty.h console.h device.h dragdrop.h events-mod.h events.h faces.h frame.h frameslots.h glyphs.h gui.h lstream.h menubar-msw.h menubar.h mule-charset.h objects-msw.h objects.h process.h redisplay.h scrollbar-msw.h scrollbar.h select.h specifier.h syscommctrl.h sysdep.h sysfile.h sysproc.h syssignal.h systime.h systty.h syswait.h syswindows.h toolbar.h window.h winslots.h +event-msw.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h conslots.h console-msw.h console-tty.h console.h device.h dragdrop.h events.h faces.h frame.h frameslots.h glyphs.h gui.h lstream.h menubar-msw.h menubar.h mule-charset.h objects-msw.h objects.h process.h redisplay.h scrollbar-msw.h scrollbar.h select.h specifier.h syscommctrl.h sysdep.h sysfile.h sysproc.h syssignal.h systime.h systty.h syswait.h syswindows.h toolbar.h window.h winslots.h frame-msw.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h conslots.h console-msw.h console.h device.h elhash.h events.h faces.h frame.h frameslots.h glyphs-msw.h glyphs.h gui.h mule-charset.h redisplay.h scrollbar.h specifier.h syscommctrl.h systime.h syswindows.h toolbar.h window.h winslots.h glyphs-msw.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h conslots.h console-msw.h console.h device.h elhash.h faces.h file-coding.h frame.h frameslots.h glyphs-msw.h glyphs.h gui.h imgproc.h insdel.h lstream.h mule-charset.h objects-msw.h objects.h opaque.h redisplay.h scrollbar.h specifier.h syscommctrl.h sysfile.h syswindows.h toolbar.h window.h winslots.h gui-msw.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h conslots.h console-msw.h console.h device.h elhash.h events.h frame.h frameslots.h glyphs.h gui.h mule-charset.h redisplay.h scrollbar.h specifier.h syscommctrl.h systime.h syswindows.h toolbar.h window.h winslots.h @@ -27,7 +27,7 @@ console-x.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h conslots.h console-x.h console.h mule-charset.h process.h redisplay.h xintrinsic.h device-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h buffer.h bufslots.h casetab.h chartab.h conslots.h console-x.h console.h device.h elhash.h events.h faces.h frame.h frameslots.h glyphs-x.h glyphs.h gui.h mule-charset.h objects-x.h objects.h offix-types.h offix.h redisplay.h scrollbar.h specifier.h sysdep.h sysdll.h sysfile.h systime.h toolbar.h window.h winslots.h xgccache.h xintrinsic.h xintrinsicp.h xmu.h dialog-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h buffer.h bufslots.h casetab.h chartab.h commands.h conslots.h console-x.h console.h device.h events.h frame.h frameslots.h glyphs.h gui-x.h gui.h mule-charset.h opaque.h redisplay.h scrollbar.h specifier.h systime.h toolbar.h window.h winslots.h xintrinsic.h -frame-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h EmacsFrameP.h EmacsManager.h EmacsShell.h ExternalShell.h buffer.h bufslots.h casetab.h chartab.h conslots.h console-x.h console.h device.h dragdrop.h events-mod.h events.h extents.h faces.h frame.h frameslots.h glyphs-x.h glyphs.h gui.h gutter.h mule-charset.h objects-x.h objects.h offix-types.h offix.h redisplay.h scrollbar-x.h scrollbar.h specifier.h systime.h toolbar.h window.h winslots.h xintrinsic.h xintrinsicp.h xmprimitivep.h xmu.h +frame-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h EmacsFrameP.h EmacsManager.h EmacsShell.h ExternalShell.h buffer.h bufslots.h casetab.h chartab.h conslots.h console-x.h console.h device.h dragdrop.h events.h extents.h faces.h frame.h frameslots.h glyphs-x.h glyphs.h gui.h gutter.h mule-charset.h objects-x.h objects.h offix-types.h offix.h redisplay.h scrollbar-x.h scrollbar.h specifier.h systime.h toolbar.h window.h winslots.h xintrinsic.h xintrinsicp.h xmprimitivep.h xmu.h glyphs-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h bitmaps.h buffer.h bufslots.h casetab.h chartab.h conslots.h console-x.h console.h device.h faces.h file-coding.h frame.h frameslots.h glyphs-x.h glyphs.h gui-x.h gui.h imgproc.h insdel.h lstream.h mule-charset.h objects-x.h objects.h opaque.h redisplay.h scrollbar.h specifier.h sysfile.h toolbar.h window.h winslots.h xintrinsic.h xmu.h gui-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h buffer.h bufslots.h casetab.h chartab.h conslots.h console-x.h console.h device.h events.h frame.h frameslots.h glyphs.h gui-x.h gui.h mule-charset.h opaque.h redisplay.h scrollbar.h specifier.h systime.h toolbar.h window.h winslots.h xintrinsic.h menubar-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h buffer.h bufslots.h casetab.h chartab.h commands.h conslots.h console-x.h console.h device.h events.h frame.h frameslots.h glyphs.h gui-x.h gui.h keymap.h menubar.h mule-charset.h opaque.h redisplay.h scrollbar.h specifier.h systime.h toolbar.h window.h winslots.h xintrinsic.h @@ -114,17 +114,17 @@ ecrt0.o: config.h editfns.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h commands.h conslots.h console.h device.h events.h extents.h frame.h frameslots.h glyphs.h gui.h insdel.h line-number.h mule-charset.h redisplay.h scrollbar.h specifier.h sysdep.h sysfile.h syspwd.h systime.h toolbar.h window.h winslots.h eldap.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h eldap.h mule-charset.h opaque.h sysdep.h -elhash.o: $(LISP_H) bytecode.h elhash.h +elhash.o: $(LISP_H) bytecode.h elhash.h opaque.h emacs-marshals.o: hash.h emacs-widget-accessors.o: emacs.o: $(LISP_H) backtrace.h buffer.h bufslots.h casetab.h chartab.h commands.h conslots.h console.h device.h dumper.h frame.h frameslots.h glyphs.h gui.h mule-charset.h nt.h paths.h process.h redisplay.h scrollbar.h specifier.h sysdep.h sysdll.h sysfile.h syssignal.h systime.h systty.h syswindows.h toolbar.h window.h winslots.h emodules.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h conslots.h console.h device.h emodules.h file-coding.h frame.h frameslots.h glyphs.h gui.h insdel.h lstream.h mule-charset.h redisplay.h scrollbar.h specifier.h sysdep.h sysdll.h toolbar.h window.h winslots.h esd.o: $(LISP_H) miscplay.h eval.o: $(LISP_H) backtrace.h buffer.h bufslots.h bytecode.h casetab.h chartab.h commands.h conslots.h console.h mule-charset.h opaque.h -event-Xt.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h Emacs.ad.h EmacsFrame.h blocktype.h buffer.h bufslots.h casetab.h chartab.h conslots.h console-tty.h console-x.h console.h device.h dragdrop.h elhash.h events-mod.h events.h file-coding.h frame.h frameslots.h glyphs.h gui.h lstream.h mule-charset.h objects-x.h objects.h offix-types.h offix.h process.h redisplay.h scrollbar.h specifier.h sysproc.h syssignal.h systime.h systty.h toolbar.h window.h winslots.h xintrinsic.h xintrinsicp.h -event-stream.o: $(LISP_H) blocktype.h buffer.h bufslots.h casetab.h chartab.h commands.h conslots.h console.h device.h elhash.h events-mod.h events.h file-coding.h frame.h frameslots.h glyphs.h gui.h insdel.h keymap.h lstream.h macros.h menubar.h mule-charset.h process.h redisplay.h scrollbar.h specifier.h sysdep.h sysfile.h syssignal.h systime.h toolbar.h window.h winslots.h +event-Xt.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h Emacs.ad.h EmacsFrame.h blocktype.h buffer.h bufslots.h casetab.h chartab.h conslots.h console-tty.h console-x.h console.h device.h dragdrop.h elhash.h events.h file-coding.h frame.h frameslots.h glyphs.h gui.h lstream.h mule-charset.h objects-x.h objects.h offix-types.h offix.h process.h redisplay.h scrollbar.h specifier.h sysproc.h syssignal.h systime.h systty.h toolbar.h window.h winslots.h xintrinsic.h xintrinsicp.h +event-stream.o: $(LISP_H) blocktype.h buffer.h bufslots.h casetab.h chartab.h commands.h conslots.h console.h device.h elhash.h events.h file-coding.h frame.h frameslots.h glyphs.h gui.h insdel.h keymap.h lstream.h macros.h menubar.h mule-charset.h process.h redisplay.h scrollbar.h specifier.h sysdep.h sysfile.h syssignal.h systime.h toolbar.h window.h winslots.h event-unixoid.o: $(LISP_H) conslots.h console-stream.h console-tty.h console.h device.h events.h lstream.h mule-charset.h process.h sysdep.h sysfile.h sysproc.h syssignal.h systime.h systty.h -events.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h conslots.h console-gtk.h console-tty.h console-x.h console.h device.h events-mod.h events.h extents.h frame.h frameslots.h glyphs.h gui.h keymap.h mule-charset.h redisplay.h scrollbar.h specifier.h syssignal.h systime.h systty.h toolbar.h window.h winslots.h xintrinsic.h +events.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h conslots.h console-gtk.h console-tty.h console-x.h console.h device.h events.h extents.h frame.h frameslots.h glyphs.h gui.h keymap.h mule-charset.h redisplay.h scrollbar.h specifier.h syssignal.h systime.h systty.h toolbar.h window.h winslots.h xintrinsic.h extents.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h conslots.h console.h debug.h device.h elhash.h extents.h faces.h frame.h frameslots.h glyphs.h gui.h gutter.h insdel.h keymap.h mule-charset.h opaque.h process.h redisplay.h scrollbar.h specifier.h toolbar.h window.h winslots.h faces.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h conslots.h console.h device.h elhash.h extents.h faces.h frame.h frameslots.h glyphs.h gui.h mule-charset.h objects.h redisplay.h scrollbar.h specifier.h toolbar.h window.h winslots.h file-coding.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h elhash.h file-coding.h insdel.h lstream.h mule-ccl.h mule-charset.h opaque.h @@ -144,7 +144,7 @@ glyphs-widget.o: $(LISP_H) buffer.h bufslots.h bytecode.h casetab.h chartab.h conslots.h console.h device.h faces.h frame.h frameslots.h glyphs.h gui.h insdel.h lstream.h mule-charset.h objects.h opaque.h redisplay.h scrollbar.h specifier.h toolbar.h window.h winslots.h glyphs.o: $(LISP_H) blocktype.h buffer.h bufslots.h casetab.h chartab.h conslots.h console.h device.h elhash.h faces.h frame.h frameslots.h glyphs.h gui.h insdel.h mule-charset.h objects.h opaque.h rangetab.h redisplay.h scrollbar.h specifier.h toolbar.h window.h winslots.h gmalloc.o: config.h getpagesize.h -gpmevent.o: $(LISP_H) commands.h conslots.h console-tty.h console.h device.h events-mod.h events.h gpmevent.h lstream.h mule-charset.h process.h sysdep.h sysproc.h syssignal.h systime.h systty.h +gpmevent.o: $(LISP_H) commands.h conslots.h console-tty.h console.h device.h events.h gpmevent.h lstream.h mule-charset.h process.h sysdep.h sysproc.h syssignal.h systime.h systty.h gtk-glue.o: gtk-xemacs.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h conslots.h console-gtk.h console.h device.h faces.h frame.h frameslots.h glyphs.h gtk-xemacs.h gui.h mule-charset.h objects-gtk.h objects.h redisplay.h scrollbar.h specifier.h toolbar.h window.h winslots.h gui.o: $(LISP_H) buffer.h bufslots.h bytecode.h casetab.h chartab.h elhash.h gui.h mule-charset.h @@ -159,7 +159,7 @@ input-method-xlib.o: $(LISP_H) EmacsFrame.h buffer.h bufslots.h casetab.h chartab.h conslots.h console-x.h console.h device.h events.h frame.h frameslots.h glyphs.h gui.h mule-charset.h redisplay.h scrollbar.h specifier.h systime.h toolbar.h window.h winslots.h xintrinsic.h insdel.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h conslots.h console.h device.h extents.h frame.h frameslots.h glyphs.h gui.h insdel.h line-number.h lstream.h mule-charset.h redisplay.h scrollbar.h specifier.h toolbar.h window.h winslots.h intl.o: $(LISP_H) bytecode.h conslots.h console.h device.h -keymap.o: $(LISP_H) buffer.h bufslots.h bytecode.h casetab.h chartab.h conslots.h console.h device.h elhash.h events-mod.h events.h frame.h frameslots.h glyphs.h gui.h insdel.h keymap.h mule-charset.h redisplay.h scrollbar.h specifier.h systime.h toolbar.h window.h winslots.h +keymap.o: $(LISP_H) buffer.h bufslots.h bytecode.h casetab.h chartab.h conslots.h console.h device.h elhash.h events.h frame.h frameslots.h glyphs.h gui.h insdel.h keymap.h mule-charset.h redisplay.h scrollbar.h specifier.h systime.h toolbar.h window.h winslots.h lastfile.o: config.h libsst.o: $(LISP_H) libsst.h line-number.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h line-number.h mule-charset.h @@ -215,7 +215,7 @@ sysdll.o: config.h sysdll.h termcap.o: $(LISP_H) conslots.h console.h device.h terminfo.o: config.h -tests.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h lstream.h mule-charset.h opaque.h +tests.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h elhash.h lstream.h mule-charset.h opaque.h toolbar.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h conslots.h console.h device.h frame.h frameslots.h glyphs.h gui.h mule-charset.h redisplay.h scrollbar.h specifier.h toolbar.h window.h winslots.h tooltalk.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h elhash.h mule-charset.h process.h syssignal.h tooltalk.h tparam.o: config.h diff --text -u 'xemacs-21.5.0/src/device-msw.c' 'xemacs-21.5.1/src/device-msw.c' Index: ./src/device-msw.c --- ./src/device-msw.c Fri Apr 13 03:23:32 2001 +++ ./src/device-msw.c Mon May 7 16:52:05 2001 @@ -26,6 +26,7 @@ Original authors: Jamie Zawinski and the FSF Rewritten by Ben Wing and Chuck Thompson. Rewritten for mswindows by Jonathan Harris, November 1997 for 21.0. + Print support added by Kirill Katsnelson, July 2000. */ @@ -66,6 +67,11 @@ Lisp_Object Qinit_pre_mswindows_win, Qinit_post_mswindows_win; Lisp_Object Qdevmodep; +static Lisp_Object Q_allow_selection; +static Lisp_Object Q_allow_pages; +static Lisp_Object Q_selected_page_button; +static Lisp_Object Qselected_page_button; + static Lisp_Object allocate_devmode (DEVMODE* src_devmode, int do_copy, char* src_name, struct device *d); @@ -674,11 +680,9 @@ /* * DEV can be either a printer or devmode - * PRINT_P is non-zero for the Print dialog, zero for the - * Page Setup dialog */ static Lisp_Object -print_dialog_worker (Lisp_Object dev, int print_p) +print_dialog_worker (Lisp_Object dev, DWORD flags) { Lisp_Devmode *ldm = decode_devmode (dev); PRINTDLG pd; @@ -687,8 +691,7 @@ pd.lStructSize = sizeof (pd); pd.hwndOwner = mswindows_get_selected_frame_hwnd (); pd.hDevMode = devmode_to_hglobal (ldm); - pd.Flags = (PD_NOSELECTION | PD_USEDEVMODECOPIESANDCOLLATE - | (print_p ? 0 : PD_PRINTSETUP)); + pd.Flags = flags | PD_USEDEVMODECOPIESANDCOLLATE; pd.nMinPage = 0; pd.nMaxPage = 0xFFFF; @@ -708,21 +711,24 @@ /* Do consing in reverse order. Number of copies */ - if (print_p) - result = Fcons (Qcopies, Fcons (make_int (pd.nCopies), result)); + result = Fcons (Qcopies, Fcons (make_int (pd.nCopies), result)); /* Page range */ - if (print_p && (pd.Flags & PD_PAGENUMS)) + if (pd.Flags & PD_PAGENUMS) { result = Fcons (Qto_page, Fcons (make_int (pd.nToPage), result)); result = Fcons (Qfrom_page, Fcons (make_int (pd.nFromPage), result)); + result = Fcons (Qselected_page_button, Fcons (Qpages, result)); } + else if (pd.Flags & PD_SELECTION) + result = Fcons (Qselected_page_button, Fcons (Qselection, result)); + else + result = Fcons (Qselected_page_button, Fcons (Qall, result)); /* Device name */ - result = Fcons (Qname, - Fcons (build_ext_string (ldm->printer_name, - Qmswindows_tstr), - result)); + result = Fcons (Qname, Fcons (build_ext_string (ldm->printer_name, + Qmswindows_tstr), + result)); UNGCPRO; global_free_2_maybe (pd.hDevNames, pd.hDevMode); @@ -731,9 +737,10 @@ } Lisp_Object -mswindows_handle_print_setup_dialog_box (struct frame *f, Lisp_Object keys) +mswindows_handle_print_dialog_box (struct frame *f, Lisp_Object keys) { Lisp_Object device = Qunbound, settings = Qunbound; + DWORD flags = PD_NOSELECTION; { EXTERNAL_PROPERTY_LIST_LOOP_3 (key, value, keys) @@ -748,36 +755,25 @@ CHECK_DEVMODE (value); settings = value; } - else - syntax_error ("Unrecognized print-dialog keyword", key); - } - } - - if ((UNBOUNDP (device) && UNBOUNDP (settings)) || - (!UNBOUNDP (device) && !UNBOUNDP (settings))) - syntax_error ("Exactly one of :device and :printer-settings must be given", - keys); - - return print_dialog_worker (!UNBOUNDP (device) ? device : settings, 0); -} - -Lisp_Object -mswindows_handle_print_dialog_box (struct frame *f, Lisp_Object keys) -{ - Lisp_Object device = Qunbound, settings = Qunbound; - - { - EXTERNAL_PROPERTY_LIST_LOOP_3 (key, value, keys) - { - if (EQ (key, Q_device)) + else if (EQ (key, Q_allow_pages)) { - device = wrap_device (decode_device (value)); - CHECK_MSPRINTER_DEVICE (device); + if (NILP (value)) + flags |= PD_NOPAGENUMS; } - else if (EQ (key, Q_printer_settings)) + else if (EQ (key, Q_allow_selection)) { - CHECK_DEVMODE (value); - settings = value; + if (!NILP (value)) + flags &= ~PD_NOSELECTION; + } + else if (EQ (key, Q_selected_page_button)) + { + if (EQ (value, Qselection)) + flags |= PD_SELECTION; + else if (EQ (value, Qpages)) + flags |= PD_PAGENUMS; + else if (!EQ (value, Qall)) + invalid_argument ("Invalid value for :selected-page-button", + value); } else syntax_error ("Unrecognized print-dialog keyword", key); @@ -789,13 +785,25 @@ syntax_error ("Exactly one of :device and :printer-settings must be given", keys); - return print_dialog_worker (!UNBOUNDP (device) ? device : settings, 1); + return print_dialog_worker (!UNBOUNDP (device) ? device : settings, flags); +} + +int +mswindows_get_default_margin (Lisp_Object prop) +{ + if (EQ (prop, Qleft_margin)) return 1440; + if (EQ (prop, Qright_margin)) return 1440; + if (EQ (prop, Qtop_margin)) return 720; + if (EQ (prop, Qbottom_margin)) return 720; + abort (); + return 0; } static int plist_get_margin (Lisp_Object plist, Lisp_Object prop) { - Lisp_Object val = Fplist_get (plist, prop, make_int (1440)); + Lisp_Object val = + Fplist_get (plist, prop, make_int (mswindows_get_default_margin (prop))); if (!INTP (val)) invalid_argument ("Margin value must be an integer", val); @@ -1279,8 +1287,13 @@ DEFSUBR (Fmswindows_get_default_printer); DEFSUBR (Fmswindows_printer_list); - defsymbol (&Qinit_pre_mswindows_win, "init-pre-mswindows-win"); - defsymbol (&Qinit_post_mswindows_win, "init-post-mswindows-win"); + DEFKEYWORD (Q_allow_selection); + DEFKEYWORD (Q_allow_pages); + DEFKEYWORD (Q_selected_page_button); + DEFSYMBOL (Qselected_page_button); + + DEFSYMBOL (Qinit_pre_mswindows_win); + DEFSYMBOL (Qinit_post_mswindows_win); } void diff --text -u 'xemacs-21.5.0/src/dialog-msw.c' 'xemacs-21.5.1/src/dialog-msw.c' Index: ./src/dialog-msw.c --- ./src/dialog-msw.c Fri Apr 13 03:23:34 2001 +++ ./src/dialog-msw.c Mon May 7 16:52:09 2001 @@ -681,8 +681,6 @@ return mswindows_handle_print_dialog_box (f, keys); else if (EQ (type, Qpage_setup)) return mswindows_handle_page_setup_dialog_box (f, keys); - else if (EQ (type, Qprint_setup)) - return mswindows_handle_print_setup_dialog_box (f, keys); else signal_type_error (Qunimplemented, "Dialog box type", type); return Qnil; diff --text -u 'xemacs-21.5.0/src/editfns.c' 'xemacs-21.5.1/src/editfns.c' Index: ./src/editfns.c --- ./src/editfns.c Fri Apr 13 03:23:36 2001 +++ ./src/editfns.c Mon Apr 30 23:10:56 2001 @@ -1490,7 +1490,6 @@ arg = wrong_type_argument (Qchar_or_string_p, arg); goto retry; } - zmacs_region_stays = 0; UNGCPRO; } @@ -1551,7 +1550,6 @@ goto retry; } } - zmacs_region_stays = 0; return Qnil; } @@ -1567,7 +1565,6 @@ struct buffer *b = decode_buffer (buffer, 1); CHECK_STRING (string); buffer_insert_lisp_string (b, string); - zmacs_region_stays = 0; return Qnil; } @@ -1638,7 +1635,6 @@ buffer_insert_raw_string (b, string, n); #endif - zmacs_region_stays = 0; return Qnil; } @@ -2004,7 +2000,6 @@ get_buffer_range_char (buf, start, end, &bp_start, &bp_end, 0); buffer_delete_range (buf, bp_start, bp_end, 0); - zmacs_region_stays = 0; return Qnil; } @@ -2041,7 +2036,6 @@ { struct buffer *b = decode_buffer (buffer, 1); widen_buffer (b, 0); - zmacs_region_stays = 0; return Qnil; } @@ -2077,7 +2071,6 @@ /* Changing the buffer bounds invalidates any recorded current column. */ invalidate_current_column (); narrow_line_number_cache (buf); - zmacs_region_stays = 0; return Qnil; } diff --text -u 'xemacs-21.5.0/src/elhash.c' 'xemacs-21.5.1/src/elhash.c' Index: ./src/elhash.c --- ./src/elhash.c Fri Apr 13 03:23:36 2001 +++ ./src/elhash.c Sat May 5 19:54:02 2001 @@ -22,10 +22,45 @@ /* Synched up with: Not in FSF. */ +/* This file implements the hash table lisp object type. + + This implementation was mostly written by Martin Buchholz in 1997. + + The Lisp-level API (derived from Common Lisp) is almost completely + compatible with GNU Emacs 21, even though the implementations are + totally independent. + + The hash table technique used is "linear probing". Collisions are + resolved by putting the item in the next empty place in the array + following the collision. Finding a hash entry performs a linear + search in the cluster starting at the hash value. + + On deletions from the hash table, the entries immediately following + the deleted entry are re-entered in the hash table. We do not have + a special way to mark deleted entries (known as "tombstones"). + + At the end of the hash entries ("hentries"), we leave room for an + entry that is always empty (the "sentinel"). + + The traditional literature on hash table implementation + (e.g. Knuth) suggests that too much "primary clustering" occurs + with linear probing. However, this literature was written when + locality of reference was not a factor. The discrepancy between + CPU speeds and memory speeds is increasing, and the speed of access + to memory is highly dependent on memory caches which work best when + there is high locality of data reference. Random access to memory + is up to 20 times as expensive as access to the nearest address + (and getting worse). So linear probing makes sense. + + But the representation doesn't actually matter that much with the + current elisp engine. Funcall is sufficiently slow that the choice + of hash table implementation is noise. */ + #include #include "lisp.h" #include "bytecode.h" #include "elhash.h" +#include "opaque.h" Lisp_Object Qhash_tablep; static Lisp_Object Qhashtable, Qhash_table; @@ -107,15 +142,6 @@ #define check_hash_table_invariants(ht) #endif -/* We use linear probing instead of double hashing, despite its lack - of blessing by Knuth and company, because, as a result of the - increasing discrepancy between CPU speeds and memory speeds, cache - behavior is becoming increasingly important, e.g: - - For a trivial loop, the penalty for non-sequential access of an array is: - - a factor of 3-4 on Pentium Pro 200 Mhz - - a factor of 10 on Ultrasparc 300 Mhz */ - /* Return a suitable size for a hash table, with at least SIZE slots. */ static size_t hash_table_size (size_t requested_size) @@ -373,13 +399,27 @@ } static void +free_hentries (hentry *hentries, size_t size) +{ +#if ERROR_CHECK_HASH_TABLE + /* Ensure a crash if other code uses the discarded entries afterwards. */ + hentry *e, *sentinel; + + for (e = hentries, sentinel = e + size; e < sentinel; e++) + * (unsigned long *) e = 0xdeadbeef; +#endif + + if (!DUMPEDP (hentries)) + xfree (hentries); +} + +static void finalize_hash_table (void *header, int for_disksave) { if (!for_disksave) { Lisp_Hash_Table *ht = (Lisp_Hash_Table *) header; - - xfree (ht->hentries); + free_hentries (ht->hentries, ht->size); ht->hentries = 0; } } @@ -942,8 +982,7 @@ *probe = *e; } - if (!DUMPEDP (old_entries)) - xfree (old_entries); + free_hentries (old_entries, old_size); } /* After a hash table has been saved to disk and later restored by the @@ -1171,52 +1210,133 @@ /************************************************************************/ /* Mapping Functions */ /************************************************************************/ + +/* We need to be careful when mapping over hash tables because the + hash table might be modified during the mapping operation: + - by the mapping function + - by gc (if the hash table is weak) + + So we make a copy of the hentries at the beginning of the mapping + operation, and iterate over the copy. Naturally, this is + expensive, but not as expensive as you might think, because no + actual memory has to be collected by our notoriously inefficient + GC; we use an unwind-protect instead to free the memory directly. + + We could avoid the copying by having the hash table modifiers + puthash and remhash check for currently active mapping functions. + Disadvantages: it's hard to get right, and IMO hash mapping + functions are basically rare, and no extra space in the hash table + object and no extra cpu in puthash or remhash should be wasted to + make maphash 3% faster. From a design point of view, the basic + functions gethash, puthash and remhash should be implementable + without having to think about maphash. + + Note: We don't (yet) have Common Lisp's with-hash-table-iterator. + If you implement this naively, you cannot have more than one + concurrently active iterator over the same hash table. The `each' + function in perl has this limitation. + + Note: We GCPRO memory on the heap, not on the stack. There is no + obvious reason why this is bad, but as of this writing this is the + only known occurrence of this technique in the code. + + -- Martin +*/ + +/* Ben disagrees with the "copying hentries" design, and says: + + Another solution is the same as I've already proposed -- when + mapping, mark the table as "change-unsafe", and in this case, use a + secondary table to maintain changes. this could be basically a + standard hash table, but with entries only for added or deleted + entries in the primary table, and a marker like Qunbound to + indicate a deleted entry. puthash, gethash and remhash need a + single extra check for this secondary table -- totally + insignificant speedwise. if you really cared about making + recursive maphashes completely correct, you'd have to do a bit of + extra work here -- when maphashing, if the secondary table exists, + make a copy of it, and use the copy in conjunction with the primary + table when mapping. the advantages of this are + + [a] easy to demonstrate correct, even with weak hashtables. + + [b] no extra overhead in the general maphash case -- only when you + modify the table while maphashing, and even then the overhead is + very small. +*/ + +static Lisp_Object +maphash_unwind (Lisp_Object unwind_obj) +{ + void *ptr = (void *) get_opaque_ptr (unwind_obj); + xfree (ptr); + free_opaque_ptr (unwind_obj); + return Qnil; +} + +/* Return a malloced array of alternating key/value pairs from HT. */ +static Lisp_Object * +copy_compress_hentries (const Lisp_Hash_Table *ht) +{ + Lisp_Object * const objs = + /* If the hash table is empty, ht->count could be 0. */ + xnew_array (Lisp_Object, 2 * (ht->count > 0 ? ht->count : 1)); + const hentry *e, *sentinel; + Lisp_Object *pobj; + + for (e = ht->hentries, sentinel = e + ht->size, pobj = objs; e < sentinel; e++) + if (!HENTRY_CLEAR_P (e)) + { + *(pobj++) = e->key; + *(pobj++) = e->value; + } + + type_checking_assert (pobj == objs + 2 * ht->count); + + return objs; +} + DEFUN ("maphash", Fmaphash, 2, 2, 0, /* Map FUNCTION over entries in HASH-TABLE, calling it with two args, each key and value in HASH-TABLE. -FUNCTION may not modify HASH-TABLE, with the one exception that FUNCTION +FUNCTION must not modify HASH-TABLE, with the one exception that FUNCTION may remhash or puthash the entry currently being processed by FUNCTION. */ (function, hash_table)) { - const Lisp_Hash_Table *ht = xhash_table (hash_table); - const hentry *e, *sentinel; + const Lisp_Hash_Table * const ht = xhash_table (hash_table); + Lisp_Object * const objs = copy_compress_hentries (ht); + Lisp_Object args[3]; + const Lisp_Object *pobj, *end; + int speccount = specpdl_depth (); + struct gcpro gcpro1; + + record_unwind_protect (maphash_unwind, make_opaque_ptr ((void *)objs)); + GCPRO1 (objs[0]); + gcpro1.nvars = 2 * ht->count; - for (e = ht->hentries, sentinel = e + ht->size; e < sentinel; e++) - if (!HENTRY_CLEAR_P (e)) - { - Lisp_Object args[3], key; - again: - key = e->key; - args[0] = function; - args[1] = key; - args[2] = e->value; - Ffuncall (countof (args), args); - /* Has FUNCTION done a remhash? */ - if (!EQ (key, e->key) && !HENTRY_CLEAR_P (e)) - goto again; - } + args[0] = function; + + for (pobj = objs, end = pobj + 2 * ht->count; pobj < end; pobj += 2) + { + args[1] = pobj[0]; + args[2] = pobj[1]; + Ffuncall (countof (args), args); + } + + unbind_to (speccount, Qnil); + UNGCPRO; return Qnil; } -/* #### If the Lisp function being called does a puthash and this - #### causes the hash table to be resized, the results will be quite - #### random and we will likely crash. To fix this, either set a - #### flag in the hash table while we're mapping and signal an error - #### when new entries are added, or fix things to make this - #### operation work properly, like this: Store two hash tables in - #### each hash table object -- the second one is written to when - #### you do a puthash inside of a mapping operation, and the - #### various operations need to check both hash tables for entries. - #### As soon as the last maphash over a particular hash table - #### object terminates, the entries in the second table are added - #### to the first (using an unwind-protect). --ben */ - -/* Map *C* function FUNCTION over the elements of a lisp hash table. */ +/* Map *C* function FUNCTION over the elements of a non-weak lisp hash table. + FUNCTION must not modify HASH-TABLE, with the one exception that FUNCTION + may puthash the entry currently being processed by FUNCTION. + Mapping terminates if FUNCTION returns something other than 0. */ void -elisp_maphash (maphash_function_t function, +elisp_maphash_unsafe (maphash_function_t function, Lisp_Object hash_table, void *extra_arg) { const Lisp_Hash_Table *ht = XHASH_TABLE (hash_table); @@ -1224,37 +1344,57 @@ for (e = ht->hentries, sentinel = e + ht->size; e < sentinel; e++) if (!HENTRY_CLEAR_P (e)) - { - Lisp_Object key; - again: - key = e->key; - if (function (key, e->value, extra_arg)) - return; - /* Has FUNCTION done a remhash? */ - if (!EQ (key, e->key) && !HENTRY_CLEAR_P (e)) - goto again; - } + if (function (e->key, e->value, extra_arg)) + return; } -/* Remove all elements of a lisp hash table satisfying *C* predicate PREDICATE. */ +/* Map *C* function FUNCTION over the elements of a lisp hash table. + It is safe for FUNCTION to modify HASH-TABLE. + Mapping terminates if FUNCTION returns something other than 0. */ +void +elisp_maphash (maphash_function_t function, + Lisp_Object hash_table, void *extra_arg) +{ + const Lisp_Hash_Table * const ht = xhash_table (hash_table); + Lisp_Object * const objs = copy_compress_hentries (ht); + const Lisp_Object *pobj, *end; + int speccount = specpdl_depth (); + struct gcpro gcpro1; + + record_unwind_protect (maphash_unwind, make_opaque_ptr ((void *)objs)); + GCPRO1 (objs[0]); + gcpro1.nvars = 2 * ht->count; + + for (pobj = objs, end = pobj + 2 * ht->count; pobj < end; pobj += 2) + if (function (pobj[0], pobj[1], extra_arg)) + break; + + unbind_to (speccount, Qnil); + UNGCPRO; +} + +/* Remove all elements of a lisp hash table satisfying *C* predicate PREDICATE. + PREDICATE must not modify HASH-TABLE. */ void elisp_map_remhash (maphash_function_t predicate, Lisp_Object hash_table, void *extra_arg) { - Lisp_Hash_Table *ht = XHASH_TABLE (hash_table); - hentry *e, *entries, *sentinel; + const Lisp_Hash_Table * const ht = xhash_table (hash_table); + Lisp_Object * const objs = copy_compress_hentries (ht); + const Lisp_Object *pobj, *end; + int speccount = specpdl_depth (); + struct gcpro gcpro1; + + record_unwind_protect (maphash_unwind, make_opaque_ptr ((void *)objs)); + GCPRO1 (objs[0]); + gcpro1.nvars = 2 * ht->count; + + for (pobj = objs, end = pobj + 2 * ht->count; pobj < end; pobj += 2) + if (predicate (pobj[0], pobj[1], extra_arg)) + Fremhash (pobj[0], hash_table); - for (e = entries = ht->hentries, sentinel = e + ht->size; e < sentinel; e++) - if (!HENTRY_CLEAR_P (e)) - { - again: - if (predicate (e->key, e->value, extra_arg)) - { - remhash_1 (ht, entries, e); - if (!HENTRY_CLEAR_P (e)) - goto again; - } - } + unbind_to (speccount, Qnil); + UNGCPRO; } diff --text -u 'xemacs-21.5.0/src/elhash.h' 'xemacs-21.5.1/src/elhash.h' Index: ./src/elhash.h --- ./src/elhash.h Fri Apr 13 03:23:37 2001 +++ ./src/elhash.h Mon Apr 30 23:10:58 2001 @@ -87,6 +87,9 @@ void elisp_maphash (maphash_function_t function, Lisp_Object hash_table, void *extra_arg); +void elisp_maphash_unsafe (maphash_function_t function, + Lisp_Object hash_table, void *extra_arg); + void elisp_map_remhash (maphash_function_t predicate, Lisp_Object hash_table, void *extra_arg); diff --text -u 'xemacs-21.5.0/src/emacs.c' 'xemacs-21.5.1/src/emacs.c' Index: ./src/emacs.c --- ./src/emacs.c Fri Apr 13 03:23:38 2001 +++ ./src/emacs.c Sat May 5 19:54:05 2001 @@ -461,8 +461,8 @@ static JMP_BUF run_temacs_catch; static int run_temacs_argc; -static char **run_temacs_argv; -static char *run_temacs_args; +static Extbyte **run_temacs_argv; +static Extbyte *run_temacs_args; static size_t run_temacs_argv_size; static size_t run_temacs_args_size; @@ -657,7 +657,7 @@ if (i == 0) { /* Do not trust to what crt0 has stuffed into argv[0] */ - char full_exe_path[MAX_PATH]; + Extbyte full_exe_path[MAX_PATH]; Lisp_Object fullpath; GetModuleFileName (NULL, full_exe_path, MAX_PATH); @@ -668,7 +668,7 @@ Extbyte *fullpathext; LISP_STRING_TO_EXTERNAL (fullpath, fullpathext, - Qdll_filename_encoding); + Qdll_filename_encoding); (void) dll_init (fullpathext); } #endif @@ -994,6 +994,8 @@ noninteractive = 1; } + /* #### is it correct that -debug-paths is handled here (and presumably + removed), and then checked again below? */ if (argmatch (argv, argc, "-debug-paths", "--debug-paths", 11, NULL, &skip_args)) debug_paths = 1; diff --text -u 'xemacs-21.5.0/src/event-Xt.c' 'xemacs-21.5.1/src/event-Xt.c' Index: ./src/event-Xt.c --- ./src/event-Xt.c Fri Apr 13 03:23:40 2001 +++ ./src/event-Xt.c Sat May 5 19:54:08 2001 @@ -65,8 +65,6 @@ #include "offix.h" #endif -#include "events-mod.h" - static void handle_focus_event_1 (struct frame *f, int in_p); static struct event_stream *Xt_event_stream; diff --text -u 'xemacs-21.5.0/src/event-msw.c' 'xemacs-21.5.1/src/event-msw.c' Index: ./src/event-msw.c --- ./src/event-msw.c Fri Apr 13 03:23:41 2001 +++ ./src/event-msw.c Sat May 5 19:54:11 2001 @@ -65,7 +65,6 @@ #include "sysdep.h" #include "objects-msw.h" -#include "events-mod.h" #ifdef HAVE_MSG_SELECT #include "sysfile.h" #include "console-tty.h" @@ -87,7 +86,8 @@ /* Fake key modifier which is attached to a quit char event. Removed upon dequeueing an event */ -#define FAKE_MOD_QUIT 0x80 +#define FAKE_MOD_QUIT (1 << 20) +#define FAKE_MOD_QUIT_CRITICAL (1 << 21) /* Timer ID used for button2 emulation */ #define BUTTON_2_TIMER_ID 1 @@ -1048,7 +1048,8 @@ if (sevt->event_type == key_press_event && (sevt->event.key.modifiers & FAKE_MOD_QUIT)) { - sevt->event.key.modifiers &= ~FAKE_MOD_QUIT; + sevt->event.key.modifiers &= + ~(FAKE_MOD_QUIT | FAKE_MOD_QUIT_CRITICAL); --mswindows_quit_chars_count; } @@ -1340,6 +1341,10 @@ * fetching WM_TIMER messages. Instead of trying to fetch a WM_TIMER * which will never come when there are no pending timers, which leads * to deadlock, we simply signal an error. + * + * It might be possible to combine this with mswindows_drain_windows_queue + * which fetches events when not in a modal loop. It's not clear + * whether the result would be more complex than is justified. */ static void mswindows_need_event_in_modal_loop (int badly_p) @@ -1363,8 +1368,8 @@ error ("Deadlock due to an attempt to call next-event in a wrong context"); /* Fetch and dispatch any pending timers */ - GetMessage (&msg, NULL, WM_TIMER, WM_TIMER); - DispatchMessage (&msg); + if (GetMessage (&msg, NULL, WM_TIMER, WM_TIMER) > 0) + DispatchMessage (&msg); } } @@ -1380,12 +1385,6 @@ { int active; - if (mswindows_in_modal_loop) - { - mswindows_need_event_in_modal_loop (badly_p); - return; - } - while (NILP (mswindows_u_dispatch_event_queue) && NILP (mswindows_s_dispatch_event_queue)) { @@ -1402,6 +1401,10 @@ EMACS_SET_SECS_USECS (sometime, 0, 0); EMACS_TIME_TO_SELECT_TIME (sometime, select_time_to_block); pointer_to_this = &select_time_to_block; + if (mswindows_in_modal_loop) + /* In modal loop with badly_p false, don't care about + Windows events. */ + FD_CLR (windows_fd, &temp_mask); } active = select (MAXDESC, &temp_mask, 0, 0, pointer_to_this); @@ -1415,7 +1418,10 @@ { if (FD_ISSET (windows_fd, &temp_mask)) { - mswindows_drain_windows_queue (); + if (mswindows_in_modal_loop) + mswindows_need_event_in_modal_loop (badly_p); + else + mswindows_drain_windows_queue (); } else { @@ -1480,10 +1486,24 @@ } #else /* Now try getting a message or process event */ + DWORD what_events; + if (mswindows_in_modal_loop) + /* In a modal loop, only look for timer events, and only if + we really need one. */ + { + if (badly_p) + what_events = QS_TIMER; + else + what_events = 0; + } + else + /* Look for any event */ + what_events = QS_ALLINPUT; + active = MsgWaitForMultipleObjects (mswindows_waitable_count, mswindows_waitable_handles, FALSE, badly_p ? INFINITE : 0, - QS_ALLINPUT); + what_events); /* This will assert if handle being waited for becomes abandoned. Not the case currently tho */ @@ -1499,7 +1519,10 @@ else if (active == WAIT_OBJECT_0 + mswindows_waitable_count) { /* Got your message, thanks */ - mswindows_drain_windows_queue (); + if (mswindows_in_modal_loop) + mswindows_need_event_in_modal_loop (badly_p); + else + mswindows_drain_windows_queue (); } else { @@ -1516,7 +1539,12 @@ { /* None. This means that the process handle itself has signaled. Remove the handle from the wait vector, and make status_notify - note the exited process */ + note the exited process. First find the process object if + possible. */ + LIST_LOOP_3 (vaffanculo, Vprocess_list, vproctail) + if (get_nt_process_handle (XPROCESS (vaffanculo)) == + mswindows_waitable_handles [ix]) + break; mswindows_waitable_handles [ix] = mswindows_waitable_handles [--mswindows_waitable_count]; kick_status_notify (); @@ -1525,10 +1553,12 @@ process, and (2) status notifications will happen in accept-process-output, sleep-for, and sit-for. */ /* #### horrible kludge till my real process fixes go in. + #### Replaced with a slightly less horrible kluge that + at least finds the right process instead of axing the + first one on the list. */ - if (!NILP (Vprocess_list)) + if (!NILP (vproctail)) { - Lisp_Object vaffanculo = XCAR (Vprocess_list); mswindows_enqueue_process_event (XPROCESS (vaffanculo)); } else /* trash me soon. */ @@ -2118,7 +2148,7 @@ BYTE keymap_orig[256]; BYTE keymap_sticky[256]; int has_AltGr = mswindows_current_layout_has_AltGr (); - int mods = 0; + int mods = 0, mods_with_shift = 0; int extendedp = lParam & 0x1000000; Lisp_Object keysym; int sticky_changed; @@ -2153,6 +2183,7 @@ memcpy (keymap_sticky, keymap_orig, 256); mods = mswindows_modifier_state (keymap_sticky, (DWORD) -1, has_AltGr); + mods_with_shift = mods; /* Handle non-printables */ if (!NILP (keysym = mswindows_key_to_emacs_keysym (wParam, mods, @@ -2221,22 +2252,27 @@ || PeekMessage (&tranmsg, hwnd, WM_SYSCHAR, WM_SYSCHAR, PM_REMOVE)) { - int mods1 = mods; + int mods_with_quit = mods; WPARAM ch = tranmsg.wParam; /* If a quit char with no modifiers other than control and shift, then mark it with a fake modifier, which is removed upon dequeueing the event */ - /* #### This might also not withstand localization, if - quit character is not a latin-1 symbol */ + /* !!#### Fix this in my mule ws -- replace current_buffer + with 0 */ if (((quit_ch < ' ' && (mods & XEMACS_MOD_CONTROL) - && quit_ch + 'a' - 1 == ch) + && DOWNCASE (current_buffer, quit_ch + 'a' - 1) == + DOWNCASE (current_buffer, ch)) || (quit_ch >= ' ' && !(mods & XEMACS_MOD_CONTROL) - && quit_ch == ch)) - && ((mods & ~(XEMACS_MOD_CONTROL | XEMACS_MOD_SHIFT)) + && DOWNCASE (current_buffer, quit_ch) == + DOWNCASE (current_buffer, ch))) + && ((mods_with_shift & + ~(XEMACS_MOD_CONTROL | XEMACS_MOD_SHIFT)) == 0)) { - mods1 |= FAKE_MOD_QUIT; + mods_with_quit |= FAKE_MOD_QUIT; + if (mods_with_shift & XEMACS_MOD_SHIFT) + mods_with_quit |= FAKE_MOD_QUIT_CRITICAL; ++mswindows_quit_chars_count; } else if (potential_accelerator && !got_accelerator && @@ -2245,7 +2281,8 @@ got_accelerator = 1; break; } - mswindows_enqueue_keypress_event (hwnd, make_char (ch), mods1); + mswindows_enqueue_keypress_event (hwnd, make_char (ch), + mods_with_quit); } /* while */ /* This generates WM_SYSCHAR messages, which are interpreted @@ -3435,8 +3472,8 @@ if (mswindows_in_modal_loop) return; - /* Drain windows queue. This sets up number of quit characters in - the queue */ + /* Drain windows queue. This sets up number of quit characters in + the queue. */ mswindows_drain_windows_queue (); if (mswindows_quit_chars_count > 0) @@ -3454,10 +3491,11 @@ emacs_event = mswindows_cancel_dispatch_event (&match_against); assert (!NILP (emacs_event)); - if (XEVENT(emacs_event)->event.key.modifiers & XEMACS_MOD_SHIFT) + if (XEVENT (emacs_event)->event.key.modifiers & + FAKE_MOD_QUIT_CRITICAL) critical_p = 1; - Fdeallocate_event(emacs_event); + Fdeallocate_event (emacs_event); } Vquit_flag = critical_p ? Qcritical : Qt; @@ -3730,7 +3768,7 @@ { init_slurp_stream (); init_shove_stream (); -#if defined (HAVE_SOCKETS) && !defined(HAVE_MSG_SELECT) +#if defined (HAVE_SOCKETS) && !defined (HAVE_MSG_SELECT) init_winsock_stream (); #endif } diff --text -u 'xemacs-21.5.0/src/event-stream.c' 'xemacs-21.5.1/src/event-stream.c' Index: ./src/event-stream.c --- ./src/event-stream.c Fri Apr 13 03:23:41 2001 +++ ./src/event-stream.c Tue May 8 17:08:47 2001 @@ -92,7 +92,6 @@ #include "sysfile.h" #include "systime.h" /* to set Vlast_input_time */ -#include "events-mod.h" #ifdef FILE_CODING #include "file-coding.h" #endif @@ -2010,6 +2009,7 @@ static void push_recent_keys (Lisp_Object event); static void dribble_out_event (Lisp_Object event); static void execute_internal_event (Lisp_Object event); +static int is_scrollbar_event (Lisp_Object event); DEFUN ("next-event", Fnext_event, 0, 2, 0, /* Return the next available event. @@ -2270,7 +2270,9 @@ */ if (store_this_key) { - push_this_command_keys (event); + if (!is_scrollbar_event (event)) /* #### not quite right, see + comment in execute_command_event */ + push_this_command_keys (event); if (!inhibit_input_event_recording) push_recent_keys (event); dribble_out_event (event); @@ -3757,6 +3759,35 @@ } } +static int +is_scrollbar_event (Lisp_Object event) +{ +#ifdef HAVE_SCROLLBARS + Lisp_Object fun; + + if (XEVENT (event)->event_type != misc_user_event) + return 0; + fun = XEVENT (event)->event.misc.function; + + return (EQ (fun, Qscrollbar_line_up) || + EQ (fun, Qscrollbar_line_down) || + EQ (fun, Qscrollbar_page_up) || + EQ (fun, Qscrollbar_page_down) || + EQ (fun, Qscrollbar_to_top) || + EQ (fun, Qscrollbar_to_bottom) || + EQ (fun, Qscrollbar_vertical_drag) || + EQ (fun, Qscrollbar_char_left) || + EQ (fun, Qscrollbar_char_right) || + EQ (fun, Qscrollbar_page_left) || + EQ (fun, Qscrollbar_page_right) || + EQ (fun, Qscrollbar_to_left) || + EQ (fun, Qscrollbar_to_right) || + EQ (fun, Qscrollbar_horizontal_drag)); +#else + return 0; +#endif /* HAVE_SCROLLBARS */ +} + static void execute_command_event (struct command_builder *command_builder, Lisp_Object event) @@ -3767,8 +3798,57 @@ GCPRO1 (event); /* event may be freshly created */ - /* To fix C-x @ h x crash. */ - if (XEVENT (event)->event_type != misc_user_event) + /* #### This call to is_scrollbar_event() isn't quite right, but + fixing properly it requires more work than can go into 21.4. + (We really need to split out menu, scrollbar, dialog, and other + types of events from misc-user, and put the remaining ones in a + new `user-eval' type that behaves like an eval event but is a + user event and thus has all of its semantics -- e.g. being + delayed during `accept-process-output' and similar wait states.) + + The real issue here is that "user events" and "command events" + are not the same thing, but are very much confused in + event-stream.c. User events are, essentially, any event that + should be delayed by accept-process-output, should terminate a + sit-for, etc. -- basically, any event that needs to be processed + synchronously with key and mouse events. Command events are + those that participate in command building; scrollbar events + clearly don't belong because they should be transparent in a + sequence like C-x @ h x, which used to cause a + crash before checks similar to the is_scrollbar_event() call were + added. Do other events belong with scrollbar events? I'm not + sure; we need to categorize all misc-user events and see what + their semantics are. + + (You might ask, why do scrollbar events need to be user events? + That's a good question. The answer seems to be that they can + change point, and having this happen asynchronously would be a + very bad idea. According to the "proper" functioning of + scrollbars, this should not happen, but XEmacs does not allow + point to go outside of the window.) + + Scrollbar events and similar non-command events should obviously + not be recorded in this-command-keys, so we need to check for + this in next-event. + + #### We call reset_current_events() twice in this function -- + #### here, and later as a result of reset_this_command_keys(). + #### This is almost certainly wrong; need to figure out what's + #### correct. + + #### We need to figure out what's really correct w.r.t. scrollbar + #### events. With these new fixes in, it actually works to do + #### C-x 5 2, but the key echo gets messed up + #### (starts over at 5). We really need to be special-casing + #### scrollbar events at a lower level, and not really passing + #### them through the command builder at all. (e.g. do scrollbar + #### events belong in macros??? doubtful; probably only the + #### point movement, if any, belongs, special-cased as a + #### pseudo-issued M-x goto-char command). #### Need more work + #### here. Do this when separating out scrollbar events. + */ + + if (!is_scrollbar_event (event)) reset_current_events (command_builder); switch (XEVENT (event)->event_type) @@ -3863,7 +3943,8 @@ /* Emacs 18 doesn't unconditionally clear the echoed keystrokes, so we don't either */ - if (XEVENT (event)->event_type != misc_user_event) + + if (!is_scrollbar_event (event)) reset_this_command_keys (make_console (con), 0); } } diff --text -u 'xemacs-21.5.0/src/events-mod.h' 'xemacs-21.5.1/src/events-mod.h' Index: ./src/events-mod.h --- ./src/events-mod.h Fri Apr 13 03:23:42 2001 +++ ./src/events-mod.h Sat May 5 19:54:15 2001 @@ -1,13 +0,0 @@ -/* The modifiers XEmacs knows about; these appear in key and button events. */ - -#define XEMACS_MOD_CONTROL (1<<0) -#define XEMACS_MOD_META (1<<1) -#define XEMACS_MOD_SUPER (1<<2) -#define XEMACS_MOD_HYPER (1<<3) -#define XEMACS_MOD_ALT (1<<4) -#define XEMACS_MOD_SHIFT (1<<5) /* not used for dual-case characters */ -#define XEMACS_MOD_BUTTON1 (1<<6) -#define XEMACS_MOD_BUTTON2 (1<<7) -#define XEMACS_MOD_BUTTON3 (1<<8) -#define XEMACS_MOD_BUTTON4 (1<<9) -#define XEMACS_MOD_BUTTON5 (1<<10) diff --text -u 'xemacs-21.5.0/src/events.c' 'xemacs-21.5.1/src/events.c' Index: ./src/events.c --- ./src/events.c Fri Apr 13 03:23:42 2001 +++ ./src/events.c Sat May 5 19:54:17 2001 @@ -38,7 +38,6 @@ #include "keymap.h" /* for key_desc_list_to_event() */ #include "redisplay.h" #include "window.h" -#include "events-mod.h" /* Where old events go when they are explicitly deallocated. The event chain here is cut loose before GC, so these will be freed diff --text -u 'xemacs-21.5.0/src/events.h' 'xemacs-21.5.1/src/events.h' Index: ./src/events.h --- ./src/events.h Fri Apr 13 03:23:42 2001 +++ ./src/events.h Sat May 5 19:54:18 2001 @@ -542,9 +542,23 @@ extern Lisp_Object Qcancel_mode_internal; extern Lisp_Object Vmodifier_keys_sticky_time; -/* Note: under X Windows, XEMACS_MOD_ALT is generated by the Alt key if there are - both Alt and Meta keys. If there are no Meta keys, then Alt generates - XEMACS_MOD_META instead. +/* The modifiers XEmacs knows about; these appear in key and button events. */ + +#define XEMACS_MOD_CONTROL (1<<0) +#define XEMACS_MOD_META (1<<1) +#define XEMACS_MOD_SUPER (1<<2) +#define XEMACS_MOD_HYPER (1<<3) +#define XEMACS_MOD_ALT (1<<4) +#define XEMACS_MOD_SHIFT (1<<5) /* not used for dual-case characters */ +#define XEMACS_MOD_BUTTON1 (1<<6) +#define XEMACS_MOD_BUTTON2 (1<<7) +#define XEMACS_MOD_BUTTON3 (1<<8) +#define XEMACS_MOD_BUTTON4 (1<<9) +#define XEMACS_MOD_BUTTON5 (1<<10) + +/* Note: under X Windows, XEMACS_MOD_ALT is generated by the Alt key + if there are both Alt and Meta keys. If there are no Meta keys, + then Alt generates XEMACS_MOD_META instead. */ #ifdef emacs diff --text -u 'xemacs-21.5.0/src/faces.h' 'xemacs-21.5.1/src/faces.h' Index: ./src/faces.h --- ./src/faces.h Fri Apr 13 03:23:44 2001 +++ ./src/faces.h Sat May 5 19:54:19 2001 @@ -341,9 +341,9 @@ #define FACE_PROPERTY_SPEC_LIST(face, property, locale) \ Fspecifier_spec_list (FACE_PROPERTY_SPECIFIER (face, property), \ locale, Qnil, Qnil) -#define SET_FACE_PROPERTY(face, property, locale, value, tag, how_to_add) \ +#define SET_FACE_PROPERTY(face, property, value, locale, tag, how_to_add) \ Fadd_spec_to_specifier (FACE_PROPERTY_SPECIFIER (face, property), \ - locale, value, tag, how_to_add) + value, locale, tag, how_to_add) #define FACE_FOREGROUND(face, domain) \ FACE_PROPERTY_INSTANCE (face, Qforeground, domain, 0, Qzero) diff --text -u 'xemacs-21.5.0/src/frame-msw.c' 'xemacs-21.5.1/src/frame-msw.c' Index: ./src/frame-msw.c --- ./src/frame-msw.c Fri Apr 13 03:23:46 2001 +++ ./src/frame-msw.c Sat May 5 19:54:20 2001 @@ -642,13 +642,15 @@ } } -void mswindows_size_frame_internal (struct frame* f, XEMACS_RECT_WH* dest) +void +mswindows_size_frame_internal (struct frame* f, XEMACS_RECT_WH* dest) { RECT rect, ws_rect; int pixel_width, pixel_height; int size_p = (dest->width >=0 || dest->height >=0); int move_p = (dest->top >=0 || dest->left >=0); - char_to_real_pixel_size (f, dest->width, dest->height, &pixel_width, &pixel_height); + char_to_real_pixel_size (f, dest->width, dest->height, &pixel_width, + &pixel_height); if (dest->width < 0) pixel_width = FRAME_PIXWIDTH (f); @@ -806,15 +808,18 @@ f->frame_data = xnew_and_zero (struct msprinter_frame); - /* Default margin size is 1" = 1440 twips */ - FRAME_MSPRINTER_TOP_MARGIN(f) = 1440; - FRAME_MSPRINTER_BOTTOM_MARGIN(f) = 1440; - FRAME_MSPRINTER_LEFT_MARGIN(f) = 1440; - FRAME_MSPRINTER_RIGHT_MARGIN(f) = 1440; + FRAME_MSPRINTER_TOP_MARGIN (f) = + mswindows_get_default_margin (Qtop_margin); + FRAME_MSPRINTER_BOTTOM_MARGIN (f) = + mswindows_get_default_margin (Qbottom_margin); + FRAME_MSPRINTER_LEFT_MARGIN (f) = + mswindows_get_default_margin (Qleft_margin); + FRAME_MSPRINTER_RIGHT_MARGIN (f) = + mswindows_get_default_margin (Qright_margin); /* Negative for "uinspecified" */ - FRAME_MSPRINTER_CHARWIDTH(f) = -1; - FRAME_MSPRINTER_CHARHEIGHT(f) = -1; + FRAME_MSPRINTER_CHARWIDTH (f) = -1; + FRAME_MSPRINTER_CHARHEIGHT (f) = -1; } static void @@ -1182,8 +1187,10 @@ top-margin typographical unit of measurement, right-margin equal to 1/1440 of an inch, or 1/20 of a bottom-margin point, and roughly equal to 7/400 of a - millimeter. If not specified, each margin - defaults to one inch (25.4 mm). + millimeter. If not specified, the left + and right margins default to 1 inch + (25.4 mm) and the top and bottom margins + to 0.5 inch (12.7 mm). MARGINS NOTE. right-margin and bottom-margin are overridden by the height and width properties. If you want to specify size @@ -1194,8 +1201,8 @@ want to specify right/bottom margins, set height/width in this plist to nil, as in this example: - (setq default-frame-plist '(height 55 'width 80) - default-msprinter-frame-plist '(height nil 'width nil)) + (setq default-frame-plist '(height 55 width 80) + default-msprinter-frame-plist '(height nil width nil)) See also `default-frame-plist', which specifies properties which apply to all frames, not just mswindows frames. diff --text -u 'xemacs-21.5.0/src/frame-x.c' 'xemacs-21.5.1/src/frame-x.c' Index: ./src/frame-x.c --- ./src/frame-x.c Fri Apr 13 03:23:47 2001 +++ ./src/frame-x.c Sat May 5 19:54:22 2001 @@ -61,9 +61,6 @@ #ifdef HAVE_OFFIX_DND #include "offix.h" #endif -#if defined (HAVE_OFFIX_DND) || defined (HAVE_CDE) -#include "events-mod.h" -#endif /* Default properties to use when creating frames. */ Lisp_Object Vdefault_x_frame_plist; diff --text -u 'xemacs-21.5.0/src/general-slots.h' 'xemacs-21.5.1/src/general-slots.h' Index: ./src/general-slots.h --- ./src/general-slots.h Fri Apr 13 03:23:49 2001 +++ ./src/general-slots.h Mon May 7 16:52:10 2001 @@ -184,13 +184,13 @@ SYMBOL_KEYWORD (Q_orientation); SYMBOL (Qother); SYMBOL (Qpage_setup); +SYMBOL (Qpages); SYMBOL (Qpeer); SYMBOL (Qpointer); SYMBOL (Qpopup); SYMBOL (Qportrait); SYMBOL (Qprepend); SYMBOL (Qprint); -SYMBOL (Qprint_setup); SYMBOL (Qprinter); SYMBOL_KEYWORD (Q_printer_settings); SYMBOL (Qprocess); @@ -212,6 +212,7 @@ SYMBOL (Qsearch); SYMBOL (Qselected); SYMBOL_KEYWORD (Q_selected); +SYMBOL (Qselection); SYMBOL (Qset_glyph_image); SYMBOL (Qsignal); SYMBOL (Qsimple); diff --text -u 'xemacs-21.5.0/src/glyphs-msw.c' 'xemacs-21.5.1/src/glyphs-msw.c' Index: ./src/glyphs-msw.c --- ./src/glyphs-msw.c Fri Apr 13 03:23:50 2001 +++ ./src/glyphs-msw.c Sat May 5 19:54:24 2001 @@ -1250,9 +1250,10 @@ } static void -mswindows_resource_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, - Lisp_Object pointer_fg, Lisp_Object pointer_bg, - int dest_mask, Lisp_Object domain) +mswindows_resource_instantiate (Lisp_Object image_instance, + Lisp_Object instantiator, + Lisp_Object pointer_fg, Lisp_Object pointer_bg, + int dest_mask, Lisp_Object domain) { Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); unsigned int type = 0; @@ -1988,7 +1989,8 @@ #undef SYSV32 static void -mswindows_xface_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, +mswindows_xface_instantiate (Lisp_Object image_instance, + Lisp_Object instantiator, Lisp_Object pointer_fg, Lisp_Object pointer_bg, int dest_mask, Lisp_Object domain) { @@ -2376,8 +2378,10 @@ } static void -mswindows_subwindow_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, - Lisp_Object pointer_fg, Lisp_Object pointer_bg, +mswindows_subwindow_instantiate (Lisp_Object image_instance, + Lisp_Object instantiator, + Lisp_Object pointer_fg, + Lisp_Object pointer_bg, int dest_mask, Lisp_Object domain) { Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); @@ -2496,7 +2500,8 @@ /* widgets */ /************************************************************************/ static void -mswindows_widget_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, +mswindows_widget_instantiate (Lisp_Object image_instance, + Lisp_Object instantiator, Lisp_Object pointer_fg, Lisp_Object pointer_bg, int dest_mask, Lisp_Object domain, const char* class, int flags, int exflags) @@ -2587,7 +2592,8 @@ static void mswindows_native_layout_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, - Lisp_Object pointer_fg, Lisp_Object pointer_bg, + Lisp_Object pointer_fg, + Lisp_Object pointer_bg, int dest_mask, Lisp_Object domain) { Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); @@ -2612,7 +2618,8 @@ many-to-one relationship with things you see, whereas widgets can only be one-to-one (i.e. per frame) */ static void -mswindows_button_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, +mswindows_button_instantiate (Lisp_Object image_instance, + Lisp_Object instantiator, Lisp_Object pointer_fg, Lisp_Object pointer_bg, int dest_mask, Lisp_Object domain) { @@ -2697,9 +2704,11 @@ /* instantiate an edit control */ static void -mswindows_edit_field_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, - Lisp_Object pointer_fg, Lisp_Object pointer_bg, - int dest_mask, Lisp_Object domain) +mswindows_edit_field_instantiate (Lisp_Object image_instance, + Lisp_Object instantiator, + Lisp_Object pointer_fg, + Lisp_Object pointer_bg, + int dest_mask, Lisp_Object domain) { mswindows_widget_instantiate (image_instance, instantiator, pointer_fg, pointer_bg, dest_mask, domain, "EDIT", @@ -2709,9 +2718,11 @@ /* instantiate a progress gauge */ static void -mswindows_progress_gauge_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, - Lisp_Object pointer_fg, Lisp_Object pointer_bg, - int dest_mask, Lisp_Object domain) +mswindows_progress_gauge_instantiate (Lisp_Object image_instance, + Lisp_Object instantiator, + Lisp_Object pointer_fg, + Lisp_Object pointer_bg, + int dest_mask, Lisp_Object domain) { HWND wnd; Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); @@ -2721,17 +2732,15 @@ WS_BORDER | PBS_SMOOTH, WS_EX_CLIENTEDGE); wnd = WIDGET_INSTANCE_MSWINDOWS_HANDLE (ii); /* set the colors */ -#ifdef PBS_SETBKCOLOR - SendMessage (wnd, PBS_SETBKCOLOR, 0, +#if 0 /* #### fix this */ + SendMessage (wnd, PBM_SETBKCOLOR, 0, (LPARAM) (COLOR_INSTANCE_MSWINDOWS_COLOR (XCOLOR_INSTANCE (FACE_BACKGROUND (XIMAGE_INSTANCE_WIDGET_FACE (ii), XIMAGE_INSTANCE_FRAME (ii)))))); -#endif -#ifdef PBS_SETBARCOLOR - SendMessage (wnd, PBS_SETBARCOLOR, 0, - (L:PARAM) (COLOR_INSTANCE_MSWINDOWS_COLOR + SendMessage (wnd, PBM_SETBARCOLOR, 0, + (LPARAM) (COLOR_INSTANCE_MSWINDOWS_COLOR (XCOLOR_INSTANCE (FACE_FOREGROUND (XIMAGE_INSTANCE_WIDGET_FACE (ii), @@ -2798,9 +2807,11 @@ } static void -mswindows_tree_view_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, - Lisp_Object pointer_fg, Lisp_Object pointer_bg, - int dest_mask, Lisp_Object domain) +mswindows_tree_view_instantiate (Lisp_Object image_instance, + Lisp_Object instantiator, + Lisp_Object pointer_fg, + Lisp_Object pointer_bg, + int dest_mask, Lisp_Object domain) { Lisp_Object rest; HWND wnd; @@ -2901,9 +2912,11 @@ } static void -mswindows_tab_control_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, - Lisp_Object pointer_fg, Lisp_Object pointer_bg, - int dest_mask, Lisp_Object domain) +mswindows_tab_control_instantiate (Lisp_Object image_instance, + Lisp_Object instantiator, + Lisp_Object pointer_fg, + Lisp_Object pointer_bg, + int dest_mask, Lisp_Object domain) { /* This function can call lisp */ Lisp_Object rest; @@ -3016,7 +3029,8 @@ /* instantiate a static control possible for putting other things in */ static void -mswindows_label_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, +mswindows_label_instantiate (Lisp_Object image_instance, + Lisp_Object instantiator, Lisp_Object pointer_fg, Lisp_Object pointer_bg, int dest_mask, Lisp_Object domain) { @@ -3027,8 +3041,10 @@ /* instantiate a scrollbar control */ static void -mswindows_scrollbar_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, - Lisp_Object pointer_fg, Lisp_Object pointer_bg, +mswindows_scrollbar_instantiate (Lisp_Object image_instance, + Lisp_Object instantiator, + Lisp_Object pointer_fg, + Lisp_Object pointer_bg, int dest_mask, Lisp_Object domain) { mswindows_widget_instantiate (image_instance, instantiator, pointer_fg, @@ -3038,9 +3054,11 @@ /* instantiate a combo control */ static void -mswindows_combo_box_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, - Lisp_Object pointer_fg, Lisp_Object pointer_bg, - int dest_mask, Lisp_Object domain) +mswindows_combo_box_instantiate (Lisp_Object image_instance, + Lisp_Object instantiator, + Lisp_Object pointer_fg, + Lisp_Object pointer_bg, + int dest_mask, Lisp_Object domain) { Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); HWND wnd; diff --text -u 'xemacs-21.5.0/src/gpmevent.c' 'xemacs-21.5.1/src/gpmevent.c' Index: ./src/gpmevent.c --- ./src/gpmevent.c Fri Apr 13 03:23:53 2001 +++ ./src/gpmevent.c Sat May 5 19:54:25 2001 @@ -29,7 +29,6 @@ #include "console-tty.h" #include "device.h" #include "events.h" -#include "events-mod.h" #include "sysdep.h" #include "commands.h" #include "lstream.h" diff --text -u 'xemacs-21.5.0/src/keymap.c' 'xemacs-21.5.1/src/keymap.c' Index: ./src/keymap.c --- ./src/keymap.c Fri Apr 13 03:23:57 2001 +++ ./src/keymap.c Sat May 5 19:54:28 2001 @@ -37,7 +37,6 @@ #include "insdel.h" #include "keymap.h" #include "window.h" -#include "events-mod.h" /* A keymap contains six slots: @@ -2990,8 +2989,7 @@ (function, keymap, sort_first)) { /* This function can GC */ - struct gcpro gcpro1, gcpro2, gcpro3; - Lisp_Object table = Qnil; + struct gcpro gcpro1, gcpro2; /* tolerate obviously transposed args */ if (!NILP (Fkeymapp (function))) @@ -3000,17 +2998,9 @@ function = keymap; keymap = tmp; } - - GCPRO3 (function, keymap, table); + GCPRO2 (function, keymap); keymap = get_keymap (keymap, 1, 1); - - /* elisp_maphash does not allow mapping functions to modify the hash - table being mapped over. Since map-keymap explicitly allows a - mapping function to modify KEYMAP, we map over a copy of the hash - table instead. */ - table = Fcopy_hash_table (XKEYMAP (keymap)->table); - - map_keymap (table, !NILP (sort_first), + map_keymap (XKEYMAP (keymap)->table, !NILP (sort_first), map_keymap_mapper, LISP_TO_VOID (function)); UNGCPRO; return Qnil; @@ -4232,14 +4222,14 @@ { INIT_LRECORD_IMPLEMENTATION (keymap); - defsymbol (&Qminor_mode_map_alist, "minor-mode-map-alist"); + DEFSYMBOL (Qminor_mode_map_alist); - defsymbol (&Qkeymapp, "keymapp"); + DEFSYMBOL (Qkeymapp); - defsymbol (&Qsuppress_keymap, "suppress-keymap"); + DEFSYMBOL (Qsuppress_keymap); - defsymbol (&Qmodeline_map, "modeline-map"); - defsymbol (&Qtoolbar_map, "toolbar-map"); + DEFSYMBOL (Qmodeline_map); + DEFSYMBOL (Qtoolbar_map); DEFSUBR (Fkeymap_parents); DEFSUBR (Fset_keymap_parents); @@ -4274,51 +4264,51 @@ DEFSUBR (Ftext_char_description); - defsymbol (&Qcontrol, "control"); - defsymbol (&Qctrl, "ctrl"); - defsymbol (&Qmeta, "meta"); - defsymbol (&Qsuper, "super"); - defsymbol (&Qhyper, "hyper"); - defsymbol (&Qalt, "alt"); - defsymbol (&Qshift, "shift"); - defsymbol (&Qbutton0, "button0"); - defsymbol (&Qbutton1, "button1"); - defsymbol (&Qbutton2, "button2"); - defsymbol (&Qbutton3, "button3"); - defsymbol (&Qbutton4, "button4"); - defsymbol (&Qbutton5, "button5"); - defsymbol (&Qbutton6, "button6"); - defsymbol (&Qbutton7, "button7"); - defsymbol (&Qbutton0up, "button0up"); - defsymbol (&Qbutton1up, "button1up"); - defsymbol (&Qbutton2up, "button2up"); - defsymbol (&Qbutton3up, "button3up"); - defsymbol (&Qbutton4up, "button4up"); - defsymbol (&Qbutton5up, "button5up"); - defsymbol (&Qbutton6up, "button6up"); - defsymbol (&Qbutton7up, "button7up"); - defsymbol (&Qmouse_1, "mouse-1"); - defsymbol (&Qmouse_2, "mouse-2"); - defsymbol (&Qmouse_3, "mouse-3"); - defsymbol (&Qmouse_4, "mouse-4"); - defsymbol (&Qmouse_5, "mouse-5"); - defsymbol (&Qmouse_6, "mouse-6"); - defsymbol (&Qmouse_7, "mouse-7"); - defsymbol (&Qdown_mouse_1, "down-mouse-1"); - defsymbol (&Qdown_mouse_2, "down-mouse-2"); - defsymbol (&Qdown_mouse_3, "down-mouse-3"); - defsymbol (&Qdown_mouse_4, "down-mouse-4"); - defsymbol (&Qdown_mouse_5, "down-mouse-5"); - defsymbol (&Qdown_mouse_6, "down-mouse-6"); - defsymbol (&Qdown_mouse_7, "down-mouse-7"); - defsymbol (&Qmenu_selection, "menu-selection"); - defsymbol (&QLFD, "LFD"); - defsymbol (&QTAB, "TAB"); - defsymbol (&QRET, "RET"); - defsymbol (&QESC, "ESC"); - defsymbol (&QDEL, "DEL"); - defsymbol (&QSPC, "SPC"); - defsymbol (&QBS, "BS"); + DEFSYMBOL (Qcontrol); + DEFSYMBOL (Qctrl); + DEFSYMBOL (Qmeta); + DEFSYMBOL (Qsuper); + DEFSYMBOL (Qhyper); + DEFSYMBOL (Qalt); + DEFSYMBOL (Qshift); + DEFSYMBOL (Qbutton0); + DEFSYMBOL (Qbutton1); + DEFSYMBOL (Qbutton2); + DEFSYMBOL (Qbutton3); + DEFSYMBOL (Qbutton4); + DEFSYMBOL (Qbutton5); + DEFSYMBOL (Qbutton6); + DEFSYMBOL (Qbutton7); + DEFSYMBOL (Qbutton0up); + DEFSYMBOL (Qbutton1up); + DEFSYMBOL (Qbutton2up); + DEFSYMBOL (Qbutton3up); + DEFSYMBOL (Qbutton4up); + DEFSYMBOL (Qbutton5up); + DEFSYMBOL (Qbutton6up); + DEFSYMBOL (Qbutton7up); + DEFSYMBOL (Qmouse_1); + DEFSYMBOL (Qmouse_2); + DEFSYMBOL (Qmouse_3); + DEFSYMBOL (Qmouse_4); + DEFSYMBOL (Qmouse_5); + DEFSYMBOL (Qmouse_6); + DEFSYMBOL (Qmouse_7); + DEFSYMBOL (Qdown_mouse_1); + DEFSYMBOL (Qdown_mouse_2); + DEFSYMBOL (Qdown_mouse_3); + DEFSYMBOL (Qdown_mouse_4); + DEFSYMBOL (Qdown_mouse_5); + DEFSYMBOL (Qdown_mouse_6); + DEFSYMBOL (Qdown_mouse_7); + DEFSYMBOL (Qmenu_selection); + DEFSYMBOL (QLFD); + DEFSYMBOL (QTAB); + DEFSYMBOL (QRET); + DEFSYMBOL (QESC); + DEFSYMBOL (QDEL); + DEFSYMBOL (QSPC); + DEFSYMBOL (QBS); } void diff --text -u 'xemacs-21.5.0/src/lisp.h' 'xemacs-21.5.1/src/lisp.h' Index: ./src/lisp.h --- ./src/lisp.h Fri Apr 13 03:23:59 2001 +++ ./src/lisp.h Sat May 5 19:54:31 2001 @@ -2859,6 +2859,8 @@ Bytecount, int, Error_behavior, int); Bytecount fast_lisp_string_match (Lisp_Object, Lisp_Object); void restore_match_data (void); +extern Fixnum warn_about_possibly_incompatible_back_references; + /* Defined in signal.c */ void init_interrupts_late (void); @@ -2876,7 +2878,7 @@ Error_behavior, int, Lisp_Object); /* Defined in symbols.c */ -int hash_string (const Bufbyte *, Bytecount); +unsigned int hash_string (const Bufbyte *, Bytecount); Lisp_Object intern (const char *); Lisp_Object oblookup (Lisp_Object, const Bufbyte *, Bytecount); void map_obarray (Lisp_Object, int (*) (Lisp_Object, void *), void *); diff --text -u 'xemacs-21.5.0/src/mule-charset.c' 'xemacs-21.5.1/src/mule-charset.c' Index: ./src/mule-charset.c --- ./src/mule-charset.c Fri Apr 13 03:24:03 2001 +++ ./src/mule-charset.c Tue May 8 17:08:49 2001 @@ -693,7 +693,7 @@ short_name = value; } - if (EQ (keyword, Qlong_name)) + else if (EQ (keyword, Qlong_name)) { CHECK_STRING (value); long_name = value; @@ -1020,6 +1020,7 @@ if (setup_ccl_program (&test_ccl, ccl_program) < 0) signal_simple_error ("Invalid ccl-program", ccl_program); XCHARSET_CCL_PROGRAM (charset) = ccl_program; + face_property_was_changed (Vdefault_face, Qfont, Qglobal); return Qnil; } diff --text -u 'xemacs-21.5.0/src/process-unix.c' 'xemacs-21.5.1/src/process-unix.c' Index: ./src/process-unix.c --- ./src/process-unix.c Fri Apr 13 03:24:11 2001 +++ ./src/process-unix.c Sat May 5 19:54:33 2001 @@ -65,6 +65,11 @@ #include /* See grantpt fixups for HPUX below. */ #endif +#if defined (HAVE_GETADDRINFO) && defined (HAVE_GETNAMEINFO) +#define USE_GETADDRINFO +#endif + + /* * Implementation-specific data. Pointed to by Lisp_Process->process_data */ @@ -435,7 +440,7 @@ #ifdef HAVE_SOCKETS -#if !(defined(HAVE_GETADDRINFO) && defined(HAVE_GETNAMEINFO)) +#ifndef USE_GETADDRINFO static int get_internet_address (Lisp_Object host, struct sockaddr_in *address, Error_behavior errb) @@ -468,7 +473,8 @@ if (host_info_ptr) { address->sin_family = host_info_ptr->h_addrtype; - memcpy (&address->sin_addr, host_info_ptr->h_addr, host_info_ptr->h_length); + memcpy (&address->sin_addr, host_info_ptr->h_addr, + host_info_ptr->h_length); } else { @@ -491,7 +497,7 @@ return 1; } -#endif /* !(HAVE_GETADDRINFO && HAVE_GETNAMEINFO) */ +#endif /* !USE_GETADDRINFO */ static void set_socket_nonblocking_maybe (int fd, int port, const char* proto) @@ -1578,7 +1584,7 @@ static Lisp_Object unix_canonicalize_host_name (Lisp_Object host) { -#if defined(HAVE_GETADDRINFO) && defined(HAVE_GETNAMEINFO) +#ifdef USE_GETADDRINFO struct addrinfo hints, *res; static char addrbuf[NI_MAXHOST]; Lisp_Object canonname; @@ -1612,7 +1618,7 @@ } return canonname; -#else /* ! HAVE_GETADDRINFO */ +#else /* ! USE_GETADDRINFO */ struct sockaddr_in address; if (!get_internet_address (host, &address, ERROR_ME_NOT)) @@ -1623,7 +1629,7 @@ else /* #### any clue what to do here? */ return host; -#endif /* ! HAVE_GETADDRINFO */ +#endif /* ! USE_GETADDRINFO */ } /* Open a TCP network connection to a given HOST/SERVICE. @@ -1633,14 +1639,17 @@ do is deactivate and close it via delete-process. */ static void -unix_open_network_stream (Lisp_Object name, Lisp_Object host, Lisp_Object service, - Lisp_Object protocol, void** vinfd, void** voutfd) +unix_open_network_stream (Lisp_Object name, Lisp_Object host, + Lisp_Object service, Lisp_Object protocol, + void **vinfd, void **voutfd) { int inch; int outch; - volatile int s; + volatile int s = -1; volatile int port; volatile int retry = 0; + volatile int xerrno = 0; + volatile int failed_connect = 0; int retval; CHECK_STRING (host); @@ -1649,12 +1658,11 @@ invalid_argument ("Unsupported protocol", protocol); { -#if defined(HAVE_GETADDRINFO) && defined(HAVE_GETNAMEINFO) +#ifdef USE_GETADDRINFO + struct addrinfo hints, *res; struct addrinfo * volatile lres; char *portstring; - volatile int xerrno = 0; - volatile int failed_connect = 0; char *ext_host; /* * Caution: service can either be a string or int. @@ -1694,34 +1702,66 @@ /* address loop */ for (lres = res; lres ; lres = lres->ai_next) + +#else /* !USE_GETADDRINFO */ + + struct sockaddr_in address; + volatile int i; + + if (INTP (service)) + port = htons ((unsigned short) XINT (service)); + else { + struct servent *svc_info; + CHECK_STRING (service); + if (EQ (protocol, Qtcp)) - s = socket (lres->ai_family, SOCK_STREAM, 0); + svc_info = getservbyname ((char *) XSTRING_DATA (service), "tcp"); else /* EQ (protocol, Qudp) */ - s = socket (lres->ai_family, SOCK_DGRAM, 0); + svc_info = getservbyname ((char *) XSTRING_DATA (service), "udp"); - if (s < 0) - continue; + if (svc_info == 0) + invalid_argument ("Unknown service", service); + port = svc_info->s_port; + } - /* Turn off interrupts here -- see comments below. There used to - be code which called bind_polling_period() to slow the polling - period down rather than turn it off, but that seems rather - bogus to me. Best thing here is to use a non-blocking connect - or something, to check for QUIT. */ - - /* Comments that are not quite valid: */ - - /* Kernel bugs (on Ultrix at least) cause lossage (not just EINTR) - when connect is interrupted. So let's not let it get interrupted. - Note we do not turn off polling, because polling is only used - when not interrupt_input, and thus not normally used on the systems - which have this bug. On systems which use polling, there's no way - to quit if polling is turned off. */ + get_internet_address (host, &address, ERROR_ME); + address.sin_port = port; - /* Slow down polling. Some kernels have a bug which causes retrying - connect to fail after a connect. */ + /* use a trivial address loop */ + for (i = 0; i < 1; i++) +#endif /* !USE_GETADDRINFO */ + { +#ifdef USE_GETADDRINFO + int family = lres->ai_family; +#else + int family = address.sin_family; +#endif + + if (EQ (protocol, Qtcp)) + s = socket (family, SOCK_STREAM, 0); + else /* EQ (protocol, Qudp) */ + s = socket (family, SOCK_DGRAM, 0); + + if (s < 0) + { + xerrno = errno; + failed_connect = 0; + continue; + } + +#ifdef CONNECT_NEEDS_SLOWED_INTERRUPTS + /* Slow down polling. Some kernels have a bug which causes retrying + connect to fail after a connect. (Note that the entire purpose + for this code is a very old comment concerning an Ultrix bug that + requires this code. We used to do this ALWAYS despite this! + This messes up C-g out of connect() in a big way. So instead we + just assume that anyone who sees such a kernel bug will define + this constant, which for now is only defined under Ultrix.) --ben + */ slow_down_interrupts (); +#endif loop: @@ -1730,46 +1770,63 @@ SETJMP (break_system_call_jump); if (QUITP) { +#ifdef CONNECT_NEEDS_SLOWED_INTERRUPTS speed_up_interrupts (); +#endif REALLY_QUIT; /* In case something really weird happens ... */ +#ifdef CONNECT_NEEDS_SLOWED_INTERRUPTS slow_down_interrupts (); +#endif } /* Break out of connect with a signal (it isn't otherwise possible). Thus you don't get screwed with a hung network. */ can_break_system_calls = 1; + +#ifdef USE_GETADDRINFO retval = connect (s, lres->ai_addr, lres->ai_addrlen); +#else + retval = connect (s, (struct sockaddr *) &address, sizeof (address)); +#endif can_break_system_calls = 0; - if (retval == -1) + if (retval == -1 && errno != EISCONN) { xerrno = errno; - if (errno != EISCONN) + if (errno == EINTR) + goto loop; + if (errno == EADDRINUSE && retry < 20) { - if (errno == EINTR) - goto loop; - if (errno == EADDRINUSE && retry < 20) - { - /* A delay here is needed on some FreeBSD systems, - and it is harmless, since this retrying takes time anyway - and should be infrequent. - `sleep-for' allowed for quitting this loop with interrupts - slowed down so it can't be used here. Async timers should - already be disabled at this point so we can use `sleep'. */ - sleep (1); - retry++; - goto loop; - } +#ifdef __FreeBSD__ + /* A delay here is needed on some FreeBSD systems, + and it is harmless, since this retrying takes + time anyway and should be infrequent. + `sleep-for' allowed for quitting this loop with + interrupts slowed down so it can't be used + here. Async timers should already be disabled + at this point so we can use `sleep'. + + (Again, this was not conditionalized on FreeBSD. + Let's not mess up systems without the problem. --ben) + */ + sleep (1); +#endif + retry++; + goto loop; } failed_connect = 1; close (s); + s = -1; +#ifdef CONNECT_NEEDS_SLOWED_INTERRUPTS speed_up_interrupts (); +#endif continue; } +#ifdef USE_GETADDRINFO if (port == 0) { int gni; @@ -1789,11 +1846,17 @@ } break; +#endif /* USE_GETADDRINFO */ } /* address loop */ +#ifdef CONNECT_NEEDS_SLOWED_INTERRUPTS speed_up_interrupts (); +#endif +#ifdef USE_GETADDRINFO freeaddrinfo (res); +#endif + if (s < 0) { errno = xerrno; @@ -1803,103 +1866,6 @@ else report_file_error ("error creating socket", list1 (name)); } -#else /* ! HAVE_GETADDRINFO */ - struct sockaddr_in address; - - if (INTP (service)) - port = htons ((unsigned short) XINT (service)); - else - { - struct servent *svc_info; - CHECK_STRING (service); - - if (EQ (protocol, Qtcp)) - svc_info = getservbyname ((char *) XSTRING_DATA (service), "tcp"); - else /* EQ (protocol, Qudp) */ - svc_info = getservbyname ((char *) XSTRING_DATA (service), "udp"); - - if (svc_info == 0) - invalid_argument ("Unknown service", service); - port = svc_info->s_port; - } - - get_internet_address (host, &address, ERROR_ME); - address.sin_port = port; - - if (EQ (protocol, Qtcp)) - s = socket (address.sin_family, SOCK_STREAM, 0); - else /* EQ (protocol, Qudp) */ - s = socket (address.sin_family, SOCK_DGRAM, 0); - - if (s < 0) - report_file_error ("error creating socket", list1 (name)); - - /* Turn off interrupts here -- see comments below. There used to - be code which called bind_polling_period() to slow the polling - period down rather than turn it off, but that seems rather - bogus to me. Best thing here is to use a non-blocking connect - or something, to check for QUIT. */ - - /* Comments that are not quite valid: */ - - /* Kernel bugs (on Ultrix at least) cause lossage (not just EINTR) - when connect is interrupted. So let's not let it get interrupted. - Note we do not turn off polling, because polling is only used - when not interrupt_input, and thus not normally used on the systems - which have this bug. On systems which use polling, there's no way - to quit if polling is turned off. */ - - /* Slow down polling. Some kernels have a bug which causes retrying - connect to fail after a connect. */ - - slow_down_interrupts (); - - loop: - - /* A system call interrupted with a SIGALRM or SIGIO comes back - here, with can_break_system_calls reset to 0. */ - SETJMP (break_system_call_jump); - if (QUITP) - { - speed_up_interrupts (); - REALLY_QUIT; - /* In case something really weird happens ... */ - slow_down_interrupts (); - } - - /* Break out of connect with a signal (it isn't otherwise possible). - Thus you don't get screwed with a hung network. */ - can_break_system_calls = 1; - retval = connect (s, (struct sockaddr *) &address, sizeof (address)); - can_break_system_calls = 0; - if (retval == -1 && errno != EISCONN) - { - int xerrno = errno; - if (errno == EINTR) - goto loop; - if (errno == EADDRINUSE && retry < 20) - { - /* A delay here is needed on some FreeBSD systems, - and it is harmless, since this retrying takes time anyway - and should be infrequent. - `sleep-for' allowed for quitting this loop with interrupts - slowed down so it can't be used here. Async timers should - already be disabled at this point so we can use `sleep'. */ - sleep (1); - retry++; - goto loop; - } - - close (s); - - speed_up_interrupts (); - - errno = xerrno; - report_file_error ("connection failed", list2 (host, name)); - } - - speed_up_interrupts (); -#endif /* ! HAVE_GETADDRINFO */ } inch = s; @@ -1912,8 +1878,8 @@ set_socket_nonblocking_maybe (inch, port, "tcp"); - *vinfd = (void*)inch; - *voutfd = (void*)outch; + *vinfd = (void *) inch; + *voutfd = (void *) outch; } @@ -2014,7 +1980,9 @@ instead of 'sendto'. Consequently, we 'connect' this socket. */ /* See open-network-stream-internal for comments on this part of the code */ +#ifdef CONNECT_NEEDS_SLOWED_INTERRUPTS slow_down_interrupts (); +#endif loop: @@ -2023,10 +1991,14 @@ SETJMP (break_system_call_jump); if (QUITP) { +#ifdef CONNECT_NEEDS_SLOWED_INTERRUPTS speed_up_interrupts (); +#endif REALLY_QUIT; /* In case something really weird happens ... */ +#ifdef CONNECT_NEEDS_SLOWED_INTERRUPTS slow_down_interrupts (); +#endif } /* Break out of connect with a signal (it isn't otherwise possible). @@ -2055,13 +2027,17 @@ close (rs); close (ws); +#ifdef CONNECT_NEEDS_SLOWED_INTERRUPTS speed_up_interrupts (); +#endif errno = xerrno; report_file_error ("error connecting socket", list2(name, port)); } +#ifdef CONNECT_NEEDS_SLOWED_INTERRUPTS speed_up_interrupts (); +#endif /* scope */ if (setsockopt (ws, IPPROTO_IP, IP_MULTICAST_TTL, diff --text -u 'xemacs-21.5.0/src/process.c' 'xemacs-21.5.1/src/process.c' Index: ./src/process.c --- ./src/process.c Fri Apr 13 03:24:11 2001 +++ ./src/process.c Sat May 5 19:54:35 2001 @@ -568,13 +568,18 @@ CHECK_STRING (program); /* Make sure that the child will be able to chdir to the current - buffer's current directory, or its unhandled equivalent. We + buffer's current directory, or its unhandled equivalent. [[ We can't just have the child check for an error when it does the - chdir, since it's in a vfork. + chdir, since it's in a vfork. ]] -- not any more, we don't use + vfork. -ben - Note: these assignments and calls are like this in order to insure - "caller protects args" GC semantics. */ + Note: These calls are spread out to insure that the return values + of the calls (which may be newly-created strings) are properly + GC-protected. */ current_dir = current_buffer->directory; + /* If the current dir has no terminating slash, we'll get undesirable + results, so put the slash back. */ + current_dir = Ffile_name_as_directory (current_dir); current_dir = Funhandled_file_name_directory (current_dir); current_dir = expand_and_dir_to_file (current_dir, Qnil); @@ -884,7 +889,6 @@ Bufpos old_point; Bufpos old_begv; Bufpos old_zv; - int old_zmacs_region_stays = zmacs_region_stays; struct gcpro gcpro1, gcpro2; struct buffer *buf = XBUFFER (p->buffer); @@ -952,8 +956,6 @@ p->buffer); } - /* Handling the process output should not deactivate the mark. */ - zmacs_region_stays = old_zmacs_region_stays; buf->read_only = old_read_only; old_point = bufpos_clip_to_bounds (BUF_BEGV (buf), old_point, diff --text -u 'xemacs-21.5.0/src/regex.c' 'xemacs-21.5.1/src/regex.c' Index: ./src/regex.c --- ./src/regex.c Fri Apr 13 03:24:15 2001 +++ ./src/regex.c Sat May 5 19:54:40 2001 @@ -415,7 +415,7 @@ /* Start remembering the text that is matched, for storing in a register. Followed by one byte with the register number, in - the range 0 to one less than the pattern buffer's re_nsub + the range 1 to the pattern buffer's re_ngroups field. Then followed by one byte with the number of groups inner to this one. (This last has to be part of the start_memory only because we need it in the on_failure_jump @@ -424,7 +424,7 @@ /* Stop remembering the text that is matched and store it in a memory register. Followed by one byte with the register - number, in the range 0 to one less than `re_nsub' in the + number, in the range 1 to `re_ngroups' in the pattern buffer, and one byte with the number of inner groups, just like `start_memory'. (We need the number of inner groups here because we don't have any easy way of finding the @@ -971,6 +971,7 @@ } printf ("re_nsub: %ld\t", (long)bufp->re_nsub); + printf ("re_ngroups: %ld\t", (long)bufp->re_ngroups); printf ("regs_alloc: %d\t", bufp->regs_allocated); printf ("can_be_null: %d\t", bufp->can_be_null); printf ("newline_anchor: %d\n", bufp->newline_anchor); @@ -980,6 +981,20 @@ printf ("syntax: %d\n", bufp->syntax); /* Perhaps we should print the translate table? */ /* and maybe the category table? */ + + if (bufp->external_to_internal_register) + { + int i; + + printf ("external_to_internal_register:\n"); + for (i = 0; i <= bufp->re_nsub; i++) + { + if (i > 0) + printf (", "); + printf ("%d -> %d", i, bufp->external_to_internal_register[i]); + } + printf ("\n"); + } } @@ -1694,9 +1709,13 @@ #define MAX_REGNUM 255 /* But patterns can have more than `MAX_REGNUM' registers. We just - ignore the excess. */ + ignore the excess. + #### not true! groups past this will fail in lots of ways, if we + ever have to backtrack. + */ typedef unsigned regnum_t; +#define INIT_REG_TRANSLATE_SIZE 5 /* Macros for the compile stack. */ @@ -1880,7 +1899,9 @@ `syntax' is set to SYNTAX; `used' is set to the length of the compiled pattern; `fastmap_accurate' is zero; - `re_nsub' is the number of subexpressions in PATTERN; + `re_ngroups' is the number of groups/subexpressions (including shy + groups) in PATTERN; + `re_nsub' is the number of non-shy groups in PATTERN; `not_bol' and `not_eol' are zero; The `fastmap' and `newline_anchor' fields are neither @@ -1978,6 +1999,25 @@ /* Always count groups, whether or not bufp->no_sub is set. */ bufp->re_nsub = 0; + bufp->re_ngroups = 0; + + bufp->warned_about_incompatible_back_references = 0; + + if (bufp->external_to_internal_register == 0) + { + bufp->external_to_internal_register_size = INIT_REG_TRANSLATE_SIZE; + RETALLOC (bufp->external_to_internal_register, + bufp->external_to_internal_register_size, + int); + } + + { + int i; + + bufp->external_to_internal_register[0] = 0; + for (i = 1; i < bufp->external_to_internal_register_size; i++) + bufp->external_to_internal_register[i] = (int) 0xDEADBEEF; + } #if !defined (emacs) && !defined (SYNTAX_TABLE) /* Initialize the syntax table. */ @@ -2560,6 +2600,7 @@ handle_open: { regnum_t r; + int shy = 0; if (!(syntax & RE_NO_SHY_GROUPS) && p != pend @@ -2570,7 +2611,7 @@ switch (c) { case ':': /* shy groups */ - r = MAX_REGNUM + 1; + shy = 1; break; /* All others are reserved for future constructs. */ @@ -2578,11 +2619,32 @@ FREE_STACK_RETURN (REG_BADPAT); } } - else - { - bufp->re_nsub++; - r = ++regnum; - } + + r = ++regnum; + bufp->re_ngroups++; + if (!shy) + { + bufp->re_nsub++; + while (bufp->external_to_internal_register_size <= + bufp->re_nsub) + { + int i; + int old_size = + bufp->external_to_internal_register_size; + bufp->external_to_internal_register_size += 5; + RETALLOC (bufp->external_to_internal_register, + bufp->external_to_internal_register_size, + int); + /* debugging */ + for (i = old_size; + i < bufp->external_to_internal_register_size; i++) + bufp->external_to_internal_register[i] = + (int) 0xDEADBEEF; + } + + bufp->external_to_internal_register[bufp->re_nsub] = + bufp->re_ngroups; + } if (COMPILE_STACK_FULL) { @@ -2606,7 +2668,10 @@ /* We will eventually replace the 0 with the number of groups inner to this one. But do not push a start_memory for groups beyond the last one we can - represent in the compiled pattern. */ + represent in the compiled pattern. + #### bad bad bad. this will fail in lots of ways, if we + ever have to backtrack for these groups. + */ if (r <= MAX_REGNUM) { COMPILE_STACK_TOP.inner_group_offset @@ -2996,21 +3061,59 @@ case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': { - regnum_t reg; + regnum_t reg, regint; + int may_need_to_unfetch = 0; if (syntax & RE_NO_BK_REFS) goto normal_char; + /* This only goes up to 99. It could be extended to work + up to 255 (the maximum number of registers that can be + handled by the current regexp engine, because it stores + its register numbers in the compiled pattern as one byte, + ugh). Doing that's a bit trickier, because you might + have the case where \25 a back-ref but \255 is not, ... */ reg = c - '0'; - - if (reg > regnum) + if (p < pend) + { + PATFETCH (c); + if (c >= '0' && c <= '9') + { + regnum_t new_reg = reg * 10 + c - '0'; + if (new_reg <= bufp->re_nsub) + { + reg = new_reg; + may_need_to_unfetch = 1; + } + else + PATUNFETCH; + } + } + + if (reg > bufp->re_nsub) FREE_STACK_RETURN (REG_ESUBREG); + regint = bufp->external_to_internal_register[reg]; /* Can't back reference to a subexpression if inside of it. */ - if (group_in_compile_stack (compile_stack, reg)) - goto normal_char; + if (group_in_compile_stack (compile_stack, regint)) + { + if (may_need_to_unfetch) + PATUNFETCH; + goto normal_char; + } + +#ifdef emacs + if (reg > 9 && + bufp->warned_about_incompatible_back_references == 0) + { + bufp->warned_about_incompatible_back_references = 1; + warn_when_safe (intern ("regex"), Qinfo, + "Back reference \\%d now has new " + "semantics in %s", reg, pattern); + } +#endif laststart = buf_end; - BUF_PUSH_2 (duplicate, reg); + BUF_PUSH_2 (duplicate, regint); } break; @@ -3125,7 +3228,7 @@ isn't necessary unless we're trying to avoid calling alloca in the search and match routines. */ { - int num_regs = bufp->re_nsub + 1; + int num_regs = bufp->re_ngroups + 1; /* Since DOUBLE_FAIL_STACK refuses to double only if the current size is strictly greater than re_max_failures, the largest possible stack @@ -4386,7 +4489,7 @@ /* We fill all the registers internally, independent of what we return, for use in backreferences. The number here includes an element for register zero. */ - unsigned num_regs = bufp->re_nsub + 1; + unsigned num_regs = bufp->re_ngroups + 1; /* The currently active registers. */ unsigned lowest_active_reg = NO_LOWEST_ACTIVE_REG; @@ -4472,7 +4575,7 @@ there are groups, we include space for register 0 (the whole pattern), even though we never use it, since it simplifies the array indexing. We should fix this. */ - if (bufp->re_nsub) + if (bufp->re_ngroups) { regstart = REGEX_TALLOC (num_regs, re_char *); regend = REGEX_TALLOC (num_regs, re_char *); @@ -4650,12 +4753,13 @@ /* If caller wants register contents data back, do it. */ if (regs && !bufp->no_sub) { + int num_nonshy_regs = bufp->re_nsub + 1; /* Have the register data arrays been allocated? */ if (bufp->regs_allocated == REGS_UNALLOCATED) { /* No. So allocate them with malloc. We need one extra element beyond `num_regs' for the `-1' marker GNU code uses. */ - regs->num_regs = MAX (RE_NREGS, num_regs + 1); + regs->num_regs = MAX (RE_NREGS, num_nonshy_regs + 1); regs->start = TALLOC (regs->num_regs, regoff_t); regs->end = TALLOC (regs->num_regs, regoff_t); if (regs->start == NULL || regs->end == NULL) @@ -4669,9 +4773,9 @@ { /* Yes. If we need more elements than were already allocated, reallocate them. If we need fewer, just leave it alone. */ - if (regs->num_regs < num_regs + 1) + if (regs->num_regs < num_nonshy_regs + 1) { - regs->num_regs = num_regs + 1; + regs->num_regs = num_nonshy_regs + 1; RETALLOC (regs->start, regs->num_regs, regoff_t); RETALLOC (regs->end, regs->num_regs, regoff_t); if (regs->start == NULL || regs->end == NULL) @@ -4701,16 +4805,19 @@ /* Go through the first `min (num_regs, regs->num_regs)' registers, since that is all we initialized. */ - for (mcnt = 1; mcnt < MIN (num_regs, regs->num_regs); mcnt++) + for (mcnt = 1; mcnt < MIN (num_nonshy_regs, regs->num_regs); + mcnt++) { - if (REG_UNSET (regstart[mcnt]) || REG_UNSET (regend[mcnt])) + int internal_reg = bufp->external_to_internal_register[mcnt]; + if (REG_UNSET (regstart[internal_reg]) || + REG_UNSET (regend[internal_reg])) regs->start[mcnt] = regs->end[mcnt] = -1; else { - regs->start[mcnt] - = (regoff_t) POINTER_TO_OFFSET (regstart[mcnt]); - regs->end[mcnt] - = (regoff_t) POINTER_TO_OFFSET (regend[mcnt]); + regs->start[mcnt] = + (regoff_t) POINTER_TO_OFFSET (regstart[internal_reg]); + regs->end[mcnt] = + (regoff_t) POINTER_TO_OFFSET (regend[internal_reg]); } } @@ -4719,7 +4826,7 @@ we (re)allocated the registers, this is the case, because we always allocate enough to have at least one -1 at the end. */ - for (mcnt = num_regs; mcnt < regs->num_regs; mcnt++) + for (mcnt = num_nonshy_regs; mcnt < regs->num_regs; mcnt++) regs->start[mcnt] = regs->end[mcnt] = -1; } /* regs && !bufp->no_sub */ @@ -5065,11 +5172,15 @@ /* \ has been turned into a `duplicate' command which is - followed by the numeric value of as the register number. */ + followed by the numeric value of as the register number. + (Already passed through external-to-internal-register mapping, + so it refers to the actual group number, not the non-shy-only + numbering used in the external world.) */ case duplicate: { REGISTER re_char *d2, *dend2; - int regno = *p++; /* Get which register to match against. */ + /* Get which register to match against. */ + int regno = *p++; DEBUG_PRINT2 ("EXECUTING duplicate %d.\n", regno); /* Can't back reference a group which we've never matched. */ @@ -6222,6 +6333,8 @@ `newline_anchor' to REG_NEWLINE being set in CFLAGS; `fastmap' and `fastmap_accurate' to zero; `re_nsub' to the number of subexpressions in PATTERN. + (non-shy of course. POSIX probably doesn't know about + shy ones, and in any case they should be invisible.) PATTERN is the address of the pattern string. diff --text -u 'xemacs-21.5.0/src/regex.h' 'xemacs-21.5.1/src/regex.h' Index: ./src/regex.h --- ./src/regex.h Fri Apr 13 03:24:16 2001 +++ ./src/regex.h Sat May 5 19:54:41 2001 @@ -153,6 +153,12 @@ If not set, then an unmatched ) is invalid. */ #define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_SHY_GROUPS << 1) +/* If this bit is set, then \22 will read as a back reference, + provided at least 22 non-shy groups have been seen so far. In all + other cases (bit not set, not 22 non-shy groups seen so far), it + reads as a back reference \2 followed by a digit 2. */ +#define RE_NO_MULTI_DIGIT_BK_REFS (RE_UNMATCHED_RIGHT_PAREN_ORD << 1) + /* This global variable defines the particular regexp syntax to use (for some interfaces). When a regexp is compiled, the syntax used is stored in the pattern buffer, so changing this does not affect @@ -170,7 +176,7 @@ | RE_NO_BK_PARENS | RE_NO_BK_REFS \ | RE_NO_BK_VBAR | RE_NO_EMPTY_RANGES \ | RE_UNMATCHED_RIGHT_PAREN_ORD | RE_NO_SHY_GROUPS \ - | RE_NO_MINIMAL_MATCHING) + | RE_NO_MINIMAL_MATCHING | RE_NO_MULTI_DIGIT_BK_REFS) #define RE_SYNTAX_POSIX_AWK \ (RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS) @@ -179,17 +185,18 @@ (RE_BK_PLUS_QM | RE_CHAR_CLASSES \ | RE_HAT_LISTS_NOT_NEWLINE | RE_INTERVALS \ | RE_NEWLINE_ALT | RE_NO_SHY_GROUPS \ - | RE_NO_MINIMAL_MATCHING) + | RE_NO_MINIMAL_MATCHING | RE_NO_MULTI_DIGIT_BK_REFS) #define RE_SYNTAX_EGREP \ (RE_CHAR_CLASSES | RE_CONTEXT_INDEP_ANCHORS \ | RE_CONTEXT_INDEP_OPS | RE_HAT_LISTS_NOT_NEWLINE \ | RE_NEWLINE_ALT | RE_NO_BK_PARENS \ | RE_NO_BK_VBAR | RE_NO_SHY_GROUPS \ - | RE_NO_MINIMAL_MATCHING) + | RE_NO_MINIMAL_MATCHING | RE_NO_MULTI_DIGIT_BK_REFS) #define RE_SYNTAX_POSIX_EGREP \ - (RE_SYNTAX_EGREP | RE_INTERVALS | RE_NO_BK_BRACES) + (RE_SYNTAX_EGREP | RE_INTERVALS | RE_NO_BK_BRACES | \ + RE_NO_MULTI_DIGIT_BK_REFS) /* P1003.2/D11.2, section 4.20.7.1, lines 5078ff. */ #define RE_SYNTAX_ED RE_SYNTAX_POSIX_BASIC @@ -200,7 +207,7 @@ #define _RE_SYNTAX_POSIX_COMMON \ (RE_CHAR_CLASSES | RE_DOT_NEWLINE | RE_DOT_NOT_NULL \ | RE_INTERVALS | RE_NO_EMPTY_RANGES | RE_NO_SHY_GROUPS \ - | RE_NO_MINIMAL_MATCHING) + | RE_NO_MINIMAL_MATCHING | RE_NO_MULTI_DIGIT_BK_REFS) #define RE_SYNTAX_POSIX_BASIC \ (_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM) @@ -337,9 +344,14 @@ when it is matched. */ RE_TRANSLATE_TYPE translate; - /* Number of subexpressions found by the compiler. */ + /* Number of returnable groups found by the compiler. (This does + not count shy groups.) */ size_t re_nsub; + /* Total number of groups found by the compiler. (Including + shy ones.) */ + int re_ngroups; + /* Zero if this pattern cannot match the empty string, one else. Well, in truth it's used only in `re_search_2', to see whether or not we should use the fastmap, so we don't set @@ -373,6 +385,14 @@ /* If true, an anchor at a newline matches. */ unsigned newline_anchor : 1; + + unsigned warned_about_incompatible_back_references : 1; + + /* Mapping between back references and groups (may not be + equivalent with shy groups). */ + int *external_to_internal_register; + + int external_to_internal_register_size; /* [[[end pattern_buffer]]] */ }; diff --text -u 'xemacs-21.5.0/src/s/aix4.h' 'xemacs-21.5.1/src/s/aix4.h' Index: ./src/s/aix4.h --- ./src/s/aix4.h Fri Apr 13 03:24:42 2001 +++ ./src/s/aix4.h Sat May 5 19:54:46 2001 @@ -17,14 +17,19 @@ #ifdef __xlC__ /* "eXceLlent C compiler" ?! */ #if __xlC__ >= 1200 -/* IBM's C compiler miscompiles bytecount_to_charcount at high levels - of optimization. From IBM's docs: +/* IBM's C compiler option `-O3' is too aggressive. + We recommend instead the combination `-O3 -qstrict', which seems safe. - -qstrict turns off the following optimizations: + cc -O3 miscompiles at least two functions. From IBM's docs: - Performing code motion and scheduling on computations such as loads - and floating-point computations that may trigger an exception. */ + IBM> -qstrict turns off the following optimizations: + + IBM> Performing code motion and scheduling on computations such as loads + IBM> and floating-point computations that may trigger an exception. + + Nevertheless, we try to work with these compiler options. */ #pragma option_override (bytecount_to_charcount, "opt(strict,yes)") +#pragma option_override (Fexpand_file_name, "opt(strict,yes)") #endif /* recent IBM C compiler */ #endif /* IBM's C compiler */ diff --text -u 'xemacs-21.5.0/src/s/bsd386.h' 'xemacs-21.5.1/src/s/bsd386.h' Index: ./src/s/bsd386.h --- ./src/s/bsd386.h Fri Apr 13 03:24:42 2001 +++ ./src/s/bsd386.h Tue May 8 17:08:49 2001 @@ -17,13 +17,8 @@ #define LIBS_DEBUG #define LIBS_SYSTEM "-lutil -lcompat" -/* System uses OXTABS instead of the expected TAB3. - (Copied from netbsd.h.) */ -#define TABDLY OXTABS -#define TAB3 OXTABS - /* This silences a few compilation warnings. */ -#ifdef emacs +#ifndef NOT_C_CODE #undef BSD #include /* To get BSD defined consistently. */ #endif diff --text -u 'xemacs-21.5.0/src/s/bsdos4.h' 'xemacs-21.5.1/src/s/bsdos4.h' Index: ./src/s/bsdos4.h --- ./src/s/bsdos4.h Tue Feb 16 23:17:20 1999 +++ ./src/s/bsdos4.h Tue May 8 17:08:49 2001 @@ -8,3 +8,10 @@ #define UNEXEC unexelf.o #endif /* ELF */ + +/* The declaration for openpty is missing. Where is libutil.h? */ +#ifndef NOT_C_CODE +struct termios; +struct winsize; +int openpty (int *, int *, char *, struct termios *, struct winsize *); +#endif diff --text -u 'xemacs-21.5.0/src/s/freebsd.h' 'xemacs-21.5.1/src/s/freebsd.h' Index: ./src/s/freebsd.h --- ./src/s/freebsd.h Fri Apr 13 03:24:42 2001 +++ ./src/s/freebsd.h Mon May 7 16:52:21 2001 @@ -100,10 +100,6 @@ /* #define NO_TERMIO */ /* detected in configure */ #define DECLARE_GETPWUID_WITH_UID_T -/* freebsd uses OXTABS instead of the expected TAB3. */ -#define TABDLY OXTABS -#define TAB3 OXTABS - /* Needed to avoid hanging when child process writes an error message and exits -- enami tsugutomo . */ #define vfork fork diff --text -u 'xemacs-21.5.0/src/s/gnu.h' 'xemacs-21.5.1/src/s/gnu.h' Index: ./src/s/gnu.h --- ./src/s/gnu.h Fri Apr 13 03:24:42 2001 +++ ./src/s/gnu.h Mon May 7 16:52:21 2001 @@ -31,10 +31,6 @@ #define LIBS_DEBUG -/* XXX emacs should not expect TAB3 to be defined. */ -#define TABDLY OXTABS -#define TAB3 OXTABS - /* GNU needs its own crt0, and libc defines data_start. */ #define ORDINARY_LINK #define DATA_START ({ extern int data_start; (char *) &data_start; }) diff --text -u 'xemacs-21.5.0/src/s/netbsd.h' 'xemacs-21.5.1/src/s/netbsd.h' Index: ./src/s/netbsd.h --- ./src/s/netbsd.h Fri Apr 13 03:24:44 2001 +++ ./src/s/netbsd.h Mon May 7 16:52:21 2001 @@ -20,10 +20,6 @@ #define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_p - (FILE)->_bf._base) -/* netbsd uses OXTABS instead of the expected TAB3. */ -#define TABDLY OXTABS -#define TAB3 OXTABS - #define A_TEXT_OFFSET(x) (sizeof (struct exec)) #define A_TEXT_SEEK(hdr) (N_TXTOFF(hdr) + A_TEXT_OFFSET(hdr)) diff --text -u 'xemacs-21.5.0/src/s/nextstep.h' 'xemacs-21.5.1/src/s/nextstep.h' Index: ./src/s/nextstep.h --- ./src/s/nextstep.h Wed Apr 1 05:12:28 1998 +++ ./src/s/nextstep.h Mon May 7 16:52:21 2001 @@ -117,10 +117,8 @@ #undef NONSYSTEM_DIR_LIBRARY #define signal_handler_t int #define pid_t int -#undef BSD_TERMIOS #undef HAVE_TERMIOS #undef HAVE_TERMIO -#define TAB3 XTABS #define C_OPTIMIZE_SWITCH "-pipe" #undef HAVE_SETITIMER diff --text -u 'xemacs-21.5.0/src/s/ultrix.h' 'xemacs-21.5.1/src/s/ultrix.h' Index: ./src/s/ultrix.h --- ./src/s/ultrix.h Thu Dec 19 07:44:13 1996 +++ ./src/s/ultrix.h Sat May 5 19:54:46 2001 @@ -28,5 +28,15 @@ #undef SYSTEM_TYPE #define SYSTEM_TYPE "ultrix" +/* #### A very old comment in unix_open_network_stream() said this: + + Kernel bugs (on Ultrix at least) cause lossage (not just EINTR) + when connect is interrupted. So let's not let it get interrupted. + + Someone using Ultrix (anyone still out there?) should verify this. +*/ + +#define CONNECT_NEEDS_SLOWED_INTERRUPTS + /* We don't have a built-in strdup() function */ #define NEED_STRDUP diff --text -u 'xemacs-21.5.0/src/scrollbar-msw.c' 'xemacs-21.5.1/src/scrollbar-msw.c' Index: ./src/scrollbar-msw.c --- ./src/scrollbar-msw.c Fri Apr 13 03:24:17 2001 +++ ./src/scrollbar-msw.c Mon Apr 30 23:11:13 2001 @@ -296,7 +296,6 @@ Lisp_Object corpore, sano; struct window *needle_in_haystack; - // stderr_out ("donde_esta: %d %d\n", donde_esta.x, donde_esta.y); pixel_to_glyph_translation (XFRAME (frame), donde_esta.x, donde_esta.y, &mene, &_mene, &tekel, &upharsin, &needle_in_haystack, @@ -305,8 +304,6 @@ if (needle_in_haystack) { XSETWINDOW (win, needle_in_haystack); - // stderr_out ("found needle\n"); - // debug_print (win); } else { diff --text -u 'xemacs-21.5.0/src/search.c' 'xemacs-21.5.1/src/search.c' Index: ./src/search.c --- ./src/search.c Sat Apr 14 00:04:40 2001 +++ ./src/search.c Sat May 5 19:54:43 2001 @@ -104,6 +104,8 @@ /* Regular expressions used in forward/backward-word */ Lisp_Object Vforward_word_regexp, Vbackward_word_regexp; +Fixnum warn_about_possibly_incompatible_back_references; + /* range table for use with skip_chars. Only needed for Mule. */ Lisp_Object Vskip_chars_range_table; @@ -2269,7 +2271,7 @@ Lisp_Object buffer; int_dynarr *ul_action_dynarr = 0; int_dynarr *ul_pos_dynarr = 0; - int sub; + int sub = 0; int speccount; CHECK_STRING (replacement); @@ -3042,6 +3044,15 @@ #### Not yet implemented. */ ); Vbackward_word_regexp = Qnil; + + DEFVAR_INT ("warn-about-possibly-incompatible-back-references", + &warn_about_possibly_incompatible_back_references /* +If true, issue warnings when new-semantics back references occur. +This is to catch places where old code might inadvertently have changed +semantics. This will occur in old code only where more than nine groups +occur and a back reference to one of them is directly followed by a digit. +*/ ); + warn_about_possibly_incompatible_back_references = 1; } void diff --text -u 'xemacs-21.5.0/src/symbols.c' 'xemacs-21.5.1/src/symbols.c' Index: ./src/symbols.c --- ./src/symbols.c Fri Apr 13 03:24:20 2001 +++ ./src/symbols.c Mon Apr 30 23:11:16 2001 @@ -341,7 +341,7 @@ Lisp_Object oblookup (Lisp_Object obarray, const Bufbyte *ptr, Bytecount size) { - int hash, obsize; + unsigned int hash, obsize; Lisp_Symbol *tail; Lisp_Object bucket; @@ -374,40 +374,20 @@ return make_int (hash); } -#if 0 /* Emacs 19.34 */ -int +/* An excellent string hashing function. + Adapted from glib's g_str_hash(). + Investigation by Karl Nelson . + Do a web search for "g_str_hash X31_HASH" if you want to know more. */ +unsigned int hash_string (const Bufbyte *ptr, Bytecount len) { - const Bufbyte *p = ptr; - const Bufbyte *end = p + len; - Bufbyte c; - int hash = 0; - - while (p != end) - { - c = *p++; - if (c >= 0140) c -= 40; - hash = ((hash<<3) + (hash>>28) + c); - } - return hash & 07777777777; -} -#endif + unsigned int hash; -/* derived from hashpjw, Dragon Book P436. */ -int -hash_string (const Bufbyte *ptr, Bytecount len) -{ - int hash = 0; + for (hash = 0; len; len--, ptr++) + /* (31 * hash) will probably be optimized to ((hash << 5) - hash). */ + hash = 31 * hash + *ptr; - while (len-- > 0) - { - int g; - hash = (hash << 4) + *ptr++; - g = hash & 0xf0000000; - if (g) - hash = (hash ^ (g >> 24)) ^ g; - } - return hash & 07777777777; + return hash; } /* Map FN over OBARRAY. The mapping is stopped when FN returns a @@ -3250,7 +3230,7 @@ staticpro (&initial_obarray); /* Intern nil in the obarray */ { - int hash = hash_string (string_data (XSYMBOL (Qnil)->name), 3); + unsigned int hash = hash_string (string_data (XSYMBOL (Qnil)->name), 3); XVECTOR_DATA (Vobarray)[hash % OBARRAY_SIZE] = Qnil; } diff --text -u 'xemacs-21.5.0/src/sysdep.c' 'xemacs-21.5.1/src/sysdep.c' Index: ./src/sysdep.c --- ./src/sysdep.c Fri Apr 13 03:24:22 2001 +++ ./src/sysdep.c Mon May 7 16:52:19 2001 @@ -456,10 +456,38 @@ assert (isatty(out)); s.main.c_oflag |= OPOST; /* Enable output postprocessing */ s.main.c_oflag &= ~ONLCR; /* Disable map of NL to CR-NL on output */ + + { + /* Disable all output delays. */ + tcflag_t delay_mask = 0; #ifdef NLDLY - s.main.c_oflag &= ~(NLDLY|CRDLY|TABDLY|BSDLY|VTDLY|FFDLY); - /* No output delays */ + delay_mask |= NLDLY; +#endif +#ifdef CRDLY + delay_mask |= CRDLY; +#endif +#ifdef TABDLY + delay_mask |= TABDLY; /* Also disables tab expansion (Posix). */ +#endif +#ifdef BSDLY + delay_mask |= BSDLY; +#endif +#ifdef VTDLY + delay_mask |= VTDLY; +#endif +#ifdef FFDLY + delay_mask |= FFDLY; +#endif + s.main.c_oflag &= ~delay_mask; + } + +#ifdef OXTABS + /* Posix defines the TAB3 value for TABDLY to mean: expand tabs to spaces. + On those systems tab expansion would be disabled by the above code. + BSD systems use an independent flag, OXTABS. */ + s.main.c_oflag &= ~OXTABS; /* Disable tab expansion */ #endif + s.main.c_lflag &= ~ECHO; /* Disable echo */ s.main.c_lflag |= ISIG; /* Enable signals */ #ifdef IUCLC @@ -468,7 +496,7 @@ #ifdef OLCUC s.main.c_oflag &= ~OLCUC; /* Disable upcasing on output. */ #endif - s.main.c_oflag &= ~TAB3; /* Disable tab expansion */ + #if defined (CSIZE) && defined (CS8) s.main.c_cflag = (s.main.c_cflag & ~CSIZE) | CS8; /* Don't strip 8th bit */ #endif @@ -1063,12 +1091,38 @@ { int filedesc = DEVICE_INFD (d); -#if defined (I_SETSIG) && !defined(HPUX10) && !defined(LINUX) + /* NOTE: It appears that Linux has its own mechanism for requesting + SIGIO, using the F_GETSIG and F_SETSIG commands to fcntl(). + These let you pick which signal you want sent (not just SIGIO), + and if you do this, you get additional info which tells you which + file descriptor has input ready on it. The man page says: + + Using these mechanisms, a program can implement fully + asynchronous I/O without using select(2) or poll(2) most + of the time. + + The use of O_ASYNC, F_GETOWN, F_SETOWN is specific to BSD + and Linux. F_GETSIG and F_SETSIG are Linux-specific. + POSIX has asynchronous I/O and the aio_sigevent structure + to achieve similar things; these are also available in + Linux as part of the GNU C Library (Glibc). + + But it appears that Linux also supports O_ASYNC, so I see no + particular need to switch. --ben + */ + +#if defined (I_SETSIG) && !defined (HPUX10) && !defined (LINUX) { - int events=0; + int events = 0; ioctl (filedesc, I_GETSIG, &events); ioctl (filedesc, I_SETSIG, events | S_INPUT); } +#elif defined (O_ASYNC) + /* Generally FASYNC and O_ASYNC are both defined, and both equal; + but let's not depend on that. O_ASYNC appears to be more + standard (at least the Linux include files think so), so + check it first. */ + fcntl (filedesc, F_SETFL, fcntl (filedesc, F_GETFL, 0) | O_ASYNC); #elif defined (FASYNC) fcntl (filedesc, F_SETFL, fcntl (filedesc, F_GETFL, 0) | FASYNC); #elif defined (FIOSSAIOSTAT) @@ -1108,12 +1162,14 @@ { int filedesc = DEVICE_INFD (d); -#if defined (I_SETSIG) && !defined(HPUX10) +#if defined (I_SETSIG) && !defined (HPUX10) && !defined (LINUX) { - int events=0; + int events = 0; ioctl (filedesc, I_GETSIG, &events); ioctl (filedesc, I_SETSIG, events & ~S_INPUT); } +#elif defined (O_ASYNC) + fcntl (filedesc, F_SETFL, fcntl (filedesc, F_GETFL, 0) & ~O_ASYNC); #elif defined (FASYNC) fcntl (filedesc, F_SETFL, fcntl (filedesc, F_GETFL, 0) & ~FASYNC); #elif defined (FIOSSAIOSTAT) @@ -1562,7 +1618,17 @@ tty.main.c_iflag &= ~IXON; /* Disable start/stop output control */ tty.main.c_oflag &= ~ONLCR; /* Disable map of NL to CR-NL on output */ - tty.main.c_oflag &= ~TAB3; /* Disable tab expansion */ + +#if 0 + /* We used to disable tab expansion here, but this is the user's decision. */ +#if defined (TABDLY) && defined (TAB3) + if ((tty.main.c_oflag & TABDLY) == TAB3) + tty.main.c_oflag &= ~TABDLY; /* Disable tab expansion (Posix). */ +#elif defined (OXTABS) + tty.main.c_oflag &= ~OXTABS; /* Disable tab expansion (BSD). */ +#endif +#endif /* 0 */ + #ifdef CS8 if (TTY_FLAGS (con).meta_key) { @@ -2989,7 +3055,7 @@ Extcount external_len = strlen (rtnval->d_name); const Bufbyte *internal_name; Bytecount internal_len; - + TO_INTERNAL_FORMAT (DATA, (external_name, external_len), ALLOCA, (internal_name, internal_len), Qfile_name); diff --text -u 'xemacs-21.5.0/src/systty.h' 'xemacs-21.5.1/src/systty.h' Index: ./src/systty.h --- ./src/systty.h Fri Apr 13 03:24:23 2001 +++ ./src/systty.h Mon May 7 16:52:19 2001 @@ -27,29 +27,6 @@ # define HAVE_TCATTR #endif -/* If we defined these before and we are about to redefine them, - prevent alarming warnings. */ -#ifdef BSD_TERMIOS -#undef NL0 -#undef NL1 -#undef CR0 -#undef CR1 -#undef CR2 -#undef CR3 -#undef TAB0 -#undef TAB1 -#undef TAB2 -#undef XTABS -#undef BS0 -#undef BS1 -#undef FF0 -#undef FF1 -#undef ECHO -#undef NOFLSH -#undef TOSTOP -#undef FLUSHO -#undef PENDIN -#endif /* Include the proper files. */ @@ -393,27 +370,12 @@ /* Define EMACS_TTY_TABS_OK */ /* --------------------------------------------------------- */ -#ifdef HAVE_TERMIOS - -#ifdef TABDLY -#define EMACS_TTY_TABS_OK(p) (((p)->main.c_oflag & TABDLY) != TAB3) +#if defined (TABDLY) && defined (TAB3) +# define EMACS_TTY_TABS_OK(p) (((p)->main.c_oflag & TABDLY) != TAB3) +#elif defined (OXTABS) +# define EMACS_TTY_TABS_OK(p) (((p)->main.c_oflag & OXTABS) != OXTABS) #else -#define EMACS_TTY_TABS_OK(p) 1 -#endif /* TABDLY */ - -#else /* not def HAVE_TERMIOS */ -#ifdef HAVE_TERMIO - -#define EMACS_TTY_TABS_OK(p) (((p)->main.c_oflag & TABDLY) != TAB3) - -#else /* neither HAVE_TERMIO nor HAVE_TERMIOS */ -#ifdef WIN32_NATIVE -#define EMACS_TTY_TABS_OK(p) 0 -#else /* not WIN32_NATIVE */ -#define EMACS_TTY_TABS_OK(p) (((p)->main.sg_flags & XTABS) != XTABS) -#endif /* not WIN32_NATIVE */ - -#endif /* not def HAVE_TERMIO */ -#endif /* not def HAVE_TERMIOS */ +# define EMACS_TTY_TABS_OK(p) 1 +#endif #endif /* INCLUDED_systty_h_ */ diff --text -u 'xemacs-21.5.0/src/terminfo.c' 'xemacs-21.5.1/src/terminfo.c' Index: ./src/terminfo.c --- ./src/terminfo.c Fri Apr 13 03:24:24 2001 +++ ./src/terminfo.c Mon Apr 30 23:11:16 2001 @@ -24,12 +24,6 @@ #include -/* Define these variables that serve as global parameters to termcap, - so that we do not need to conditionalize the places in Emacs - that set them. */ - -char *UP, *BC, PC; - /* Every little bit of this God-damned file has caused all manner of headaches due to inconsistent and incorrect header files on one system or other, and we don't currently need anything here, diff --text -u 'xemacs-21.5.0/src/tests.c' 'xemacs-21.5.1/src/tests.c' Index: ./src/tests.c --- ./src/tests.c Fri Apr 13 03:24:24 2001 +++ ./src/tests.c Mon Apr 30 23:11:16 2001 @@ -29,6 +29,7 @@ #include "lisp.h" #include "buffer.h" #include "lstream.h" +#include "elhash.h" #include "opaque.h" static Lisp_Object Vtest_function_list; @@ -409,6 +410,86 @@ } +/* Hash Table testing */ + +typedef struct +{ + Lisp_Object hash_table; + EMACS_INT sum; +} test_hash_tables_data; + + +static int +test_hash_tables_mapper (Lisp_Object key, Lisp_Object value, + void *extra_arg) +{ + test_hash_tables_data *p = (test_hash_tables_data *) extra_arg; + p->sum += XINT (value); + return 0; +} + +static int +test_hash_tables_modifying_mapper (Lisp_Object key, Lisp_Object value, + void *extra_arg) +{ + test_hash_tables_data *p = (test_hash_tables_data *) extra_arg; + Fputhash (make_int (- XINT (key)), + make_int (2 * XINT (value)), + p->hash_table); + p->sum += XINT (value); + return 0; +} + +static int +test_hash_tables_predicate (Lisp_Object key, Lisp_Object value, + void *extra_arg) +{ + return XINT (key) < 0; +} + + +DEFUN ("test-hash-tables", Ftest_hash_tables, 0, 0, "", /* +Test C interface to hash tables. +*/ + ()) +{ + test_hash_tables_data data; + data.hash_table = make_lisp_hash_table (50, HASH_TABLE_NON_WEAK, + HASH_TABLE_EQUAL); + + Fputhash (make_int (1), make_int (2), data.hash_table); + Fputhash (make_int (3), make_int (4), data.hash_table); + + data.sum = 0; + elisp_maphash_unsafe (test_hash_tables_mapper, + data.hash_table, (void *) &data); + assert (data.sum == 2 + 4); + + data.sum = 0; + elisp_maphash (test_hash_tables_modifying_mapper, + data.hash_table, (void *) &data); + assert (data.sum == 2 + 4); + + /* hash table now contains: (1, 2) (3, 4) (-1, 2*2) (-3, 2*4) */ + + data.sum = 0; + elisp_maphash_unsafe (test_hash_tables_mapper, + data.hash_table, (void *) &data); + assert (data.sum == 3 * (2 + 4)); + + /* Remove entries with negative keys, added by modifying mapper */ + elisp_map_remhash (test_hash_tables_predicate, + data.hash_table, 0); + + data.sum = 0; + elisp_maphash_unsafe (test_hash_tables_mapper, + data.hash_table, (void *) &data); + assert (data.sum == 2 + 4); + + return intern ("PASS"); +} + + #define TESTS_DEFSUBR(Fname) do { \ DEFSUBR (Fname); \ @@ -423,6 +504,7 @@ Vtest_function_list = Qnil; TESTS_DEFSUBR (Ftest_data_format_conversion); + TESTS_DEFSUBR (Ftest_hash_tables); /* Add other test functions here with TESTS_DEFSUBR */ } diff --text -u 'xemacs-21.5.0/tests/ChangeLog' 'xemacs-21.5.1/tests/ChangeLog' Index: ./tests/ChangeLog --- ./tests/ChangeLog Wed Apr 18 15:56:05 2001 +++ ./tests/ChangeLog Wed May 9 19:53:53 2001 @@ -1,3 +1,7 @@ +2001-05-09 Martin Buchholz + + * XEmacs 21.5.1 "anise" is released. + 2001-04-18 Martin Buchholz * XEmacs 21.5.0 "alfalfa" is released. diff --text -u 'xemacs-21.5.0/version.sh' 'xemacs-21.5.1/version.sh' Index: ./version.sh --- ./version.sh Wed Apr 18 15:54:28 2001 +++ ./version.sh Wed May 9 19:53:53 2001 @@ -2,8 +2,8 @@ emacs_is_beta=t emacs_major_version=21 emacs_minor_version=5 -emacs_beta_version=0 -xemacs_codename="alfalfa" +emacs_beta_version=1 +xemacs_codename="anise" infodock_major_version=4 infodock_minor_version=0 infodock_build_version=8 #### End of Patch data #### #### ApplyPatch data follows #### # Data version : 1.0 # Date generated : Wed May 9 20:02:33 2001 # Generated by : makepatch 2.00_05 # Recurse directories : Yes # Excluded files : (\A|/)display\Z # p 'CHANGES-beta' 28880 989405325 0100644 # p 'ChangeLog' 139108 989405633 0100644 # p 'configure' 454780 989059776 0100755 # p 'configure.in' 169484 989059781 0100644 # p 'etc/FTP' 3300 989309211 0100644 # p 'etc/NEWS' 48125 989059783 0100644 # p 'etc/check_cygwin_setup.sh' 4040 989059783 0100644 # p 'etc/sample.init.el' 59611 988639552 0100644 # p 'lib-src/.cvsignore' 210 988639646 0100644 # p 'lib-src/ChangeLog' 38871 989405633 0100644 # p 'lib-src/gnuclient.c' 18353 989059808 0100644 # p 'lisp/ChangeLog' 330475 989405633 0100644 # p 'lisp/about.el' 73299 988639664 0100644 # p 'lisp/apropos.el' 24008 989059820 0100644 # p 'lisp/auto-autoloads.el' 101523 989059823 0100644 # c 'lisp/behavior-defs.el' 0 989016119 0100644 # c 'lisp/behavior.el' 0 989016119 0100644 # p 'lisp/build-report.el' 19479 989059824 0100644 # p 'lisp/bytecomp-runtime.el' 9127 989059824 0100644 # p 'lisp/bytecomp.el' 163051 989059831 0100644 # p 'lisp/cl-extra.el' 29463 989059835 0100644 # p 'lisp/code-files.el' 22320 989059835 0100644 # p 'lisp/coding.el' 9228 989059835 0100644 # p 'lisp/console.el' 1618 989059835 0100644 # p 'lisp/cus-edit.el' 120859 988639667 0100644 # p 'lisp/custom-load.el' 4494 989059835 0100644 # p 'lisp/dialog-gtk.el' 8850 989059835 0100644 # p 'lisp/dialog.el' 25553 989221840 0100644 # p 'lisp/dragdrop.el' 15694 989059836 0100644 # p 'lisp/dumped-lisp.el' 8531 989059836 0100644 # p 'lisp/easymenu.el' 9966 989059836 0100644 # p 'lisp/etags.el' 44177 989059838 0100644 # p 'lisp/faces.el' 77480 989059840 0100644 # p 'lisp/files.el' 127420 989059843 0100644 # p 'lisp/fill.el' 40808 989059844 0100644 # p 'lisp/font-lock.el' 117361 989059847 0100644 # p 'lisp/font.el' 47992 989059848 0100644 # p 'lisp/frame.el' 50745 989059850 0100644 # p 'lisp/gdk.el' 5160 989059850 0100644 # p 'lisp/generic-widgets.el' 11060 989059850 0100644 # p 'lisp/glade.el' 2335 989059850 0100644 # p 'lisp/gnome-widgets.el' 37187 989059851 0100644 # p 'lisp/gnome.el' 586 989059851 0100644 # p 'lisp/gpm.el' 3110 989059851 0100644 # p 'lisp/gtk-extra.el' 3788 989059852 0100644 # p 'lisp/gtk-faces.el' 11565 989059852 0100644 # p 'lisp/gtk-file-dialog.el' 9643 989059852 0100644 # p 'lisp/gtk-font-menu.el' 9632 989059852 0100644 # p 'lisp/gtk-init.el' 12691 989059853 0100644 # p 'lisp/gtk-package.el' 257 989059853 0100644 # p 'lisp/gtk-password-dialog.el' 3998 989059853 0100644 # p 'lisp/gtk-widget-accessors.el' 7653 989059853 0100644 # p 'lisp/gtk-widgets.el' 85602 989059855 0100644 # p 'lisp/gtk.el' 614 989059855 0100644 # p 'lisp/gutter-items.el' 27456 989059856 0100644 # p 'lisp/gutter.el' 7887 988639671 0100644 # c 'lisp/hash-table.el' 0 989016126 0100644 # p 'lisp/help-macro.el' 6566 989059856 0100644 # p 'lisp/help.el' 60006 989059858 0100644 # p 'lisp/hyper-apropos.el' 47788 989059859 0100644 # p 'lisp/info.el' 115804 989059862 0100644 # p 'lisp/isearch-mode.el' 75980 989059864 0100644 # p 'lisp/keydefs.el' 26576 988639672 0100644 # p 'lisp/keymap.el' 19591 989059865 0100644 # p 'lisp/ldap.el' 22327 989059865 0100644 # p 'lisp/lib-complete.el' 13741 989059866 0100644 # p 'lisp/lisp-mnt.el' 18271 989059866 0100644 # p 'lisp/lisp-mode.el' 40875 989059867 0100644 # p 'lisp/menubar-items.el' 71294 989221849 0100644 # p 'lisp/menubar.el' 27514 989059870 0100644 # p 'lisp/minibuf.el' 92764 989221863 0100644 # p 'lisp/modeline.el' 26061 989059873 0100644 # p 'lisp/mouse.el' 62198 989059875 0100644 # p 'lisp/msw-font-menu.el' 7870 989059875 0100644 # p 'lisp/msw-init.el' 2835 988639676 0100644 # p 'lisp/mule/arabic.el' 1674 989059929 0100644 # p 'lisp/mule/canna-leim.el' 1910 989059929 0100644 # p 'lisp/mule/english.el' 1767 989059929 0100644 # p 'lisp/mule/greek.el' 2317 989059929 0100644 # p 'lisp/mule/kinsoku.el' 11095 989059929 0100644 # p 'lisp/mule/latin.el' 9680 989059930 0100644 # p 'lisp/mule/misc-lang.el' 1711 989059930 0100644 # p 'lisp/mule/mule-category.el' 11650 989059930 0100644 # p 'lisp/mule/mule-ccl.el' 47296 989059931 0100644 # p 'lisp/mule/mule-charset.el' 9424 989059931 0100644 # p 'lisp/mule/mule-cmds.el' 45198 989059933 0100644 # p 'lisp/mule/mule-coding.el' 6132 989059933 0100644 # p 'lisp/mule/mule-help.el' 3067 989059933 0100644 # p 'lisp/mule/mule-init.el' 5009 989059933 0100644 # p 'lisp/mule/mule-misc.el' 10996 989059933 0100644 # p 'lisp/mule/mule-tty-init.el' 1594 989059933 0100644 # p 'lisp/mule/mule-x-init.el' 4594 989059933 0100644 # p 'lisp/mule/thai-xtis-chars.el' 1437 989059933 0100644 # p 'lisp/mule/viet-chars.el' 2023 989059934 0100644 # p 'lisp/multicast.el' 3425 989059875 0100644 # p 'lisp/mwheel.el' 4256 989059875 0100644 # p 'lisp/package-get.el' 42326 989059876 0100644 # p 'lisp/printer.el' 8264 989221866 0100644 # p 'lisp/scrollbar.el' 5071 989059877 0100644 # p 'lisp/select.el' 29580 988639677 0100644 # p 'lisp/simple.el' 174225 989059882 0100644 # p 'lisp/sound.el' 7110 989059882 0100644 # p 'lisp/startup.el' 51153 989059883 0100644 # p 'lisp/subr.el' 35101 989221875 0100644 # p 'lisp/symbols.el' 5720 989059883 0100644 # p 'lisp/syntax.el' 15024 989059884 0100644 # p 'lisp/toolbar-items.el' 20366 989059884 0100644 # p 'lisp/toolbar.el' 8194 989059885 0100644 # p 'lisp/tty-init.el' 3962 989059885 0100644 # p 'lisp/update-elc.el' 5663 989221875 0100644 # p 'lisp/wid-browse.el' 9108 989059885 0100644 # p 'lisp/widgets-gtk.el' 4526 989059885 0100644 # p 'lisp/x-faces.el' 31364 989059886 0100644 # p 'lisp/x-font-menu.el' 9525 989059886 0100644 # p 'lisp/x-init.el' 15352 989059886 0100644 # p 'lisp/x-misc.el' 3236 989059887 0100644 # p 'lisp/x-mouse.el' 5650 989059887 0100644 # p 'lisp/x-scrollbar.el' 4074 989059887 0100644 # p 'lisp/x-select.el' 5242 989059887 0100644 # p 'lisp/x-win-sun.el' 8471 989059887 0100644 # p 'lisp/x-win-xfree86.el' 2199 989059887 0100644 # p 'lwlib/ChangeLog' 21202 989405633 0100644 # p 'lwlib/lwlib-utils.c' 4825 988639780 0100644 # p 'man/ChangeLog' 77781 989405633 0100644 # p 'man/make-stds.texi' 37310 989221890 0100644 # p 'man/xemacs-faq.texi' 226336 988639789 0100644 # p 'man/xemacs/frame.texi' 27450 988639795 0100644 # p 'netinstall/ChangeLog' 5578 989405633 0100644 # p 'nt/.cvsignore' 44 988639812 0100644 # p 'nt/ChangeLog' 36841 989405633 0100644 # p 'nt/compface.mak' 575 988639813 0100644 # p 'nt/config.inc.samp' 2370 989059986 0100644 # c 'nt/installer/Wise/ChangeLog' 0 989405633 0100644 # c 'nt/installer/Wise/display-readme.dlg' 0 988423857 0100644 # p 'nt/minitar.c' 4461 989059986 0100644 # p 'nt/xemacs.mak' 45606 989059988 0100644 # p 'src/.cvsignore' 162 988639842 0100644 # p 'src/ChangeLog' 304500 989405633 0100644 # p 'src/buffer.c' 103491 989405437 0100644 # p 'src/callint.c' 31696 989060038 0100644 # p 'src/callproc.c' 27166 989060038 0100644 # p 'src/cmdloop.c' 21295 988639853 0100644 # p 'src/console-msw.h' 13379 989221921 0100644 # p 'src/console.h' 25705 989060040 0100644 # p 'src/depend' 36266 989221922 0100644 # p 'src/device-msw.c' 38795 989221925 0100644 # p 'src/dialog-msw.c' 22432 989221929 0100644 # p 'src/editfns.c' 80079 988639856 0100644 # p 'src/elhash.c' 46531 989060042 0100644 # p 'src/elhash.h' 3018 988639858 0100644 # p 'src/emacs.c' 115797 989060045 0100644 # p 'src/event-Xt.c' 109742 989060048 0100644 # p 'src/event-msw.c' 110147 989060051 0100644 # p 'src/event-stream.c' 160528 989309327 0100644 # p 'src/events-mod.h' 485 989060055 0100644 # p 'src/events.c' 67860 989060057 0100644 # p 'src/events.h' 27343 989060058 0100644 # p 'src/faces.h' 15723 989060059 0100644 # p 'src/frame-msw.c' 36239 989060060 0100644 # p 'src/frame-x.c' 85851 989060062 0100644 # p 'src/general-slots.h' 5808 989221930 0100644 # p 'src/glyphs-msw.c' 99290 989060064 0100644 # p 'src/gpmevent.c' 16147 989060065 0100644 # p 'src/keymap.c' 134939 989060068 0100644 # p 'src/lisp.h' 117770 989060071 0100644 # p 'src/mule-charset.c' 51021 989309329 0100644 # p 'src/process-unix.c' 61181 989060073 0100644 # p 'src/process.c' 64125 989060075 0100644 # p 'src/regex.c' 204967 989060080 0100644 # p 'src/regex.h' 19095 989060081 0100644 # p 'src/s/aix4.h' 1009 989060086 0100644 # p 'src/s/bsd386.h' 681 989309329 0100644 # p 'src/s/bsdos4.h' 192 989309329 0100644 # p 'src/s/freebsd.h' 2982 989221941 0100644 # p 'src/s/gnu.h' 1519 989221941 0100644 # p 'src/s/netbsd.h' 2003 989221941 0100644 # p 'src/s/nextstep.h' 3550 989221941 0100644 # p 'src/s/ultrix.h' 1112 989060086 0100644 # p 'src/scrollbar-msw.c' 13351 988639873 0100644 # p 'src/search.c' 90245 989060083 0100644 # p 'src/symbols.c' 113260 988639876 0100644 # p 'src/sysdep.c' 111524 989221939 0100644 # p 'src/systty.h' 12038 989221939 0100644 # p 'src/terminfo.c' 3174 988639876 0100644 # p 'src/tests.c' 14778 988639876 0100644 # p 'tests/ChangeLog' 10696 989405633 0100644 # p 'version.sh' 193 989405633 0100644 #### End of ApplyPatch data #### #### End of Patch kit [created: Wed May 9 20:02:33 2001] #### #### Patch checksum: 21692 849144 15823 #### #### Checksum: 21730 850522 1776 ####