Mercurial > hg > xemacs-beta
changeset 406:b8cc9ab3f761 r21-2-33
Import from CVS: tag r21-2-33
line wrap: on
line diff
--- a/CHANGES-beta Mon Aug 13 11:16:09 2007 +0200 +++ b/CHANGES-beta Mon Aug 13 11:17:09 2007 +0200 @@ -1,3 +1,23 @@ +to 21.2.33 "Melpomene" +-- Yet more progress gauge and gutter redisplay fixes from Andy Piper +-- glyph error checking from Andy Piper +-- Proper implementation of string glyps makes them Mule safe (IKEYAMA Tomonori) +-- Bug fixes from the usual suspects +-- --with-clash-detection now defaults to `yes', at least for betas. +-- Autoconf support for detecting how to #include header files + with names containing preprocessor constants, Didier Verna. +-- LDAP documentation updated, Oscar Figueiredo. +-- clash-detection code cleaned and audited, Yoshiki and Martin +-- Fix hangs on DEC OSF 4.0 when (process-send-string) sends strings + longer than 252 bytes. +-- Fix non-ANSI macro hacking to allow compilation by Irix native compiler. +-- redisplay fixes, IKEYAMA Tomonori +-- Code cleaning, Mike Alexander +-- Pdump + Windows support, Mike Alexander +-- Sound code cleanup, Jan Vroonhof +-- yes-or-no-p-dialog-box no longer gives unpredictable results with + focus follows mouse, Martin Buchholz + to 21.2.32 "Kastor & Polydeukes" -- Internal Postgres RDBMS support from Steve Baur -- Improve gutter useability @@ -7,6 +27,8 @@ -- redisplay-gutter-area fixes from Andy Piper -- pdump file in MS-Windows executable from Mike Alexander -- Miscellaneous fixes from Andy Piper +-- Windows and menubar changes from Ben Wing +-- dumper changes from Olivier Galibert to 21.2.31 "Iris" -- Make XEmacs work on Windows again.
--- a/ChangeLog Mon Aug 13 11:16:09 2007 +0200 +++ b/ChangeLog Mon Aug 13 11:17:09 2007 +0200 @@ -1,3 +1,76 @@ +2000-05-01 Martin Buchholz <martin@xemacs.org> + + * XEmacs 21.2.33 is released. + +2000-04-27 Katsumi Yamaoka <yamaoka@jpl.org> + + * configure.in: Use ORDINARY_LD instead of "\$(ORDINARY_LD)" for + the value of LD. + +2000-04-26 Ben Wing <ben@xemacs.org> + + * configure.in: add support for --quick-build. Remove --no-doc-file, + subsumed. + +2000-04-19 Martin Buchholz <martin@xemacs.org> + + * configure.in: + * src/config.h.in: + Rewrite SMART_INCLUDE implementation to actually work. + Be paranoid - Avoid use of spaces in these macro definitions. + Leave alloca() definition at start of compilation unit, + as AIX requests. + Rename SMART_INCLUDE_MACRO to SMART_INCLUDE_INDIRECTIONS. + +2000-04-13 Yoshiki Hayashi <yoshiki@xemacs.org> + + * configure.in: Enable clash-detection by default. + * configure.usage: Update documentation. + +2000-04-06 Andy Piper <andy@xemacs.org> + + * configure.in: fix typo. + +2000-04-12 Andy Piper <andy@xemacs.org> + + * etc/Emacs.ad: give the gui-element face the same font as the + menubar and popups. Add translations for text widgets. + +2000-04-03 Yoshiki Hayashi <yoshiki@xemacs.org> + + * configure.in : Fix printing error check warning even if + it is not compiled in. + +2000-02-19 Jan Vroonhof <vroonhof@math.ethz.ch> + + * xemacs/configure.in: Do a normal link when compiling with + --pdump. Don't try compiling an unexec object file. + +2000-03-27 Didier Verna <didier@xemacs.org> + + * configure.in: reorganize the output by topic. + New configure test to define the proper SMART_INCLUDE macro. + + * configure.usage: slightly rearanged some options. + +2000-03-25 Didier Verna <didier@xemacs.org> + + * configure.in: rename `foo_h_path' to `foo_h_file' for variables + representing real headers and not directories. This applies to + `db_h_path', `curses_h_path', `term_h_path', `tt_c_h_path' and + `soundcard_h_path'. + +2000-03-21 Didier Verna <didier@xemacs.org> + + * configure.in: try to find postgresql headers at different places + and define POSTGRES_H_PATH as appropriate. + +2000-03-22 Andy Piper <andy@xemacs.org> + + * config.h.in: add ERROR_CHECK_GLYPHS. + + * configure.in: add error_check_glyphs. + 2000-03-20 Martin Buchholz <martin@xemacs.org> * XEmacs 21.2.32 is released.
--- a/configure Mon Aug 13 11:16:09 2007 +0200 +++ b/configure Mon Aug 13 11:17:09 2007 +0200 @@ -368,7 +368,7 @@ memory_usage_stats | \ with_clash_detection | \ with_modules | \ - no_doc_file ) + quick_build ) case "$val" in y | ye | yes ) val=yes ;; n | no ) val=no ;; @@ -552,14 +552,17 @@ byte_code ) error_check_byte_code=yes ;; nobyte_code ) error_check_byte_code=no ;; + glyphs ) error_check_glyphs=yes ;; + noglyphs ) error_check_glyphs=no ;; + * ) bogus_error_check=yes ;; esac if test "$bogus_error_check" -o \ \( -n "$new_default" -a -n "$echeck_notfirst" \) ; then if test "$error_check_default" = yes ; then - types="\`all' (default), \`none', \`noextents', \`notypecheck', \`nobufpos', \`nogc', \`nomalloc', and \`nobyte-code'." + types="\`all' (default), \`none', \`noextents', \`notypecheck', \`nobufpos', \`nogc', \`nomalloc', \`noglyphs' and \`nobyte-code'." else - types="\`all', \`none' (default), \`extents', \`typecheck', \`bufpos', \`gc', \`malloc', and \`byte-code'." + types="\`all', \`none' (default), \`extents', \`typecheck', \`bufpos', \`gc', \`malloc', \`glyphs' and \`byte-code'." fi (echo "$progname: Usage error:" echo " " "Valid types for the \`--$optname' option are: @@ -572,6 +575,7 @@ error_check_gc=$new_default error_check_malloc=$new_default error_check_byte_code=$new_default + error_check_glyphs=$new_default new_default= # reset this fi echeck_notfirst=true @@ -834,7 +838,7 @@ fi echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 -echo "configure:838: checking whether ln -s works" >&5 +echo "configure:842: checking whether ln -s works" >&5 rm -f conftestdata if ln -s X conftestdata 2>/dev/null @@ -1055,6 +1059,14 @@ EOF } +test "${error_check_glyphs=$beta}" = yes && { test "$extra_verbose" = "yes" && cat << \EOF + Defining ERROR_CHECK_GLYPHS +EOF +cat >> confdefs.h <<\EOF +#define ERROR_CHECK_GLYPHS 1 +EOF +} + if test "${debug:=$beta}" = "yes"; then use_assertions=yes memory_usage_stats=yes extra_objs="$extra_objs debug.o" && if test "$extra_verbose" = "yes"; then @@ -1091,7 +1103,7 @@ echo $ac_n "checking "host system type"""... $ac_c" 1>&6 -echo "configure:1095: checking "host system type"" >&5 +echo "configure:1107: checking "host system type"" >&5 internal_configuration=`echo $configuration | sed 's/-\(workshop\)//'` canonical=`${CONFIG_SHELL-/bin/sh} $srcdir/config.sub "$internal_configuration"` configuration=`echo "$configuration" | sed 's/^\([^-][^-]*-[^-][^-]*-[^-][^-]*\)-.*$/\1/'` @@ -1557,7 +1569,7 @@ fi fi -if test "$with_clash_detection" = "yes"; then +if test "$with_clash_detection" != "no"; then { test "$extra_verbose" = "yes" && cat << \EOF Defining CLASH_DETECTION EOF @@ -1586,7 +1598,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:1590: checking for $ac_word" >&5 +echo "configure:1602: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1613,7 +1625,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:1617: checking for $ac_word" >&5 +echo "configure:1629: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1661,7 +1673,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:1665: checking for $ac_word" >&5 +echo "configure:1677: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1690,7 +1702,7 @@ fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1694: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:1706: 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' @@ -1703,12 +1715,12 @@ cat > conftest.$ac_ext << EOF -#line 1707 "configure" +#line 1719 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:1712: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1724: \"$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 @@ -1736,19 +1748,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:1740: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1752: 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:1745: checking whether we are using GNU C" >&5 +echo "configure:1757: checking whether we are using GNU C" >&5 cat > conftest.c <<EOF #ifdef __GNUC__ yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1752: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1764: \"$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 @@ -1766,7 +1778,7 @@ ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:1770: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:1782: checking whether ${CC-cc} accepts -g" >&5 echo 'void f(){}' > conftest.c if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then @@ -1799,7 +1811,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:1803: checking for $ac_word" >&5 +echo "configure:1815: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1826,7 +1838,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:1830: checking for $ac_word" >&5 +echo "configure:1842: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1874,7 +1886,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:1878: checking for $ac_word" >&5 +echo "configure:1890: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1903,7 +1915,7 @@ fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1907: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:1919: 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' @@ -1916,12 +1928,12 @@ cat > conftest.$ac_ext << EOF -#line 1920 "configure" +#line 1932 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:1925: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1937: \"$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 @@ -1949,19 +1961,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:1953: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1965: 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:1958: checking whether we are using GNU C" >&5 +echo "configure:1970: checking whether we are using GNU C" >&5 cat > conftest.c <<EOF #ifdef __GNUC__ yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1965: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1977: \"$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 @@ -1979,7 +1991,7 @@ ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:1983: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:1995: checking whether ${CC-cc} accepts -g" >&5 echo 'void f(){}' > conftest.c if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then @@ -2012,7 +2024,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:2016: checking for $ac_word" >&5 +echo "configure:2028: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2039,7 +2051,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:2043: checking for $ac_word" >&5 +echo "configure:2055: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2087,7 +2099,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:2091: checking for $ac_word" >&5 +echo "configure:2103: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2116,7 +2128,7 @@ fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:2120: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:2132: 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' @@ -2129,12 +2141,12 @@ cat > conftest.$ac_ext << EOF -#line 2133 "configure" +#line 2145 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:2138: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2150: \"$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 @@ -2162,19 +2174,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:2166: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:2178: 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:2171: checking whether we are using GNU C" >&5 +echo "configure:2183: checking whether we are using GNU C" >&5 cat > conftest.c <<EOF #ifdef __GNUC__ yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2178: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2190: \"$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 @@ -2192,7 +2204,7 @@ ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:2196: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:2208: checking whether ${CC-cc} accepts -g" >&5 echo 'void f(){}' > conftest.c if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then @@ -2229,7 +2241,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:2233: checking how to run the C preprocessor" >&5 +echo "configure:2245: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -2242,13 +2254,13 @@ # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext <<EOF -#line 2246 "configure" +#line 2258 "configure" #include "confdefs.h" #include <assert.h> Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2252: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2264: \"$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 : @@ -2259,13 +2271,13 @@ rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext <<EOF -#line 2263 "configure" +#line 2275 "configure" #include "confdefs.h" #include <assert.h> Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2269: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2281: \"$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 : @@ -2276,13 +2288,13 @@ rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext <<EOF -#line 2280 "configure" +#line 2292 "configure" #include "confdefs.h" #include <assert.h> Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2286: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2298: \"$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 : @@ -2307,11 +2319,10 @@ - echo $ac_n "checking for AIX""... $ac_c" 1>&6 -echo "configure:2313: checking for AIX" >&5 -cat > conftest.$ac_ext <<EOF -#line 2315 "configure" +echo "configure:2324: checking for AIX" >&5 +cat > conftest.$ac_ext <<EOF +#line 2326 "configure" #include "confdefs.h" #ifdef _AIX yes @@ -2336,10 +2347,110 @@ rm -f conftest* +cat > $srcdir/conffoo.h <<EOF +#define CONFFOO 1 +EOF +echo $ac_n "checking for a working inclusion macro""... $ac_c" 1>&6 +echo "configure:2355: checking for a working inclusion macro" >&5 +cat > conftest.$ac_ext <<EOF +#line 2357 "configure" +#include "confdefs.h" + +int main() { + +#define SMART_INCLUDE(path,file) <path/file> +#define CONFFOO_H_PATH $srcdir +#define CONFFOO_INCLUDE(file) SMART_INCLUDE (CONFFOO_H_PATH,file) +#include CONFFOO_INCLUDE(conffoo.h) + +; return 0; } +EOF +if { (eval echo configure:2369: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + echo "$ac_t""direct" 1>&6; { test "$extra_verbose" = "yes" && cat << \EOF + Defining SMART_INCLUDE_INDIRECTIONS = 0 +EOF +cat >> confdefs.h <<\EOF +#define SMART_INCLUDE_INDIRECTIONS 0 +EOF +} + +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + cat > conftest.$ac_ext <<EOF +#line 2384 "configure" +#include "confdefs.h" + +int main() { + +#define GLUE_INCLUDE(path,file) <##path##/##file##> +#define SMART_INCLUDE(path,file) GLUE_INCLUDE(path,file) +#define CONFFOO_H_PATH $srcdir +#define CONFFOO_INCLUDE(file) SMART_INCLUDE(CONFFOO_H_PATH,file) +#include CONFFOO_INCLUDE(conffoo.h) + +; return 0; } +EOF +if { (eval echo configure:2397: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + echo "$ac_t""simple" 1>&6; { test "$extra_verbose" = "yes" && cat << \EOF + Defining SMART_INCLUDE_INDIRECTIONS = 1 +EOF +cat >> confdefs.h <<\EOF +#define SMART_INCLUDE_INDIRECTIONS 1 +EOF +} + +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + cat > conftest.$ac_ext <<EOF +#line 2412 "configure" +#include "confdefs.h" + +int main() { + +#define GLUE_INCLUDE_2(path,file) <##path##/##file##> +#define GLUE_INCLUDE_1(path,file) GLUE_INCLUDE_2(path,file) +#define SMART_INCLUDE(path,file) GLUE_INCLUDE_1(path,file) +#define CONFFOO_H_PATH $srcdir +#define CONFFOO_INCLUDE(file) SMART_INCLUDE (CONFFOO_H_PATH,file) +#include CONFFOO_INCLUDE(conffoo.h) + +; return 0; } +EOF +if { (eval echo configure:2426: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + echo "$ac_t""double" 1>&6; { test "$extra_verbose" = "yes" && cat << \EOF + Defining SMART_INCLUDE_INDIRECTIONS = 2 +EOF +cat >> confdefs.h <<\EOF +#define SMART_INCLUDE_INDIRECTIONS 2 +EOF +} + +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + { echo "configure: error: Cannot define a proper SMART_INCLUDE macro. Please report." 1>&2; exit 1; } +fi +rm -f conftest* +fi +rm -f conftest* +fi +rm -f conftest* +rm -f $srcdir/conffoo.h + + + echo $ac_n "checking for GNU libc""... $ac_c" 1>&6 -echo "configure:2341: checking for GNU libc" >&5 -cat > conftest.$ac_ext <<EOF -#line 2343 "configure" +echo "configure:2452: checking for GNU libc" >&5 +cat > conftest.$ac_ext <<EOF +#line 2454 "configure" #include "confdefs.h" #include <features.h> int main() { @@ -2351,7 +2462,7 @@ ; return 0; } EOF -if { (eval echo configure:2355: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2466: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_glibc=yes else @@ -2372,7 +2483,7 @@ case "$opsys" in - sol2) + sol2) { test "$extra_verbose" = "yes" && cat << \EOF Defining __EXTENSIONS__ EOF @@ -2428,7 +2539,7 @@ esac cat > conftest.$ac_ext <<EOF -#line 2432 "configure" +#line 2543 "configure" #include "confdefs.h" int main () { #if defined __SUNPRO_C @@ -2440,7 +2551,7 @@ #endif } EOF -if { (eval echo configure:2444: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:2555: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then : else @@ -2541,8 +2652,11 @@ configure___ ld_switch_shared=LD_SWITCH_SHARED +#define ORDINARY_LD "\$(CC) \$(CFLAGS)" +configure___ ordinary_ld=ORDINARY_LD + #ifdef ORDINARY_LINK -#define LD "\$(CC) \$(CFLAGS)" +#define LD ORDINARY_LD #else /* no ORDINARY LINK */ #ifdef COFF_ENCAPSULATE #define LD "\$(CC) -nostdlib" @@ -2633,6 +2747,15 @@ rm $tempcname +if test "$pdump" = "yes"; then + ordinary_link="yes" + ld="${ordinary_ld}" + start_files= + libs_standard= + unexec= + lib_gcc= +fi + test "$extra_verbose" = "yes" && \ for var in libs_machine libs_system libs_termcap libs_standard objects_machine objects_system c_switch_machine c_switch_system ld_switch_machine ld_switch_system unexec ld_switch_shared ld lib_gcc ld_text_start_addr start_files ordinary_link have_terminfo mail_use_flock mail_use_lockf; do eval "echo \"$var = '\$$var'\""; done && echo "" @@ -2664,7 +2787,7 @@ if test "$GCC" = "yes"; then echo $ac_n "checking for buggy gcc versions""... $ac_c" 1>&6 -echo "configure:2668: checking for buggy gcc versions" >&5 +echo "configure:2791: 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.*) @@ -2787,7 +2910,7 @@ fi echo $ac_n "checking for dynodump""... $ac_c" 1>&6 -echo "configure:2791: checking for dynodump" >&5 +echo "configure:2914: checking for dynodump" >&5 if test "$unexec" != "unexsol2.o"; then echo "$ac_t""no" 1>&6 else @@ -2825,12 +2948,12 @@ done echo $ac_n "checking for terminateAndUnload in -lC""... $ac_c" 1>&6 -echo "configure:2829: checking for terminateAndUnload in -lC" >&5 +echo "configure:2952: checking for terminateAndUnload in -lC" >&5 ac_lib_var=`echo C'_'terminateAndUnload | sed 'y%./+-%__p_%'` xe_check_libs=" -lC " cat > conftest.$ac_ext <<EOF -#line 2834 "configure" +#line 2957 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -2841,7 +2964,7 @@ terminateAndUnload() ; return 0; } EOF -if { (eval echo configure:2845: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2968: \"$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 @@ -2949,7 +3072,7 @@ if test "$add_runtime_path" = "yes"; then echo $ac_n "checking "for runtime libraries flag"""... $ac_c" 1>&6 -echo "configure:2953: checking "for runtime libraries flag"" >&5 +echo "configure:3076: checking "for runtime libraries flag"" >&5 case "$opsys" in sol2 ) dash_r="-R" ;; decosf* | linux* | irix*) dash_r="-rpath " ;; @@ -2971,14 +3094,14 @@ done fi cat > conftest.$ac_ext <<EOF -#line 2975 "configure" -#include "confdefs.h" - -int main() { - -; return 0; } -EOF -if { (eval echo configure:2982: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +#line 3098 "configure" +#include "confdefs.h" + +int main() { + +; return 0; } +EOF +if { (eval echo configure:3105: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* dash_r="$try_dash_r" else @@ -3080,10 +3203,10 @@ fi after_morecore_hook_exists=yes echo $ac_n "checking for malloc_get_state""... $ac_c" 1>&6 -echo "configure:3084: checking for malloc_get_state" >&5 - -cat > conftest.$ac_ext <<EOF -#line 3087 "configure" +echo "configure:3207: checking for malloc_get_state" >&5 + +cat > conftest.$ac_ext <<EOF +#line 3210 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char malloc_get_state(); below. */ @@ -3106,7 +3229,7 @@ ; return 0; } EOF -if { (eval echo configure:3110: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3233: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_malloc_get_state=yes" else @@ -3126,10 +3249,10 @@ fi echo $ac_n "checking for malloc_set_state""... $ac_c" 1>&6 -echo "configure:3130: checking for malloc_set_state" >&5 - -cat > conftest.$ac_ext <<EOF -#line 3133 "configure" +echo "configure:3253: checking for malloc_set_state" >&5 + +cat > conftest.$ac_ext <<EOF +#line 3256 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char malloc_set_state(); below. */ @@ -3152,7 +3275,7 @@ ; return 0; } EOF -if { (eval echo configure:3156: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3279: \"$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 @@ -3172,16 +3295,16 @@ fi echo $ac_n "checking whether __after_morecore_hook exists""... $ac_c" 1>&6 -echo "configure:3176: checking whether __after_morecore_hook exists" >&5 -cat > conftest.$ac_ext <<EOF -#line 3178 "configure" +echo "configure:3299: checking whether __after_morecore_hook exists" >&5 +cat > conftest.$ac_ext <<EOF +#line 3301 "configure" #include "confdefs.h" extern void (* __after_morecore_hook)(); int main() { __after_morecore_hook = 0 ; return 0; } EOF -if { (eval echo configure:3185: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3308: \"$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 @@ -3195,21 +3318,21 @@ if test "$system_malloc" = "yes" ; then GNU_MALLOC=no GNU_MALLOC_reason=" - (The GNU allocators don't work with this system configuration)." + - The GNU allocators don't work with this system configuration." elif test "$with_system_malloc" = "yes" ; then GNU_MALLOC=no GNU_MALLOC_reason=" - (User chose not to use GNU allocators)." + - User chose not to use GNU allocators." elif test "$with_debug_malloc" = "yes" ; then GNU_MALLOC=no GNU_MALLOC_reason=" - (User chose to use Debugging Malloc)." + - User chose to use Debugging Malloc." fi if test "$doug_lea_malloc" = "yes" ; then if test "$GNU_MALLOC" = yes ; then GNU_MALLOC_reason=" - (Using Doug Lea's new malloc from the GNU C Library.)" + - Using Doug Lea's new malloc from the GNU C Library." fi { test "$extra_verbose" = "yes" && cat << \EOF Defining DOUG_LEA_MALLOC @@ -3221,7 +3344,7 @@ if test "$after_morecore_hook_exists" = "no" ; then GNU_MALLOC_reason=" - (Using Doug Lea's new malloc from the Linux C Library.)" + - Using Doug Lea's new malloc from the Linux C Library." { test "$extra_verbose" = "yes" && cat << \EOF Defining _NO_MALLOC_WARNING_ EOF @@ -3240,7 +3363,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:3244: checking for $ac_word" >&5 +echo "configure:3367: checking for $ac_word" >&5 if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. @@ -3295,7 +3418,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:3299: checking for a BSD compatible install" >&5 +echo "configure:3422: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" @@ -3349,7 +3472,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:3353: checking for $ac_word" >&5 +echo "configure:3476: checking for $ac_word" >&5 if test -n "$YACC"; then ac_cv_prog_YACC="$YACC" # Let the user override the test. @@ -3381,15 +3504,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:3385: checking for $ac_hdr" >&5 - -cat > conftest.$ac_ext <<EOF -#line 3388 "configure" +echo "configure:3508: checking for $ac_hdr" >&5 + +cat > conftest.$ac_ext <<EOF +#line 3511 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3393: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3516: \"$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* @@ -3419,10 +3542,10 @@ done echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 -echo "configure:3423: checking for sys/wait.h that is POSIX.1 compatible" >&5 - -cat > conftest.$ac_ext <<EOF -#line 3426 "configure" +echo "configure:3546: checking for sys/wait.h that is POSIX.1 compatible" >&5 + +cat > conftest.$ac_ext <<EOF +#line 3549 "configure" #include "confdefs.h" #include <sys/types.h> #include <sys/wait.h> @@ -3438,7 +3561,7 @@ s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } EOF -if { (eval echo configure:3442: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3565: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_sys_wait_h=yes else @@ -3462,10 +3585,10 @@ fi echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:3466: checking for ANSI C header files" >&5 - -cat > conftest.$ac_ext <<EOF -#line 3469 "configure" +echo "configure:3589: checking for ANSI C header files" >&5 + +cat > conftest.$ac_ext <<EOF +#line 3592 "configure" #include "confdefs.h" #include <stdlib.h> #include <stdarg.h> @@ -3473,7 +3596,7 @@ #include <float.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3477: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3600: \"$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* @@ -3490,7 +3613,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 -#line 3494 "configure" +#line 3617 "configure" #include "confdefs.h" #include <string.h> EOF @@ -3508,7 +3631,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 -#line 3512 "configure" +#line 3635 "configure" #include "confdefs.h" #include <stdlib.h> EOF @@ -3526,7 +3649,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 <<EOF -#line 3530 "configure" +#line 3653 "configure" #include "confdefs.h" #include <ctype.h> #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -3537,7 +3660,7 @@ exit (0); } EOF -if { (eval echo configure:3541: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:3664: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then : else @@ -3563,10 +3686,10 @@ fi echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 -echo "configure:3567: checking whether time.h and sys/time.h may both be included" >&5 - -cat > conftest.$ac_ext <<EOF -#line 3570 "configure" +echo "configure:3690: checking whether time.h and sys/time.h may both be included" >&5 + +cat > conftest.$ac_ext <<EOF +#line 3693 "configure" #include "confdefs.h" #include <sys/types.h> #include <sys/time.h> @@ -3575,7 +3698,7 @@ struct tm *tp; ; return 0; } EOF -if { (eval echo configure:3579: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3702: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes else @@ -3599,10 +3722,10 @@ fi echo $ac_n "checking for sys_siglist declaration in signal.h or unistd.h""... $ac_c" 1>&6 -echo "configure:3603: checking for sys_siglist declaration in signal.h or unistd.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 3606 "configure" +echo "configure:3726: checking for sys_siglist declaration in signal.h or unistd.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 3729 "configure" #include "confdefs.h" #include <sys/types.h> #include <signal.h> @@ -3614,7 +3737,7 @@ char *msg = *(sys_siglist + 1); ; return 0; } EOF -if { (eval echo configure:3618: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3741: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_decl_sys_siglist=yes else @@ -3639,9 +3762,9 @@ echo $ac_n "checking for struct utimbuf""... $ac_c" 1>&6 -echo "configure:3643: checking for struct utimbuf" >&5 -cat > conftest.$ac_ext <<EOF -#line 3645 "configure" +echo "configure:3766: checking for struct utimbuf" >&5 +cat > conftest.$ac_ext <<EOF +#line 3768 "configure" #include "confdefs.h" #ifdef TIME_WITH_SYS_TIME #include <sys/time.h> @@ -3660,7 +3783,7 @@ static struct utimbuf x; x.actime = x.modtime; ; return 0; } EOF -if { (eval echo configure:3664: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3787: \"$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 @@ -3680,10 +3803,10 @@ rm -f conftest* echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 -echo "configure:3684: checking return type of signal handlers" >&5 - -cat > conftest.$ac_ext <<EOF -#line 3687 "configure" +echo "configure:3807: checking return type of signal handlers" >&5 + +cat > conftest.$ac_ext <<EOF +#line 3810 "configure" #include "confdefs.h" #include <sys/types.h> #include <signal.h> @@ -3700,7 +3823,7 @@ int i; ; return 0; } EOF -if { (eval echo configure:3704: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3827: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void else @@ -3722,10 +3845,10 @@ echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:3726: checking for size_t" >&5 - -cat > conftest.$ac_ext <<EOF -#line 3729 "configure" +echo "configure:3849: checking for size_t" >&5 + +cat > conftest.$ac_ext <<EOF +#line 3852 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -3756,10 +3879,10 @@ fi echo $ac_n "checking for pid_t""... $ac_c" 1>&6 -echo "configure:3760: checking for pid_t" >&5 - -cat > conftest.$ac_ext <<EOF -#line 3763 "configure" +echo "configure:3883: checking for pid_t" >&5 + +cat > conftest.$ac_ext <<EOF +#line 3886 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -3790,10 +3913,10 @@ fi echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 -echo "configure:3794: checking for uid_t in sys/types.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 3797 "configure" +echo "configure:3917: checking for uid_t in sys/types.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 3920 "configure" #include "confdefs.h" #include <sys/types.h> EOF @@ -3829,10 +3952,10 @@ fi echo $ac_n "checking for mode_t""... $ac_c" 1>&6 -echo "configure:3833: checking for mode_t" >&5 - -cat > conftest.$ac_ext <<EOF -#line 3836 "configure" +echo "configure:3956: checking for mode_t" >&5 + +cat > conftest.$ac_ext <<EOF +#line 3959 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -3863,10 +3986,10 @@ fi echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:3867: checking for off_t" >&5 - -cat > conftest.$ac_ext <<EOF -#line 3870 "configure" +echo "configure:3990: checking for off_t" >&5 + +cat > conftest.$ac_ext <<EOF +#line 3993 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -3897,10 +4020,10 @@ fi echo $ac_n "checking for ssize_t""... $ac_c" 1>&6 -echo "configure:3901: checking for ssize_t" >&5 - -cat > conftest.$ac_ext <<EOF -#line 3904 "configure" +echo "configure:4024: checking for ssize_t" >&5 + +cat > conftest.$ac_ext <<EOF +#line 4027 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -3932,9 +4055,9 @@ echo $ac_n "checking for struct timeval""... $ac_c" 1>&6 -echo "configure:3936: checking for struct timeval" >&5 -cat > conftest.$ac_ext <<EOF -#line 3938 "configure" +echo "configure:4059: checking for struct timeval" >&5 +cat > conftest.$ac_ext <<EOF +#line 4061 "configure" #include "confdefs.h" #ifdef TIME_WITH_SYS_TIME #include <sys/time.h> @@ -3950,7 +4073,7 @@ static struct timeval x; x.tv_sec = x.tv_usec; ; return 0; } EOF -if { (eval echo configure:3954: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4077: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 HAVE_TIMEVAL=yes @@ -3972,10 +4095,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:3976: checking whether struct tm is in sys/time.h or time.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 3979 "configure" +echo "configure:4099: checking whether struct tm is in sys/time.h or time.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 4102 "configure" #include "confdefs.h" #include <sys/types.h> #include <time.h> @@ -3983,7 +4106,7 @@ struct tm *tp; tp->tm_sec; ; return 0; } EOF -if { (eval echo configure:3987: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4110: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm=time.h else @@ -4007,10 +4130,10 @@ fi echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6 -echo "configure:4011: checking for tm_zone in struct tm" >&5 - -cat > conftest.$ac_ext <<EOF -#line 4014 "configure" +echo "configure:4134: checking for tm_zone in struct tm" >&5 + +cat > conftest.$ac_ext <<EOF +#line 4137 "configure" #include "confdefs.h" #include <sys/types.h> #include <$ac_cv_struct_tm> @@ -4018,7 +4141,7 @@ struct tm tm; tm.tm_zone; ; return 0; } EOF -if { (eval echo configure:4022: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4145: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm_zone=yes else @@ -4041,10 +4164,10 @@ else echo $ac_n "checking for tzname""... $ac_c" 1>&6 -echo "configure:4045: checking for tzname" >&5 - -cat > conftest.$ac_ext <<EOF -#line 4048 "configure" +echo "configure:4168: checking for tzname" >&5 + +cat > conftest.$ac_ext <<EOF +#line 4171 "configure" #include "confdefs.h" #include <time.h> #ifndef tzname /* For SGI. */ @@ -4054,7 +4177,7 @@ atoi(*tzname); ; return 0; } EOF -if { (eval echo configure:4058: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4181: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_var_tzname=yes else @@ -4080,10 +4203,10 @@ echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:4084: checking for working const" >&5 - -cat > conftest.$ac_ext <<EOF -#line 4087 "configure" +echo "configure:4207: checking for working const" >&5 + +cat > conftest.$ac_ext <<EOF +#line 4210 "configure" #include "confdefs.h" int main() { @@ -4132,7 +4255,7 @@ ; return 0; } EOF -if { (eval echo configure:4136: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4259: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -4157,7 +4280,7 @@ echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:4161: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:4284: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` cat > conftestmake <<\EOF @@ -4182,12 +4305,12 @@ echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6 -echo "configure:4186: checking whether byte ordering is bigendian" >&5 +echo "configure:4309: 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 <<EOF -#line 4191 "configure" +#line 4314 "configure" #include "confdefs.h" #include <sys/types.h> #include <sys/param.h> @@ -4198,11 +4321,11 @@ #endif ; return 0; } EOF -if { (eval echo configure:4202: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4325: \"$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 <<EOF -#line 4206 "configure" +#line 4329 "configure" #include "confdefs.h" #include <sys/types.h> #include <sys/param.h> @@ -4213,7 +4336,7 @@ #endif ; return 0; } EOF -if { (eval echo configure:4217: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4340: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_bigendian=yes else @@ -4230,7 +4353,7 @@ rm -f conftest* if test $ac_cv_c_bigendian = unknown; then cat > conftest.$ac_ext <<EOF -#line 4234 "configure" +#line 4357 "configure" #include "confdefs.h" main () { /* Are we little or big endian? From Harbison&Steele. */ @@ -4243,7 +4366,7 @@ exit (u.c[sizeof (long) - 1] == 1); } EOF -if { (eval echo configure:4247: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4370: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_c_bigendian=no else @@ -4270,10 +4393,10 @@ echo $ac_n "checking size of short""... $ac_c" 1>&6 -echo "configure:4274: checking size of short" >&5 - -cat > conftest.$ac_ext <<EOF -#line 4277 "configure" +echo "configure:4397: checking size of short" >&5 + +cat > conftest.$ac_ext <<EOF +#line 4400 "configure" #include "confdefs.h" #include <stdio.h> main() @@ -4284,7 +4407,7 @@ exit(0); } EOF -if { (eval echo configure:4288: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4411: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_sizeof_short=`cat conftestval` else @@ -4312,10 +4435,10 @@ exit 1 fi echo $ac_n "checking size of int""... $ac_c" 1>&6 -echo "configure:4316: checking size of int" >&5 - -cat > conftest.$ac_ext <<EOF -#line 4319 "configure" +echo "configure:4439: checking size of int" >&5 + +cat > conftest.$ac_ext <<EOF +#line 4442 "configure" #include "confdefs.h" #include <stdio.h> main() @@ -4326,7 +4449,7 @@ exit(0); } EOF -if { (eval echo configure:4330: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4453: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_sizeof_int=`cat conftestval` else @@ -4348,10 +4471,10 @@ echo $ac_n "checking size of long""... $ac_c" 1>&6 -echo "configure:4352: checking size of long" >&5 - -cat > conftest.$ac_ext <<EOF -#line 4355 "configure" +echo "configure:4475: checking size of long" >&5 + +cat > conftest.$ac_ext <<EOF +#line 4478 "configure" #include "confdefs.h" #include <stdio.h> main() @@ -4362,7 +4485,7 @@ exit(0); } EOF -if { (eval echo configure:4366: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_sizeof_long=`cat conftestval` else @@ -4384,10 +4507,10 @@ echo $ac_n "checking size of long long""... $ac_c" 1>&6 -echo "configure:4388: checking size of long long" >&5 - -cat > conftest.$ac_ext <<EOF -#line 4391 "configure" +echo "configure:4511: checking size of long long" >&5 + +cat > conftest.$ac_ext <<EOF +#line 4514 "configure" #include "confdefs.h" #include <stdio.h> main() @@ -4398,7 +4521,7 @@ exit(0); } EOF -if { (eval echo configure:4402: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4525: \"$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 @@ -4420,10 +4543,10 @@ echo $ac_n "checking size of void *""... $ac_c" 1>&6 -echo "configure:4424: checking size of void *" >&5 - -cat > conftest.$ac_ext <<EOF -#line 4427 "configure" +echo "configure:4547: checking size of void *" >&5 + +cat > conftest.$ac_ext <<EOF +#line 4550 "configure" #include "confdefs.h" #include <stdio.h> main() @@ -4434,7 +4557,7 @@ exit(0); } EOF -if { (eval echo configure:4438: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4561: \"$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 @@ -4457,7 +4580,7 @@ echo $ac_n "checking for long file names""... $ac_c" 1>&6 -echo "configure:4461: checking for long file names" >&5 +echo "configure:4584: 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: @@ -4503,10 +4626,10 @@ echo $ac_n "checking for sin""... $ac_c" 1>&6 -echo "configure:4507: checking for sin" >&5 - -cat > conftest.$ac_ext <<EOF -#line 4510 "configure" +echo "configure:4630: checking for sin" >&5 + +cat > conftest.$ac_ext <<EOF +#line 4633 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char sin(); below. */ @@ -4529,7 +4652,7 @@ ; return 0; } EOF -if { (eval echo configure:4533: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4656: \"$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 @@ -4547,12 +4670,12 @@ echo "$ac_t""no" 1>&6 echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6 -echo "configure:4551: checking for sin in -lm" >&5 +echo "configure:4674: checking for sin in -lm" >&5 ac_lib_var=`echo m'_'sin | sed 'y%./+-%__p_%'` xe_check_libs=" -lm " cat > conftest.$ac_ext <<EOF -#line 4556 "configure" +#line 4679 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -4563,7 +4686,7 @@ sin() ; return 0; } EOF -if { (eval echo configure:4567: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4690: \"$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 @@ -4607,14 +4730,14 @@ cat > conftest.$ac_ext <<EOF -#line 4611 "configure" +#line 4734 "configure" #include "confdefs.h" #include <math.h> int main() { return atanh(1.0) + asinh(1.0) + acosh(1.0); ; return 0; } EOF -if { (eval echo configure:4618: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4741: \"$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 @@ -4631,14 +4754,14 @@ rm -f conftest* echo "checking type of mail spool file locking" 1>&6 -echo "configure:4635: checking type of mail spool file locking" >&5 +echo "configure:4758: 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:4639: checking for $ac_func" >&5 - -cat > conftest.$ac_ext <<EOF -#line 4642 "configure" +echo "configure:4762: checking for $ac_func" >&5 + +cat > conftest.$ac_ext <<EOF +#line 4765 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -4661,7 +4784,7 @@ ; return 0; } EOF -if { (eval echo configure:4665: \"$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* eval "ac_cv_func_$ac_func=yes" else @@ -4734,12 +4857,12 @@ case "$opsys" in decosf*) echo $ac_n "checking for cma_open in -lpthreads""... $ac_c" 1>&6 -echo "configure:4738: checking for cma_open in -lpthreads" >&5 +echo "configure:4861: 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 <<EOF -#line 4743 "configure" +#line 4866 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -4750,7 +4873,7 @@ cma_open() ; return 0; } EOF -if { (eval echo configure:4754: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4877: \"$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 @@ -4786,7 +4909,7 @@ esac echo $ac_n "checking whether the -xildoff compiler flag is required""... $ac_c" 1>&6 -echo "configure:4790: checking whether the -xildoff compiler flag is required" >&5 +echo "configure:4913: 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; @@ -4798,7 +4921,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:4802: checking for \"-z ignore\" linker flag" >&5 +echo "configure:4925: 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 ;; @@ -4809,7 +4932,7 @@ echo "checking "for specified window system"" 1>&6 -echo "configure:4813: checking "for specified window system"" >&5 +echo "configure:4936: checking "for specified window system"" >&5 if test "$with_x11" != "no"; then test "$x_includes $x_libraries" != "NONE NONE" && \ @@ -4842,7 +4965,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:4846: checking for X" >&5 +echo "configure:4969: checking for X" >&5 # Check whether --with-x or --without-x was given. if test "${with_x+set}" = set; then @@ -4902,12 +5025,12 @@ # First, try using that file with no special directory specified. cat > conftest.$ac_ext <<EOF -#line 4906 "configure" +#line 5029 "configure" #include "confdefs.h" #include <$x_direct_test_include> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4911: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5034: \"$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* @@ -4976,14 +5099,14 @@ ac_save_LIBS="$LIBS" LIBS="-l$x_direct_test_library $LIBS" cat > conftest.$ac_ext <<EOF -#line 4980 "configure" +#line 5103 "configure" #include "confdefs.h" int main() { ${x_direct_test_function}() ; return 0; } EOF -if { (eval echo configure:4987: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5110: \"$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. @@ -5092,17 +5215,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:5096: checking whether -R must be followed by a space" >&5 +echo "configure:5219: checking whether -R must be followed by a space" >&5 ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries" cat > conftest.$ac_ext <<EOF -#line 5099 "configure" -#include "confdefs.h" - -int main() { - -; return 0; } -EOF -if { (eval echo configure:5106: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +#line 5222 "configure" +#include "confdefs.h" + +int main() { + +; return 0; } +EOF +if { (eval echo configure:5229: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_nospace=yes else @@ -5118,14 +5241,14 @@ else LIBS="$ac_xsave_LIBS -R $x_libraries" cat > conftest.$ac_ext <<EOF -#line 5122 "configure" -#include "confdefs.h" - -int main() { - -; return 0; } -EOF -if { (eval echo configure:5129: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +#line 5245 "configure" +#include "confdefs.h" + +int main() { + +; return 0; } +EOF +if { (eval echo configure:5252: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_space=yes else @@ -5161,12 +5284,12 @@ else echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 -echo "configure:5165: checking for dnet_ntoa in -ldnet" >&5 +echo "configure:5288: 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 <<EOF -#line 5170 "configure" +#line 5293 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -5177,7 +5300,7 @@ dnet_ntoa() ; return 0; } EOF -if { (eval echo configure:5181: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5304: \"$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 @@ -5201,12 +5324,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:5205: checking for dnet_ntoa in -ldnet_stub" >&5 +echo "configure:5328: 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 <<EOF -#line 5210 "configure" +#line 5333 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -5217,7 +5340,7 @@ dnet_ntoa() ; return 0; } EOF -if { (eval echo configure:5221: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5344: \"$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 @@ -5246,10 +5369,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:5250: checking for gethostbyname" >&5 - -cat > conftest.$ac_ext <<EOF -#line 5253 "configure" +echo "configure:5373: checking for gethostbyname" >&5 + +cat > conftest.$ac_ext <<EOF +#line 5376 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char gethostbyname(); below. */ @@ -5272,7 +5395,7 @@ ; return 0; } EOF -if { (eval echo configure:5276: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5399: \"$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 @@ -5293,12 +5416,12 @@ if test $ac_cv_func_gethostbyname = no; then echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 -echo "configure:5297: checking for gethostbyname in -lnsl" >&5 +echo "configure:5420: checking for gethostbyname in -lnsl" >&5 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` xe_check_libs=" -lnsl " cat > conftest.$ac_ext <<EOF -#line 5302 "configure" +#line 5425 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -5309,7 +5432,7 @@ gethostbyname() ; return 0; } EOF -if { (eval echo configure:5313: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5436: \"$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 @@ -5339,10 +5462,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:5343: checking for connect" >&5 - -cat > conftest.$ac_ext <<EOF -#line 5346 "configure" +echo "configure:5466: checking for connect" >&5 + +cat > conftest.$ac_ext <<EOF +#line 5469 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char connect(); below. */ @@ -5365,7 +5488,7 @@ ; return 0; } EOF -if { (eval echo configure:5369: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5492: \"$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 @@ -5388,12 +5511,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:5392: checking "$xe_msg_checking"" >&5 +echo "configure:5515: 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 <<EOF -#line 5397 "configure" +#line 5520 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -5404,7 +5527,7 @@ connect() ; return 0; } EOF -if { (eval echo configure:5408: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5531: \"$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 @@ -5428,10 +5551,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:5432: checking for remove" >&5 - -cat > conftest.$ac_ext <<EOF -#line 5435 "configure" +echo "configure:5555: checking for remove" >&5 + +cat > conftest.$ac_ext <<EOF +#line 5558 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char remove(); below. */ @@ -5454,7 +5577,7 @@ ; return 0; } EOF -if { (eval echo configure:5458: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5581: \"$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 @@ -5475,12 +5598,12 @@ if test $ac_cv_func_remove = no; then echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 -echo "configure:5479: checking for remove in -lposix" >&5 +echo "configure:5602: checking for remove in -lposix" >&5 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'` xe_check_libs=" -lposix " cat > conftest.$ac_ext <<EOF -#line 5484 "configure" +#line 5607 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -5491,7 +5614,7 @@ remove() ; return 0; } EOF -if { (eval echo configure:5495: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5618: \"$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 @@ -5515,10 +5638,10 @@ # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. echo $ac_n "checking for shmat""... $ac_c" 1>&6 -echo "configure:5519: checking for shmat" >&5 - -cat > conftest.$ac_ext <<EOF -#line 5522 "configure" +echo "configure:5642: checking for shmat" >&5 + +cat > conftest.$ac_ext <<EOF +#line 5645 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char shmat(); below. */ @@ -5541,7 +5664,7 @@ ; return 0; } EOF -if { (eval echo configure:5545: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5668: \"$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 @@ -5562,12 +5685,12 @@ if test $ac_cv_func_shmat = no; then echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 -echo "configure:5566: checking for shmat in -lipc" >&5 +echo "configure:5689: checking for shmat in -lipc" >&5 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'` xe_check_libs=" -lipc " cat > conftest.$ac_ext <<EOF -#line 5571 "configure" +#line 5694 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -5578,7 +5701,7 @@ shmat() ; return 0; } EOF -if { (eval echo configure:5582: \"$ac_link\") 1>&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* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5614,12 +5737,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:5618: checking "$xe_msg_checking"" >&5 +echo "configure:5741: 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 <<EOF -#line 5623 "configure" +#line 5746 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -5630,7 +5753,7 @@ IceConnectionNumber() ; return 0; } EOF -if { (eval echo configure:5634: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5757: \"$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,7 +5922,7 @@ echo "checking for X defines extracted by xmkmf" 1>&6 -echo "configure:5803: checking for X defines extracted by xmkmf" >&5 +echo "configure:5926: checking for X defines extracted by xmkmf" >&5 rm -fr conftestdir if mkdir conftestdir; then cd conftestdir @@ -5831,15 +5954,15 @@ ac_safe=`echo "X11/Intrinsic.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Intrinsic.h""... $ac_c" 1>&6 -echo "configure:5835: checking for X11/Intrinsic.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 5838 "configure" +echo "configure:5958: checking for X11/Intrinsic.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 5961 "configure" #include "confdefs.h" #include <X11/Intrinsic.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5843: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5966: \"$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* @@ -5863,12 +5986,12 @@ echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6 -echo "configure:5867: checking for XOpenDisplay in -lX11" >&5 +echo "configure:5990: checking for XOpenDisplay in -lX11" >&5 ac_lib_var=`echo X11'_'XOpenDisplay | sed 'y%./+-%__p_%'` xe_check_libs=" -lX11 " cat > conftest.$ac_ext <<EOF -#line 5872 "configure" +#line 5995 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -5879,7 +6002,7 @@ XOpenDisplay() ; return 0; } EOF -if { (eval echo configure:5883: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6006: \"$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 @@ -5904,12 +6027,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:5908: checking "$xe_msg_checking"" >&5 +echo "configure:6031: checking "$xe_msg_checking"" >&5 ac_lib_var=`echo X11'_'XGetFontProperty | sed 'y%./+-%__p_%'` xe_check_libs=" -lX11 -b i486-linuxaout" cat > conftest.$ac_ext <<EOF -#line 5913 "configure" +#line 6036 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -5920,7 +6043,7 @@ XGetFontProperty() ; return 0; } EOF -if { (eval echo configure:5924: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6047: \"$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 @@ -5947,12 +6070,12 @@ echo $ac_n "checking for XShapeSelectInput in -lXext""... $ac_c" 1>&6 -echo "configure:5951: checking for XShapeSelectInput in -lXext" >&5 +echo "configure:6074: checking for XShapeSelectInput in -lXext" >&5 ac_lib_var=`echo Xext'_'XShapeSelectInput | sed 'y%./+-%__p_%'` xe_check_libs=" -lXext " cat > conftest.$ac_ext <<EOF -#line 5956 "configure" +#line 6079 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -5963,7 +6086,7 @@ XShapeSelectInput() ; return 0; } EOF -if { (eval echo configure:5967: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6090: \"$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 @@ -5986,12 +6109,12 @@ echo $ac_n "checking for XtOpenDisplay in -lXt""... $ac_c" 1>&6 -echo "configure:5990: checking for XtOpenDisplay in -lXt" >&5 +echo "configure:6113: checking for XtOpenDisplay in -lXt" >&5 ac_lib_var=`echo Xt'_'XtOpenDisplay | sed 'y%./+-%__p_%'` xe_check_libs=" -lXt " cat > conftest.$ac_ext <<EOF -#line 5995 "configure" +#line 6118 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -6002,7 +6125,7 @@ XtOpenDisplay() ; return 0; } EOF -if { (eval echo configure:6006: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6129: \"$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 @@ -6025,14 +6148,14 @@ echo $ac_n "checking the version of X11 being used""... $ac_c" 1>&6 -echo "configure:6029: checking the version of X11 being used" >&5 +echo "configure:6152: checking the version of X11 being used" >&5 cat > conftest.$ac_ext <<EOF -#line 6031 "configure" +#line 6154 "configure" #include "confdefs.h" #include <X11/Intrinsic.h> int main(int c, char *v[]) { return c>1 ? XlibSpecificationRelease : 0; } EOF -if { (eval echo configure:6036: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:6159: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ./conftest foobar; x11_release=$? else @@ -6056,10 +6179,10 @@ for ac_func in XConvertCase do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6060: checking for $ac_func" >&5 - -cat > conftest.$ac_ext <<EOF -#line 6063 "configure" +echo "configure:6183: checking for $ac_func" >&5 + +cat > conftest.$ac_ext <<EOF +#line 6186 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6082,7 +6205,7 @@ ; return 0; } EOF -if { (eval echo configure:6086: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6209: \"$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 @@ -6114,15 +6237,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:6118: checking for $ac_hdr" >&5 - -cat > conftest.$ac_ext <<EOF -#line 6121 "configure" +echo "configure:6241: checking for $ac_hdr" >&5 + +cat > conftest.$ac_ext <<EOF +#line 6244 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6126: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6249: \"$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* @@ -6153,7 +6276,7 @@ echo $ac_n "checking for XFree86""... $ac_c" 1>&6 -echo "configure:6157: checking for XFree86" >&5 +echo "configure:6280: checking for XFree86" >&5 if test -d "/usr/X386/include" -o \ -f "/etc/XF86Config" -o \ -f "/etc/X11/XF86Config" -o \ @@ -6173,12 +6296,12 @@ test -z "$with_xmu" && { echo $ac_n "checking for XmuReadBitmapDataFromFile in -lXmu""... $ac_c" 1>&6 -echo "configure:6177: checking for XmuReadBitmapDataFromFile in -lXmu" >&5 +echo "configure:6300: checking for XmuReadBitmapDataFromFile in -lXmu" >&5 ac_lib_var=`echo Xmu'_'XmuReadBitmapDataFromFile | sed 'y%./+-%__p_%'` xe_check_libs=" -lXmu " cat > conftest.$ac_ext <<EOF -#line 6182 "configure" +#line 6305 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -6189,7 +6312,7 @@ XmuReadBitmapDataFromFile() ; return 0; } EOF -if { (eval echo configure:6193: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6316: \"$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 @@ -6228,19 +6351,19 @@ echo $ac_n "checking for main in -lXbsd""... $ac_c" 1>&6 -echo "configure:6232: checking for main in -lXbsd" >&5 +echo "configure:6355: checking for main in -lXbsd" >&5 ac_lib_var=`echo Xbsd'_'main | sed 'y%./+-%__p_%'` xe_check_libs=" -lXbsd " cat > conftest.$ac_ext <<EOF -#line 6237 "configure" +#line 6360 "configure" #include "confdefs.h" int main() { main() ; return 0; } EOF -if { (eval echo configure:6244: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6367: \"$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 @@ -6277,22 +6400,22 @@ fi if test "$with_msw" != "no"; then echo "checking for MS-Windows" 1>&6 -echo "configure:6281: checking for MS-Windows" >&5 +echo "configure:6404: checking for MS-Windows" >&5 echo $ac_n "checking for main in -lgdi32""... $ac_c" 1>&6 -echo "configure:6284: checking for main in -lgdi32" >&5 +echo "configure:6407: checking for main in -lgdi32" >&5 ac_lib_var=`echo gdi32'_'main | sed 'y%./+-%__p_%'` xe_check_libs=" -lgdi32 " cat > conftest.$ac_ext <<EOF -#line 6289 "configure" +#line 6412 "configure" #include "confdefs.h" int main() { main() ; return 0; } EOF -if { (eval echo configure:6296: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6419: \"$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 @@ -6358,12 +6481,12 @@ fi fi cat > conftest.$ac_ext <<EOF -#line 6362 "configure" +#line 6485 "configure" #include "confdefs.h" #include <fcntl.h> int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; } EOF -if { (eval echo configure:6367: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:6490: \"$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 @@ -6438,7 +6561,7 @@ esac echo "checking for WM_COMMAND option" 1>&6 -echo "configure:6442: checking for WM_COMMAND option" >&5; +echo "configure:6565: checking for WM_COMMAND option" >&5; if test "$with_wmcommand" != "no"; then { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_WMCOMMAND @@ -6453,15 +6576,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:6457: checking for X11/Xauth.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 6460 "configure" +echo "configure:6580: checking for X11/Xauth.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 6583 "configure" #include "confdefs.h" #include <X11/Xauth.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6465: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6588: \"$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* @@ -6484,12 +6607,12 @@ } test -z "$with_xauth" && { echo $ac_n "checking for XauGetAuthByAddr in -lXau""... $ac_c" 1>&6 -echo "configure:6488: checking for XauGetAuthByAddr in -lXau" >&5 +echo "configure:6611: checking for XauGetAuthByAddr in -lXau" >&5 ac_lib_var=`echo Xau'_'XauGetAuthByAddr | sed 'y%./+-%__p_%'` xe_check_libs=" -lXau " cat > conftest.$ac_ext <<EOF -#line 6493 "configure" +#line 6616 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -6500,7 +6623,7 @@ XauGetAuthByAddr() ; return 0; } EOF -if { (eval echo configure:6504: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6627: \"$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 @@ -6545,15 +6668,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:6549: checking for ${dir}tt_c.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 6552 "configure" +echo "configure:6672: checking for ${dir}tt_c.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 6675 "configure" #include "confdefs.h" #include <${dir}tt_c.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6557: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6680: \"$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* @@ -6568,13 +6691,13 @@ rm -f conftest* if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 - tt_c_h_path="${dir}tt_c.h"; break + tt_c_h_file="${dir}tt_c.h"; break else echo "$ac_t""no" 1>&6 fi done - if test -z "$tt_c_h_path"; then + if test -z "$tt_c_h_file"; then if test "$with_tooltalk" = "yes"; then (echo "$progname: Usage error:" echo " " "Unable to find required tooltalk header files." @@ -6589,12 +6712,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:6593: checking "$xe_msg_checking"" >&5 +echo "configure:6716: checking "$xe_msg_checking"" >&5 ac_lib_var=`echo tt'_'tt_message_create | sed 'y%./+-%__p_%'` xe_check_libs=" -ltt $extra_libs" cat > conftest.$ac_ext <<EOF -#line 6598 "configure" +#line 6721 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -6605,7 +6728,7 @@ tt_message_create() ; return 0; } EOF -if { (eval echo configure:6609: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6732: \"$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 @@ -6647,10 +6770,10 @@ } { test "$extra_verbose" = "yes" && cat << EOF - Defining TT_C_H_PATH = "$tt_c_h_path" + Defining TT_C_H_FILE = "$tt_c_h_file" EOF cat >> confdefs.h <<EOF -#define TT_C_H_PATH "$tt_c_h_path" +#define TT_C_H_FILE "$tt_c_h_file" EOF } @@ -6662,15 +6785,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:6666: checking for Dt/Dt.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 6669 "configure" +echo "configure:6789: checking for Dt/Dt.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 6792 "configure" #include "confdefs.h" #include <Dt/Dt.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6674: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6797: \"$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* @@ -6693,12 +6816,12 @@ } test -z "$with_cde" && { echo $ac_n "checking for DtDndDragStart in -lDtSvc""... $ac_c" 1>&6 -echo "configure:6697: checking for DtDndDragStart in -lDtSvc" >&5 +echo "configure:6820: checking for DtDndDragStart in -lDtSvc" >&5 ac_lib_var=`echo DtSvc'_'DtDndDragStart | sed 'y%./+-%__p_%'` xe_check_libs=" -lDtSvc " cat > conftest.$ac_ext <<EOF -#line 6702 "configure" +#line 6825 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -6709,7 +6832,7 @@ DtDndDragStart() ; return 0; } EOF -if { (eval echo configure:6713: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6836: \"$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 @@ -6778,7 +6901,7 @@ fi echo $ac_n "checking if drag and drop API is needed""... $ac_c" 1>&6 -echo "configure:6782: checking if drag and drop API is needed" >&5 +echo "configure:6905: checking if drag and drop API is needed" >&5 if test "$with_dragndrop" != "no" ; then if test -n "$dragndrop_proto" ; then with_dragndrop=yes @@ -6799,18 +6922,18 @@ fi echo "checking for LDAP" 1>&6 -echo "configure:6803: checking for LDAP" >&5 +echo "configure:6926: 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:6806: checking for ldap.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 6809 "configure" +echo "configure:6929: checking for ldap.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 6932 "configure" #include "confdefs.h" #include <ldap.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6814: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6937: \"$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* @@ -6833,15 +6956,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:6837: checking for lber.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 6840 "configure" +echo "configure:6960: checking for lber.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 6963 "configure" #include "confdefs.h" #include <lber.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6845: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6968: \"$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* @@ -6865,12 +6988,12 @@ if test "$with_ldap" != "no"; then echo $ac_n "checking for ldap_search in -lldap""... $ac_c" 1>&6 -echo "configure:6869: checking for ldap_search in -lldap" >&5 +echo "configure:6992: checking for ldap_search in -lldap" >&5 ac_lib_var=`echo ldap'_'ldap_search | sed 'y%./+-%__p_%'` xe_check_libs=" -lldap " cat > conftest.$ac_ext <<EOF -#line 6874 "configure" +#line 6997 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -6881,7 +7004,7 @@ ldap_search() ; return 0; } EOF -if { (eval echo configure:6885: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7008: \"$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 @@ -6906,12 +7029,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:6910: checking "$xe_msg_checking"" >&5 +echo "configure:7033: checking "$xe_msg_checking"" >&5 ac_lib_var=`echo ldap'_'ldap_open | sed 'y%./+-%__p_%'` xe_check_libs=" -lldap -llber" cat > conftest.$ac_ext <<EOF -#line 6915 "configure" +#line 7038 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -6922,7 +7045,7 @@ ldap_open() ; return 0; } EOF -if { (eval echo configure:6926: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7049: \"$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 @@ -6947,12 +7070,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:6951: checking "$xe_msg_checking"" >&5 +echo "configure:7074: checking "$xe_msg_checking"" >&5 ac_lib_var=`echo ldap'_'ldap_open | sed 'y%./+-%__p_%'` xe_check_libs=" -lldap -llber -lkrb" cat > conftest.$ac_ext <<EOF -#line 6956 "configure" +#line 7079 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -6963,7 +7086,7 @@ ldap_open() ; return 0; } EOF -if { (eval echo configure:6967: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7090: \"$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 @@ -6988,12 +7111,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:6992: checking "$xe_msg_checking"" >&5 +echo "configure:7115: checking "$xe_msg_checking"" >&5 ac_lib_var=`echo ldap'_'ldap_open | sed 'y%./+-%__p_%'` xe_check_libs=" -lldap -llber -lkrb -ldes" cat > conftest.$ac_ext <<EOF -#line 6997 "configure" +#line 7120 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -7004,7 +7127,7 @@ ldap_open() ; return 0; } EOF -if { (eval echo configure:7008: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7131: \"$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 @@ -7055,10 +7178,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:7059: checking for $ac_func" >&5 - -cat > conftest.$ac_ext <<EOF -#line 7062 "configure" +echo "configure:7182: checking for $ac_func" >&5 + +cat > conftest.$ac_ext <<EOF +#line 7185 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -7081,7 +7204,7 @@ ; return 0; } EOF -if { (eval echo configure:7085: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7208: \"$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 @@ -7111,21 +7234,23 @@ fi echo "checking for PostgreSQL" 1>&6 -echo "configure:7115: checking for PostgreSQL" >&5 +echo "configure:7238: checking for PostgreSQL" >&5 +postgres_h_path="" postgres_includes_found=no save_c_switch_site="$c_switch_site" + if test "$with_postgresql" != "no"; then ac_safe=`echo "libpq-fe.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for libpq-fe.h""... $ac_c" 1>&6 -echo "configure:7121: checking for libpq-fe.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 7124 "configure" +echo "configure:7246: checking for libpq-fe.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 7249 "configure" #include "confdefs.h" #include <libpq-fe.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7129: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7254: \"$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* @@ -7146,20 +7271,21 @@ fi fi + if test "$postgres_includes_found" = "no" -a "$with_postgresql" != "no" -a \ - -d "/usr/include/pgsql"; then - c_switch_site="$c_switch_site -I/usr/include/pgsql" + -d "/usr/local/pgsql/include"; then + c_switch_site="$c_switch_site -I/usr/local/pgsql/include" ac_safe=`echo "libpq-fe.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for libpq-fe.h""... $ac_c" 1>&6 -echo "configure:7155: checking for libpq-fe.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 7158 "configure" +echo "configure:7281: checking for libpq-fe.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 7284 "configure" #include "confdefs.h" #include <libpq-fe.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7163: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7289: \"$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* @@ -7180,23 +7306,24 @@ fi if test "$postgres_includes_found" != "yes"; then - c_switch_site="$save_c_switch_site" + postgres_h_path="/usr/local/pgsql/include" fi + c_switch_site="$save_c_switch_site" fi if test "$postgres_includes_found" = "no" -a "$with_postgresql" != "no" -a \ - -d "/usr/local/pgsql/include"; then - c_switch_site="$c_switch_site -I/usr/local/pgsql/include" + -d "/usr/include/pgsql"; then + c_switch_site="$c_switch_site -I/usr/include/pgsql" ac_safe=`echo "libpq-fe.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for libpq-fe.h""... $ac_c" 1>&6 -echo "configure:7192: checking for libpq-fe.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 7195 "configure" +echo "configure:7319: checking for libpq-fe.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 7322 "configure" #include "confdefs.h" #include <libpq-fe.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7200: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7327: \"$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* @@ -7216,20 +7343,59 @@ echo "$ac_t""no" 1>&6 fi - if test "$postgres_includes_found" != "yes"; then + if test "$postgres_includes_found" = "yes"; then + postgres_h_path="pgsql" + fi c_switch_site="$save_c_switch_site" fi +if test "$postgres_includes_found" = "no" -a "$with_postgresql" != "no" -a \ + -d "/usr/include/postgresql"; then + c_switch_site="$c_switch_site -I/usr/include/postgresql" + ac_safe=`echo "libpq-fe.h" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for libpq-fe.h""... $ac_c" 1>&6 +echo "configure:7357: checking for libpq-fe.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 7360 "configure" +#include "confdefs.h" +#include <libpq-fe.h> +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:7365: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + postgres_includes_found=yes +else + echo "$ac_t""no" 1>&6 +fi + + if test "$postgres_includes_found" = "yes"; then + postgres_h_path="postgresql" +fi + c_switch_site="$save_c_switch_site" fi if test "$postgres_includes_found" = "yes"; then echo $ac_n "checking for PQconnectdb in -lpq""... $ac_c" 1>&6 -echo "configure:7228: checking for PQconnectdb in -lpq" >&5 +echo "configure:7394: checking for PQconnectdb in -lpq" >&5 ac_lib_var=`echo pq'_'PQconnectdb | sed 'y%./+-%__p_%'` xe_check_libs=" -lpq " cat > conftest.$ac_ext <<EOF -#line 7233 "configure" +#line 7399 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -7240,7 +7406,7 @@ PQconnectdb() ; return 0; } EOF -if { (eval echo configure:7244: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7410: \"$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 @@ -7265,12 +7431,12 @@ if test "$with_postgresql" = "yes"; then echo $ac_n "checking for PQconnectStart in -lpq""... $ac_c" 1>&6 -echo "configure:7269: checking for PQconnectStart in -lpq" >&5 +echo "configure:7435: checking for PQconnectStart in -lpq" >&5 ac_lib_var=`echo pq'_'PQconnectStart | sed 'y%./+-%__p_%'` xe_check_libs=" -lpq " cat > conftest.$ac_ext <<EOF -#line 7274 "configure" +#line 7440 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -7281,7 +7447,7 @@ PQconnectStart() ; return 0; } EOF -if { (eval echo configure:7285: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7451: \"$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 @@ -7304,6 +7470,16 @@ fi if test "$with_postgresql" = "yes"; then + if test -n "$postgres_h_path"; then + { test "$extra_verbose" = "yes" && cat << EOF + Defining POSTGRES_H_PATH = $postgres_h_path +EOF +cat >> confdefs.h <<EOF +#define POSTGRES_H_PATH $postgres_h_path +EOF +} + + fi { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_POSTGRESQL EOF @@ -7326,22 +7502,20 @@ extra_objs="$extra_objs postgresql.o" && if test "$extra_verbose" = "yes"; then echo " xemacs will be linked with \"postgresql.o\"" fi -else - c_switch_site=$save_c_switch_site fi if test "$window_system" != "none"; then echo "checking for graphics libraries" 1>&6 -echo "configure:7337: checking for graphics libraries" >&5 +echo "configure:7511: 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:7342: checking for Xpm - no older than 3.4f" >&5 +echo "configure:7516: checking for Xpm - no older than 3.4f" >&5 xe_check_libs=-lXpm cat > conftest.$ac_ext <<EOF -#line 7345 "configure" +#line 7519 "configure" #include "confdefs.h" #define XPM_NUMBERS #include <X11/xpm.h> @@ -7350,7 +7524,7 @@ XpmIncludeVersion != XpmLibraryVersion() ? 1 : XpmIncludeVersion < 30406 ? 2 : 0 ;} EOF -if { (eval echo configure:7354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:7528: \"$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 @@ -7392,17 +7566,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:7396: checking for \"FOR_MSW\" xpm" >&5 +echo "configure:7570: checking for \"FOR_MSW\" xpm" >&5 xe_check_libs=-lXpm cat > conftest.$ac_ext <<EOF -#line 7399 "configure" +#line 7573 "configure" #include "confdefs.h" int main() { XpmCreatePixmapFromData() ; return 0; } EOF -if { (eval echo configure:7406: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7580: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* xpm_for_msw=no else @@ -7428,15 +7602,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:7432: checking for compface.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 7435 "configure" +echo "configure:7606: checking for compface.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 7609 "configure" #include "confdefs.h" #include <compface.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7440: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7614: \"$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* @@ -7459,12 +7633,12 @@ } test -z "$with_xface" && { echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6 -echo "configure:7463: checking for UnGenFace in -lcompface" >&5 +echo "configure:7637: checking for UnGenFace in -lcompface" >&5 ac_lib_var=`echo compface'_'UnGenFace | sed 'y%./+-%__p_%'` xe_check_libs=" -lcompface " cat > conftest.$ac_ext <<EOF -#line 7468 "configure" +#line 7642 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -7475,7 +7649,7 @@ UnGenFace() ; return 0; } EOF -if { (eval echo configure:7479: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7653: \"$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 @@ -7527,12 +7701,12 @@ if test "$with_png $with_tiff" != "no no"; then echo $ac_n "checking for inflate in -lc""... $ac_c" 1>&6 -echo "configure:7531: checking for inflate in -lc" >&5 +echo "configure:7705: checking for inflate in -lc" >&5 ac_lib_var=`echo c'_'inflate | sed 'y%./+-%__p_%'` xe_check_libs=" -lc " cat > conftest.$ac_ext <<EOF -#line 7536 "configure" +#line 7710 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -7543,7 +7717,7 @@ inflate() ; return 0; } EOF -if { (eval echo configure:7547: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7721: \"$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 @@ -7562,12 +7736,12 @@ echo "$ac_t""no" 1>&6 echo $ac_n "checking for inflate in -lz""... $ac_c" 1>&6 -echo "configure:7566: checking for inflate in -lz" >&5 +echo "configure:7740: checking for inflate in -lz" >&5 ac_lib_var=`echo z'_'inflate | sed 'y%./+-%__p_%'` xe_check_libs=" -lz " cat > conftest.$ac_ext <<EOF -#line 7571 "configure" +#line 7745 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -7578,7 +7752,7 @@ inflate() ; return 0; } EOF -if { (eval echo configure:7582: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7756: \"$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 @@ -7597,12 +7771,12 @@ echo "$ac_t""no" 1>&6 echo $ac_n "checking for inflate in -lgz""... $ac_c" 1>&6 -echo "configure:7601: checking for inflate in -lgz" >&5 +echo "configure:7775: checking for inflate in -lgz" >&5 ac_lib_var=`echo gz'_'inflate | sed 'y%./+-%__p_%'` xe_check_libs=" -lgz " cat > conftest.$ac_ext <<EOF -#line 7606 "configure" +#line 7780 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -7613,7 +7787,7 @@ inflate() ; return 0; } EOF -if { (eval echo configure:7617: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7791: \"$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 @@ -7643,15 +7817,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:7647: checking for jpeglib.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 7650 "configure" +echo "configure:7821: checking for jpeglib.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 7824 "configure" #include "confdefs.h" #include <jpeglib.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7655: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7829: \"$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* @@ -7674,12 +7848,12 @@ } test -z "$with_jpeg" && { echo $ac_n "checking for jpeg_destroy_decompress in -ljpeg""... $ac_c" 1>&6 -echo "configure:7678: checking for jpeg_destroy_decompress in -ljpeg" >&5 +echo "configure:7852: checking for jpeg_destroy_decompress in -ljpeg" >&5 ac_lib_var=`echo jpeg'_'jpeg_destroy_decompress | sed 'y%./+-%__p_%'` xe_check_libs=" -ljpeg " cat > conftest.$ac_ext <<EOF -#line 7683 "configure" +#line 7857 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -7690,7 +7864,7 @@ jpeg_destroy_decompress() ; return 0; } EOF -if { (eval echo configure:7694: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7868: \"$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 @@ -7726,10 +7900,10 @@ png_problem="" test -z "$with_png" && { echo $ac_n "checking for pow""... $ac_c" 1>&6 -echo "configure:7730: checking for pow" >&5 - -cat > conftest.$ac_ext <<EOF -#line 7733 "configure" +echo "configure:7904: checking for pow" >&5 + +cat > conftest.$ac_ext <<EOF +#line 7907 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char pow(); below. */ @@ -7752,7 +7926,7 @@ ; return 0; } EOF -if { (eval echo configure:7756: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7930: \"$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 @@ -7773,15 +7947,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:7777: checking for png.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 7780 "configure" +echo "configure:7951: checking for png.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 7954 "configure" #include "confdefs.h" #include <png.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7785: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7959: \"$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* @@ -7804,12 +7978,12 @@ } test -z "$with_png" && { echo $ac_n "checking for png_read_image in -lpng""... $ac_c" 1>&6 -echo "configure:7808: checking for png_read_image in -lpng" >&5 +echo "configure:7982: checking for png_read_image in -lpng" >&5 ac_lib_var=`echo png'_'png_read_image | sed 'y%./+-%__p_%'` xe_check_libs=" -lpng " cat > conftest.$ac_ext <<EOF -#line 7813 "configure" +#line 7987 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -7820,7 +7994,7 @@ png_read_image() ; return 0; } EOF -if { (eval echo configure:7824: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7998: \"$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 @@ -7843,10 +8017,10 @@ } if test -z "$with_png"; then echo $ac_n "checking for workable png version information""... $ac_c" 1>&6 -echo "configure:7847: checking for workable png version information" >&5 +echo "configure:8021: checking for workable png version information" >&5 xe_check_libs="-lpng -lz" cat > conftest.$ac_ext <<EOF -#line 7850 "configure" +#line 8024 "configure" #include "confdefs.h" #include <png.h> int main(int c, char **v) { @@ -7854,7 +8028,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:7858: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:8032: \"$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 @@ -7897,15 +8071,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:7901: checking for tiffio.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 7904 "configure" +echo "configure:8075: checking for tiffio.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 8078 "configure" #include "confdefs.h" #include <tiffio.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7909: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8083: \"$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* @@ -7928,12 +8102,12 @@ } test -z "$with_tiff" && { echo $ac_n "checking for TIFFClientOpen in -ltiff""... $ac_c" 1>&6 -echo "configure:7932: checking for TIFFClientOpen in -ltiff" >&5 +echo "configure:8106: checking for TIFFClientOpen in -ltiff" >&5 ac_lib_var=`echo tiff'_'TIFFClientOpen | sed 'y%./+-%__p_%'` xe_check_libs=" -ltiff " cat > conftest.$ac_ext <<EOF -#line 7937 "configure" +#line 8111 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -7944,7 +8118,7 @@ TIFFClientOpen() ; return 0; } EOF -if { (eval echo configure:7948: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8122: \"$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 @@ -7983,10 +8157,10 @@ if test "$with_x11" = "yes"; then echo "checking for X11 graphics libraries" 1>&6 -echo "configure:7987: checking for X11 graphics libraries" >&5 +echo "configure:8161: checking for X11 graphics libraries" >&5 echo "checking for the Athena widgets" 1>&6 -echo "configure:7990: checking for the Athena widgets" >&5 +echo "configure:8164: checking for the Athena widgets" >&5 case "$with_athena" in "xaw" | "") athena_variant=Xaw athena_3d=no ;; @@ -8000,12 +8174,12 @@ if test "$athena_3d" = "no"; then echo $ac_n "checking for XawScrollbarSetThumb in -l$athena_variant""... $ac_c" 1>&6 -echo "configure:8004: checking for XawScrollbarSetThumb in -l$athena_variant" >&5 +echo "configure:8178: 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 <<EOF -#line 8009 "configure" +#line 8183 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -8016,7 +8190,7 @@ XawScrollbarSetThumb() ; return 0; } EOF -if { (eval echo configure:8020: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8194: \"$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 @@ -8032,12 +8206,12 @@ echo "$ac_t""yes" 1>&6 echo $ac_n "checking for threeDClassRec in -l$athena_variant""... $ac_c" 1>&6 -echo "configure:8036: checking for threeDClassRec in -l$athena_variant" >&5 +echo "configure:8210: 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 <<EOF -#line 8041 "configure" +#line 8215 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -8048,7 +8222,7 @@ threeDClassRec() ; return 0; } EOF -if { (eval echo configure:8052: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8226: \"$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 @@ -8079,12 +8253,12 @@ else echo $ac_n "checking for threeDClassRec in -l$athena_variant""... $ac_c" 1>&6 -echo "configure:8083: checking for threeDClassRec in -l$athena_variant" >&5 +echo "configure:8257: 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 <<EOF -#line 8088 "configure" +#line 8262 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -8095,7 +8269,7 @@ threeDClassRec() ; return 0; } EOF -if { (eval echo configure:8099: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8273: \"$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 @@ -8113,12 +8287,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for threeDClassRec in -lXaw""... $ac_c" 1>&6 -echo "configure:8117: checking for threeDClassRec in -lXaw" >&5 +echo "configure:8291: checking for threeDClassRec in -lXaw" >&5 ac_lib_var=`echo Xaw'_'threeDClassRec | sed 'y%./+-%__p_%'` xe_check_libs=" -lXaw " cat > conftest.$ac_ext <<EOF -#line 8122 "configure" +#line 8296 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -8129,7 +8303,7 @@ threeDClassRec() ; return 0; } EOF -if { (eval echo configure:8133: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8307: \"$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 @@ -8160,15 +8334,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:8164: checking for X11/Xaw/ThreeD.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 8167 "configure" +echo "configure:8338: checking for X11/Xaw/ThreeD.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 8341 "configure" #include "confdefs.h" #include <X11/Xaw/ThreeD.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8172: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8346: \"$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* @@ -8188,15 +8362,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:8192: checking for X11/Xaw/XawInit.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 8195 "configure" +echo "configure:8366: checking for X11/Xaw/XawInit.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 8369 "configure" #include "confdefs.h" #include <X11/Xaw/XawInit.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8200: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8374: \"$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* @@ -8222,15 +8396,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:8226: checking for X11/$athena_variant/XawInit.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 8229 "configure" +echo "configure:8400: checking for X11/$athena_variant/XawInit.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 8403 "configure" #include "confdefs.h" #include <X11/$athena_variant/XawInit.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8234: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8408: \"$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* @@ -8247,15 +8421,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:8251: checking for X11/$athena_variant/ThreeD.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 8254 "configure" +echo "configure:8425: checking for X11/$athena_variant/ThreeD.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 8428 "configure" #include "confdefs.h" #include <X11/$athena_variant/ThreeD.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8259: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8433: \"$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* @@ -8283,15 +8457,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:8287: checking for $athena_variant/XawInit.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 8290 "configure" +echo "configure:8461: checking for $athena_variant/XawInit.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 8464 "configure" #include "confdefs.h" #include <$athena_variant/XawInit.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8295: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8469: \"$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* @@ -8308,15 +8482,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:8312: checking for $athena_variant/ThreeD.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 8315 "configure" +echo "configure:8486: checking for $athena_variant/ThreeD.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 8489 "configure" #include "confdefs.h" #include <$athena_variant/ThreeD.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8320: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8494: \"$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* @@ -8345,15 +8519,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:8349: checking for X11/Xaw3d/XawInit.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 8352 "configure" +echo "configure:8523: checking for X11/Xaw3d/XawInit.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 8526 "configure" #include "confdefs.h" #include <X11/Xaw3d/XawInit.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8357: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8531: \"$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* @@ -8370,15 +8544,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:8374: checking for X11/Xaw3d/ThreeD.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 8377 "configure" +echo "configure:8548: checking for X11/Xaw3d/ThreeD.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 8551 "configure" #include "confdefs.h" #include <X11/Xaw3d/ThreeD.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8382: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8556: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -8410,15 +8584,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:8414: checking for Xaw3d/XawInit.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 8417 "configure" +echo "configure:8588: checking for Xaw3d/XawInit.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 8591 "configure" #include "confdefs.h" #include <Xaw3d/XawInit.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8422: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8596: \"$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* @@ -8435,15 +8609,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:8439: checking for Xaw3d/ThreeD.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 8442 "configure" +echo "configure:8613: checking for Xaw3d/ThreeD.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 8616 "configure" #include "confdefs.h" #include <Xaw3d/ThreeD.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8447: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8621: \"$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* @@ -8475,15 +8649,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:8479: checking for X11/Xaw/ThreeD.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 8482 "configure" +echo "configure:8653: checking for X11/Xaw/ThreeD.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 8656 "configure" #include "confdefs.h" #include <X11/Xaw/ThreeD.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8487: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8661: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -8518,15 +8692,15 @@ ac_safe=`echo "Xm/Xm.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for Xm/Xm.h""... $ac_c" 1>&6 -echo "configure:8522: checking for Xm/Xm.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 8525 "configure" +echo "configure:8696: checking for Xm/Xm.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 8699 "configure" #include "confdefs.h" #include <Xm/Xm.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8530: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8704: \"$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* @@ -8543,12 +8717,12 @@ echo "$ac_t""yes" 1>&6 echo $ac_n "checking for XmStringFree in -lXm""... $ac_c" 1>&6 -echo "configure:8547: checking for XmStringFree in -lXm" >&5 +echo "configure:8721: checking for XmStringFree in -lXm" >&5 ac_lib_var=`echo Xm'_'XmStringFree | sed 'y%./+-%__p_%'` xe_check_libs=" -lXm " cat > conftest.$ac_ext <<EOF -#line 8552 "configure" +#line 8726 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -8559,7 +8733,7 @@ XmStringFree() ; return 0; } EOF -if { (eval echo configure:8563: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8737: \"$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 @@ -8588,9 +8762,9 @@ if test "$have_motif" = "yes"; then echo $ac_n "checking for Lesstif""... $ac_c" 1>&6 -echo "configure:8592: checking for Lesstif" >&5 +echo "configure:8766: checking for Lesstif" >&5 cat > conftest.$ac_ext <<EOF -#line 8594 "configure" +#line 8768 "configure" #include "confdefs.h" #include <Xm/Xm.h> #ifdef LESSTIF_VERSION @@ -8923,7 +9097,7 @@ if test "$with_mule" = "yes" ; then echo "checking for Mule-related features" 1>&6 -echo "configure:8927: checking for Mule-related features" >&5 +echo "configure:9101: checking for Mule-related features" >&5 { test "$extra_verbose" = "yes" && cat << \EOF Defining MULE EOF @@ -8948,15 +9122,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:8952: checking for $ac_hdr" >&5 - -cat > conftest.$ac_ext <<EOF -#line 8955 "configure" +echo "configure:9126: checking for $ac_hdr" >&5 + +cat > conftest.$ac_ext <<EOF +#line 9129 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8960: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9134: \"$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* @@ -8987,12 +9161,12 @@ echo $ac_n "checking for strerror in -lintl""... $ac_c" 1>&6 -echo "configure:8991: checking for strerror in -lintl" >&5 +echo "configure:9165: checking for strerror in -lintl" >&5 ac_lib_var=`echo intl'_'strerror | sed 'y%./+-%__p_%'` xe_check_libs=" -lintl " cat > conftest.$ac_ext <<EOF -#line 8996 "configure" +#line 9170 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -9003,7 +9177,7 @@ strerror() ; return 0; } EOF -if { (eval echo configure:9007: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9181: \"$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 @@ -9036,18 +9210,18 @@ echo "checking for Mule input methods" 1>&6 -echo "configure:9040: checking for Mule input methods" >&5 +echo "configure:9214: checking for Mule input methods" >&5 case "$with_xim" in "" | "yes" ) echo "checking for XIM" 1>&6 -echo "configure:9043: checking for XIM" >&5 +echo "configure:9217: checking for XIM" >&5 echo $ac_n "checking for XOpenIM in -lX11""... $ac_c" 1>&6 -echo "configure:9046: checking for XOpenIM in -lX11" >&5 +echo "configure:9220: checking for XOpenIM in -lX11" >&5 ac_lib_var=`echo X11'_'XOpenIM | sed 'y%./+-%__p_%'` xe_check_libs=" -lX11 " cat > conftest.$ac_ext <<EOF -#line 9051 "configure" +#line 9225 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -9058,7 +9232,7 @@ XOpenIM() ; return 0; } EOF -if { (eval echo configure:9062: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9236: \"$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 @@ -9082,12 +9256,12 @@ if test "$have_motif $have_lesstif" = "yes no"; then echo $ac_n "checking for XmImMbLookupString in -lXm""... $ac_c" 1>&6 -echo "configure:9086: checking for XmImMbLookupString in -lXm" >&5 +echo "configure:9260: checking for XmImMbLookupString in -lXm" >&5 ac_lib_var=`echo Xm'_'XmImMbLookupString | sed 'y%./+-%__p_%'` xe_check_libs=" -lXm " cat > conftest.$ac_ext <<EOF -#line 9091 "configure" +#line 9265 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -9098,7 +9272,7 @@ XmImMbLookupString() ; return 0; } EOF -if { (eval echo configure:9102: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9276: \"$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 @@ -9163,15 +9337,15 @@ if test "$with_xfs" = "yes" ; then echo "checking for XFontSet" 1>&6 -echo "configure:9167: checking for XFontSet" >&5 +echo "configure:9341: checking for XFontSet" >&5 echo $ac_n "checking for XmbDrawString in -lX11""... $ac_c" 1>&6 -echo "configure:9170: checking for XmbDrawString in -lX11" >&5 +echo "configure:9344: checking for XmbDrawString in -lX11" >&5 ac_lib_var=`echo X11'_'XmbDrawString | sed 'y%./+-%__p_%'` xe_check_libs=" -lX11 " cat > conftest.$ac_ext <<EOF -#line 9175 "configure" +#line 9349 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -9182,7 +9356,7 @@ XmbDrawString() ; return 0; } EOF -if { (eval echo configure:9186: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9360: \"$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 @@ -9222,15 +9396,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:9226: checking for wnn/jllib.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 9229 "configure" +echo "configure:9400: checking for wnn/jllib.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 9403 "configure" #include "confdefs.h" #include <wnn/jllib.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9234: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9408: \"$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* @@ -9255,10 +9429,10 @@ for ac_func in crypt do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:9259: checking for $ac_func" >&5 - -cat > conftest.$ac_ext <<EOF -#line 9262 "configure" +echo "configure:9433: checking for $ac_func" >&5 + +cat > conftest.$ac_ext <<EOF +#line 9436 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -9281,7 +9455,7 @@ ; return 0; } EOF -if { (eval echo configure:9285: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9459: \"$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 @@ -9310,12 +9484,12 @@ test "$ac_cv_func_crypt" != "yes" && { echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6 -echo "configure:9314: checking for crypt in -lcrypt" >&5 +echo "configure:9488: checking for crypt in -lcrypt" >&5 ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'` xe_check_libs=" -lcrypt " cat > conftest.$ac_ext <<EOF -#line 9319 "configure" +#line 9493 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -9326,7 +9500,7 @@ crypt() ; return 0; } EOF -if { (eval echo configure:9330: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9504: \"$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 @@ -9361,12 +9535,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:9365: checking for jl_dic_list_e in -lwnn" >&5 +echo "configure:9539: checking for jl_dic_list_e in -lwnn" >&5 ac_lib_var=`echo wnn'_'jl_dic_list_e | sed 'y%./+-%__p_%'` xe_check_libs=" -lwnn " cat > conftest.$ac_ext <<EOF -#line 9370 "configure" +#line 9544 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -9377,7 +9551,7 @@ jl_dic_list_e() ; return 0; } EOF -if { (eval echo configure:9381: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9555: \"$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 @@ -9395,12 +9569,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:9399: checking for jl_dic_list_e in -lwnn4" >&5 +echo "configure:9573: checking for jl_dic_list_e in -lwnn4" >&5 ac_lib_var=`echo wnn4'_'jl_dic_list_e | sed 'y%./+-%__p_%'` xe_check_libs=" -lwnn4 " cat > conftest.$ac_ext <<EOF -#line 9404 "configure" +#line 9578 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -9411,7 +9585,7 @@ jl_dic_list_e() ; return 0; } EOF -if { (eval echo configure:9415: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9589: \"$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 @@ -9429,12 +9603,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:9433: checking for jl_dic_list_e in -lwnn6" >&5 +echo "configure:9607: checking for jl_dic_list_e in -lwnn6" >&5 ac_lib_var=`echo wnn6'_'jl_dic_list_e | sed 'y%./+-%__p_%'` xe_check_libs=" -lwnn6 " cat > conftest.$ac_ext <<EOF -#line 9438 "configure" +#line 9612 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -9445,7 +9619,7 @@ jl_dic_list_e() ; return 0; } EOF -if { (eval echo configure:9449: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9623: \"$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 @@ -9463,12 +9637,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:9467: checking for dic_list_e in -lwnn6_fromsrc" >&5 +echo "configure:9641: checking for dic_list_e in -lwnn6_fromsrc" >&5 ac_lib_var=`echo wnn6_fromsrc'_'dic_list_e | sed 'y%./+-%__p_%'` xe_check_libs=" -lwnn6_fromsrc " cat > conftest.$ac_ext <<EOF -#line 9472 "configure" +#line 9646 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -9479,7 +9653,7 @@ dic_list_e() ; return 0; } EOF -if { (eval echo configure:9483: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9657: \"$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 @@ -9527,12 +9701,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:9531: checking for jl_fi_dic_list in -l$libwnn" >&5 +echo "configure:9705: checking for jl_fi_dic_list in -l$libwnn" >&5 ac_lib_var=`echo $libwnn'_'jl_fi_dic_list | sed 'y%./+-%__p_%'` xe_check_libs=" -l$libwnn " cat > conftest.$ac_ext <<EOF -#line 9536 "configure" +#line 9710 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -9543,7 +9717,7 @@ jl_fi_dic_list() ; return 0; } EOF -if { (eval echo configure:9547: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9721: \"$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 @@ -9578,15 +9752,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:9582: checking for canna/jrkanji.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 9585 "configure" +echo "configure:9756: checking for canna/jrkanji.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 9759 "configure" #include "confdefs.h" #include <canna/jrkanji.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9590: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9764: \"$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* @@ -9613,15 +9787,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:9617: checking for canna/jrkanji.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 9620 "configure" +echo "configure:9791: checking for canna/jrkanji.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 9794 "configure" #include "confdefs.h" #include <canna/jrkanji.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9625: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9799: \"$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* @@ -9649,15 +9823,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:9653: checking for canna/RK.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 9656 "configure" +echo "configure:9827: checking for canna/RK.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 9830 "configure" #include "confdefs.h" #include <canna/RK.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9661: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9835: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9680,12 +9854,12 @@ } test -z "$with_canna" && { echo $ac_n "checking for RkBgnBun in -lRKC""... $ac_c" 1>&6 -echo "configure:9684: checking for RkBgnBun in -lRKC" >&5 +echo "configure:9858: checking for RkBgnBun in -lRKC" >&5 ac_lib_var=`echo RKC'_'RkBgnBun | sed 'y%./+-%__p_%'` xe_check_libs=" -lRKC " cat > conftest.$ac_ext <<EOF -#line 9689 "configure" +#line 9863 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -9696,7 +9870,7 @@ RkBgnBun() ; return 0; } EOF -if { (eval echo configure:9700: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9874: \"$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 @@ -9719,12 +9893,12 @@ } test -z "$with_canna" && { echo $ac_n "checking for jrKanjiControl in -lcanna""... $ac_c" 1>&6 -echo "configure:9723: checking for jrKanjiControl in -lcanna" >&5 +echo "configure:9897: checking for jrKanjiControl in -lcanna" >&5 ac_lib_var=`echo canna'_'jrKanjiControl | sed 'y%./+-%__p_%'` xe_check_libs=" -lcanna " cat > conftest.$ac_ext <<EOF -#line 9728 "configure" +#line 9902 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -9735,7 +9909,7 @@ jrKanjiControl() ; return 0; } EOF -if { (eval echo configure:9739: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9913: \"$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 @@ -9784,12 +9958,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:9788: checking for layout_object_getvalue in -li18n" >&5 +echo "configure:9962: checking for layout_object_getvalue in -li18n" >&5 ac_lib_var=`echo i18n'_'layout_object_getvalue | sed 'y%./+-%__p_%'` xe_check_libs=" -li18n " cat > conftest.$ac_ext <<EOF -#line 9793 "configure" +#line 9967 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -9800,7 +9974,7 @@ layout_object_getvalue() ; return 0; } EOF -if { (eval echo configure:9804: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9978: \"$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 @@ -9886,10 +10060,10 @@ for ac_func in cbrt closedir dup2 eaccess fmod fpathconf frexp ftime getaddrinfo gethostname getnameinfo getpagesize gettimeofday getcwd getpt getwd logb lrand48 matherr mkdir mktime perror poll random rename res_init rint rmdir select setitimer setpgid setlocale setsid sigblock sighold sigprocmask snprintf stpcpy strcasecmp strerror tzset ulimit usleep utimes waitpid vsnprintf fsync ftruncate umask do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:9890: checking for $ac_func" >&5 - -cat > conftest.$ac_ext <<EOF -#line 9893 "configure" +echo "configure:10064: checking for $ac_func" >&5 + +cat > conftest.$ac_ext <<EOF +#line 10067 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -9912,7 +10086,7 @@ ; return 0; } EOF -if { (eval echo configure:9916: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10090: \"$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 @@ -9947,10 +10121,10 @@ for ac_func in getloadavg do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:9951: checking for $ac_func" >&5 - -cat > conftest.$ac_ext <<EOF -#line 9954 "configure" +echo "configure:10125: checking for $ac_func" >&5 + +cat > conftest.$ac_ext <<EOF +#line 10128 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -9973,7 +10147,7 @@ ; return 0; } EOF -if { (eval echo configure:9977: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10151: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -10009,12 +10183,12 @@ echo $ac_n "checking for kstat_open in -lkstat""... $ac_c" 1>&6 -echo "configure:10013: checking for kstat_open in -lkstat" >&5 +echo "configure:10187: 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 <<EOF -#line 10018 "configure" +#line 10192 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -10025,7 +10199,7 @@ kstat_open() ; return 0; } EOF -if { (eval echo configure:10029: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10203: \"$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 @@ -10059,12 +10233,12 @@ echo $ac_n "checking for kvm_read in -lkvm""... $ac_c" 1>&6 -echo "configure:10063: checking for kvm_read in -lkvm" >&5 +echo "configure:10237: 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 <<EOF -#line 10068 "configure" +#line 10242 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -10075,7 +10249,7 @@ kvm_read() ; return 0; } EOF -if { (eval echo configure:10079: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10253: \"$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 @@ -10109,16 +10283,16 @@ fi echo $ac_n "checking whether netdb declares h_errno""... $ac_c" 1>&6 -echo "configure:10113: checking whether netdb declares h_errno" >&5 -cat > conftest.$ac_ext <<EOF -#line 10115 "configure" +echo "configure:10287: checking whether netdb declares h_errno" >&5 +cat > conftest.$ac_ext <<EOF +#line 10289 "configure" #include "confdefs.h" #include <netdb.h> int main() { return h_errno; ; return 0; } EOF -if { (eval echo configure:10122: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10296: \"$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 @@ -10138,16 +10312,16 @@ rm -f conftest* echo $ac_n "checking for sigsetjmp""... $ac_c" 1>&6 -echo "configure:10142: checking for sigsetjmp" >&5 -cat > conftest.$ac_ext <<EOF -#line 10144 "configure" +echo "configure:10316: checking for sigsetjmp" >&5 +cat > conftest.$ac_ext <<EOF +#line 10318 "configure" #include "confdefs.h" #include <setjmp.h> int main() { sigjmp_buf bar; sigsetjmp (bar, 0); ; return 0; } EOF -if { (eval echo configure:10151: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10325: \"$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 @@ -10167,11 +10341,11 @@ rm -f conftest* echo $ac_n "checking whether localtime caches TZ""... $ac_c" 1>&6 -echo "configure:10171: checking whether localtime caches TZ" >&5 +echo "configure:10345: checking whether localtime caches TZ" >&5 if test "$ac_cv_func_tzset" = "yes"; then cat > conftest.$ac_ext <<EOF -#line 10175 "configure" +#line 10349 "configure" #include "confdefs.h" #include <time.h> #if STDC_HEADERS @@ -10206,7 +10380,7 @@ exit (0); } EOF -if { (eval echo configure:10210: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:10384: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then emacs_cv_localtime_cache=no else @@ -10236,9 +10410,9 @@ if test "$HAVE_TIMEVAL" = "yes"; then echo $ac_n "checking whether gettimeofday accepts one or two arguments""... $ac_c" 1>&6 -echo "configure:10240: checking whether gettimeofday accepts one or two arguments" >&5 -cat > conftest.$ac_ext <<EOF -#line 10242 "configure" +echo "configure:10414: checking whether gettimeofday accepts one or two arguments" >&5 +cat > conftest.$ac_ext <<EOF +#line 10416 "configure" #include "confdefs.h" #ifdef TIME_WITH_SYS_TIME @@ -10259,7 +10433,7 @@ ; return 0; } EOF -if { (eval echo configure:10263: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10437: \"$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 @@ -10281,19 +10455,19 @@ echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:10285: checking for inline" >&5 +echo "configure:10459: checking for inline" >&5 ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat > conftest.$ac_ext <<EOF -#line 10290 "configure" +#line 10464 "configure" #include "confdefs.h" int main() { } $ac_kw foo() { ; return 0; } EOF -if { (eval echo configure:10297: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10471: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -10333,17 +10507,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:10337: checking for working alloca.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 10340 "configure" +echo "configure:10511: checking for working alloca.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 10514 "configure" #include "confdefs.h" #include <alloca.h> int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF -if { (eval echo configure:10347: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10521: \"$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 @@ -10367,10 +10541,10 @@ fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:10371: checking for alloca" >&5 - -cat > conftest.$ac_ext <<EOF -#line 10374 "configure" +echo "configure:10545: checking for alloca" >&5 + +cat > conftest.$ac_ext <<EOF +#line 10548 "configure" #include "confdefs.h" #ifdef __GNUC__ @@ -10398,7 +10572,7 @@ char *p = (char *) alloca(1); ; return 0; } EOF -if { (eval echo configure:10402: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10576: \"$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 @@ -10437,10 +10611,10 @@ echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:10441: checking whether alloca needs Cray hooks" >&5 - -cat > conftest.$ac_ext <<EOF -#line 10444 "configure" +echo "configure:10615: checking whether alloca needs Cray hooks" >&5 + +cat > conftest.$ac_ext <<EOF +#line 10618 "configure" #include "confdefs.h" #if defined(CRAY) && ! defined(CRAY2) webecray @@ -10464,10 +10638,10 @@ if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:10468: checking for $ac_func" >&5 - -cat > conftest.$ac_ext <<EOF -#line 10471 "configure" +echo "configure:10642: checking for $ac_func" >&5 + +cat > conftest.$ac_ext <<EOF +#line 10645 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -10490,7 +10664,7 @@ ; return 0; } EOF -if { (eval echo configure:10494: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10668: \"$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 @@ -10520,10 +10694,10 @@ fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:10524: checking stack direction for C alloca" >&5 - -cat > conftest.$ac_ext <<EOF -#line 10527 "configure" +echo "configure:10698: checking stack direction for C alloca" >&5 + +cat > conftest.$ac_ext <<EOF +#line 10701 "configure" #include "confdefs.h" find_stack_direction () { @@ -10542,7 +10716,7 @@ exit (find_stack_direction() < 0); } EOF -if { (eval echo configure:10546: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:10720: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_c_stack_direction=1 else @@ -10571,15 +10745,15 @@ ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for vfork.h""... $ac_c" 1>&6 -echo "configure:10575: checking for vfork.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 10578 "configure" +echo "configure:10749: checking for vfork.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 10752 "configure" #include "confdefs.h" #include <vfork.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10583: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10757: \"$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* @@ -10607,10 +10781,10 @@ fi echo $ac_n "checking for working vfork""... $ac_c" 1>&6 -echo "configure:10611: checking for working vfork" >&5 - -cat > conftest.$ac_ext <<EOF -#line 10614 "configure" +echo "configure:10785: checking for working vfork" >&5 + +cat > conftest.$ac_ext <<EOF +#line 10788 "configure" #include "confdefs.h" /* Thanks to Paul Eggert for this test. */ #include <stdio.h> @@ -10705,7 +10879,7 @@ } } EOF -if { (eval echo configure:10709: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:10883: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_vfork_works=yes else @@ -10731,10 +10905,10 @@ echo $ac_n "checking for working strcoll""... $ac_c" 1>&6 -echo "configure:10735: checking for working strcoll" >&5 - -cat > conftest.$ac_ext <<EOF -#line 10738 "configure" +echo "configure:10909: checking for working strcoll" >&5 + +cat > conftest.$ac_ext <<EOF +#line 10912 "configure" #include "confdefs.h" #include <string.h> main () @@ -10744,7 +10918,7 @@ strcoll ("123", "456") >= 0); } EOF -if { (eval echo configure:10748: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:10922: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_strcoll_works=yes else @@ -10772,10 +10946,10 @@ for ac_func in getpgrp do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:10776: checking for $ac_func" >&5 - -cat > conftest.$ac_ext <<EOF -#line 10779 "configure" +echo "configure:10950: checking for $ac_func" >&5 + +cat > conftest.$ac_ext <<EOF +#line 10953 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -10798,7 +10972,7 @@ ; return 0; } EOF -if { (eval echo configure:10802: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10976: \"$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 @@ -10826,10 +11000,10 @@ done echo $ac_n "checking whether getpgrp takes no argument""... $ac_c" 1>&6 -echo "configure:10830: checking whether getpgrp takes no argument" >&5 - -cat > conftest.$ac_ext <<EOF -#line 10833 "configure" +echo "configure:11004: checking whether getpgrp takes no argument" >&5 + +cat > conftest.$ac_ext <<EOF +#line 11007 "configure" #include "confdefs.h" /* @@ -10884,7 +11058,7 @@ } EOF -if { (eval echo configure:10888: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:11062: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_getpgrp_void=yes else @@ -10911,10 +11085,10 @@ echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:10915: checking for working mmap" >&5 +echo "configure:11089: checking for working mmap" >&5 case "$opsys" in ultrix* ) have_mmap=no ;; *) cat > conftest.$ac_ext <<EOF -#line 10918 "configure" +#line 11092 "configure" #include "confdefs.h" #include <stdio.h> #include <unistd.h> @@ -10947,7 +11121,7 @@ return 1; } EOF -if { (eval echo configure:10951: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:11125: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then have_mmap=yes else @@ -10973,9 +11147,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:10977: checking for M_MMAP_THRESHOLD" >&5 +echo "configure:11151: checking for M_MMAP_THRESHOLD" >&5 cat > conftest.$ac_ext <<EOF -#line 10979 "configure" +#line 11153 "configure" #include "confdefs.h" #include <malloc.h> int main() { @@ -10987,7 +11161,7 @@ ; return 0; } EOF -if { (eval echo configure:10991: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11165: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* rel_alloc=no; echo "$ac_t""yes" 1>&6; else @@ -11012,15 +11186,15 @@ ac_safe=`echo "termios.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for termios.h""... $ac_c" 1>&6 -echo "configure:11016: checking for termios.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 11019 "configure" +echo "configure:11190: checking for termios.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 11193 "configure" #include "confdefs.h" #include <termios.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11024: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11198: \"$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* @@ -11063,15 +11237,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:11067: checking for termio.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 11070 "configure" +echo "configure:11241: checking for termio.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 11244 "configure" #include "confdefs.h" #include <termio.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11075: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11249: \"$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* @@ -11103,10 +11277,10 @@ echo $ac_n "checking for socket""... $ac_c" 1>&6 -echo "configure:11107: checking for socket" >&5 - -cat > conftest.$ac_ext <<EOF -#line 11110 "configure" +echo "configure:11281: checking for socket" >&5 + +cat > conftest.$ac_ext <<EOF +#line 11284 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char socket(); below. */ @@ -11129,7 +11303,7 @@ ; return 0; } EOF -if { (eval echo configure:11133: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11307: \"$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 @@ -11144,15 +11318,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:11148: checking for netinet/in.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 11151 "configure" +echo "configure:11322: checking for netinet/in.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 11325 "configure" #include "confdefs.h" #include <netinet/in.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11156: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11330: \"$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* @@ -11169,15 +11343,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:11173: checking for arpa/inet.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 11176 "configure" +echo "configure:11347: checking for arpa/inet.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 11350 "configure" #include "confdefs.h" #include <arpa/inet.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11181: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11355: \"$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* @@ -11202,9 +11376,9 @@ } echo $ac_n "checking "for sun_len member in struct sockaddr_un"""... $ac_c" 1>&6 -echo "configure:11206: checking "for sun_len member in struct sockaddr_un"" >&5 +echo "configure:11380: checking "for sun_len member in struct sockaddr_un"" >&5 cat > conftest.$ac_ext <<EOF -#line 11208 "configure" +#line 11382 "configure" #include "confdefs.h" #include <sys/types.h> @@ -11215,7 +11389,7 @@ static struct sockaddr_un x; x.sun_len = 1; ; return 0; } EOF -if { (eval echo configure:11219: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11393: \"$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 @@ -11233,9 +11407,9 @@ fi rm -f conftest* echo $ac_n "checking "for ip_mreq struct in netinet/in.h"""... $ac_c" 1>&6 -echo "configure:11237: checking "for ip_mreq struct in netinet/in.h"" >&5 +echo "configure:11411: checking "for ip_mreq struct in netinet/in.h"" >&5 cat > conftest.$ac_ext <<EOF -#line 11239 "configure" +#line 11413 "configure" #include "confdefs.h" #include <sys/types.h> @@ -11245,7 +11419,7 @@ static struct ip_mreq x; ; return 0; } EOF -if { (eval echo configure:11249: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11423: \"$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 @@ -11276,10 +11450,10 @@ echo $ac_n "checking for msgget""... $ac_c" 1>&6 -echo "configure:11280: checking for msgget" >&5 - -cat > conftest.$ac_ext <<EOF -#line 11283 "configure" +echo "configure:11454: checking for msgget" >&5 + +cat > conftest.$ac_ext <<EOF +#line 11457 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char msgget(); below. */ @@ -11302,7 +11476,7 @@ ; return 0; } EOF -if { (eval echo configure:11306: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11480: \"$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 @@ -11317,15 +11491,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:11321: checking for sys/ipc.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 11324 "configure" +echo "configure:11495: checking for sys/ipc.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 11498 "configure" #include "confdefs.h" #include <sys/ipc.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11329: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11503: \"$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* @@ -11342,15 +11516,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:11346: checking for sys/msg.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 11349 "configure" +echo "configure:11520: checking for sys/msg.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 11523 "configure" #include "confdefs.h" #include <sys/msg.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11354: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11528: \"$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* @@ -11388,15 +11562,15 @@ ac_safe=`echo "dirent.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for dirent.h""... $ac_c" 1>&6 -echo "configure:11392: checking for dirent.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 11395 "configure" +echo "configure:11566: checking for dirent.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 11569 "configure" #include "confdefs.h" #include <dirent.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11400: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11574: \"$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* @@ -11423,15 +11597,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:11427: checking for sys/dir.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 11430 "configure" +echo "configure:11601: checking for sys/dir.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 11604 "configure" #include "confdefs.h" #include <sys/dir.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11435: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11609: \"$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* @@ -11464,15 +11638,15 @@ ac_safe=`echo "nlist.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for nlist.h""... $ac_c" 1>&6 -echo "configure:11468: checking for nlist.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 11471 "configure" +echo "configure:11642: checking for nlist.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 11645 "configure" #include "confdefs.h" #include <nlist.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11476: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11650: \"$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* @@ -11502,22 +11676,22 @@ echo "checking "for sound support"" 1>&6 -echo "configure:11506: checking "for sound support"" >&5 +echo "configure:11680: 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:11513: checking for multimedia/audio_device.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 11516 "configure" +echo "configure:11687: checking for multimedia/audio_device.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 11690 "configure" #include "confdefs.h" #include <multimedia/audio_device.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11521: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11695: \"$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* @@ -11565,12 +11739,12 @@ if test -z "$native_sound_lib"; then echo $ac_n "checking for ALopenport in -laudio""... $ac_c" 1>&6 -echo "configure:11569: checking for ALopenport in -laudio" >&5 +echo "configure:11743: checking for ALopenport in -laudio" >&5 ac_lib_var=`echo audio'_'ALopenport | sed 'y%./+-%__p_%'` xe_check_libs=" -laudio " cat > conftest.$ac_ext <<EOF -#line 11574 "configure" +#line 11748 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -11581,7 +11755,7 @@ ALopenport() ; return 0; } EOF -if { (eval echo configure:11585: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11759: \"$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 @@ -11612,12 +11786,12 @@ if test -z "$native_sound_lib"; then echo $ac_n "checking for AOpenAudio in -lAlib""... $ac_c" 1>&6 -echo "configure:11616: checking for AOpenAudio in -lAlib" >&5 +echo "configure:11790: checking for AOpenAudio in -lAlib" >&5 ac_lib_var=`echo Alib'_'AOpenAudio | sed 'y%./+-%__p_%'` xe_check_libs=" -lAlib " cat > conftest.$ac_ext <<EOF -#line 11621 "configure" +#line 11795 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -11628,7 +11802,7 @@ AOpenAudio() ; return 0; } EOF -if { (eval echo configure:11632: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11806: \"$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 @@ -11666,15 +11840,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:11670: checking for ${dir}/soundcard.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 11673 "configure" +echo "configure:11844: checking for ${dir}/soundcard.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 11847 "configure" #include "confdefs.h" #include <${dir}/soundcard.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11678: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11852: \"$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* @@ -11695,10 +11869,10 @@ echo " xemacs will be linked with \"linuxplay.o\"" fi { test "$extra_verbose" = "yes" && cat << EOF - Defining SOUNDCARD_H_PATH = "${dir}/soundcard.h" + Defining SOUNDCARD_H_FILE = "${dir}/soundcard.h" EOF cat >> confdefs.h <<EOF -#define SOUNDCARD_H_PATH "${dir}/soundcard.h" +#define SOUNDCARD_H_FILE "${dir}/soundcard.h" EOF } @@ -11728,15 +11902,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:11732: checking for audio/audiolib.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 11735 "configure" +echo "configure:11906: checking for audio/audiolib.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 11909 "configure" #include "confdefs.h" #include <audio/audiolib.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11740: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11914: \"$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* @@ -11754,12 +11928,12 @@ echo $ac_n "checking for AuOpenServer in -laudio""... $ac_c" 1>&6 -echo "configure:11758: checking for AuOpenServer in -laudio" >&5 +echo "configure:11932: checking for AuOpenServer in -laudio" >&5 ac_lib_var=`echo audio'_'AuOpenServer | sed 'y%./+-%__p_%'` xe_check_libs=" -laudio " cat > conftest.$ac_ext <<EOF -#line 11763 "configure" +#line 11937 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -11770,7 +11944,7 @@ AuOpenServer() ; return 0; } EOF -if { (eval echo configure:11774: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11948: \"$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 @@ -11809,7 +11983,7 @@ fi libs_x="-laudio $libs_x" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-laudio\" to \$libs_x"; fi cat > conftest.$ac_ext <<EOF -#line 11813 "configure" +#line 11987 "configure" #include "confdefs.h" #include <audio/Xtutil.h> EOF @@ -11840,7 +12014,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:11844: checking for $ac_word" >&5 +echo "configure:12018: 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. @@ -11869,10 +12043,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:11873: checking for esd_play_stream" >&5 - -cat > conftest.$ac_ext <<EOF -#line 11876 "configure" +echo "configure:12047: checking for esd_play_stream" >&5 + +cat > conftest.$ac_ext <<EOF +#line 12050 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char esd_play_stream(); below. */ @@ -11895,7 +12069,7 @@ ; return 0; } EOF -if { (eval echo configure:11899: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12073: \"$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 @@ -11946,7 +12120,7 @@ if test "$with_tty" = "yes" ; then echo "checking for TTY-related features" 1>&6 -echo "configure:11950: checking for TTY-related features" >&5 +echo "configure:12124: checking for TTY-related features" >&5 { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_TTY EOF @@ -11962,12 +12136,12 @@ if test -z "$with_ncurses"; then echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6 -echo "configure:11966: checking for tgetent in -lncurses" >&5 +echo "configure:12140: checking for tgetent in -lncurses" >&5 ac_lib_var=`echo ncurses'_'tgetent | sed 'y%./+-%__p_%'` xe_check_libs=" -lncurses " cat > conftest.$ac_ext <<EOF -#line 11971 "configure" +#line 12145 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -11978,7 +12152,7 @@ tgetent() ; return 0; } EOF -if { (eval echo configure:11982: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12156: \"$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 @@ -12011,15 +12185,15 @@ ac_safe=`echo "ncurses/curses.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ncurses/curses.h""... $ac_c" 1>&6 -echo "configure:12015: checking for ncurses/curses.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 12018 "configure" +echo "configure:12189: checking for ncurses/curses.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 12192 "configure" #include "confdefs.h" #include <ncurses/curses.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12023: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12197: \"$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* @@ -12034,22 +12208,22 @@ rm -f conftest* if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 - curses_h_path=ncurses/curses.h + curses_h_file=ncurses/curses.h else echo "$ac_t""no" 1>&6 fi ac_safe=`echo "ncurses/term.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ncurses/term.h""... $ac_c" 1>&6 -echo "configure:12045: checking for ncurses/term.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 12048 "configure" +echo "configure:12219: checking for ncurses/term.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 12222 "configure" #include "confdefs.h" #include <ncurses/term.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12053: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12227: \"$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* @@ -12064,7 +12238,7 @@ rm -f conftest* if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 - term_h_path=ncurses/term.h + term_h_file=ncurses/term.h else echo "$ac_t""no" 1>&6 fi @@ -12079,15 +12253,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:12083: checking for ncurses/curses.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 12086 "configure" +echo "configure:12257: checking for ncurses/curses.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 12260 "configure" #include "confdefs.h" #include <ncurses/curses.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12091: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12265: \"$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* @@ -12102,7 +12276,7 @@ rm -f conftest* if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 - curses_h_path=ncurses/curses.h + curses_h_file=ncurses/curses.h else echo "$ac_t""no" 1>&6 fi @@ -12122,12 +12296,12 @@ for lib in curses termlib termcap; do echo $ac_n "checking for tgetent in -l$lib""... $ac_c" 1>&6 -echo "configure:12126: checking for tgetent in -l$lib" >&5 +echo "configure:12300: checking for tgetent in -l$lib" >&5 ac_lib_var=`echo $lib'_'tgetent | sed 'y%./+-%__p_%'` xe_check_libs=" -l$lib " cat > conftest.$ac_ext <<EOF -#line 12131 "configure" +#line 12305 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -12138,7 +12312,7 @@ tgetent() ; return 0; } EOF -if { (eval echo configure:12142: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12316: \"$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 @@ -12169,12 +12343,12 @@ else echo $ac_n "checking for tgetent in -lcurses""... $ac_c" 1>&6 -echo "configure:12173: checking for tgetent in -lcurses" >&5 +echo "configure:12347: checking for tgetent in -lcurses" >&5 ac_lib_var=`echo curses'_'tgetent | sed 'y%./+-%__p_%'` xe_check_libs=" -lcurses " cat > conftest.$ac_ext <<EOF -#line 12178 "configure" +#line 12352 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -12185,7 +12359,7 @@ tgetent() ; return 0; } EOF -if { (eval echo configure:12189: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12363: \"$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 @@ -12203,12 +12377,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6 -echo "configure:12207: checking for tgetent in -ltermcap" >&5 +echo "configure:12381: checking for tgetent in -ltermcap" >&5 ac_lib_var=`echo termcap'_'tgetent | sed 'y%./+-%__p_%'` xe_check_libs=" -ltermcap " cat > conftest.$ac_ext <<EOF -#line 12212 "configure" +#line 12386 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -12219,7 +12393,7 @@ tgetent() ; return 0; } EOF -if { (eval echo configure:12223: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12397: \"$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 @@ -12249,33 +12423,33 @@ fi fi { test "$extra_verbose" = "yes" && cat << EOF - Defining CURSES_H_PATH = "${curses_h_path-curses.h}" + Defining CURSES_H_FILE = "${curses_h_file-curses.h}" EOF cat >> confdefs.h <<EOF -#define CURSES_H_PATH "${curses_h_path-curses.h}" +#define CURSES_H_FILE "${curses_h_file-curses.h}" EOF } { test "$extra_verbose" = "yes" && cat << EOF - Defining TERM_H_PATH = "${term_h_path-term.h}" + Defining TERM_H_FILE = "${term_h_file-term.h}" EOF cat >> confdefs.h <<EOF -#define TERM_H_PATH "${term_h_path-term.h}" +#define TERM_H_FILE "${term_h_file-term.h}" EOF } 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:12271: checking for gpm.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 12274 "configure" +echo "configure:12445: checking for gpm.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 12448 "configure" #include "confdefs.h" #include <gpm.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12279: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12453: \"$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* @@ -12298,12 +12472,12 @@ } test -z "$with_gpm" && { echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6 -echo "configure:12302: checking for Gpm_Open in -lgpm" >&5 +echo "configure:12476: checking for Gpm_Open in -lgpm" >&5 ac_lib_var=`echo gpm'_'Gpm_Open | sed 'y%./+-%__p_%'` xe_check_libs=" -lgpm " cat > conftest.$ac_ext <<EOF -#line 12307 "configure" +#line 12481 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -12314,7 +12488,7 @@ Gpm_Open() ; return 0; } EOF -if { (eval echo configure:12318: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12492: \"$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 @@ -12364,20 +12538,20 @@ test "$with_database_gdbm $with_database_dbm $with_database_berkdb" \ != "no no no" && echo "checking for database support" 1>&6 -echo "configure:12368: checking for database support" >&5 +echo "configure:12542: 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:12373: checking for ndbm.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 12376 "configure" +echo "configure:12547: checking for ndbm.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 12550 "configure" #include "confdefs.h" #include <ndbm.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12381: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12555: \"$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* @@ -12407,12 +12581,12 @@ if test "$with_database_gdbm" != "no"; then echo $ac_n "checking for dbm_open in -lgdbm""... $ac_c" 1>&6 -echo "configure:12411: checking for dbm_open in -lgdbm" >&5 +echo "configure:12585: checking for dbm_open in -lgdbm" >&5 ac_lib_var=`echo gdbm'_'dbm_open | sed 'y%./+-%__p_%'` xe_check_libs=" -lgdbm " cat > conftest.$ac_ext <<EOF -#line 12416 "configure" +#line 12590 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -12423,7 +12597,7 @@ dbm_open() ; return 0; } EOF -if { (eval echo configure:12427: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12601: \"$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 @@ -12451,10 +12625,10 @@ if test "$with_database_dbm" != "no"; then echo $ac_n "checking for dbm_open""... $ac_c" 1>&6 -echo "configure:12455: checking for dbm_open" >&5 - -cat > conftest.$ac_ext <<EOF -#line 12458 "configure" +echo "configure:12629: checking for dbm_open" >&5 + +cat > conftest.$ac_ext <<EOF +#line 12632 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char dbm_open(); below. */ @@ -12477,7 +12651,7 @@ ; return 0; } EOF -if { (eval echo configure:12481: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12655: \"$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 @@ -12496,12 +12670,12 @@ echo $ac_n "checking for dbm_open in -ldbm""... $ac_c" 1>&6 -echo "configure:12500: checking for dbm_open in -ldbm" >&5 +echo "configure:12674: checking for dbm_open in -ldbm" >&5 ac_lib_var=`echo dbm'_'dbm_open | sed 'y%./+-%__p_%'` xe_check_libs=" -ldbm " cat > conftest.$ac_ext <<EOF -#line 12505 "configure" +#line 12679 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -12512,7 +12686,7 @@ dbm_open() ; return 0; } EOF -if { (eval echo configure:12516: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12690: \"$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 @@ -12553,10 +12727,10 @@ if test "$with_database_berkdb" != "no"; then echo $ac_n "checking for Berkeley db.h""... $ac_c" 1>&6 -echo "configure:12557: checking for Berkeley db.h" >&5 - for path in "db/db.h" "db.h"; do +echo "configure:12731: checking for Berkeley db.h" >&5 + for header in "db/db.h" "db.h"; do cat > conftest.$ac_ext <<EOF -#line 12560 "configure" +#line 12734 "configure" #include "confdefs.h" #include <stdlib.h> @@ -12572,33 +12746,33 @@ #endif #endif #endif -#include <$path> - -int main() { - -; return 0; } -EOF -if { (eval echo configure:12582: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then - rm -rf conftest* - db_h_path="$path"; break +#include <$header> + +int main() { + +; return 0; } +EOF +if { (eval echo configure:12756: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + db_h_file="$header"; break else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -f conftest* done - if test -z "$db_h_path" + if test -z "$db_h_file" then echo "$ac_t""no" 1>&6; with_database_berkdb=no - else echo "$ac_t""$db_h_path" 1>&6 + else echo "$ac_t""$db_h_file" 1>&6 fi if test "$with_database_berkdb" != "no"; then echo $ac_n "checking for Berkeley DB version""... $ac_c" 1>&6 -echo "configure:12598: checking for Berkeley DB version" >&5 +echo "configure:12772: checking for Berkeley DB version" >&5 cat > conftest.$ac_ext <<EOF -#line 12600 "configure" -#include "confdefs.h" -#include <$db_h_path> +#line 12774 "configure" +#include "confdefs.h" +#include <$db_h_file> #if DB_VERSION_MAJOR > 1 yes #endif @@ -12615,10 +12789,10 @@ rm -f conftest* echo $ac_n "checking for $dbfunc""... $ac_c" 1>&6 -echo "configure:12619: checking for $dbfunc" >&5 - -cat > conftest.$ac_ext <<EOF -#line 12622 "configure" +echo "configure:12793: checking for $dbfunc" >&5 + +cat > conftest.$ac_ext <<EOF +#line 12796 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $dbfunc(); below. */ @@ -12641,7 +12815,7 @@ ; return 0; } EOF -if { (eval echo configure:12645: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12819: \"$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 @@ -12660,12 +12834,12 @@ echo $ac_n "checking for $dbfunc in -ldb""... $ac_c" 1>&6 -echo "configure:12664: checking for $dbfunc in -ldb" >&5 +echo "configure:12838: checking for $dbfunc in -ldb" >&5 ac_lib_var=`echo db'_'$dbfunc | sed 'y%./+-%__p_%'` xe_check_libs=" -ldb " cat > conftest.$ac_ext <<EOF -#line 12669 "configure" +#line 12843 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -12676,7 +12850,7 @@ $dbfunc() ; return 0; } EOF -if { (eval echo configure:12680: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12854: \"$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 @@ -12702,10 +12876,10 @@ if test "$with_database_berkdb" = "yes"; then { test "$extra_verbose" = "yes" && cat << EOF - Defining DB_H_PATH = "$db_h_path" + Defining DB_H_FILE = "$db_h_file" EOF cat >> confdefs.h <<EOF -#define DB_H_PATH "$db_h_path" +#define DB_H_FILE "$db_h_file" EOF } @@ -12740,12 +12914,12 @@ if test "$with_socks" = "yes"; then echo $ac_n "checking for SOCKSinit in -lsocks""... $ac_c" 1>&6 -echo "configure:12744: checking for SOCKSinit in -lsocks" >&5 +echo "configure:12918: checking for SOCKSinit in -lsocks" >&5 ac_lib_var=`echo socks'_'SOCKSinit | sed 'y%./+-%__p_%'` xe_check_libs=" -lsocks " cat > conftest.$ac_ext <<EOF -#line 12749 "configure" +#line 12923 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -12756,7 +12930,7 @@ SOCKSinit() ; return 0; } EOF -if { (eval echo configure:12760: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12934: \"$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 @@ -12811,19 +12985,19 @@ if test "$with_modules" != "no"; then echo "checking for module support" 1>&6 -echo "configure:12815: checking for module support" >&5 +echo "configure:12989: checking for module support" >&5 ac_safe=`echo "dlfcn.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for dlfcn.h""... $ac_c" 1>&6 -echo "configure:12819: checking for dlfcn.h" >&5 - -cat > conftest.$ac_ext <<EOF -#line 12822 "configure" +echo "configure:12993: checking for dlfcn.h" >&5 + +cat > conftest.$ac_ext <<EOF +#line 12996 "configure" #include "confdefs.h" #include <dlfcn.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12827: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13001: \"$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* @@ -12841,12 +13015,12 @@ echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 -echo "configure:12845: checking for dlopen in -ldl" >&5 +echo "configure:13019: checking for dlopen in -ldl" >&5 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'` xe_check_libs=" -ldl " cat > conftest.$ac_ext <<EOF -#line 12850 "configure" +#line 13024 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -12857,7 +13031,7 @@ dlopen() ; return 0; } EOF -if { (eval echo configure:12861: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13035: \"$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 @@ -12876,12 +13050,12 @@ echo "$ac_t""no" 1>&6 echo $ac_n "checking for dlopen in -lc""... $ac_c" 1>&6 -echo "configure:12880: checking for dlopen in -lc" >&5 +echo "configure:13054: checking for dlopen in -lc" >&5 ac_lib_var=`echo c'_'dlopen | sed 'y%./+-%__p_%'` xe_check_libs=" -lc " cat > conftest.$ac_ext <<EOF -#line 12885 "configure" +#line 13059 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -12892,7 +13066,7 @@ dlopen() ; return 0; } EOF -if { (eval echo configure:12896: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13070: \"$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 @@ -12931,12 +13105,12 @@ else echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 -echo "configure:12935: checking for shl_load in -ldld" >&5 +echo "configure:13109: checking for shl_load in -ldld" >&5 ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'` xe_check_libs=" -ldld " cat > conftest.$ac_ext <<EOF -#line 12940 "configure" +#line 13114 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -12947,7 +13121,7 @@ shl_load() ; return 0; } EOF -if { (eval echo configure:12951: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13125: \"$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 @@ -12974,12 +13148,12 @@ echo "$ac_t""no" 1>&6 echo $ac_n "checking for dld_init in -ldld""... $ac_c" 1>&6 -echo "configure:12978: checking for dld_init in -ldld" >&5 +echo "configure:13152: checking for dld_init in -ldld" >&5 ac_lib_var=`echo dld'_'dld_init | sed 'y%./+-%__p_%'` xe_check_libs=" -ldld " cat > conftest.$ac_ext <<EOF -#line 12983 "configure" +#line 13157 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -12990,7 +13164,7 @@ dld_init() ; return 0; } EOF -if { (eval echo configure:12994: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13168: \"$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 @@ -13035,7 +13209,7 @@ xealias=$internal_configuration echo "checking how to build dynamic libraries for ${xehost}" 1>&6 -echo "configure:13039: checking how to build dynamic libraries for ${xehost}" >&5 +echo "configure:13213: checking how to build dynamic libraries for ${xehost}" >&5 # Transform *-*-linux* to *-*-linux-gnu*, to support old configure scripts. case "$xehost" in *-*-linux-gnu*) ;; @@ -13063,9 +13237,9 @@ XEGCC=yes else echo $ac_n "checking checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:13067: checking checking whether we are using GNU C" >&5 +echo "configure:13241: checking checking whether we are using GNU C" >&5 cat > conftest.$ac_ext <<EOF -#line 13069 "configure" +#line 13243 "configure" #include "confdefs.h" #ifdef __GNUC__ @@ -13087,7 +13261,7 @@ fi echo $ac_n "checking how to produce PIC code""... $ac_c" 1>&6 -echo "configure:13091: checking how to produce PIC code" >&5 +echo "configure:13265: checking how to produce PIC code" >&5 wl= can_build_shared=yes @@ -13180,18 +13354,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:13184: checking if PIC flag ${dll_cflags} really works" >&5 +echo "configure:13358: checking if PIC flag ${dll_cflags} really works" >&5 save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $dll_cflags -DPIC" cat > conftest.$ac_ext <<EOF -#line 13188 "configure" +#line 13362 "configure" #include "confdefs.h" int main() { int x=0; ; return 0; } EOF -if { (eval echo configure:13195: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:13369: \"$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 @@ -13222,7 +13396,7 @@ xldf= xcldf= echo $ac_n "checking if C compiler can produce shared libraries""... $ac_c" 1>&6 -echo "configure:13226: checking if C compiler can produce shared libraries" >&5 +echo "configure:13400: checking if C compiler can produce shared libraries" >&5 if test "$XEGCC" = yes; then xcldf="-shared" xldf="-shared" @@ -13273,14 +13447,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 <<EOF -#line 13277 "configure" +#line 13451 "configure" #include "confdefs.h" int main() { int x=0; ; return 0; } EOF -if { (eval echo configure:13284: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13458: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cc_produces_so=yes else @@ -13305,7 +13479,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:13309: checking for ld used by GCC" >&5 +echo "configure:13483: checking for ld used by GCC" >&5 ac_prog=`($CC -print-prog-name=ld) 2>&5` case "$ac_prog" in # Accept absolute paths. @@ -13330,7 +13504,7 @@ esac else echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 -echo "configure:13334: checking for GNU ld" >&5 +echo "configure:13508: checking for GNU ld" >&5 fi if test -z "$LTLD"; then @@ -13368,7 +13542,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:13372: checking if the linker is GNU ld" >&5 +echo "configure:13546: 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 </dev/null | egrep '(GNU|with BFD)' 1>&5; then xe_gnu_ld=yes @@ -13396,7 +13570,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:13400: checking whether the linker supports shared libraries" >&5 +echo "configure:13574: checking whether the linker supports shared libraries" >&5 dll_ld=$CC dll_ldflags=$LDFLAGS ld_shlibs=yes @@ -13611,10 +13785,10 @@ for ac_func in dlerror _dlerror do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:13615: checking for $ac_func" >&5 - -cat > conftest.$ac_ext <<EOF -#line 13618 "configure" +echo "configure:13789: checking for $ac_func" >&5 + +cat > conftest.$ac_ext <<EOF +#line 13792 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -13637,7 +13811,7 @@ ; return 0; } EOF -if { (eval echo configure:13641: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13815: \"$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 @@ -13676,11 +13850,11 @@ fi cat > conftest.$ac_ext <<EOF -#line 13680 "configure" +#line 13854 "configure" #include "confdefs.h" int main(int c,char *v[]){return 0;} EOF -if { (eval echo configure:13684: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:13858: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then : else @@ -14207,11 +14381,11 @@ EOF } -test "$no_doc_file" = "yes" && { test "$extra_verbose" = "yes" && cat << \EOF - Defining NO_DOC_FILE -EOF -cat >> confdefs.h <<\EOF -#define NO_DOC_FILE 1 +test "$quick_build" = "yes" && { test "$extra_verbose" = "yes" && cat << \EOF + Defining QUICK_BUILD +EOF +cat >> confdefs.h <<\EOF +#define QUICK_BUILD 1 EOF } @@ -14296,59 +14470,113 @@ echo " XEmacs ${emacs_major_version}.${emacs_minor_version}${xemacs_betaname} \"$xemacs_codename\" configured for \`$canonical'. - - Where should the build process find the source code? $srcdir - What installation prefix should install use? $prefix - What operating system and machine description files should XEmacs use? - \`$opsysfile' and \`$machfile' - What compiler should XEmacs be built with? $CC $CFLAGS - Should XEmacs use the GNU version of malloc? ${GNU_MALLOC}${GNU_MALLOC_reason} - Should XEmacs use the relocating allocator for buffers? $rel_alloc - What window system should XEmacs use? ${window_system}" -if test "$with_x11" = "yes"; then - echo " Where do we find X Windows header files? $x_includes" - echo " Where do we find X Windows libraries? $x_libraries" -fi +" +echo " +Compilation / Installation:" +echo " Source code location: $srcdir" +echo " Installation prefix: $prefix" if test -n "$site_includes"; then - echo " Additional header files: $site_includes" + echo " Additional header files: $site_includes" fi if test -n "$site_libraries"; then - echo " Additional libraries: $site_libraries" + echo " Additional libraries: $site_libraries" fi if test -n "$site_prefixes"; then - echo " Additional prefixes: $site_prefixes" + echo " Additional prefixes: $site_prefixes" fi if test -n "$runpath"; then - echo " Runtime library search path: $runpath" + echo " Runtime library search path: $runpath" +fi +echo " Operating system description file: \`$opsysfile'" +echo " Machine description file: \`$machfile'" +echo " Compiler: $CC $CFLAGS" +echo " Relocating allocator for buffers: $rel_alloc" +echo " GNU version of malloc: ${GNU_MALLOC}${GNU_MALLOC_reason}" + +echo " +Window System:" +if test "$with_msw" = "yes"; then + echo " Compiling in support for the Microsoft window system." +fi +if test "$with_x11" = "yes"; then + echo " Compiling in support for the X window system:" + echo " - X Windows headers location: $x_includes" + echo " - X Windows libraries location: $x_libraries" + if test "$with_xauth" != yes; then + echo " - Xau (X authority) not available." + fi + if test "$with_xmu" != yes; then + echo " - Xmu library not available; substituting equivalent routines." + fi + if test "$with_wmcommand" != no; then + echo " - Handling WM_COMMAND properly." + fi fi if test "$have_xaw" = "yes"; then - echo " Athena library to link: $athena_lib" - echo " Athena header include path: $athena_h_path" -fi -test "$with_dnet" = yes && echo " Compiling in support for DNET." -test "$with_socks" = yes && echo " Compiling in support for SOCKS." -test "$with_xauth" = yes && echo " Compiling in support for XAUTH." -if test "$with_xmu" != yes -a "$with_x11" = yes; then - echo " No Xmu; substituting equivalent routines." -fi - + echo " Compiling in support for the Athena widget set:" + echo " - Athena headers location: $athena_h_path" + echo " - Athena library to link: $athena_lib" +fi +case "$with_menubars" in + lucid ) echo " Using Lucid menubars." ;; + motif ) echo " Using Motif menubars." + echo " *WARNING* The Motif menubar implementation is currently buggy." + echo " We recommend using the Lucid menubar instead." + echo " Re-run configure with --with-menubars='lucid'." ;; + msw ) echo " Using MS-Windows menubars." ;; +esac +case "$with_scrollbars" in + lucid ) echo " Using Lucid scrollbars." ;; + motif ) echo " Using Motif scrollbars." ;; + athena ) echo " Using Athena scrollbars." ;; + msw ) echo " Using MS-Windows scrollbars." ;; +esac +case "$with_dialogs" in + motif ) echo " Using Motif dialog boxes." + if test "$unexec" = "unexaix.o"; then if test "`uname -v`" = 4 -a "`uname -r`" -ge 3; then + echo " *WARNING* The Motif dialog boxes cause problems on AIX 4.3 and higher." + echo " We recommend using the Athena dialog boxes instead." + echo " Install libXaw and re-run configure with --with-dialogs='athena'." + echo " Read the PROBLEMS file for more information." + fi; fi ;; + athena ) echo " Using Athena dialog boxes." ;; + msw ) echo " Using MS-Windows dialog boxes." ;; +esac +case "$with_widgets" in + motif ) echo " Using Motif native widgets." ;; + athena ) echo " Using Athena native widgets." ;; + msw ) echo " Using MS-Windows native widgets." ;; +esac +if test "$with_dragndrop" = yes; then + echo " Compiling in support for Drag'n'Drop (EXPERIMENTAL)." + echo " - Drag'n'Drop prototype: $dragndrop_proto." +fi + +echo " +TTY:" +test "$with_ncurses" = yes && echo " Compiling in support for ncurses." +test "$with_gpm" = yes && echo " Compiling in support for GPM (General Purpose Mouse)." + +echo " +Images:" +test "$with_gif" = yes && echo " Compiling in support for GIF images (builtin)." if test "$with_xpm" = yes; then - echo " Compiling in support for XPM images." + echo " Compiling in support for XPM images." elif test "$with_x11" = yes; then - echo " --------------------------------------------------------------------" - echo " WARNING: Compiling without XPM support." + echo " WARNING: -----------------------------------------------------------" + echo " WARNING: Compiling without XPM image support." if test "$xpm_problem" != ""; then echo " Reason: $xpm_problem" fi echo " WARNING: You should strongly consider installing XPM." echo " WARNING: Otherwise toolbars and other graphics will look suboptimal." echo " WARNING: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux)" - echo " --------------------------------------------------------------------" + echo " WARNING: -----------------------------------------------------------" fi if test "$with_png" = yes; then - echo " Compiling in support for PNG image handling." + echo " Compiling in support for PNG images." elif test "$window_system" != "none"; then - echo " --------------------------------------------------------------------" + echo " WARNING: -----------------------------------------------------------" echo " WARNING: Compiling without PNG image support." if test "$png_problem" != ""; then echo " Reason: $png_problem" @@ -14356,97 +14584,72 @@ echo " WARNING: You should strongly consider installing the PNG libraries." echo " WARNING: Otherwise certain images and glyphs may not display." echo " WARNING: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux)" - echo " --------------------------------------------------------------------" -fi -test "$with_gif" = yes && echo " Compiling in support for (builtin) GIF image handling." -test "$with_jpeg" = yes && echo " Compiling in support for JPEG image handling." -test "$with_tiff" = yes && echo " Compiling in support for TIFF image handling." + echo " WARNING: -----------------------------------------------------------" +fi +test "$with_jpeg" = yes && echo " Compiling in support for JPEG images." +test "$with_tiff" = yes && echo " Compiling in support for TIFF images." test "$with_xface" = yes && echo " Compiling in support for X-Face message headers." -test "$with_native_sound" = yes && echo " Compiling in native sound support." -test "$with_nas_sound" = yes && echo " Compiling in network sound (NAS) support." -test "$old_nas" = yes && echo " nas library lacks error trapping, will play synchronously." -test "$with_esd_sound" = yes && echo " Compiling in support for Enlightened Sound Daemon (ESD)." - -test "$with_database_berkdb" = yes && echo " Compiling in support for Berkeley DB." +echo " +Sound:" +test "$with_native_sound" = yes && echo " Compiling in support for sound (native)." +test "$with_nas_sound" = yes && echo " Compiling in support for NAS (network audio system)." +test "$old_nas" = yes && echo " - NAS library lacks error trapping; will play synchronously." +test "$with_esd_sound" = yes && echo " Compiling in support for ESD (Enlightened Sound Daemon)." + +echo " +Databases:" +test "$with_database_berkdb" = yes && echo " Compiling in support for Berkeley database." test "$with_database_dbm" = yes && echo " Compiling in support for DBM." test "$with_database_gdbm" = yes && echo " Compiling in support for GNU DBM." - -test "$with_ldap" = yes && echo " Compiling in support for LDAP." - +test "$with_ldap" = yes && echo " Compiling in support for LDAP." if test "$with_postgresql" = yes; then - echo " Compiling in support for PostgreSQL." - if test "$with_postgresqlv7" = yes; then - echo " Using PostgreSQL V7 bindings." - fi -fi -test "$with_ncurses" = yes && echo " Compiling in support for ncurses." -test "$with_gpm" = yes && echo " Compiling in support for GPM (General Purpose Mouse)." - -test "$with_mule" = yes && echo " Compiling in Mule (multi-lingual) support." -test "$with_file_coding" = yes && echo " Compiling in File coding support." -test "$with_xim" != no && echo " Compiling in XIM (X11R5+ I18N input method) support." -test "$with_xim" = motif && echo " Using Motif to provide XIM support." -test "$with_xim" = xlib && echo " Using raw Xlib to provide XIM support." -test "$with_xfs" = yes && echo " Using XFontSet to provide bilingual menubar." -test "$with_canna" = yes && echo " Compiling in support for Canna on Mule." + echo " Compiling in support for PostgreSQL." + if test "$with_postgresqlv7" = yes; then + echo " - Using PostgreSQL V7 bindings." + fi + if test -n "$postgres_h_path"; then + echo " - PostgreSQL headers location: $postgres_h_path" + fi +fi + +echo " +Internationalization:" +test "$with_mule" = yes && echo " Compiling in support for Mule (multi-lingual Emacs)." +test "$with_file_coding" = yes && echo " Compiling in support for file coding." +test "$with_xim" != no && echo " Compiling in support for XIM (X11R5+ I18N input method)." +test "$with_xim" = motif && echo " - Using Motif to provide XIM support." +test "$with_xim" = xlib && echo " - Using raw Xlib to provide XIM support." +test "$with_xfs" = yes && echo " - Using XFontSet to provide bilingual menubar." +test "$with_canna" = yes && echo " Compiling in support for Canna on Mule." if test "$with_wnn" = yes; then echo " Compiling in support for the WNN input method on Mule." - test "$with_wnn6" = yes && echo " Using WNN version 6." -fi -test "$with_i18n3" = yes && echo " Compiling in I18N support, level 3 (doesn't currently work)." - -test "$with_cde" = yes && echo " Compiling in support for CDE." + test "$with_wnn6" = yes && echo " - Using WNN version 6." +fi +test "$with_i18n3" = yes && echo " Compiling in support for I18N level 3 (doesn't currently work)." + +echo " +Mail:" +test "$with_pop" = yes && echo " Compiling in support for POP mail retrieval." +test "$with_kerberos" = yes && echo " Compiling in support for Kerberos POP authentication." +test "$with_hesiod" = yes && echo " Compiling in support for Hesiod POP server access." +echo " Compiling in support for \"$mail_locking\" mail spool file locking method." + +echo " +Other Features:" test "$with_tooltalk" = yes && echo " Compiling in support for ToolTalk." -test "$with_offix" = yes && echo " Compiling in support for OffiX." -test "$with_dragndrop" = yes && echo " Compiling in EXPERIMENTAL support for Drag'n'Drop ($dragndrop_proto )." test "$with_workshop" = yes && echo " Compiling in support for Sun WorkShop." -test "$with_wmcommand" != no && echo " Compiling in support for proper WM_COMMAND handling." -case "$with_menubars" in - lucid ) echo " Using Lucid menubars." ;; - motif ) echo " Using Motif menubars." - echo " *WARNING* The Motif menubar implementation is currently buggy." - echo " We recommend using the Lucid menubar instead." - echo " Re-run configure with --with-menubars='lucid'." ;; - msw ) echo " Using MS-Windows menubars." ;; -esac -case "$with_scrollbars" in - lucid ) echo " Using Lucid scrollbars." ;; - motif ) echo " Using Motif scrollbars." ;; - athena ) echo " Using Athena scrollbars." ;; - msw ) echo " Using MS-Windows scrollbars." ;; -esac -case "$with_widgets" in - motif ) echo " Using Motif native widgets." ;; - athena ) echo " Using Athena native widgets." ;; - msw ) echo " Using MS-Windows native widgets." ;; -esac -case "$with_dialogs" in - motif ) - echo " Using Motif dialog boxes." - if test "$unexec" = "unexaix.o"; then if test "`uname -v`" = 4 -a "`uname -r`" -ge 3; then - echo " *WARNING* The Motif dialog boxes cause problems on AIX 4.3 and higher." - echo " We recommend using the Athena dialog boxes instead." - echo " Install libXaw and re-run configure with --with-dialogs='athena'." - echo " Read the PROBLEMS file for more information." - fi; fi - ;; - athena ) echo " Using Athena dialog boxes." ;; - msw ) echo " Using MS-Windows dialog boxes." ;; -esac -test "$with_modules" = "yes" && echo " Compiling in dynamic shared object module support." -test "$with_clash_detection" = yes && \ +test "$with_socks" = yes && echo " Compiling in support for SOCKS." +test "$with_dnet" = yes && echo " Compiling in support for DNET." +test "$with_modules" = "yes" && echo " Compiling in support for dynamic shared object modules." +test "$with_clash_detection" != "no" && \ echo " Clash detection will use \"$lockdir\" for locking files." -echo " movemail will use \"$mail_locking\" for locking mail spool files." -test "$with_pop" = yes && echo " Using POP for mail access." -test "$with_kerberos" = yes && echo " Using Kerberos for POP authentication." -test "$with_hesiod" = yes && echo " Using Hesiod to get POP server host." -test "$use_union_type" = yes && echo " Using the union type for Lisp_Objects." -test "$pdump" = yes && echo " Using the new portable dumper." -test "$debug" = yes && echo " Compiling in extra code for debugging." -test "$usage_tracking" = yes && echo " Compiling with usage tracking active (Sun internal)." -if test "$error_check_extents $error_check_typecheck $error_check_bufpos $error_check_gc $error_check_malloc" \ - != "no no no no no"; then +test "$use_union_type" = yes && echo " Using the union type for Lisp_Objects." +test "$pdump" = yes && echo " Using the new portable dumper." +test "$debug" = yes && echo " Compiling in support for extra debugging code." +test "$usage_tracking" = yes && echo " Compiling in support for active usage tracking (Sun internal)." +if test "$error_check_extents $error_check_typecheck $error_check_bufpos $error_check_gc $error_check_malloc $error_check_glyphs" \ + != "no no no no no no"; then echo " WARNING: ---------------------------------------------------------" echo " WARNING: Compiling in support for runtime error checking." echo " WARNING: XEmacs will run noticeably more slowly as a result."
--- a/configure.in Mon Aug 13 11:16:09 2007 +0200 +++ b/configure.in Mon Aug 13 11:17:09 2007 +0200 @@ -523,7 +523,7 @@ memory_usage_stats | \ with_clash_detection | \ with_modules | \ - no_doc_file ) + quick_build ) dnl Make sure the value given was either "yes" or "no". case "$val" in y | ye | yes ) val=yes ;; @@ -711,14 +711,17 @@ byte_code ) error_check_byte_code=yes ;; nobyte_code ) error_check_byte_code=no ;; + glyphs ) error_check_glyphs=yes ;; + noglyphs ) error_check_glyphs=no ;; + * ) bogus_error_check=yes ;; esac if test "$bogus_error_check" -o \ \( -n "$new_default" -a -n "$echeck_notfirst" \) ; then if test "$error_check_default" = yes ; then - types="\`all' (default), \`none', \`noextents', \`notypecheck', \`nobufpos', \`nogc', \`nomalloc', and \`nobyte-code'." + types="\`all' (default), \`none', \`noextents', \`notypecheck', \`nobufpos', \`nogc', \`nomalloc', \`noglyphs' and \`nobyte-code'." else - types="\`all', \`none' (default), \`extents', \`typecheck', \`bufpos', \`gc', \`malloc', and \`byte-code'." + types="\`all', \`none' (default), \`extents', \`typecheck', \`bufpos', \`gc', \`malloc', \`glyphs' and \`byte-code'." fi USAGE_ERROR(["Valid types for the \`--$optname' option are: $types."]) @@ -729,6 +732,7 @@ error_check_gc=$new_default error_check_malloc=$new_default error_check_byte_code=$new_default + error_check_glyphs=$new_default new_default= # reset this fi echeck_notfirst=true @@ -1017,6 +1021,7 @@ test "${error_check_gc=$beta}" = yes && AC_DEFINE(ERROR_CHECK_GC) test "${error_check_malloc=$beta}" = yes && AC_DEFINE(ERROR_CHECK_MALLOC) test "${error_check_byte_code=$beta}" = yes && AC_DEFINE(ERROR_CHECK_BYTE_CODE) +test "${error_check_glyphs=$beta}" = yes && AC_DEFINE(ERROR_CHECK_GLYPHS) dnl debug=yes must be set when error checking is present. This should be dnl fixed up. dnl debug implies other options @@ -1597,7 +1602,7 @@ XE_ADD_OBJS(sunpro.o) fi -if test "$with_clash_detection" = "yes"; then +if test "$with_clash_detection" != "no"; then AC_DEFINE(CLASH_DETECTION) XE_ADD_OBJS(filelock.o) fi @@ -1648,11 +1653,41 @@ dnl Compiler feature macros dnl -------------------------------------------------------------------- +AC_AIX dnl Defines _ALL_SOURCE on AIX. + +dnl Determine which SMART_INCLUDE macro will work for this system +cat > $srcdir/conffoo.h <<EOF +#define CONFFOO 1 +EOF +AC_MSG_CHECKING(for a working inclusion macro) +AC_TRY_COMPILE(,[ +#define SMART_INCLUDE(path,file) <path/file> +#define CONFFOO_H_PATH $srcdir +#define CONFFOO_INCLUDE(file) SMART_INCLUDE (CONFFOO_H_PATH,file) +#include CONFFOO_INCLUDE(conffoo.h) +], [ AC_MSG_RESULT(direct); AC_DEFINE(SMART_INCLUDE_INDIRECTIONS,0) ], +AC_TRY_COMPILE(,[ +#define GLUE_INCLUDE(path,file) <##path##/##file##> +#define SMART_INCLUDE(path,file) GLUE_INCLUDE(path,file) +#define CONFFOO_H_PATH $srcdir +#define CONFFOO_INCLUDE(file) SMART_INCLUDE(CONFFOO_H_PATH,file) +#include CONFFOO_INCLUDE(conffoo.h) +], [ AC_MSG_RESULT(simple); AC_DEFINE(SMART_INCLUDE_INDIRECTIONS,1) ], +AC_TRY_COMPILE(,[ +#define GLUE_INCLUDE_2(path,file) <##path##/##file##> +#define GLUE_INCLUDE_1(path,file) GLUE_INCLUDE_2(path,file) +#define SMART_INCLUDE(path,file) GLUE_INCLUDE_1(path,file) +#define CONFFOO_H_PATH $srcdir +#define CONFFOO_INCLUDE(file) SMART_INCLUDE (CONFFOO_H_PATH,file) +#include CONFFOO_INCLUDE(conffoo.h) +], [ AC_MSG_RESULT(double); AC_DEFINE(SMART_INCLUDE_INDIRECTIONS,2) ], + AC_MSG_ERROR([Cannot define a proper SMART_INCLUDE macro. Please report.])))) +rm -f $srcdir/conffoo.h + + dnl We want feature macros defined here and in config.h.in, so that dnl the compilation environment at configure time and compile time agree. -AC_AIX dnl Defines _ALL_SOURCE on AIX. - AC_MSG_CHECKING(for GNU libc) AC_TRY_COMPILE([#include <features.h>],[ #if ! (defined __GLIBC__ || defined __GNU_LIBRARY__) @@ -1669,7 +1704,7 @@ dnl We'd like to use functions from the latest Unix98 standards. dnl See http://www.opengroup.org/onlinepubs/007908799/xsh/compilation.html case "$opsys" in - sol2) + sol2) AC_DEFINE(__EXTENSIONS__) dnl Solaris 2 before 2.5 had some bugs with feature test macro interaction. if test "$os_release" -ge 55; then @@ -1762,8 +1797,11 @@ CPP_to_sh(LD_SWITCH_SHARED, ld_switch_shared, -c) +#define ORDINARY_LD "\$(CC) \$(CFLAGS)" +configure___ ordinary_ld=ORDINARY_LD + #ifdef ORDINARY_LINK -#define LD "\$(CC) \$(CFLAGS)" +#define LD ORDINARY_LD #else /* no ORDINARY LINK */ #ifdef COFF_ENCAPSULATE #define LD "\$(CC) -nostdlib" @@ -1817,6 +1855,15 @@ rm $tempcname +if test "$pdump" = "yes"; then + ordinary_link="yes" + ld="${ordinary_ld}" + start_files= + libs_standard= + unexec= + lib_gcc= +fi + dnl For debugging... test "$extra_verbose" = "yes" && \ PRINT_VAR(libs_machine libs_system libs_termcap libs_standard @@ -2088,10 +2135,10 @@ dnl the run-time to use the link-time libraries. This also helps avoid dnl mismatches between the link-time and run-time libraries. -dnl #### Unfortunately, there are horrible libc4 and libc5 libraries -dnl listed in /etc/ld.so.conf on some systems, and including them on -dnl the link path leads to linking in utterly broken libc's. -dnl There are many clever ways of approaching this problem, +dnl #### Unfortunately, there are horrible libc4 and libc5 libraries +dnl listed in /etc/ld.so.conf on some systems, and including them on +dnl the link path leads to linking in utterly broken libc's. +dnl There are many clever ways of approaching this problem, dnl but finding out that actually works... dnl if test -z "$LD_RUN_PATH" -a -r "/etc/ld.so.conf"; then @@ -2234,26 +2281,26 @@ if test "$system_malloc" = "yes" ; then GNU_MALLOC=no GNU_MALLOC_reason=" - (The GNU allocators don't work with this system configuration)." + - The GNU allocators don't work with this system configuration." elif test "$with_system_malloc" = "yes" ; then GNU_MALLOC=no GNU_MALLOC_reason=" - (User chose not to use GNU allocators)." + - User chose not to use GNU allocators." elif test "$with_debug_malloc" = "yes" ; then GNU_MALLOC=no GNU_MALLOC_reason=" - (User chose to use Debugging Malloc)." + - User chose to use Debugging Malloc." fi if test "$doug_lea_malloc" = "yes" ; then if test "$GNU_MALLOC" = yes ; then GNU_MALLOC_reason=" - (Using Doug Lea's new malloc from the GNU C Library.)" + - Using Doug Lea's new malloc from the GNU C Library." fi AC_DEFINE(DOUG_LEA_MALLOC) if test "$after_morecore_hook_exists" = "no" ; then GNU_MALLOC_reason=" - (Using Doug Lea's new malloc from the Linux C Library.)" + - Using Doug Lea's new malloc from the Linux C Library." AC_DEFINE(_NO_MALLOC_WARNING_) fi use_minimal_tagbits=yes @@ -2788,9 +2835,9 @@ dnl autodetect the location of tt_c.h dnl tt_c.h might be in Tt or desktop include directories for dir in "" "Tt/" "desktop/" ; do - AC_CHECK_HEADER(${dir}tt_c.h, tt_c_h_path="${dir}tt_c.h"; break) + AC_CHECK_HEADER(${dir}tt_c.h, tt_c_h_file="${dir}tt_c.h"; break) done - if test -z "$tt_c_h_path"; then + if test -z "$tt_c_h_file"; then if test "$with_tooltalk" = "yes"; then USAGE_ERROR("Unable to find required tooltalk header files.") fi @@ -2812,7 +2859,7 @@ test -z "$with_tooltalk" && with_tooltalk=yes if test "$with_tooltalk" = "yes"; then AC_DEFINE(TOOLTALK) - AC_DEFINE_UNQUOTED(TT_C_H_PATH, "$tt_c_h_path") + AC_DEFINE_UNQUOTED(TT_C_H_FILE, "$tt_c_h_file") XE_PREPEND($tt_libs, libs_x) XE_ADD_OBJS(tooltalk.o) fi @@ -2910,31 +2957,45 @@ dnl in the --site-prefixes flag. dnl The default RPM-based Linux installation location is /usr. AC_CHECKING(for PostgreSQL) +postgres_h_path="" postgres_includes_found=no save_c_switch_site="$c_switch_site" -dnl First check site prefixes + +dnl First, test standard location and site prefixes only: if test "$with_postgresql" != "no"; then AC_CHECK_HEADER(libpq-fe.h,postgres_includes_found=yes) fi -dnl test for Linux-style installation in /usr -if test "$postgres_includes_found" = "no" -a "$with_postgresql" != "no" -a \ - -d "/usr/include/pgsql"; then - c_switch_site="$c_switch_site -I/usr/include/pgsql" - AC_CHECK_HEADER(libpq-fe.h,postgres_includes_found=yes) - if test "$postgres_includes_found" != "yes"; then - c_switch_site="$save_c_switch_site" - fi -fi + +dnl Otherwise, test different known headers locations on linux: if test "$postgres_includes_found" = "no" -a "$with_postgresql" != "no" -a \ -d "/usr/local/pgsql/include"; then c_switch_site="$c_switch_site -I/usr/local/pgsql/include" AC_CHECK_HEADER(libpq-fe.h,postgres_includes_found=yes) if test "$postgres_includes_found" != "yes"; then + postgres_h_path="/usr/local/pgsql/include" + fi + c_switch_site="$save_c_switch_site" +fi +if test "$postgres_includes_found" = "no" -a "$with_postgresql" != "no" -a \ + -d "/usr/include/pgsql"; then + c_switch_site="$c_switch_site -I/usr/include/pgsql" + AC_CHECK_HEADER(libpq-fe.h,postgres_includes_found=yes) + if test "$postgres_includes_found" = "yes"; then + postgres_h_path="pgsql" + fi c_switch_site="$save_c_switch_site" fi +if test "$postgres_includes_found" = "no" -a "$with_postgresql" != "no" -a \ + -d "/usr/include/postgresql"; then + c_switch_site="$c_switch_site -I/usr/include/postgresql" + AC_CHECK_HEADER(libpq-fe.h,postgres_includes_found=yes) + if test "$postgres_includes_found" = "yes"; then + postgres_h_path="postgresql" fi - -dnl last check -- can we link against libpq? + c_switch_site="$save_c_switch_site" +fi + +dnl Finally, check if we can link with libpq: if test "$postgres_includes_found" = "yes"; then AC_CHECK_LIB(pq,PQconnectdb,with_postgresql=yes,with_postgresql=no) fi @@ -2942,14 +3003,15 @@ AC_CHECK_LIB(pq,PQconnectStart,with_postgresqlv7=yes,with_postgresqlv7=no) fi if test "$with_postgresql" = "yes"; then + if test -n "$postgres_h_path"; then + AC_DEFINE_UNQUOTED(POSTGRES_H_PATH, $postgres_h_path) + fi AC_DEFINE(HAVE_POSTGRESQL) if test "$with_postgresqlv7" = "yes"; then AC_DEFINE(HAVE_POSTGRESQLV7) fi XE_PREPEND(-lpq, LIBS) XE_ADD_OBJS(postgresql.o) -else - c_switch_site=$save_c_switch_site fi dnl ---------------------- @@ -3759,7 +3821,7 @@ sound_found=yes need_miscplay=yes XE_ADD_OBJS(linuxplay.o) - [AC_DEFINE_UNQUOTED(SOUNDCARD_H_PATH, "${dir}/soundcard.h")] + [AC_DEFINE_UNQUOTED(SOUNDCARD_H_FILE, "${dir}/soundcard.h")] break) done fi @@ -3834,8 +3896,8 @@ fi if test "$with_ncurses" = "yes"; then AC_DEFINE(HAVE_NCURSES) - AC_CHECK_HEADER(ncurses/curses.h, curses_h_path=ncurses/curses.h) - AC_CHECK_HEADER(ncurses/term.h, term_h_path=ncurses/term.h) + AC_CHECK_HEADER(ncurses/curses.h, curses_h_file=ncurses/curses.h) + AC_CHECK_HEADER(ncurses/term.h, term_h_file=ncurses/term.h) XE_ADD_OBJS(terminfo.o) XE_PREPEND(-lncurses, LIBS) @@ -3845,7 +3907,7 @@ dnl <ncurses/unctrl.h>) save_c_switch_site="$c_switch_site" c_switch_site="$c_switch_site -I/usr/include/ncurses" - AC_CHECK_HEADER(ncurses/curses.h, curses_h_path=ncurses/curses.h) + AC_CHECK_HEADER(ncurses/curses.h, curses_h_file=ncurses/curses.h) if test "$ac_cv_header_ncurses_curses_h" = "yes" then AC_MSG_WARN("Your system has the bogus ncurses include bug.") else c_switch_site="$save_c_switch_site" @@ -3877,8 +3939,8 @@ fi fi fi - AC_DEFINE_UNQUOTED(CURSES_H_PATH, "${curses_h_path-curses.h}") - AC_DEFINE_UNQUOTED(TERM_H_PATH, "${term_h_path-term.h}") + AC_DEFINE_UNQUOTED(CURSES_H_FILE, "${curses_h_file-curses.h}") + AC_DEFINE_UNQUOTED(TERM_H_FILE, "${term_h_file-term.h}") dnl Autodetect gpm test -z "$with_gpm" && { AC_CHECK_HEADER(gpm.h, , with_gpm=no) } @@ -3946,7 +4008,7 @@ dnl Check for Berkeley DB. if test "$with_database_berkdb" != "no"; then AC_MSG_CHECKING(for Berkeley db.h) - for path in "db/db.h" "db.h"; do + for header in "db/db.h" "db.h"; do AC_TRY_COMPILE([ #include <stdlib.h> #if !(defined __GLIBC__ && __GLIBC_MINOR__ >= 1) @@ -3961,18 +4023,18 @@ #endif #endif #endif -#include <$path> -],[], db_h_path="$path"; break) +#include <$header> +],[], db_h_file="$header"; break) done - if test -z "$db_h_path" + if test -z "$db_h_file" then AC_MSG_RESULT(no); with_database_berkdb=no - else AC_MSG_RESULT($db_h_path) + else AC_MSG_RESULT($db_h_file) fi if test "$with_database_berkdb" != "no"; then AC_MSG_CHECKING(for Berkeley DB version) AC_EGREP_CPP(yes, -[#include <$db_h_path> +[#include <$db_h_file> #if DB_VERSION_MAJOR > 1 yes #endif @@ -3982,7 +4044,7 @@ fi if test "$with_database_berkdb" = "yes"; then - AC_DEFINE_UNQUOTED(DB_H_PATH, "$db_h_path") + AC_DEFINE_UNQUOTED(DB_H_FILE, "$db_h_file") AC_DEFINE(HAVE_BERKELEY_DB) test "$need_libdb" = "yes" && XE_PREPEND(-ldb, LIBS) else with_database_berkdb=no @@ -4411,7 +4473,7 @@ test "$with_i18n3" = "yes" && AC_DEFINE(I18N3) test "$GCC" = "yes" && AC_DEFINE(USE_GCC) test "$external_widget" = "yes" && AC_DEFINE(EXTERNAL_WIDGET) -test "$no_doc_file" = "yes" && AC_DEFINE(NO_DOC_FILE) +test "$quick_build" = "yes" && AC_DEFINE(QUICK_BUILD) test "$with_purify" = "yes" && AC_DEFINE(PURIFY) test "$with_quantify" = "yes" && AC_DEFINE(QUANTIFY) test "$with_pop" = "yes" && AC_DEFINE(MAIL_USE_POP) @@ -4450,59 +4512,113 @@ echo " XEmacs ${emacs_major_version}.${emacs_minor_version}${xemacs_betaname} \"$xemacs_codename\" configured for \`$canonical'. - - Where should the build process find the source code? $srcdir - What installation prefix should install use? $prefix - What operating system and machine description files should XEmacs use? - \`$opsysfile' and \`$machfile' - What compiler should XEmacs be built with? $CC $CFLAGS - Should XEmacs use the GNU version of malloc? ${GNU_MALLOC}${GNU_MALLOC_reason} - Should XEmacs use the relocating allocator for buffers? $rel_alloc - What window system should XEmacs use? ${window_system}" -if test "$with_x11" = "yes"; then - echo " Where do we find X Windows header files? $x_includes" - echo " Where do we find X Windows libraries? $x_libraries" -fi +" +echo " +Compilation / Installation:" +echo " Source code location: $srcdir" +echo " Installation prefix: $prefix" if test -n "$site_includes"; then - echo " Additional header files: $site_includes" + echo " Additional header files: $site_includes" fi if test -n "$site_libraries"; then - echo " Additional libraries: $site_libraries" + echo " Additional libraries: $site_libraries" fi if test -n "$site_prefixes"; then - echo " Additional prefixes: $site_prefixes" + echo " Additional prefixes: $site_prefixes" fi if test -n "$runpath"; then - echo " Runtime library search path: $runpath" + echo " Runtime library search path: $runpath" +fi +echo " Operating system description file: \`$opsysfile'" +echo " Machine description file: \`$machfile'" +echo " Compiler: $CC $CFLAGS" +echo " Relocating allocator for buffers: $rel_alloc" +echo " GNU version of malloc: ${GNU_MALLOC}${GNU_MALLOC_reason}" + +echo " +Window System:" +if test "$with_msw" = "yes"; then + echo " Compiling in support for the Microsoft window system." +fi +if test "$with_x11" = "yes"; then + echo " Compiling in support for the X window system:" + echo " - X Windows headers location: $x_includes" + echo " - X Windows libraries location: $x_libraries" + if test "$with_xauth" != yes; then + echo " - Xau (X authority) not available." + fi + if test "$with_xmu" != yes; then + echo " - Xmu library not available; substituting equivalent routines." + fi + if test "$with_wmcommand" != no; then + echo " - Handling WM_COMMAND properly." + fi fi if test "$have_xaw" = "yes"; then - echo " Athena library to link: $athena_lib" - echo " Athena header include path: $athena_h_path" + echo " Compiling in support for the Athena widget set:" + echo " - Athena headers location: $athena_h_path" + echo " - Athena library to link: $athena_lib" fi -test "$with_dnet" = yes && echo " Compiling in support for DNET." -test "$with_socks" = yes && echo " Compiling in support for SOCKS." -test "$with_xauth" = yes && echo " Compiling in support for XAUTH." -if test "$with_xmu" != yes -a "$with_x11" = yes; then - echo " No Xmu; substituting equivalent routines." +case "$with_menubars" in + lucid ) echo " Using Lucid menubars." ;; + motif ) echo " Using Motif menubars." + echo " *WARNING* The Motif menubar implementation is currently buggy." + echo " We recommend using the Lucid menubar instead." + echo " Re-run configure with --with-menubars='lucid'." ;; + msw ) echo " Using MS-Windows menubars." ;; +esac +case "$with_scrollbars" in + lucid ) echo " Using Lucid scrollbars." ;; + motif ) echo " Using Motif scrollbars." ;; + athena ) echo " Using Athena scrollbars." ;; + msw ) echo " Using MS-Windows scrollbars." ;; +esac +case "$with_dialogs" in + motif ) echo " Using Motif dialog boxes." + if test "$unexec" = "unexaix.o"; then if test "`uname -v`" = 4 -a "`uname -r`" -ge 3; then + echo " *WARNING* The Motif dialog boxes cause problems on AIX 4.3 and higher." + echo " We recommend using the Athena dialog boxes instead." + echo " Install libXaw and re-run configure with --with-dialogs='athena'." + echo " Read the PROBLEMS file for more information." + fi; fi ;; + athena ) echo " Using Athena dialog boxes." ;; + msw ) echo " Using MS-Windows dialog boxes." ;; +esac +case "$with_widgets" in + motif ) echo " Using Motif native widgets." ;; + athena ) echo " Using Athena native widgets." ;; + msw ) echo " Using MS-Windows native widgets." ;; +esac +if test "$with_dragndrop" = yes; then + echo " Compiling in support for Drag'n'Drop (EXPERIMENTAL)." + echo " - Drag'n'Drop prototype: $dragndrop_proto." fi +echo " +TTY:" +test "$with_ncurses" = yes && echo " Compiling in support for ncurses." +test "$with_gpm" = yes && echo " Compiling in support for GPM (General Purpose Mouse)." + +echo " +Images:" +test "$with_gif" = yes && echo " Compiling in support for GIF images (builtin)." if test "$with_xpm" = yes; then - echo " Compiling in support for XPM images." + echo " Compiling in support for XPM images." elif test "$with_x11" = yes; then - echo " --------------------------------------------------------------------" - echo " WARNING: Compiling without XPM support." + echo " WARNING: -----------------------------------------------------------" + echo " WARNING: Compiling without XPM image support." if test "$xpm_problem" != ""; then echo " Reason: $xpm_problem" fi echo " WARNING: You should strongly consider installing XPM." echo " WARNING: Otherwise toolbars and other graphics will look suboptimal." echo " WARNING: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux)" - echo " --------------------------------------------------------------------" + echo " WARNING: -----------------------------------------------------------" fi if test "$with_png" = yes; then - echo " Compiling in support for PNG image handling." + echo " Compiling in support for PNG images." elif test "$window_system" != "none"; then - echo " --------------------------------------------------------------------" + echo " WARNING: -----------------------------------------------------------" echo " WARNING: Compiling without PNG image support." if test "$png_problem" != ""; then echo " Reason: $png_problem" @@ -4510,97 +4626,72 @@ echo " WARNING: You should strongly consider installing the PNG libraries." echo " WARNING: Otherwise certain images and glyphs may not display." echo " WARNING: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux)" - echo " --------------------------------------------------------------------" + echo " WARNING: -----------------------------------------------------------" fi -test "$with_gif" = yes && echo " Compiling in support for (builtin) GIF image handling." -test "$with_jpeg" = yes && echo " Compiling in support for JPEG image handling." -test "$with_tiff" = yes && echo " Compiling in support for TIFF image handling." +test "$with_jpeg" = yes && echo " Compiling in support for JPEG images." +test "$with_tiff" = yes && echo " Compiling in support for TIFF images." test "$with_xface" = yes && echo " Compiling in support for X-Face message headers." -test "$with_native_sound" = yes && echo " Compiling in native sound support." -test "$with_nas_sound" = yes && echo " Compiling in network sound (NAS) support." -test "$old_nas" = yes && echo " nas library lacks error trapping, will play synchronously." -test "$with_esd_sound" = yes && echo " Compiling in support for Enlightened Sound Daemon (ESD)." - -test "$with_database_berkdb" = yes && echo " Compiling in support for Berkeley DB." +echo " +Sound:" +test "$with_native_sound" = yes && echo " Compiling in support for sound (native)." +test "$with_nas_sound" = yes && echo " Compiling in support for NAS (network audio system)." +test "$old_nas" = yes && echo " - NAS library lacks error trapping; will play synchronously." +test "$with_esd_sound" = yes && echo " Compiling in support for ESD (Enlightened Sound Daemon)." + +echo " +Databases:" +test "$with_database_berkdb" = yes && echo " Compiling in support for Berkeley database." test "$with_database_dbm" = yes && echo " Compiling in support for DBM." test "$with_database_gdbm" = yes && echo " Compiling in support for GNU DBM." - -test "$with_ldap" = yes && echo " Compiling in support for LDAP." - +test "$with_ldap" = yes && echo " Compiling in support for LDAP." if test "$with_postgresql" = yes; then - echo " Compiling in support for PostgreSQL." - if test "$with_postgresqlv7" = yes; then - echo " Using PostgreSQL V7 bindings." - fi + echo " Compiling in support for PostgreSQL." + if test "$with_postgresqlv7" = yes; then + echo " - Using PostgreSQL V7 bindings." + fi + if test -n "$postgres_h_path"; then + echo " - PostgreSQL headers location: $postgres_h_path" + fi fi -test "$with_ncurses" = yes && echo " Compiling in support for ncurses." -test "$with_gpm" = yes && echo " Compiling in support for GPM (General Purpose Mouse)." - -test "$with_mule" = yes && echo " Compiling in Mule (multi-lingual) support." -test "$with_file_coding" = yes && echo " Compiling in File coding support." -test "$with_xim" != no && echo " Compiling in XIM (X11R5+ I18N input method) support." -test "$with_xim" = motif && echo " Using Motif to provide XIM support." -test "$with_xim" = xlib && echo " Using raw Xlib to provide XIM support." -test "$with_xfs" = yes && echo " Using XFontSet to provide bilingual menubar." -test "$with_canna" = yes && echo " Compiling in support for Canna on Mule." + +echo " +Internationalization:" +test "$with_mule" = yes && echo " Compiling in support for Mule (multi-lingual Emacs)." +test "$with_file_coding" = yes && echo " Compiling in support for file coding." +test "$with_xim" != no && echo " Compiling in support for XIM (X11R5+ I18N input method)." +test "$with_xim" = motif && echo " - Using Motif to provide XIM support." +test "$with_xim" = xlib && echo " - Using raw Xlib to provide XIM support." +test "$with_xfs" = yes && echo " - Using XFontSet to provide bilingual menubar." +test "$with_canna" = yes && echo " Compiling in support for Canna on Mule." if test "$with_wnn" = yes; then echo " Compiling in support for the WNN input method on Mule." - test "$with_wnn6" = yes && echo " Using WNN version 6." + test "$with_wnn6" = yes && echo " - Using WNN version 6." fi -test "$with_i18n3" = yes && echo " Compiling in I18N support, level 3 (doesn't currently work)." - -test "$with_cde" = yes && echo " Compiling in support for CDE." +test "$with_i18n3" = yes && echo " Compiling in support for I18N level 3 (doesn't currently work)." + +echo " +Mail:" +test "$with_pop" = yes && echo " Compiling in support for POP mail retrieval." +test "$with_kerberos" = yes && echo " Compiling in support for Kerberos POP authentication." +test "$with_hesiod" = yes && echo " Compiling in support for Hesiod POP server access." +echo " Compiling in support for \"$mail_locking\" mail spool file locking method." + +echo " +Other Features:" test "$with_tooltalk" = yes && echo " Compiling in support for ToolTalk." -test "$with_offix" = yes && echo " Compiling in support for OffiX." -test "$with_dragndrop" = yes && echo " Compiling in EXPERIMENTAL support for Drag'n'Drop ($dragndrop_proto )." test "$with_workshop" = yes && echo " Compiling in support for Sun WorkShop." -test "$with_wmcommand" != no && echo " Compiling in support for proper WM_COMMAND handling." -case "$with_menubars" in - lucid ) echo " Using Lucid menubars." ;; - motif ) echo " Using Motif menubars." - echo " *WARNING* The Motif menubar implementation is currently buggy." - echo " We recommend using the Lucid menubar instead." - echo " Re-run configure with --with-menubars='lucid'." ;; - msw ) echo " Using MS-Windows menubars." ;; -esac -case "$with_scrollbars" in - lucid ) echo " Using Lucid scrollbars." ;; - motif ) echo " Using Motif scrollbars." ;; - athena ) echo " Using Athena scrollbars." ;; - msw ) echo " Using MS-Windows scrollbars." ;; -esac -case "$with_widgets" in - motif ) echo " Using Motif native widgets." ;; - athena ) echo " Using Athena native widgets." ;; - msw ) echo " Using MS-Windows native widgets." ;; -esac -case "$with_dialogs" in - motif ) - echo " Using Motif dialog boxes." - if test "$unexec" = "unexaix.o"; then if test "`uname -v`" = 4 -a "`uname -r`" -ge 3; then - echo " *WARNING* The Motif dialog boxes cause problems on AIX 4.3 and higher." - echo " We recommend using the Athena dialog boxes instead." - echo " Install libXaw and re-run configure with --with-dialogs='athena'." - echo " Read the PROBLEMS file for more information." - fi; fi - ;; - athena ) echo " Using Athena dialog boxes." ;; - msw ) echo " Using MS-Windows dialog boxes." ;; -esac -test "$with_modules" = "yes" && echo " Compiling in dynamic shared object module support." -test "$with_clash_detection" = yes && \ +test "$with_socks" = yes && echo " Compiling in support for SOCKS." +test "$with_dnet" = yes && echo " Compiling in support for DNET." +test "$with_modules" = "yes" && echo " Compiling in support for dynamic shared object modules." +test "$with_clash_detection" != "no" && \ echo " Clash detection will use \"$lockdir\" for locking files." -echo " movemail will use \"$mail_locking\" for locking mail spool files." -test "$with_pop" = yes && echo " Using POP for mail access." -test "$with_kerberos" = yes && echo " Using Kerberos for POP authentication." -test "$with_hesiod" = yes && echo " Using Hesiod to get POP server host." -test "$use_union_type" = yes && echo " Using the union type for Lisp_Objects." -test "$pdump" = yes && echo " Using the new portable dumper." -test "$debug" = yes && echo " Compiling in extra code for debugging." -test "$usage_tracking" = yes && echo " Compiling with usage tracking active (Sun internal)." -if test "$error_check_extents $error_check_typecheck $error_check_bufpos $error_check_gc $error_check_malloc" \ - != "no no no no no"; then +test "$use_union_type" = yes && echo " Using the union type for Lisp_Objects." +test "$pdump" = yes && echo " Using the new portable dumper." +test "$debug" = yes && echo " Compiling in support for extra debugging code." +test "$usage_tracking" = yes && echo " Compiling in support for active usage tracking (Sun internal)." +if test "$error_check_extents $error_check_typecheck $error_check_bufpos $error_check_gc $error_check_malloc $error_check_glyphs" \ + != "no no no no no no"; then echo " WARNING: ---------------------------------------------------------" echo " WARNING: Compiling in support for runtime error checking." echo " WARNING: XEmacs will run noticeably more slowly as a result."
--- a/configure.usage Mon Aug 13 11:16:09 2007 +0200 +++ b/configure.usage Mon Aug 13 11:17:09 2007 +0200 @@ -88,6 +88,17 @@ unpredictable. --without-xmu (*) For those unfortunates whose vendors don't ship Xmu. --external-widget Compile with external widget support. + + +TTY options: + +--without-tty Don't support TTY-s. +--with-ncurses (*) Use the ncurses library for tty support. +--with-gpm (*) Compile in support for General Purpose Mouse. + + +Image options: + --with-xpm (*) Compile with support for XPM files. It is highly recommended that you obtain XPM (version 3.4h or better) if you don't already @@ -107,22 +118,8 @@ Get if from the XEmacs FTP site. -TTY options: - ---without-tty Don't support TTY-s. ---with-ncurses (*) Use the ncurses library for tty support. ---with-gpm (*) Compile in support for General Purpose Mouse. - +Sound options: -Additional features: - ---with-tooltalk (*) Support the ToolTalk IPC protocol. ---with-workshop Support the Sun WorkShop (formerly Sparcworks) - development environment. ---with-socks Compile with support for SOCKS (an Internet proxy). ---with-database=TYPE (*) Compile with database support. Valid types are - `no' or a comma-separated list of one or more - of `berkdb' and either `dbm' or `gnudbm'. --with-sound=TYPE,[TYPE],... Compile with native sound support. Valid types are `native', `nas' and `esd'. Prefix a type with 'no' to disable. @@ -133,17 +130,36 @@ --native-sound-lib=LIB Native sound support library. Needed on Suns with --with-sound=both because both sound libraries are called libaudio. ---with-pop support POP for mail retrieval ---with-kerberos support Kerberos-authenticated POP ---with-hesiod support Hesiod to get the POP server host ---with-dnet (*) Compile with support for DECnet. + + +Database options: + +--with-database=TYPE (*) Compile with database support. Valid types are + `no' or a comma-separated list of one or more + of `berkdb' and either `dbm' or `gnudbm'. --with-ldap (*) Compile with support for the LDAP protocol (requires installed LDAP libraries on the system). --with-postgresql (*) Compile with support for the PostgreSQL RDBMS (requires installed PostreSQL libraries on the system). + + +Mail options: + --mail-locking=TYPE (*) Specify the locking to be used by movemail to prevent concurrent updates of mail spool files. Valid types are `lockf', `flock', and `dot'. +--with-pop support POP for mail retrieval +--with-kerberos support Kerberos-authenticated POP +--with-hesiod support Hesiod to get the POP server host + + +Additional features: + +--with-tooltalk (*) Support the ToolTalk IPC protocol. +--with-workshop Support the Sun WorkShop (formerly Sparcworks) + development environment. +--with-socks Compile with support for SOCKS (an Internet proxy). +--with-dnet (*) Compile with support for DECnet. --with-modules Compile in experimental support for dynamically loaded libraries (Dynamic Shared Objects). --with-site-lisp=yes Allow for a site-lisp directory in the XEmacs hierarchy @@ -232,7 +248,7 @@ --with-system-malloc Force use of the system malloc, rather than GNU malloc. --with-debug-malloc Use the debugging malloc package. --with-clash-detection Use lock files to detect multiple edits of the same - file. The default is to not do clash detection. + file. The default is to do clash detection. --lockdir=DIR The directory to put clash detection files in, such as `/var/lock/emacs'. Defaults to `${statedir}/xemacs/lock'.
--- a/etc/Emacs.ad Mon Aug 13 11:16:09 2007 +0200 +++ b/etc/Emacs.ad Mon Aug 13 11:17:09 2007 +0200 @@ -191,6 +191,10 @@ *menubar*Font: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-* *popup*Font: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-* +! Gui elements share this font +! +Emacs.gui-element.attributeFont: -*-helvetica-medium-r-*-*-*-120-*-*-*-*-iso8859-* + ! Font in the Motif dialog boxes. ! (Motif uses `fontList' while most other things use `font' - if you don't ! know why you probably don't want to.) @@ -260,6 +264,11 @@ <EnterWindow>: Enter()\n\ <LeaveWindow>: Leave()\n +! Native Widget translations +! ======================= +Emacs*Text*translations: #override\n\ + <Btn1Down>: widget-focus-in()\n + ! XIM input method style ! =======================
--- a/etc/NEWS Mon Aug 13 11:16:09 2007 +0200 +++ b/etc/NEWS Mon Aug 13 11:17:09 2007 +0200 @@ -239,14 +239,14 @@ on by default for font-lock and some web browsing functions. If you do not like this behaviour set `progress-display-use-echo-area'. -** Etags changes. - ** The PostgreSQL Relational Database Management System is now supported. It is now possible to build XEmacs so that the programming interface to the PostgreSQL RDBMS (libpq) is available in XEmacs Lisp. Supported versions of PostgreSQL are 6.5.3 (earlier versions may work, but have not been tested) and 7.0-beta1. +** 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
--- a/lib-src/ChangeLog Mon Aug 13 11:16:09 2007 +0200 +++ b/lib-src/ChangeLog Mon Aug 13 11:17:09 2007 +0200 @@ -1,3 +1,19 @@ +2000-05-01 Martin Buchholz <martin@xemacs.org> + + * XEmacs 21.2.33 is released. + +2000-04-19 Martin Buchholz <martin@xemacs.org> + + * gnuclient.c (initialize_signals): Always use full ANSI prototypes. + +2000-04-06 Kirill 'Big K' Katsnelson <kkm@dtmx.com> + + * i.c: New file, source for the i utility. + +2000-03-22 Mike Alexander <mta@arbortext.com> + + * make-dump-id.c (gettimeofday): new (Windows only) + 2000-03-20 Martin Buchholz <martin@xemacs.org> * XEmacs 21.2.32 is released.
--- a/lib-src/gnuclient.c Mon Aug 13 11:16:09 2007 +0200 +++ b/lib-src/gnuclient.c Mon Aug 13 11:17:09 2007 +0200 @@ -121,7 +121,7 @@ } void -initialize_signals () +initialize_signals (void) { /* Set up signal handler to pass relevant signals to emacs process. We used to send SIGSEGV, SIGBUS, SIGPIPE, SIGILL and others to
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib-src/i.c Mon Aug 13 11:17:09 2007 +0200 @@ -0,0 +1,185 @@ +/* I-connector utility + Copyright (C) 2000 Kirill M. Katsnelson + +This file is part of XEmacs. + +XEmacs is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the +Free Software Foundation; either version 2, or (at your option) any +later version. + +XEmacs is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with XEmacs; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +/* When run with an argument, i treats it as a command line, and pipes +command stdin, stdout and stderr to its own respective streams. How +silly it should sound, but windowed program in Win32 cannot do output +to the console from which it has been started, and should be run using +this utility. + +This utility is for running [tx]emacs as part of make process so that +its output goes to the same console as the rest of the make output +does. It can be used also when xemacs should be run as a batch +command ina script, especially when its standart output should be +obtained programmatically. */ + +#include <windows.h> +#include <stdio.h> +#include <string.h> +#include <tchar.h> + +typedef struct +{ + HANDLE source; + HANDLE drain; +} I_connector; + +/* + * Make new handle as that pointed to by PH but + * inheritable, substitute PH with it, and close the + * original one + */ +static void +make_inheritable (HANDLE* ph) +{ + HANDLE htmp; + DuplicateHandle (GetCurrentProcess(), *ph, GetCurrentProcess(), &htmp, + 0, TRUE, DUPLICATE_CLOSE_SOURCE | DUPLICATE_SAME_ACCESS); + *ph = htmp; +} + +/* + * Worker thread proc. Reads source, pumps into drain, + * till either clogs. + */ +static DWORD CALLBACK +pump (LPVOID pv_i) +{ + I_connector* pi = (I_connector*) pv_i; + BYTE buffer [256]; + DWORD really_read, unused; + + while (ReadFile (pi->source, buffer, sizeof (buffer), &really_read, NULL) && + WriteFile (pi->drain, buffer, really_read, &unused, NULL)) + ; + + return 0; +} + +/* + * Launch a pump for the given I-connector + */ +static void +start_pump (I_connector* pi) +{ + DWORD unused; + HANDLE h_thread = CreateThread (NULL, 0, pump, (void*)pi, 0, &unused); + CloseHandle (h_thread); +} + +/* + * Get command line, skip over the executable name, return the rest. + */ +static LPTSTR +get_command (void) +{ + LPTSTR q, ws, cl = GetCommandLine (); + int ix; + + while (1) + { + ix = _tcscspn (cl, _T(" \t\"")); + if (cl[ix] == '\"') + { + cl = _tcschr (cl + ix + 1, '\"'); + if (cl == NULL) + return NULL; /* Unmatched quote */ + cl++; + } + else + { + cl += ix; + cl += _tcsspn (cl, _T(" \t")); + return *cl ? cl : NULL; + } + } +} + +/* + * Brew coffee and bring snickers + */ +void +usage (void) +{ + fprintf (stderr, + "\n" + "usage: i command\n" + "i executes the command and reroutes its standard handles to the calling\n" + "console. Good for seeing output of GUI programs that use standard output." + "\n"); +} + +int +main (void) +{ + STARTUPINFO si; + PROCESS_INFORMATION pi; + I_connector I_in, I_out, I_err; + DWORD exit_code; + + LPTSTR command = get_command (); + if (command == NULL) + { + usage (); + return 1; + } + + ZeroMemory (&si, sizeof (si)); + si.dwFlags = STARTF_USESTDHANDLES; + + I_in.source = GetStdHandle (STD_INPUT_HANDLE); + CreatePipe (&si.hStdInput, &I_in.drain, NULL, 0); + make_inheritable (&si.hStdInput); + + I_out.drain = GetStdHandle (STD_OUTPUT_HANDLE); + CreatePipe (&I_out.source, &si.hStdOutput, NULL, 0); + make_inheritable (&si.hStdOutput); + + I_err.drain = GetStdHandle (STD_ERROR_HANDLE); + CreatePipe (&I_err.source, &si.hStdError, NULL, 0); + make_inheritable (&si.hStdError); + + if (CreateProcess (NULL, command, NULL, NULL, TRUE, 0, + NULL, NULL, &si, &pi) == 0) + { + _ftprintf (stderr, _T("Error %d launching `%s'\n"), + GetLastError (), command); + return 2; + } + + CloseHandle (pi.hThread); + + /* Start pump in each I-connector */ + start_pump (&I_in); + start_pump (&I_out); + start_pump (&I_err); + + /* Wait for the process to complete */ + WaitForSingleObject (pi.hProcess, INFINITE); + GetExitCodeProcess (pi.hProcess, &exit_code); + CloseHandle (pi.hProcess); + + /* Make pump threads eventually die out. Looks rude, I agree */ + CloseHandle (GetStdHandle (STD_INPUT_HANDLE)); + CloseHandle (GetStdHandle (STD_OUTPUT_HANDLE)); + CloseHandle (GetStdHandle (STD_ERROR_HANDLE)); + + return exit_code; +}
--- a/lib-src/make-dump-id.c Mon Aug 13 11:16:09 2007 +0200 +++ b/lib-src/make-dump-id.c Mon Aug 13 11:17:09 2007 +0200 @@ -23,6 +23,26 @@ #include <stdlib.h> #include "../src/systime.h" +#ifdef WINDOWSNT +#include <sys/timeb.h> + +/* Emulate gettimeofday (Ulrich Leodolter, 1/11/95). */ +void +gettimeofday (struct timeval *tv, struct timezone *tz) +{ + struct _timeb tb; + _ftime (&tb); + + tv->tv_sec = tb.time; + tv->tv_usec = tb.millitm * 1000L; + if (tz) + { + tz->tz_minuteswest = tb.timezone; /* minutes west of Greenwich */ + tz->tz_dsttime = tb.dstflag; /* type of dst correction */ + } +} +#endif + /* Generates an (extremely) pseudo random number for the dump-id */ static unsigned int generate_dump_id (void)
--- a/lisp/ChangeLog Mon Aug 13 11:16:09 2007 +0200 +++ b/lisp/ChangeLog Mon Aug 13 11:17:09 2007 +0200 @@ -1,3 +1,354 @@ +2000-05-01 Martin Buchholz <martin@xemacs.org> + + * XEmacs 21.2.33 is released. + +2000-04-29 Martin Buchholz <martin@xemacs.org> + + * dialog.el (yes-or-no-p-dialog-box): + Fix docstring. + Fix following horrible bug in X11 mode with focus-follows-mouse: + 1. Visit two files in two different frames. + 2. do File->Revert Buffer in one of those frames. + 3. Dialog box appears. + 4. Arrange things so that the mouse passes over the *other* + frame, then to the dialog box, and click on "Yes". + 5. The file contents end up in the *wrong* buffer! + Add TODO comment. + +2000-04-28 Ben Wing <ben@xemacs.org> + + * help.el (describe-installation): correct typo introduced + in last patch: boundp -> fboundp. + + * etags.el (buffer-tag-table-list): + canonicalize filenames to Unix format so that tag-table-alist + searching works under Windows. + + * autoload.el: + Bowdlerize the supposedly objectionable words + "who couldn't quite manage to cleanly modify batch-update-autoloads". + + * gutter-items.el (set-progress-display-style): + * gutter-items.el (search-dialog-callback): + * gutter-items.el (make-search-dialog): + Change to new callback-ex api. + +2000-04-26 Björn Torkelsson <torkel@hpc2n.umu.se> + + * help.el: (describe-installation): decode-coding-string is not + defined in a non MULE environment. + +2000-04-28 Ben Wing <ben@xemacs.org> + + * gutter-items.el (buffer-list-changed-hook): + use it, not record-buffer-hook. + + * subr.el (record-buffer-hook): Removed. + +2000-04-27 Ben Wing <ben@xemacs.org> + + * gutter-items.el (buffers-tab-switch-to-buffer): do not + use NORECORD option. Andy will not like this, but the existing + gutter behavior is just wrong, as per this comment: + + ;; this used to add the norecord flag to both calls below. + ;; this is bogus because it is a pervasive assumption in XEmacs + ;; that the current buffer is at the front of the buffers list. + ;; for example, select an item and then do M-C-l + ;; (switch-to-other-buffer). Things get way confused. + ;; + ;; Andy, if you want to maintain the current look, you must + ;; *uncouple* the gutter order and buffers order. + + * loaddefs.el (completion-ignored-extensions): unfuckify. + + * bytecomp.el (batch-byte-compile-one-file): new function, used in + xemacs.mak. + + * autoload.el (batch-update-one-directory): new function, used in + xemacs.mak. + + * loadup.el: set gc-cons-threshold very high unless dumping -- + loadup during update-elc is much much much faster. also do this + when quick-building. + + add commented-out code for profiling loadup. + + + * update-elc.el (preloaded-file-list): add bytecomp.el, since it + is required in order to build xemacs. + +2000-04-26 Ben Wing <ben@xemacs.org> + + * loadup.el: don't garbage collect during loadup if quick-build + compile-time option is set. + +2000-04-23 Ben Wing <ben@xemacs.org> + + * update-elc.el: compute whether any dumped .el or .elc files + are newer than the dumped exe, and touch the file ../src/NEEDTODUMP + if so. + + * update-elc.el (update-elc-files-to-compile): always change + NOBYTECOMPILE in the src directory rather than current dir, + so it will work under NT. + + * autoload.el (autoload-trim-file-name): canonicalize to slashes so + the form of this file is identical between Unix and Windows. + (autoload-target-directory): Fixed to be lisp/ not lisp/prim/. + Added comment. + (update-autoloads-from-directory): updated doc string. + updated doc strings in a few other places. + +2000-04-18 Yoshiki Hayashi <yoshiki@xemacs.org> + + * bytecomp.el (byte-force-recompile): Fix argument to + byte-recompile-directory. + +2000-04-17 Yoshiki Hayashi <yoshiki@xemacs.org> + + * gutter-items.el (progress-display-clear-when-idle): Use + add-one-shot-hook. + * gutter-items.el (clear-progress-display): Adjust number of + arguments. + +2000-04-13 Yoshiki Hayashi <yoshiki@xemacs.org> + + * dumped-lisp.el (preloaded-file-list): Always dump select.el. + +2000-04-16 Ben Wing <ben@xemacs.org> + + * printer.el: New file. + + * dumped-lisp.el (preloaded-file-list): Declare printer.el. + + * help.el (describe-installation): Fix decoding for Windows. + + * menubar-items.el: + * menubar-items.el (default-menubar): + * menubar-items.el (tutorials-menu-filter): New. + * menubar-items.el (popup-menubar-menu): + Add authorship. Redo Help menu and Tutorials filter. + + * menubar.el: Correct comment. + + * modeline.el (modeline-buffer-identification): Correct doc string. + + * simple.el: + * simple.el (printing): Removed. + * simple.el (printer-name): Removed. + * simple.el (generic-print-buffer): Removed. + * simple.el (generic-print-region): Removed. + Move generic print code to printer.el. + +2000-04-15 Ben Wing <ben@xemacs.org> + + * simple.el (generic-print-region): New. + make this function actually work. + (generic-print-buffer): call generic-print-region. + +2000-04-14 Andy Piper <andy@xemacs.org> + + * gutter-items.el (make-search-dialog): avoid unneccessary futzing + by using the new widget-callback-current-channel. + (search-dialog-callback): ditto. + +2000-04-12 Andy Piper <andy@xemacs.org> + + * gutter.el (default-gutter-position): moved from gutter-items.el. + (default-gutter-position-changed-hook): ditto. + (gutter-element-visibility-changed-hook): ditto. + (set-gutter-element): ditto. + (remove-gutter-element): ditto. + (set-gutter-element-visible-p): ditto. + (gutter-element-visible-p): ditto. + (init-gutter): ditto. + + * dialog.el (make-dialog-box): renamed and moved from + gutter-items.el + + * gutter-items.el: move various functions elsewhere. + +2000-04-13 Katsumi Yamaoka <yamaoka@jpl.org> + + * menubar-items.el: Fixed place of parenthesis. + +2000-04-12 Ben Wing <ben@xemacs.org> + + * etags.el (find-tag-at-point): New. Lets you do find-tag + without constantly being prompted for the tag. + * simple.el: Added a number of section headings, to clarify the + organization of this file. + * simple.el (activate-region): + * simple.el (region-exists-p): + * simple.el (region-active-p): + Moved these three function down to the other side of + the case-changing functions, so they join the rest of + the region code. + * simple.el (printing): New. + * simple.el (printer-name): New. + * simple.el (generic-print-buffer): New. + New functions, a very simple prototype for a unified + printing interface. + + * process.el (call-process-internal): Real fix for null BUFFER, + other problems with BUFFER specs. + + * menubar-items.el: + Fixed up File->Print to use new printing functions. + Various corrections and expansions to Grep/Compile menus. + New options for Printing. + New options for SMTP Mail, the way to send mail under + MS Windows. (There's also a package patch to make SMTP + Mail be the default under MSWin.) + +2000-04-09 Jeff Miller <jmiller@cablespeed.com> + + * menubar-items.el: Selecting Rectangle Mousing from menubar + did not work. Needed to quote mouse-track-rectangle-p. + +2000-04-06 Yoshiki Hayashi <yoshiki@xemacs.org> + + * cl-compat.el (keywordp): Removed. + +2000-04-05 Andy Piper <andy@xemacs.org> + + * gutter-items.el (progress-layout-glyph): don't initialize here. + (progress-gauge-glyph): use dynamic sizing. + (set-progress-display-style): new function. Set progress glyphs + appropriately depending on the style. + (progress-display-style): new variable. Custom version of + set-progress-display-style. + (progress-abort-glyph): switch to dynamic sizes. + (search-dialog-text): make the edit field active. + +2000-04-04 Andy Piper <andy@xemacs.org> + + * gutter-items.el (make-search-dialog): need to make the search + dialog visible after creation. + + * menubar-items.el (default-menubar): use the search dialog for + searching. Remove some extraneous search menu items. + + * gutter-items.el (set-gutter-element): allow glyphs to be used as + well as strings. + (make-gutter-only-dialog-frame): allow the user to create the + frame unmapped. Allow the gutter spec to be given as a glyph. + (search-dialog-direction): new variable. + (search-dialog-text): new variable. + (search-dialog-callback): new function. Callback for the search + dialog action. + (make-search-dialog): new function. Create a user-friendly search + dialog. + +2000-04-04 Hrvoje Niksic <hniksic@iskon.hr> + + * faces.el (set-face-stipple): Use mswindows-bitmap-file-path + under Windows. + +2000-04-01 Andy Piper <andy@xemacs.org> + + * font-lock.el (font-lock-fontify-keywords-region): Calculate + progress more accurately. + +2000-02-02 Hirokazu FUKUI <hfukui@sannet.ne.jp> + + * finder.el (finder-compile-keywords): Process readable files only. + Because error in process of .#finder-inf.el when compile xemacs + with --with-clash-detection option. + +2000-03-31 Andy Piper <andy@xemacs.org> + + * gutter-items.el (append-progress-display): don't delay after a + successful font-lock. + (make-gutter-only-dialog-frame): new function. Allow users to + create gutter-only dialogs. + +2000-03-27 Mike Alexander <mta@arbortext.com> + + * process.el (call-process-internal): Handle a null BUFFER + parameter correctly. + +2000-03-28 Andy Piper <andy@xemacs.org> + + * gutter-items.el (abort-progress-display): put strings in the + gutter not extents. + (progress-layout-glyph): signal special 'quit callback. + (progress-display-quit-function): deleted. + (progress-display-stop-callback): deleted. + (progress-display-dispatch-command-events): deleted. + (append-progress-display): remove calls to + progress-display-dispatch-command-events. + (raw-append-progress-display): ditto. + +2000-03-23 Hrvoje Niksic <hniksic@iskon.hr> + + * faces.el (set-face-stipple): Rewrite to correctly handle PIXMAP + being a list. Actually define `stipple-pixmap-p' which is used as + an error predicate. Correctly handle PIXMAP being either relative + or absolute file name. + +2000-03-24 Andy Piper <andy@xemacs.org> + + * gutter-items.el (add-tab-to-gutter): use copy-sequence. + (abort-progress-display): ditto. Don't delete the created extent. + (raw-append-progress-display): ditto. + (progress-display-dispatch-non-command-events): new + function. Encapsulates what we want to do when no command input is + required. + (progress-display-dispatch-command-events): likewise, but disable + for now since it causes too many problems. + (append-progress-display): use them. + (raw-append-progress-display): ditto. + (default-gutter-position-changed-hook): set this rather than + default-gutter-position-changed. + (default-gutter-position-changed-hook): lambda with zero arguments + rather than one. + (raw-append-progress-display): trap errors in pending input since + allowing them to signal will hose the gauge well and + truly. Ideally we would like to delay these until we are more able + to cope. + (append-progress-display): ditto. + +2000-03-20 Jeff Miller <jmiller@cablespeed.com> + + * lisp/make-docfile.el: call-process-internal is now implemented + in process.el. + +2000-03-21 Ben Wing <ben@xemacs.org> + + * mule\mule-cmds.el (set-language-info-alist): + Fix to correspond to new menu arrangement. + +2000-03-21 Ben Wing <ben@xemacs.org> + + * process.el: + * process.el (call-process-internal): New. + New implementation of call-process. Only enabled under NT, so far. + stderr handling not implemented yet in CVS'd C code. + +2000-03-20 Ben Wing <ben@xemacs.org> + + * lisp-mode.el: + * lisp-mode.el (lisp-interaction-mode-menubar-menu): New. + * lisp-mode.el (lisp-interaction-mode): + Put back Lisp Interaction menubar for Jan V's sake. + + * simple.el: + * simple.el (mark-ring): + * simple.el (dont-record-current-mark): New. + * simple.el (in-shifted-motion-command): New. + * simple.el (mark-ring-unrecorded-commands): New. + * simple.el (mark-ring-max): + * simple.el (set-mark-command): + * simple.el (push-mark): + * simple.el (handle-pre-motion-command): + Implement scheme for not recording unimportant marks. + + * subr.el: + * subr.el (function-allows-args): New. + New function function-allows-args. + 2000-03-20 Martin Buchholz <martin@xemacs.org> * XEmacs 21.2.32 is released. @@ -410,7 +761,6 @@ * minibuf.el (read-variable): Allow symbol to default argument. ->>>>>>> 1.156.2.301 2000-02-27 Andy Piper <andy@xemacs.org> * gutter-items.el (update-tab-hook): new function to be used for
--- a/lisp/auto-autoloads.el Mon Aug 13 11:16:09 2007 +0200 +++ b/lisp/auto-autoloads.el Mon Aug 13 11:17:09 2007 +0200 @@ -1,81 +1,7 @@ ;;; DO NOT MODIFY THIS FILE (if (featurep 'lisp-autoloads) (error "Already loaded")) -;;;### (autoloads nil "abbrev" "lisp/abbrev.el") - -;;;*** - -;;;### (autoloads (about-xemacs) "about" "lisp/about.el") - -(autoload 'about-xemacs "about" "\ -Describe the True Editor and its minions." t nil) - -;;;*** - -;;;### (autoloads (set-modified-alist modify-alist remove-alist set-alist del-alist put-alist vassoc) "alist" "lisp/alist.el") - -(autoload 'vassoc "alist" "\ -Search VALIST for a vector whose first element is equal to KEY. -See also `assoc'." nil nil) - -(autoload 'put-alist "alist" "\ -Modify ALIST to set VALUE to ITEM. -If there is a pair whose car is ITEM, replace its cdr by VALUE. -If there is not such pair, create new pair (ITEM . VALUE) and -return new alist whose car is the new pair and cdr is ALIST. -[tomo's ELIS like function]" nil nil) - -(autoload 'del-alist "alist" "\ -If there is a pair whose key is ITEM, delete it from ALIST. -[tomo's ELIS emulating function]" nil nil) - -(autoload 'set-alist "alist" "\ -Modify a alist indicated by SYMBOL to set VALUE to ITEM." nil nil) - -(autoload 'remove-alist "alist" "\ -Remove ITEM from the alist indicated by SYMBOL." nil nil) - -(autoload 'modify-alist "alist" "\ -Modify alist DEFAULT into alist MODIFIER." nil nil) - -(autoload 'set-modified-alist "alist" "\ -Modify a value of a symbol SYM into alist MODIFIER. -The symbol SYM should be alist. If it is not bound, -its value regard as nil." nil nil) - -;;;*** - -;;;### (autoloads (apropos-documentation apropos-value apropos apropos-command) "apropos" "lisp/apropos.el") - -(fset 'command-apropos 'apropos-command) - -(autoload 'apropos-command "apropos" "\ -Shows commands (interactively callable functions) that match REGEXP. -With optional prefix ARG or if `apropos-do-all' is non-nil, also show -variables." t nil) - -(autoload 'apropos "apropos" "\ -Show all bound symbols whose names match REGEXP. -With optional prefix ARG or if `apropos-do-all' is non-nil, also show unbound -symbols and key bindings, which is a little more time-consuming. -Returns list of symbols and documentation found." t nil) - -(autoload 'apropos-value "apropos" "\ -Show all symbols whose value's printed image matches REGEXP. -With optional prefix ARG or if `apropos-do-all' is non-nil, also looks -at the function and at the names and values of properties. -Returns list of symbols and values found." t nil) - -(autoload 'apropos-documentation "apropos" "\ -Show symbols whose documentation contain matches for REGEXP. -With optional prefix ARG or if `apropos-do-all' is non-nil, also use -documentation that is not stored in the documentation file and show key -bindings. -Returns list of symbols and documentation found." t nil) - -;;;*** - -;;;### (autoloads (batch-update-directory batch-update-autoloads update-autoloads-from-directory update-autoloads-here update-file-autoloads generate-file-autoloads) "autoload" "lisp/autoload.el") +;;;### (autoloads (batch-update-one-directory batch-update-directory batch-update-autoloads update-autoloads-from-directory update-autoloads-here update-file-autoloads generate-file-autoloads) "autoload" "lisp/autoload.el") (autoload 'generate-file-autoloads "autoload" "\ Insert at point a loaddefs autoload section for FILE. @@ -95,7 +21,9 @@ (autoload 'update-autoloads-from-directory "autoload" "\ Update `generated-autoload-file' with all the current autoloads from DIR. This runs `update-file-autoloads' on each .el file in DIR. -Obsolete autoload entries for files that no longer exist are deleted." t nil) +Obsolete autoload entries for files that no longer exist are deleted. +Note that, if this function is called from `batch-update-directory', +`generated-autoload-file' was rebound in that function." t nil) (autoload 'batch-update-autoloads "autoload" "\ Update the autoloads for the files or directories on the command line. @@ -107,21 +35,18 @@ on the command line." nil nil) (autoload 'batch-update-directory "autoload" "\ -Update the autoloads for the directory on the command line. -Runs `update-file-autoloads' on each file in the given directory, must -be used only with -batch and kills XEmacs on completion." nil nil) +Update the autoloads for the directories on the command line. +Runs `update-file-autoloads' on each file in the given directory, and must +be used only with -batch." nil nil) + +(autoload 'batch-update-one-directory "autoload" "\ +Update the autoloads for a single directory on the command line. +Runs `update-file-autoloads' on each file in the given directory, and must +be used only with -batch." nil nil) ;;;*** -;;;### (autoloads nil "buff-menu" "lisp/buff-menu.el") - -(defvar list-buffers-directory nil) - -(make-variable-buffer-local 'list-buffers-directory) - -;;;*** - -;;;### (autoloads (batch-byte-recompile-directory batch-byte-recompile-directory-norecurse batch-byte-compile display-call-tree byte-compile-sexp byte-compile compile-defun byte-compile-buffer byte-compile-and-load-file byte-compile-file byte-recompile-file byte-recompile-directory byte-force-recompile) "bytecomp" "lisp/bytecomp.el") +;;;### (autoloads (batch-byte-recompile-directory batch-byte-recompile-directory-norecurse batch-byte-compile-one-file batch-byte-compile display-call-tree byte-compile-sexp byte-compile compile-defun byte-compile-buffer byte-compile-and-load-file byte-compile-file byte-recompile-file byte-recompile-directory byte-force-recompile) "bytecomp" "lisp/bytecomp.el") (autoload 'byte-force-recompile "bytecomp" "\ Recompile every `.el' file in DIRECTORY that already has a `.elc' file. @@ -198,6 +123,11 @@ Each file is processed even if an error occurred previously. For example, invoke \"xemacs -batch -f batch-byte-compile $emacs/ ~/*.el\"" nil nil) +(autoload 'batch-byte-compile-one-file "bytecomp" "\ +Run `byte-compile-file' on a single file remaining on the command line. +Use this from the command line, with `-batch'; +it won't work in an interactive Emacs." nil nil) + (autoload 'batch-byte-recompile-directory-norecurse "bytecomp" "\ Same as `batch-byte-recompile-directory' but without recursion." nil nil) @@ -208,608 +138,18 @@ ;;;*** -;;;### (autoloads (compiler-macroexpand define-compiler-macro ignore-file-errors ignore-errors assert check-type typep deftype cl-struct-setf-expander defstruct define-modify-macro callf2 callf letf* letf rotatef shiftf remf cl-do-pop psetf setf get-setf-method defsetf define-setf-method declare the locally multiple-value-setq multiple-value-bind lexical-let* lexical-let symbol-macrolet macrolet labels flet progv psetq do-all-symbols do-symbols dotimes dolist do* do loop return-from return block etypecase typecase ecase case load-time-value eval-when destructuring-bind function* defmacro* defun* gentemp gensym cl-compile-time-init) "cl-macs" "lisp/cl-macs.el") - -(autoload 'cl-compile-time-init "cl-macs" nil nil nil) - -(autoload 'gensym "cl-macs" "\ -Generate a new uninterned symbol. -The name is made by appending a number to PREFIX, default \"G\"." nil nil) - -(autoload 'gentemp "cl-macs" "\ -Generate a new interned symbol with a unique name. -The name is made by appending a number to PREFIX, default \"G\"." nil nil) - -(autoload 'defun* "cl-macs" "\ -(defun* NAME ARGLIST [DOCSTRING] BODY...): define NAME as a function. -Like normal `defun', except ARGLIST allows full Common Lisp conventions, -and BODY is implicitly surrounded by (block NAME ...)." nil 'macro) - -(autoload 'defmacro* "cl-macs" "\ -(defmacro* NAME ARGLIST [DOCSTRING] BODY...): define NAME as a macro. -Like normal `defmacro', except ARGLIST allows full Common Lisp conventions, -and BODY is implicitly surrounded by (block NAME ...)." nil 'macro) - -(autoload 'function* "cl-macs" "\ -(function* SYMBOL-OR-LAMBDA): introduce a function. -Like normal `function', except that if argument is a lambda form, its -ARGLIST allows full Common Lisp conventions." nil 'macro) - -(autoload 'destructuring-bind "cl-macs" nil nil 'macro) - -(autoload 'eval-when "cl-macs" "\ -(eval-when (WHEN...) BODY...): control when BODY is evaluated. -If `compile' is in WHEN, BODY is evaluated when compiled at top-level. -If `load' is in WHEN, BODY is evaluated when loaded after top-level compile. -If `eval' is in WHEN, BODY is evaluated when interpreted or at non-top-level." nil 'macro) - -(autoload 'load-time-value "cl-macs" "\ -Like `progn', but evaluates the body at load time. -The result of the body appears to the compiler as a quoted constant." nil 'macro) - -(autoload 'case "cl-macs" "\ -(case EXPR CLAUSES...): evals EXPR, chooses from CLAUSES on that value. -Each clause looks like (KEYLIST BODY...). EXPR is evaluated and compared -against each key in each KEYLIST; the corresponding BODY is evaluated. -If no clause succeeds, case returns nil. A single atom may be used in -place of a KEYLIST of one atom. A KEYLIST of `t' or `otherwise' is -allowed only in the final clause, and matches if no other keys match. -Key values are compared by `eql'." nil 'macro) - -(autoload 'ecase "cl-macs" "\ -(ecase EXPR CLAUSES...): like `case', but error if no case fits. -`otherwise'-clauses are not allowed." nil 'macro) - -(autoload 'typecase "cl-macs" "\ -(typecase EXPR CLAUSES...): evals EXPR, chooses from CLAUSES on that value. -Each clause looks like (TYPE BODY...). EXPR is evaluated and, if it -satisfies TYPE, the corresponding BODY is evaluated. If no clause succeeds, -typecase returns nil. A TYPE of `t' or `otherwise' is allowed only in the -final clause, and matches if no other keys match." nil 'macro) - -(autoload 'etypecase "cl-macs" "\ -(etypecase EXPR CLAUSES...): like `typecase', but error if no case fits. -`otherwise'-clauses are not allowed." nil 'macro) - -(autoload 'block "cl-macs" "\ -(block NAME BODY...): define a lexically-scoped block named NAME. -NAME may be any symbol. Code inside the BODY forms can call `return-from' -to jump prematurely out of the block. This differs from `catch' and `throw' -in two respects: First, the NAME is an unevaluated symbol rather than a -quoted symbol or other form; and second, NAME is lexically rather than -dynamically scoped: Only references to it within BODY will work. These -references may appear inside macro expansions, but not inside functions -called from BODY." nil 'macro) - -(autoload 'return "cl-macs" "\ -(return [RESULT]): return from the block named nil. -This is equivalent to `(return-from nil RESULT)'." nil 'macro) - -(autoload 'return-from "cl-macs" "\ -(return-from NAME [RESULT]): return from the block named NAME. -This jumps out to the innermost enclosing `(block NAME ...)' form, -returning RESULT from that form (or nil if RESULT is omitted). -This is compatible with Common Lisp, but note that `defun' and -`defmacro' do not create implicit blocks as they do in Common Lisp." nil 'macro) - -(autoload 'loop "cl-macs" "\ -(loop CLAUSE...): The Common Lisp `loop' macro. -Valid clauses are: - for VAR from/upfrom/downfrom NUM to/upto/downto/above/below NUM by NUM, - for VAR in LIST by FUNC, for VAR on LIST by FUNC, for VAR = INIT then EXPR, - for VAR across ARRAY, repeat NUM, with VAR = INIT, while COND, until COND, - always COND, never COND, thereis COND, collect EXPR into VAR, - append EXPR into VAR, nconc EXPR into VAR, sum EXPR into VAR, - count EXPR into VAR, maximize EXPR into VAR, minimize EXPR into VAR, - if COND CLAUSE [and CLAUSE]... else CLAUSE [and CLAUSE...], - unless COND CLAUSE [and CLAUSE]... else CLAUSE [and CLAUSE...], - do EXPRS..., initially EXPRS..., finally EXPRS..., return EXPR, - finally return EXPR, named NAME." nil 'macro) - -(autoload 'do "cl-macs" "\ -The Common Lisp `do' loop. -Format is: (do ((VAR INIT [STEP])...) (END-TEST [RESULT...]) BODY...)" nil 'macro) - -(autoload 'do* "cl-macs" "\ -The Common Lisp `do*' loop. -Format is: (do* ((VAR INIT [STEP])...) (END-TEST [RESULT...]) BODY...)" nil 'macro) - -(autoload 'dolist "cl-macs" "\ -(dolist (VAR LIST [RESULT]) BODY...): loop over a list. -Evaluate BODY with VAR bound to each `car' from LIST, in turn. -Then evaluate RESULT to get return value, default nil." nil 'macro) - -(autoload 'dotimes "cl-macs" "\ -(dotimes (VAR COUNT [RESULT]) BODY...): loop a certain number of times. -Evaluate BODY with VAR bound to successive integers from 0, inclusive, -to COUNT, exclusive. Then evaluate RESULT to get return value, default -nil." nil 'macro) - -(autoload 'do-symbols "cl-macs" "\ -(dosymbols (VAR [OBARRAY [RESULT]]) BODY...): loop over all symbols. -Evaluate BODY with VAR bound to each interned symbol, or to each symbol -from OBARRAY." nil 'macro) - -(autoload 'do-all-symbols "cl-macs" nil nil 'macro) - -(autoload 'psetq "cl-macs" "\ -(psetq SYM VAL SYM VAL ...): set SYMs to the values VALs in parallel. -This is like `setq', except that all VAL forms are evaluated (in order) -before assigning any symbols SYM to the corresponding values." nil 'macro) - -(autoload 'progv "cl-macs" "\ -(progv SYMBOLS VALUES BODY...): bind SYMBOLS to VALUES dynamically in BODY. -The forms SYMBOLS and VALUES are evaluated, and must evaluate to lists. -Each SYMBOL in the first list is bound to the corresponding VALUE in the -second list (or made unbound if VALUES is shorter than SYMBOLS); then the -BODY forms are executed and their result is returned. This is much like -a `let' form, except that the list of symbols can be computed at run-time." nil 'macro) - -(autoload 'flet "cl-macs" "\ -(flet ((FUNC ARGLIST BODY...) ...) FORM...): make temporary function defns. -This is an analogue of `let' that operates on the function cell of FUNC -rather than its value cell. The FORMs are evaluated with the specified -function definitions in place, then the definitions are undone (the FUNCs -go back to their previous definitions, or lack thereof)." nil 'macro) - -(autoload 'labels "cl-macs" "\ -(labels ((FUNC ARGLIST BODY...) ...) FORM...): make temporary func bindings. -This is like `flet', except the bindings are lexical instead of dynamic. -Unlike `flet', this macro is fully compliant with the Common Lisp standard." nil 'macro) - -(autoload 'macrolet "cl-macs" "\ -(macrolet ((NAME ARGLIST BODY...) ...) FORM...): make temporary macro defns. -This is like `flet', but for macros instead of functions." nil 'macro) - -(autoload 'symbol-macrolet "cl-macs" "\ -(symbol-macrolet ((NAME EXPANSION) ...) FORM...): make symbol macro defns. -Within the body FORMs, references to the variable NAME will be replaced -by EXPANSION, and (setq NAME ...) will act like (setf EXPANSION ...)." nil 'macro) - -(autoload 'lexical-let "cl-macs" "\ -(lexical-let BINDINGS BODY...): like `let', but lexically scoped. -The main visible difference is that lambdas inside BODY will create -lexical closures as in Common Lisp." nil 'macro) - -(autoload 'lexical-let* "cl-macs" "\ -(lexical-let* BINDINGS BODY...): like `let*', but lexically scoped. -The main visible difference is that lambdas inside BODY will create -lexical closures as in Common Lisp." nil 'macro) - -(autoload 'multiple-value-bind "cl-macs" "\ -(multiple-value-bind (SYM SYM...) FORM BODY): collect multiple return values. -FORM must return a list; the BODY is then executed with the first N elements -of this list bound (`let'-style) to each of the symbols SYM in turn. This -is analogous to the Common Lisp `multiple-value-bind' macro, using lists to -simulate true multiple return values. For compatibility, (values A B C) is -a synonym for (list A B C)." nil 'macro) - -(autoload 'multiple-value-setq "cl-macs" "\ -(multiple-value-setq (SYM SYM...) FORM): collect multiple return values. -FORM must return a list; the first N elements of this list are stored in -each of the symbols SYM in turn. This is analogous to the Common Lisp -`multiple-value-setq' macro, using lists to simulate true multiple return -values. For compatibility, (values A B C) is a synonym for (list A B C)." nil 'macro) - -(autoload 'locally "cl-macs" nil nil 'macro) - -(autoload 'the "cl-macs" nil nil 'macro) - -(autoload 'declare "cl-macs" nil nil 'macro) - -(autoload 'define-setf-method "cl-macs" "\ -(define-setf-method NAME ARGLIST BODY...): define a `setf' method. -This method shows how to handle `setf's to places of the form (NAME ARGS...). -The argument forms ARGS are bound according to ARGLIST, as if NAME were -going to be expanded as a macro, then the BODY forms are executed and must -return a list of five elements: a temporary-variables list, a value-forms -list, a store-variables list (of length one), a store-form, and an access- -form. See `defsetf' for a simpler way to define most setf-methods." nil 'macro) - -(autoload 'defsetf "cl-macs" "\ -(defsetf NAME FUNC): define a `setf' method. -This macro is an easy-to-use substitute for `define-setf-method' that works -well for simple place forms. In the simple `defsetf' form, `setf's of -the form (setf (NAME ARGS...) VAL) are transformed to function or macro -calls of the form (FUNC ARGS... VAL). Example: (defsetf aref aset). -Alternate form: (defsetf NAME ARGLIST (STORE) BODY...). -Here, the above `setf' call is expanded by binding the argument forms ARGS -according to ARGLIST, binding the value form VAL to STORE, then executing -BODY, which must return a Lisp form that does the necessary `setf' operation. -Actually, ARGLIST and STORE may be bound to temporary variables which are -introduced automatically to preserve proper execution order of the arguments. -Example: (defsetf nth (n x) (v) (list 'setcar (list 'nthcdr n x) v))." nil 'macro) - -(autoload 'get-setf-method "cl-macs" "\ -Return a list of five values describing the setf-method for PLACE. -PLACE may be any Lisp form which can appear as the PLACE argument to -a macro like `setf' or `incf'." nil nil) - -(autoload 'setf "cl-macs" "\ -(setf PLACE VAL PLACE VAL ...): set each PLACE to the value of its VAL. -This is a generalized version of `setq'; the PLACEs may be symbolic -references such as (car x) or (aref x i), as well as plain symbols. -For example, (setf (cadar x) y) is equivalent to (setcar (cdar x) y). -The return value is the last VAL in the list." nil 'macro) - -(autoload 'psetf "cl-macs" "\ -(psetf PLACE VAL PLACE VAL ...): set PLACEs to the values VALs in parallel. -This is like `setf', except that all VAL forms are evaluated (in order) -before assigning any PLACEs to the corresponding values." nil 'macro) - -(autoload 'cl-do-pop "cl-macs" nil nil nil) - -(autoload 'remf "cl-macs" "\ -(remf PLACE TAG): remove TAG from property list PLACE. -PLACE may be a symbol, or any generalized variable allowed by `setf'. -The form returns true if TAG was found and removed, nil otherwise." nil 'macro) - -(autoload 'shiftf "cl-macs" "\ -(shiftf PLACE PLACE... VAL): shift left among PLACEs. -Example: (shiftf A B C) sets A to B, B to C, and returns the old A. -Each PLACE may be a symbol, or any generalized variable allowed by `setf'." nil 'macro) - -(autoload 'rotatef "cl-macs" "\ -(rotatef PLACE...): rotate left among PLACEs. -Example: (rotatef A B C) sets A to B, B to C, and C to A. It returns nil. -Each PLACE may be a symbol, or any generalized variable allowed by `setf'." nil 'macro) - -(autoload 'letf "cl-macs" "\ -(letf ((PLACE VALUE) ...) BODY...): temporarily bind to PLACEs. -This is the analogue of `let', but with generalized variables (in the -sense of `setf') for the PLACEs. Each PLACE is set to the corresponding -VALUE, then the BODY forms are executed. On exit, either normally or -because of a `throw' or error, the PLACEs are set back to their original -values. Note that this macro is *not* available in Common Lisp. -As a special case, if `(PLACE)' is used instead of `(PLACE VALUE)', -the PLACE is not modified before executing BODY." nil 'macro) - -(autoload 'letf* "cl-macs" "\ -(letf* ((PLACE VALUE) ...) BODY...): temporarily bind to PLACEs. -This is the analogue of `let*', but with generalized variables (in the -sense of `setf') for the PLACEs. Each PLACE is set to the corresponding -VALUE, then the BODY forms are executed. On exit, either normally or -because of a `throw' or error, the PLACEs are set back to their original -values. Note that this macro is *not* available in Common Lisp. -As a special case, if `(PLACE)' is used instead of `(PLACE VALUE)', -the PLACE is not modified before executing BODY." nil 'macro) - -(autoload 'callf "cl-macs" "\ -(callf FUNC PLACE ARGS...): set PLACE to (FUNC PLACE ARGS...). -FUNC should be an unquoted function name. PLACE may be a symbol, -or any generalized variable allowed by `setf'." nil 'macro) - -(autoload 'callf2 "cl-macs" "\ -(callf2 FUNC ARG1 PLACE ARGS...): set PLACE to (FUNC ARG1 PLACE ARGS...). -Like `callf', but PLACE is the second argument of FUNC, not the first." nil 'macro) - -(autoload 'define-modify-macro "cl-macs" "\ -(define-modify-macro NAME ARGLIST FUNC): define a `setf'-like modify macro. -If NAME is called, it combines its PLACE argument with the other arguments -from ARGLIST using FUNC: (define-modify-macro incf (&optional (n 1)) +)" nil 'macro) - -(autoload 'defstruct "cl-macs" "\ -(defstruct (NAME OPTIONS...) (SLOT SLOT-OPTS...)...): define a struct type. -This macro defines a new Lisp data type called NAME, which contains data -stored in SLOTs. This defines a `make-NAME' constructor, a `copy-NAME' -copier, a `NAME-p' predicate, and setf-able `NAME-SLOT' accessors." nil 'macro) - -(autoload 'cl-struct-setf-expander "cl-macs" nil nil nil) - -(autoload 'deftype "cl-macs" "\ -(deftype NAME ARGLIST BODY...): define NAME as a new data type. -The type name can then be used in `typecase', `check-type', etc." nil 'macro) - -(autoload 'typep "cl-macs" "\ -Check that OBJECT is of type TYPE. -TYPE is a Common Lisp-style type specifier." nil nil) - -(autoload 'check-type "cl-macs" "\ -Verify that FORM is of type TYPE; signal an error if not. -STRING is an optional description of the desired type." nil 'macro) - -(autoload 'assert "cl-macs" "\ -Verify that FORM returns non-nil; signal an error if not. -Second arg SHOW-ARGS means to include arguments of FORM in message. -Other args STRING and ARGS... are arguments to be passed to `error'. -They are not evaluated unless the assertion fails. If STRING is -omitted, a default message listing FORM itself is used." nil 'macro) - -(autoload 'ignore-errors "cl-macs" "\ -Execute FORMS; if an error occurs, return nil. -Otherwise, return result of last FORM." nil 'macro) - -(autoload 'ignore-file-errors "cl-macs" "\ -Execute FORMS; if an error of type `file-error' occurs, return nil. -Otherwise, return result of last FORM." nil 'macro) - -(autoload 'define-compiler-macro "cl-macs" "\ -(define-compiler-macro FUNC ARGLIST BODY...): Define a compiler-only macro. -This is like `defmacro', but macro expansion occurs only if the call to -FUNC is compiled (i.e., not interpreted). Compiler macros should be used -for optimizing the way calls to FUNC are compiled; the form returned by -BODY should do the same thing as a call to the normal function called -FUNC, though possibly more efficiently. Note that, like regular macros, -compiler macros are expanded repeatedly until no further expansions are -possible. Unlike regular macros, BODY can decide to \"punt\" and leave the -original function call alone by declaring an initial `&whole foo' parameter -and then returning foo." nil 'macro) - -(autoload 'compiler-macroexpand "cl-macs" nil nil nil) - -;;;*** - -;;;### (autoloads (batch-remove-old-elc) "cleantree" "lisp/cleantree.el") - -(autoload 'batch-remove-old-elc "cleantree" nil nil nil) - -;;;*** - -;;;### (autoloads (config-value config-value-hash-table) "config" "lisp/config.el") - -(autoload 'config-value-hash-table "config" "\ -Return hash table of configuration parameters and their values." nil nil) - -(autoload 'config-value "config" "\ -Return the value of the configuration parameter CONFIG_SYMBOL." nil nil) - -;;;*** - -;;;### (autoloads (Custom-make-dependencies) "cus-dep" "lisp/cus-dep.el") - -(autoload 'Custom-make-dependencies "cus-dep" "\ -Extract custom dependencies from .el files in SUBDIRS. -SUBDIRS is a list of directories. If it is nil, the command-line -arguments are used. If it is a string, only that directory is -processed. This function is especially useful in batch mode. - -Batch usage: xemacs -batch -l cus-dep.el -f Custom-make-dependencies DIRS" t nil) - -;;;*** - -;;;### (autoloads (customize-menu-create custom-menu-create custom-save-all customize-save-customized customize-browse custom-buffer-create-other-window custom-buffer-create customize-apropos-groups customize-apropos-faces customize-apropos-options customize-apropos customize-saved customize-customized customize-face-other-window customize-face customize-option-other-window customize-changed-options customize-variable customize-other-window customize customize-save-variable customize-set-variable customize-set-value) "cus-edit" "lisp/cus-edit.el") - -(autoload 'customize-set-value "cus-edit" "\ -Set VARIABLE to VALUE. VALUE is a Lisp object. - -If VARIABLE has a `variable-interactive' property, that is used as if -it were the arg to `interactive' (which see) to interactively read the value. - -If VARIABLE has a `custom-type' property, it must be a widget and the -`:prompt-value' property of that widget will be used for reading the value. - -If given a prefix (or a COMMENT argument), also prompt for a comment." t nil) - -(autoload 'customize-set-variable "cus-edit" "\ -Set the default for VARIABLE to VALUE. VALUE is a Lisp object. - -If VARIABLE has a `custom-set' property, that is used for setting -VARIABLE, otherwise `set-default' is used. - -The `customized-value' property of the VARIABLE will be set to a list -with a quoted VALUE as its sole list member. - -If VARIABLE has a `variable-interactive' property, that is used as if -it were the arg to `interactive' (which see) to interactively read the value. - -If VARIABLE has a `custom-type' property, it must be a widget and the -`:prompt-value' property of that widget will be used for reading the value. - -If given a prefix (or a COMMENT argument), also prompt for a comment." t nil) - -(autoload 'customize-save-variable "cus-edit" "\ -Set the default for VARIABLE to VALUE, and save it for future sessions. -If VARIABLE has a `custom-set' property, that is used for setting -VARIABLE, otherwise `set-default' is used. - -The `customized-value' property of the VARIABLE will be set to a list -with a quoted VALUE as its sole list member. - -If VARIABLE has a `variable-interactive' property, that is used as if -it were the arg to `interactive' (which see) to interactively read the value. - -If VARIABLE has a `custom-type' property, it must be a widget and the -`:prompt-value' property of that widget will be used for reading the value. - -If given a prefix (or a COMMENT argument), also prompt for a comment." t nil) - -(autoload 'customize "cus-edit" "\ -Select a customization buffer which you can use to set user options. -User options are structured into \"groups\". -The default group is `Emacs'." t nil) - -(defalias 'customize-group 'customize) - -(autoload 'customize-other-window "cus-edit" "\ -Customize SYMBOL, which must be a customization group." t nil) - -(defalias 'customize-group-other-window 'customize-other-window) - -(defalias 'customize-option 'customize-variable) - -(autoload 'customize-variable "cus-edit" "\ -Customize SYMBOL, which must be a user option variable." t nil) - -(autoload 'customize-changed-options "cus-edit" "\ -Customize all user option variables whose default values changed recently. -This means, in other words, variables defined with a `:version' keyword." t nil) - -(defalias 'customize-variable-other-window 'customize-option-other-window) - -(autoload 'customize-option-other-window "cus-edit" "\ -Customize SYMBOL, which must be a user option variable. -Show the buffer in another window, but don't select it." t nil) - -(autoload 'customize-face "cus-edit" "\ -Customize SYMBOL, which should be a face name or nil. -If SYMBOL is nil, customize all faces." t nil) - -(autoload 'customize-face-other-window "cus-edit" "\ -Show customization buffer for FACE in other window." t nil) - -(autoload 'customize-customized "cus-edit" "\ -Customize all user options set since the last save in this session." t nil) - -(autoload 'customize-saved "cus-edit" "\ -Customize all already saved user options." t nil) - -(autoload 'customize-apropos "cus-edit" "\ -Customize all user options matching REGEXP. -If ALL is `options', include only options. -If ALL is `faces', include only faces. -If ALL is `groups', include only groups. -If ALL is t (interactively, with prefix arg), include options which are not -user-settable, as well as faces and groups." t nil) - -(autoload 'customize-apropos-options "cus-edit" "\ -Customize all user options matching REGEXP. -With prefix arg, include options which are not user-settable." t nil) - -(autoload 'customize-apropos-faces "cus-edit" "\ -Customize all user faces matching REGEXP." t nil) - -(autoload 'customize-apropos-groups "cus-edit" "\ -Customize all user groups matching REGEXP." t nil) - -(autoload 'custom-buffer-create "cus-edit" "\ -Create a buffer containing OPTIONS. -Optional NAME is the name of the buffer. -OPTIONS should be an alist of the form ((SYMBOL WIDGET)...), where -SYMBOL is a customization option, and WIDGET is a widget for editing -that option." nil nil) - -(autoload 'custom-buffer-create-other-window "cus-edit" "\ -Create a buffer containing OPTIONS. -Optional NAME is the name of the buffer. -OPTIONS should be an alist of the form ((SYMBOL WIDGET)...), where -SYMBOL is a customization option, and WIDGET is a widget for editing -that option." nil nil) - -(autoload 'customize-browse "cus-edit" "\ -Create a tree browser for the customize hierarchy." t nil) - -(defcustom custom-file "~/.emacs" "File used for storing customization information.\nIf you change this from the default \"~/.emacs\" you need to\nexplicitly load that file for the settings to take effect." :type 'file :group 'customize) - -(autoload 'customize-save-customized "cus-edit" "\ -Save all user options which have been set in this session." t nil) - -(autoload 'custom-save-all "cus-edit" "\ -Save all customizations in `custom-file'." nil nil) - -(autoload 'custom-menu-create "cus-edit" "\ -Create menu for customization group SYMBOL. -The menu is in a format applicable to `easy-menu-define'." nil nil) - -(autoload 'customize-menu-create "cus-edit" "\ -Return a customize menu for customization group SYMBOL. -If optional NAME is given, use that as the name of the menu. -Otherwise the menu will be named `Customize'. -The format is suitable for use with `easy-menu-define'." nil nil) - -;;;*** - -;;;### (autoloads (custom-reset-faces custom-theme-reset-faces custom-theme-face-value custom-theme-set-faces custom-set-faces custom-set-face-update-spec custom-declare-face) "cus-face" "lisp/cus-face.el") - -(autoload 'custom-declare-face "cus-face" "\ -Like `defface', but FACE is evaluated as a normal argument." nil nil) - -(autoload 'custom-set-face-update-spec "cus-face" "\ -Customize the FACE for display types matching DISPLAY, merging - in the new items from PLIST" nil nil) - -(autoload 'custom-set-faces "cus-face" "\ -Initialize faces according to user preferences. -This asociates the setting with the USER theme. -The arguments should be a list where each entry has the form: - - (FACE SPEC [NOW [COMMENT]]) - -SPEC will be stored as the saved value for FACE. If NOW is present -and non-nil, FACE will also be created according to SPEC. -COMMENT is a string comment about FACE. - -See `defface' for the format of SPEC." nil nil) - -(autoload 'custom-theme-set-faces "cus-face" "\ -Initialize faces according to settings specified by args. -Records the settings as belonging to THEME. - -See `custom-set-faces' for a description of the arguments ARGS." nil nil) - -(autoload 'custom-theme-face-value "cus-face" "\ -Return spec of FACE in THEME if the THEME modifies the -FACE. Nil otherwise." nil nil) - -(autoload 'custom-theme-reset-faces "cus-face" nil nil nil) - -(autoload 'custom-reset-faces "cus-face" "\ -Reset the value of the face to values previously defined. -Assosiate this setting with the 'user' theme. - -ARGS is defined as for `custom-theme-reset-faces'" nil nil) - -;;;*** - -;;;### (autoloads (disassemble) "disass" "lisp/disass.el") - -(autoload 'disassemble "disass" "\ -Print disassembled code for OBJECT in (optional) BUFFER. -OBJECT can be a symbol defined as a function, or a function itself -\(a lambda expression or a compiled-function object). -If OBJECT is not already compiled, we compile it, but do not -redefine OBJECT if it is a symbol." t nil) - -;;;*** - -;;;### (autoloads (standard-display-european standard-display-underline standard-display-graphic standard-display-g1 standard-display-ascii standard-display-default standard-display-8bit make-display-table describe-current-display-table) "disp-table" "lisp/disp-table.el") - -(autoload 'describe-current-display-table "disp-table" "\ -Describe the display table in use in the selected window and buffer." t nil) - -(autoload 'make-display-table "disp-table" "\ -Return a new, empty display table." nil nil) - -(autoload 'standard-display-8bit "disp-table" "\ -Display characters in the range L to H literally." nil nil) - -(autoload 'standard-display-default "disp-table" "\ -Display characters in the range L to H using the default notation." nil nil) - -(autoload 'standard-display-ascii "disp-table" "\ -Display character C using printable string S." nil nil) - -(autoload 'standard-display-g1 "disp-table" "\ -Display character C as character SC in the g1 character set. -This function assumes that your terminal uses the SO/SI characters; -it is meaningless for an X frame." nil nil) - -(autoload 'standard-display-graphic "disp-table" "\ -Display character C as character GC in graphics character set. -This function assumes VT100-compatible escapes; it is meaningless for an -X frame." nil nil) - -(autoload 'standard-display-underline "disp-table" "\ -Display character C as character UC plus underlining." nil nil) - -(autoload 'standard-display-european "disp-table" "\ -Toggle display of European characters encoded with ISO 8859. -When enabled, characters in the range of 160 to 255 display not -as octal escapes, but as accented characters. -With prefix argument, enable European character display iff arg is positive." t nil) - -;;;*** - -;;;### (autoloads nil "easymenu" "lisp/easymenu.el") - -;;;*** - -;;;### (autoloads (pop-tag-mark tags-apropos list-tags tags-query-replace tags-search tags-loop-continue next-file tag-complete-symbol find-tag-other-window find-tag visit-tags-table) "etags" "lisp/etags.el") +;;;### (autoloads (pop-tag-mark tags-apropos list-tags tags-query-replace tags-search tags-loop-continue next-file tag-complete-symbol find-tag-other-window find-tag find-tag-at-point visit-tags-table) "etags" "lisp/etags.el") (autoload 'visit-tags-table "etags" "\ Tell tags commands to use tags table file FILE when all else fails. FILE should be the name of a file created with the `etags' program. A directory name is ok too; it means file TAGS in that directory." t nil) +(autoload 'find-tag-at-point "etags" "\ +*Find tag whose name contains TAGNAME. +Identical to `find-tag' but does not prompt for tag when called interactively; +instead, uses tag around or before point." t nil) + (autoload 'find-tag "etags" "\ *Find tag whose name contains TAGNAME. Selects the buffer that the tag is contained in @@ -1087,50 +427,6 @@ ;;;*** -;;;### (autoloads (font-menu-weight-constructor font-menu-size-constructor font-menu-family-constructor reset-device-font-menus) "font-menu" "lisp/font-menu.el") - -(defcustom font-menu-ignore-scaled-fonts nil "*If non-nil, then the font menu will try to show only bitmap fonts." :type 'boolean :group 'font-menu) - -(defcustom font-menu-this-frame-only-p nil "*If non-nil, then changing the default font from the font menu will only\naffect one frame instead of all frames." :type 'boolean :group 'font-menu) - -(fset 'install-font-menus 'reset-device-font-menus) - -(autoload 'reset-device-font-menus "font-menu" "\ -Generates the `Font', `Size', and `Weight' submenus for the Options menu. -This is run the first time that a font-menu is needed for each device. -If you don't like the lazy invocation of this function, you can add it to -`create-device-hook' and that will make the font menus respond more quickly -when they are selected for the first time. If you add fonts to your system, -or if you change your font path, you can call this to re-initialize the menus." nil nil) - -(autoload 'font-menu-family-constructor "font-menu" nil nil nil) - -(autoload 'font-menu-size-constructor "font-menu" nil nil nil) - -(autoload 'font-menu-weight-constructor "font-menu" nil nil nil) - -;;;*** - -;;;### (autoloads (x-font-build-cache font-default-size-for-device font-default-encoding-for-device font-default-registry-for-device font-default-family-for-device font-default-object-for-device font-default-font-for-device font-create-object) "font" "lisp/font.el") - -(autoload 'font-create-object "font" nil nil nil) - -(autoload 'font-default-font-for-device "font" nil nil nil) - -(autoload 'font-default-object-for-device "font" nil nil nil) - -(autoload 'font-default-family-for-device "font" nil nil nil) - -(autoload 'font-default-registry-for-device "font" nil nil nil) - -(autoload 'font-default-encoding-for-device "font" nil nil nil) - -(autoload 'font-default-size-for-device "font" nil nil nil) - -(autoload 'x-font-build-cache "font" nil nil nil) - -;;;*** - ;;;### (autoloads (gnuserv-start gnuserv-running-p) "gnuserv" "lisp/gnuserv.el") (defcustom gnuserv-frame nil "*The frame to be used to display all edited files.\nIf nil, then a new frame is created for each file edited.\nIf t, then the currently selected frame will be used.\nIf a function, then this will be called with a symbol `x' or `tty' as the\nonly argument, and its return value will be interpreted as above." :tag "Gnuserv Frame" :type '(radio (const :tag "Create new frame each time" nil) (const :tag "Use selected frame" t) (function-item :tag "Use main Emacs frame" gnuserv-main-frame-function) (function-item :tag "Use visible frame, otherwise create new" gnuserv-visible-frame-function) (function-item :tag "Create special Gnuserv frame and use it" gnuserv-special-frame-function) (function :tag "Other")) :group 'gnuserv :group 'frames) @@ -1836,5 +1132,718 @@ (autoload 'x-win-init-xfree86 "x-win-xfree86" nil nil nil) ;;;*** + +;;;### (autoloads nil "abbrev" "lisp\\abbrev.el") + +;;;*** + +;;;### (autoloads (about-xemacs) "about" "lisp\\about.el") + +(autoload 'about-xemacs "about" "\ +Describe the True Editor and its minions." t nil) + +;;;*** + +;;;### (autoloads (set-modified-alist modify-alist remove-alist set-alist del-alist put-alist vassoc) "alist" "lisp\\alist.el") + +(autoload 'vassoc "alist" "\ +Search VALIST for a vector whose first element is equal to KEY. +See also `assoc'." nil nil) + +(autoload 'put-alist "alist" "\ +Modify ALIST to set VALUE to ITEM. +If there is a pair whose car is ITEM, replace its cdr by VALUE. +If there is not such pair, create new pair (ITEM . VALUE) and +return new alist whose car is the new pair and cdr is ALIST. +[tomo's ELIS like function]" nil nil) + +(autoload 'del-alist "alist" "\ +If there is a pair whose key is ITEM, delete it from ALIST. +[tomo's ELIS emulating function]" nil nil) + +(autoload 'set-alist "alist" "\ +Modify a alist indicated by SYMBOL to set VALUE to ITEM." nil nil) + +(autoload 'remove-alist "alist" "\ +Remove ITEM from the alist indicated by SYMBOL." nil nil) + +(autoload 'modify-alist "alist" "\ +Modify alist DEFAULT into alist MODIFIER." nil nil) + +(autoload 'set-modified-alist "alist" "\ +Modify a value of a symbol SYM into alist MODIFIER. +The symbol SYM should be alist. If it is not bound, +its value regard as nil." nil nil) + +;;;*** + +;;;### (autoloads (apropos-documentation apropos-value apropos apropos-command) "apropos" "lisp\\apropos.el") + +(fset 'command-apropos 'apropos-command) + +(autoload 'apropos-command "apropos" "\ +Shows commands (interactively callable functions) that match REGEXP. +With optional prefix ARG or if `apropos-do-all' is non-nil, also show +variables." t nil) + +(autoload 'apropos "apropos" "\ +Show all bound symbols whose names match REGEXP. +With optional prefix ARG or if `apropos-do-all' is non-nil, also show unbound +symbols and key bindings, which is a little more time-consuming. +Returns list of symbols and documentation found." t nil) + +(autoload 'apropos-value "apropos" "\ +Show all symbols whose value's printed image matches REGEXP. +With optional prefix ARG or if `apropos-do-all' is non-nil, also looks +at the function and at the names and values of properties. +Returns list of symbols and values found." t nil) + +(autoload 'apropos-documentation "apropos" "\ +Show symbols whose documentation contain matches for REGEXP. +With optional prefix ARG or if `apropos-do-all' is non-nil, also use +documentation that is not stored in the documentation file and show key +bindings. +Returns list of symbols and documentation found." t nil) + +;;;*** + +;;;### (autoloads nil "buff-menu" "lisp\\buff-menu.el") + +(defvar list-buffers-directory nil) + +(make-variable-buffer-local 'list-buffers-directory) + +;;;*** + +;;;### (autoloads (compiler-macroexpand define-compiler-macro ignore-file-errors ignore-errors assert check-type typep deftype cl-struct-setf-expander defstruct define-modify-macro callf2 callf letf* letf rotatef shiftf remf cl-do-pop psetf setf get-setf-method defsetf define-setf-method declare the locally multiple-value-setq multiple-value-bind lexical-let* lexical-let symbol-macrolet macrolet labels flet progv psetq do-all-symbols do-symbols dotimes dolist do* do loop return-from return block etypecase typecase ecase case load-time-value eval-when destructuring-bind function* defmacro* defun* cl-compile-time-init) "cl-macs" "lisp\\cl-macs.el") + +(autoload 'cl-compile-time-init "cl-macs" nil nil nil) + +(autoload 'defun* "cl-macs" "\ +(defun* NAME ARGLIST [DOCSTRING] BODY...): define NAME as a function. +Like normal `defun', except ARGLIST allows full Common Lisp conventions, +and BODY is implicitly surrounded by (block NAME ...)." nil 'macro) + +(autoload 'defmacro* "cl-macs" "\ +(defmacro* NAME ARGLIST [DOCSTRING] BODY...): define NAME as a macro. +Like normal `defmacro', except ARGLIST allows full Common Lisp conventions, +and BODY is implicitly surrounded by (block NAME ...)." nil 'macro) + +(autoload 'function* "cl-macs" "\ +(function* SYMBOL-OR-LAMBDA): introduce a function. +Like normal `function', except that if argument is a lambda form, its +ARGLIST allows full Common Lisp conventions." nil 'macro) + +(autoload 'destructuring-bind "cl-macs" nil nil 'macro) + +(autoload 'eval-when "cl-macs" "\ +(eval-when (WHEN...) BODY...): control when BODY is evaluated. +If `compile' is in WHEN, BODY is evaluated when compiled at top-level. +If `load' is in WHEN, BODY is evaluated when loaded after top-level compile. +If `eval' is in WHEN, BODY is evaluated when interpreted or at non-top-level." nil 'macro) + +(autoload 'load-time-value "cl-macs" "\ +Like `progn', but evaluates the body at load time. +The result of the body appears to the compiler as a quoted constant." nil 'macro) + +(autoload 'case "cl-macs" "\ +(case EXPR CLAUSES...): evals EXPR, chooses from CLAUSES on that value. +Each clause looks like (KEYLIST BODY...). EXPR is evaluated and compared +against each key in each KEYLIST; the corresponding BODY is evaluated. +If no clause succeeds, case returns nil. A single atom may be used in +place of a KEYLIST of one atom. A KEYLIST of `t' or `otherwise' is +allowed only in the final clause, and matches if no other keys match. +Key values are compared by `eql'." nil 'macro) + +(autoload 'ecase "cl-macs" "\ +(ecase EXPR CLAUSES...): like `case', but error if no case fits. +`otherwise'-clauses are not allowed." nil 'macro) + +(autoload 'typecase "cl-macs" "\ +(typecase EXPR CLAUSES...): evals EXPR, chooses from CLAUSES on that value. +Each clause looks like (TYPE BODY...). EXPR is evaluated and, if it +satisfies TYPE, the corresponding BODY is evaluated. If no clause succeeds, +typecase returns nil. A TYPE of `t' or `otherwise' is allowed only in the +final clause, and matches if no other keys match." nil 'macro) + +(autoload 'etypecase "cl-macs" "\ +(etypecase EXPR CLAUSES...): like `typecase', but error if no case fits. +`otherwise'-clauses are not allowed." nil 'macro) + +(autoload 'block "cl-macs" "\ +(block NAME BODY...): define a lexically-scoped block named NAME. +NAME may be any symbol. Code inside the BODY forms can call `return-from' +to jump prematurely out of the block. This differs from `catch' and `throw' +in two respects: First, the NAME is an unevaluated symbol rather than a +quoted symbol or other form; and second, NAME is lexically rather than +dynamically scoped: Only references to it within BODY will work. These +references may appear inside macro expansions, but not inside functions +called from BODY." nil 'macro) + +(autoload 'return "cl-macs" "\ +(return [RESULT]): return from the block named nil. +This is equivalent to `(return-from nil RESULT)'." nil 'macro) + +(autoload 'return-from "cl-macs" "\ +(return-from NAME [RESULT]): return from the block named NAME. +This jumps out to the innermost enclosing `(block NAME ...)' form, +returning RESULT from that form (or nil if RESULT is omitted). +This is compatible with Common Lisp, but note that `defun' and +`defmacro' do not create implicit blocks as they do in Common Lisp." nil 'macro) + +(autoload 'loop "cl-macs" "\ +(loop CLAUSE...): The Common Lisp `loop' macro. +Valid clauses are: + for VAR from/upfrom/downfrom NUM to/upto/downto/above/below NUM by NUM, + for VAR in LIST by FUNC, for VAR on LIST by FUNC, for VAR = INIT then EXPR, + for VAR across ARRAY, repeat NUM, with VAR = INIT, while COND, until COND, + always COND, never COND, thereis COND, collect EXPR into VAR, + append EXPR into VAR, nconc EXPR into VAR, sum EXPR into VAR, + count EXPR into VAR, maximize EXPR into VAR, minimize EXPR into VAR, + if COND CLAUSE [and CLAUSE]... else CLAUSE [and CLAUSE...], + unless COND CLAUSE [and CLAUSE]... else CLAUSE [and CLAUSE...], + do EXPRS..., initially EXPRS..., finally EXPRS..., return EXPR, + finally return EXPR, named NAME." nil 'macro) + +(autoload 'do "cl-macs" "\ +The Common Lisp `do' loop. +Format is: (do ((VAR INIT [STEP])...) (END-TEST [RESULT...]) BODY...)" nil 'macro) + +(autoload 'do* "cl-macs" "\ +The Common Lisp `do*' loop. +Format is: (do* ((VAR INIT [STEP])...) (END-TEST [RESULT...]) BODY...)" nil 'macro) + +(autoload 'dolist "cl-macs" "\ +(dolist (VAR LIST [RESULT]) BODY...): loop over a list. +Evaluate BODY with VAR bound to each `car' from LIST, in turn. +Then evaluate RESULT to get return value, default nil." nil 'macro) + +(autoload 'dotimes "cl-macs" "\ +(dotimes (VAR COUNT [RESULT]) BODY...): loop a certain number of times. +Evaluate BODY with VAR bound to successive integers from 0, inclusive, +to COUNT, exclusive. Then evaluate RESULT to get return value, default +nil." nil 'macro) + +(autoload 'do-symbols "cl-macs" "\ +(dosymbols (VAR [OBARRAY [RESULT]]) BODY...): loop over all symbols. +Evaluate BODY with VAR bound to each interned symbol, or to each symbol +from OBARRAY." nil 'macro) + +(autoload 'do-all-symbols "cl-macs" nil nil 'macro) + +(autoload 'psetq "cl-macs" "\ +(psetq SYM VAL SYM VAL ...): set SYMs to the values VALs in parallel. +This is like `setq', except that all VAL forms are evaluated (in order) +before assigning any symbols SYM to the corresponding values." nil 'macro) + +(autoload 'progv "cl-macs" "\ +(progv SYMBOLS VALUES BODY...): bind SYMBOLS to VALUES dynamically in BODY. +The forms SYMBOLS and VALUES are evaluated, and must evaluate to lists. +Each SYMBOL in the first list is bound to the corresponding VALUE in the +second list (or made unbound if VALUES is shorter than SYMBOLS); then the +BODY forms are executed and their result is returned. This is much like +a `let' form, except that the list of symbols can be computed at run-time." nil 'macro) + +(autoload 'flet "cl-macs" "\ +(flet ((FUNC ARGLIST BODY...) ...) FORM...): make temporary function defns. +This is an analogue of `let' that operates on the function cell of FUNC +rather than its value cell. The FORMs are evaluated with the specified +function definitions in place, then the definitions are undone (the FUNCs +go back to their previous definitions, or lack thereof)." nil 'macro) + +(autoload 'labels "cl-macs" "\ +(labels ((FUNC ARGLIST BODY...) ...) FORM...): make temporary func bindings. +This is like `flet', except the bindings are lexical instead of dynamic. +Unlike `flet', this macro is fully compliant with the Common Lisp standard." nil 'macro) + +(autoload 'macrolet "cl-macs" "\ +(macrolet ((NAME ARGLIST BODY...) ...) FORM...): make temporary macro defns. +This is like `flet', but for macros instead of functions." nil 'macro) + +(autoload 'symbol-macrolet "cl-macs" "\ +(symbol-macrolet ((NAME EXPANSION) ...) FORM...): make symbol macro defns. +Within the body FORMs, references to the variable NAME will be replaced +by EXPANSION, and (setq NAME ...) will act like (setf EXPANSION ...)." nil 'macro) + +(autoload 'lexical-let "cl-macs" "\ +(lexical-let BINDINGS BODY...): like `let', but lexically scoped. +The main visible difference is that lambdas inside BODY will create +lexical closures as in Common Lisp." nil 'macro) + +(autoload 'lexical-let* "cl-macs" "\ +(lexical-let* BINDINGS BODY...): like `let*', but lexically scoped. +The main visible difference is that lambdas inside BODY will create +lexical closures as in Common Lisp." nil 'macro) + +(autoload 'multiple-value-bind "cl-macs" "\ +(multiple-value-bind (SYM SYM...) FORM BODY): collect multiple return values. +FORM must return a list; the BODY is then executed with the first N elements +of this list bound (`let'-style) to each of the symbols SYM in turn. This +is analogous to the Common Lisp `multiple-value-bind' macro, using lists to +simulate true multiple return values. For compatibility, (values A B C) is +a synonym for (list A B C)." nil 'macro) + +(autoload 'multiple-value-setq "cl-macs" "\ +(multiple-value-setq (SYM SYM...) FORM): collect multiple return values. +FORM must return a list; the first N elements of this list are stored in +each of the symbols SYM in turn. This is analogous to the Common Lisp +`multiple-value-setq' macro, using lists to simulate true multiple return +values. For compatibility, (values A B C) is a synonym for (list A B C)." nil 'macro) + +(autoload 'locally "cl-macs" nil nil 'macro) + +(autoload 'the "cl-macs" nil nil 'macro) + +(autoload 'declare "cl-macs" nil nil 'macro) + +(autoload 'define-setf-method "cl-macs" "\ +(define-setf-method NAME ARGLIST BODY...): define a `setf' method. +This method shows how to handle `setf's to places of the form (NAME ARGS...). +The argument forms ARGS are bound according to ARGLIST, as if NAME were +going to be expanded as a macro, then the BODY forms are executed and must +return a list of five elements: a temporary-variables list, a value-forms +list, a store-variables list (of length one), a store-form, and an access- +form. See `defsetf' for a simpler way to define most setf-methods." nil 'macro) + +(autoload 'defsetf "cl-macs" "\ +(defsetf NAME FUNC): define a `setf' method. +This macro is an easy-to-use substitute for `define-setf-method' that works +well for simple place forms. In the simple `defsetf' form, `setf's of +the form (setf (NAME ARGS...) VAL) are transformed to function or macro +calls of the form (FUNC ARGS... VAL). Example: (defsetf aref aset). +Alternate form: (defsetf NAME ARGLIST (STORE) BODY...). +Here, the above `setf' call is expanded by binding the argument forms ARGS +according to ARGLIST, binding the value form VAL to STORE, then executing +BODY, which must return a Lisp form that does the necessary `setf' operation. +Actually, ARGLIST and STORE may be bound to temporary variables which are +introduced automatically to preserve proper execution order of the arguments. +Example: (defsetf nth (n x) (v) (list 'setcar (list 'nthcdr n x) v))." nil 'macro) + +(autoload 'get-setf-method "cl-macs" "\ +Return a list of five values describing the setf-method for PLACE. +PLACE may be any Lisp form which can appear as the PLACE argument to +a macro like `setf' or `incf'." nil nil) + +(autoload 'setf "cl-macs" "\ +(setf PLACE VAL PLACE VAL ...): set each PLACE to the value of its VAL. +This is a generalized version of `setq'; the PLACEs may be symbolic +references such as (car x) or (aref x i), as well as plain symbols. +For example, (setf (cadar x) y) is equivalent to (setcar (cdar x) y). +The return value is the last VAL in the list." nil 'macro) + +(autoload 'psetf "cl-macs" "\ +(psetf PLACE VAL PLACE VAL ...): set PLACEs to the values VALs in parallel. +This is like `setf', except that all VAL forms are evaluated (in order) +before assigning any PLACEs to the corresponding values." nil 'macro) + +(autoload 'cl-do-pop "cl-macs" nil nil nil) + +(autoload 'remf "cl-macs" "\ +(remf PLACE TAG): remove TAG from property list PLACE. +PLACE may be a symbol, or any generalized variable allowed by `setf'. +The form returns true if TAG was found and removed, nil otherwise." nil 'macro) + +(autoload 'shiftf "cl-macs" "\ +(shiftf PLACE PLACE... VAL): shift left among PLACEs. +Example: (shiftf A B C) sets A to B, B to C, and returns the old A. +Each PLACE may be a symbol, or any generalized variable allowed by `setf'." nil 'macro) + +(autoload 'rotatef "cl-macs" "\ +(rotatef PLACE...): rotate left among PLACEs. +Example: (rotatef A B C) sets A to B, B to C, and C to A. It returns nil. +Each PLACE may be a symbol, or any generalized variable allowed by `setf'." nil 'macro) + +(autoload 'letf "cl-macs" "\ +(letf ((PLACE VALUE) ...) BODY...): temporarily bind to PLACEs. +This is the analogue of `let', but with generalized variables (in the +sense of `setf') for the PLACEs. Each PLACE is set to the corresponding +VALUE, then the BODY forms are executed. On exit, either normally or +because of a `throw' or error, the PLACEs are set back to their original +values. Note that this macro is *not* available in Common Lisp. +As a special case, if `(PLACE)' is used instead of `(PLACE VALUE)', +the PLACE is not modified before executing BODY." nil 'macro) + +(autoload 'letf* "cl-macs" "\ +(letf* ((PLACE VALUE) ...) BODY...): temporarily bind to PLACEs. +This is the analogue of `let*', but with generalized variables (in the +sense of `setf') for the PLACEs. Each PLACE is set to the corresponding +VALUE, then the BODY forms are executed. On exit, either normally or +because of a `throw' or error, the PLACEs are set back to their original +values. Note that this macro is *not* available in Common Lisp. +As a special case, if `(PLACE)' is used instead of `(PLACE VALUE)', +the PLACE is not modified before executing BODY." nil 'macro) + +(autoload 'callf "cl-macs" "\ +(callf FUNC PLACE ARGS...): set PLACE to (FUNC PLACE ARGS...). +FUNC should be an unquoted function name. PLACE may be a symbol, +or any generalized variable allowed by `setf'." nil 'macro) + +(autoload 'callf2 "cl-macs" "\ +(callf2 FUNC ARG1 PLACE ARGS...): set PLACE to (FUNC ARG1 PLACE ARGS...). +Like `callf', but PLACE is the second argument of FUNC, not the first." nil 'macro) + +(autoload 'define-modify-macro "cl-macs" "\ +(define-modify-macro NAME ARGLIST FUNC): define a `setf'-like modify macro. +If NAME is called, it combines its PLACE argument with the other arguments +from ARGLIST using FUNC: (define-modify-macro incf (&optional (n 1)) +)" nil 'macro) + +(autoload 'defstruct "cl-macs" "\ +(defstruct (NAME OPTIONS...) (SLOT SLOT-OPTS...)...): define a struct type. +This macro defines a new Lisp data type called NAME, which contains data +stored in SLOTs. This defines a `make-NAME' constructor, a `copy-NAME' +copier, a `NAME-p' predicate, and setf-able `NAME-SLOT' accessors." nil 'macro) + +(autoload 'cl-struct-setf-expander "cl-macs" nil nil nil) + +(autoload 'deftype "cl-macs" "\ +(deftype NAME ARGLIST BODY...): define NAME as a new data type. +The type name can then be used in `typecase', `check-type', etc." nil 'macro) + +(autoload 'typep "cl-macs" "\ +Check that OBJECT is of type TYPE. +TYPE is a Common Lisp-style type specifier." nil nil) + +(autoload 'check-type "cl-macs" "\ +Verify that FORM is of type TYPE; signal an error if not. +STRING is an optional description of the desired type." nil 'macro) + +(autoload 'assert "cl-macs" "\ +Verify that FORM returns non-nil; signal an error if not. +Second arg SHOW-ARGS means to include arguments of FORM in message. +Other args STRING and ARGS... are arguments to be passed to `error'. +They are not evaluated unless the assertion fails. If STRING is +omitted, a default message listing FORM itself is used." nil 'macro) + +(autoload 'ignore-errors "cl-macs" "\ +Execute FORMS; if an error occurs, return nil. +Otherwise, return result of last FORM." nil 'macro) + +(autoload 'ignore-file-errors "cl-macs" "\ +Execute FORMS; if an error of type `file-error' occurs, return nil. +Otherwise, return result of last FORM." nil 'macro) + +(autoload 'define-compiler-macro "cl-macs" "\ +(define-compiler-macro FUNC ARGLIST BODY...): Define a compiler-only macro. +This is like `defmacro', but macro expansion occurs only if the call to +FUNC is compiled (i.e., not interpreted). Compiler macros should be used +for optimizing the way calls to FUNC are compiled; the form returned by +BODY should do the same thing as a call to the normal function called +FUNC, though possibly more efficiently. Note that, like regular macros, +compiler macros are expanded repeatedly until no further expansions are +possible. Unlike regular macros, BODY can decide to \"punt\" and leave the +original function call alone by declaring an initial `&whole foo' parameter +and then returning foo." nil 'macro) + +(autoload 'compiler-macroexpand "cl-macs" nil nil nil) + +;;;*** + +;;;### (autoloads (batch-remove-old-elc) "cleantree" "lisp\\cleantree.el") + +(autoload 'batch-remove-old-elc "cleantree" nil nil nil) + +;;;*** + +;;;### (autoloads (config-value config-value-hash-table) "config" "lisp\\config.el") + +(autoload 'config-value-hash-table "config" "\ +Return hash table of configuration parameters and their values." nil nil) + +(autoload 'config-value "config" "\ +Return the value of the configuration parameter CONFIG_SYMBOL." nil nil) + +;;;*** + +;;;### (autoloads (Custom-make-dependencies) "cus-dep" "lisp\\cus-dep.el") + +(autoload 'Custom-make-dependencies "cus-dep" "\ +Extract custom dependencies from .el files in SUBDIRS. +SUBDIRS is a list of directories. If it is nil, the command-line +arguments are used. If it is a string, only that directory is +processed. This function is especially useful in batch mode. + +Batch usage: xemacs -batch -l cus-dep.el -f Custom-make-dependencies DIRS" t nil) + +;;;*** + +;;;### (autoloads (customize-menu-create custom-menu-create custom-save-all customize-save-customized customize-browse custom-buffer-create-other-window custom-buffer-create customize-apropos-groups customize-apropos-faces customize-apropos-options customize-apropos customize-saved customize-customized customize-face-other-window customize-face customize-option-other-window customize-changed-options customize-variable customize-other-window customize customize-save-variable customize-set-variable customize-set-value) "cus-edit" "lisp\\cus-edit.el") + +(autoload 'customize-set-value "cus-edit" "\ +Set VARIABLE to VALUE. VALUE is a Lisp object. + +If VARIABLE has a `variable-interactive' property, that is used as if +it were the arg to `interactive' (which see) to interactively read the value. + +If VARIABLE has a `custom-type' property, it must be a widget and the +`:prompt-value' property of that widget will be used for reading the value. + +If given a prefix (or a COMMENT argument), also prompt for a comment." t nil) + +(autoload 'customize-set-variable "cus-edit" "\ +Set the default for VARIABLE to VALUE. VALUE is a Lisp object. + +If VARIABLE has a `custom-set' property, that is used for setting +VARIABLE, otherwise `set-default' is used. + +The `customized-value' property of the VARIABLE will be set to a list +with a quoted VALUE as its sole list member. + +If VARIABLE has a `variable-interactive' property, that is used as if +it were the arg to `interactive' (which see) to interactively read the value. + +If VARIABLE has a `custom-type' property, it must be a widget and the +`:prompt-value' property of that widget will be used for reading the value. + +If given a prefix (or a COMMENT argument), also prompt for a comment." t nil) + +(autoload 'customize-save-variable "cus-edit" "\ +Set the default for VARIABLE to VALUE, and save it for future sessions. +If VARIABLE has a `custom-set' property, that is used for setting +VARIABLE, otherwise `set-default' is used. + +The `customized-value' property of the VARIABLE will be set to a list +with a quoted VALUE as its sole list member. + +If VARIABLE has a `variable-interactive' property, that is used as if +it were the arg to `interactive' (which see) to interactively read the value. + +If VARIABLE has a `custom-type' property, it must be a widget and the +`:prompt-value' property of that widget will be used for reading the value. + +If given a prefix (or a COMMENT argument), also prompt for a comment." t nil) + +(autoload 'customize "cus-edit" "\ +Select a customization buffer which you can use to set user options. +User options are structured into \"groups\". +The default group is `Emacs'." t nil) + +(defalias 'customize-group 'customize) + +(autoload 'customize-other-window "cus-edit" "\ +Customize SYMBOL, which must be a customization group." t nil) + +(defalias 'customize-group-other-window 'customize-other-window) + +(defalias 'customize-option 'customize-variable) + +(autoload 'customize-variable "cus-edit" "\ +Customize SYMBOL, which must be a user option variable." t nil) + +(autoload 'customize-changed-options "cus-edit" "\ +Customize all user option variables whose default values changed recently. +This means, in other words, variables defined with a `:version' keyword." t nil) + +(defalias 'customize-variable-other-window 'customize-option-other-window) + +(autoload 'customize-option-other-window "cus-edit" "\ +Customize SYMBOL, which must be a user option variable. +Show the buffer in another window, but don't select it." t nil) + +(autoload 'customize-face "cus-edit" "\ +Customize SYMBOL, which should be a face name or nil. +If SYMBOL is nil, customize all faces." t nil) + +(autoload 'customize-face-other-window "cus-edit" "\ +Show customization buffer for FACE in other window." t nil) + +(autoload 'customize-customized "cus-edit" "\ +Customize all user options set since the last save in this session." t nil) + +(autoload 'customize-saved "cus-edit" "\ +Customize all already saved user options." t nil) + +(autoload 'customize-apropos "cus-edit" "\ +Customize all user options matching REGEXP. +If ALL is `options', include only options. +If ALL is `faces', include only faces. +If ALL is `groups', include only groups. +If ALL is t (interactively, with prefix arg), include options which are not +user-settable, as well as faces and groups." t nil) + +(autoload 'customize-apropos-options "cus-edit" "\ +Customize all user options matching REGEXP. +With prefix arg, include options which are not user-settable." t nil) + +(autoload 'customize-apropos-faces "cus-edit" "\ +Customize all user faces matching REGEXP." t nil) + +(autoload 'customize-apropos-groups "cus-edit" "\ +Customize all user groups matching REGEXP." t nil) + +(autoload 'custom-buffer-create "cus-edit" "\ +Create a buffer containing OPTIONS. +Optional NAME is the name of the buffer. +OPTIONS should be an alist of the form ((SYMBOL WIDGET)...), where +SYMBOL is a customization option, and WIDGET is a widget for editing +that option." nil nil) + +(autoload 'custom-buffer-create-other-window "cus-edit" "\ +Create a buffer containing OPTIONS. +Optional NAME is the name of the buffer. +OPTIONS should be an alist of the form ((SYMBOL WIDGET)...), where +SYMBOL is a customization option, and WIDGET is a widget for editing +that option." nil nil) + +(autoload 'customize-browse "cus-edit" "\ +Create a tree browser for the customize hierarchy." t nil) + +(defcustom custom-file "~/.emacs" "File used for storing customization information.\nIf you change this from the default \"~/.emacs\" you need to\nexplicitly load that file for the settings to take effect." :type 'file :group 'customize) + +(autoload 'customize-save-customized "cus-edit" "\ +Save all user options which have been set in this session." t nil) + +(autoload 'custom-save-all "cus-edit" "\ +Save all customizations in `custom-file'." nil nil) + +(autoload 'custom-menu-create "cus-edit" "\ +Create menu for customization group SYMBOL. +The menu is in a format applicable to `easy-menu-define'." nil nil) + +(autoload 'customize-menu-create "cus-edit" "\ +Return a customize menu for customization group SYMBOL. +If optional NAME is given, use that as the name of the menu. +Otherwise the menu will be named `Customize'. +The format is suitable for use with `easy-menu-define'." nil nil) + +;;;*** + +;;;### (autoloads (custom-reset-faces custom-theme-reset-faces custom-theme-face-value custom-theme-set-faces custom-set-faces custom-set-face-update-spec custom-declare-face) "cus-face" "lisp\\cus-face.el") + +(autoload 'custom-declare-face "cus-face" "\ +Like `defface', but FACE is evaluated as a normal argument." nil nil) + +(autoload 'custom-set-face-update-spec "cus-face" "\ +Customize the FACE for display types matching DISPLAY, merging + in the new items from PLIST" nil nil) + +(autoload 'custom-set-faces "cus-face" "\ +Initialize faces according to user preferences. +This asociates the setting with the USER theme. +The arguments should be a list where each entry has the form: + + (FACE SPEC [NOW [COMMENT]]) + +SPEC will be stored as the saved value for FACE. If NOW is present +and non-nil, FACE will also be created according to SPEC. +COMMENT is a string comment about FACE. + +See `defface' for the format of SPEC." nil nil) + +(autoload 'custom-theme-set-faces "cus-face" "\ +Initialize faces according to settings specified by args. +Records the settings as belonging to THEME. + +See `custom-set-faces' for a description of the arguments ARGS." nil nil) + +(autoload 'custom-theme-face-value "cus-face" "\ +Return spec of FACE in THEME if the THEME modifies the +FACE. Nil otherwise." nil nil) + +(autoload 'custom-theme-reset-faces "cus-face" nil nil nil) + +(autoload 'custom-reset-faces "cus-face" "\ +Reset the value of the face to values previously defined. +Assosiate this setting with the 'user' theme. + +ARGS is defined as for `custom-theme-reset-faces'" nil nil) + +;;;*** + +;;;### (autoloads (disassemble) "disass" "lisp\\disass.el") + +(autoload 'disassemble "disass" "\ +Print disassembled code for OBJECT in (optional) BUFFER. +OBJECT can be a symbol defined as a function, or a function itself +\(a lambda expression or a compiled-function object). +If OBJECT is not already compiled, we compile it, but do not +redefine OBJECT if it is a symbol." t nil) + +;;;*** + +;;;### (autoloads (standard-display-european standard-display-underline standard-display-graphic standard-display-g1 standard-display-ascii standard-display-default standard-display-8bit make-display-table describe-current-display-table) "disp-table" "lisp\\disp-table.el") + +(autoload 'describe-current-display-table "disp-table" "\ +Describe the display table in use in the selected window and buffer." t nil) + +(autoload 'make-display-table "disp-table" "\ +Return a new, empty display table." nil nil) + +(autoload 'standard-display-8bit "disp-table" "\ +Display characters in the range L to H literally." nil nil) + +(autoload 'standard-display-default "disp-table" "\ +Display characters in the range L to H using the default notation." nil nil) + +(autoload 'standard-display-ascii "disp-table" "\ +Display character C using printable string S." nil nil) + +(autoload 'standard-display-g1 "disp-table" "\ +Display character C as character SC in the g1 character set. +This function assumes that your terminal uses the SO/SI characters; +it is meaningless for an X frame." nil nil) + +(autoload 'standard-display-graphic "disp-table" "\ +Display character C as character GC in graphics character set. +This function assumes VT100-compatible escapes; it is meaningless for an +X frame." nil nil) + +(autoload 'standard-display-underline "disp-table" "\ +Display character C as character UC plus underlining." nil nil) + +(autoload 'standard-display-european "disp-table" "\ +Toggle display of European characters encoded with ISO 8859. +When enabled, characters in the range of 160 to 255 display not +as octal escapes, but as accented characters. +With prefix argument, enable European character display iff arg is positive." t nil) + +;;;*** + +;;;### (autoloads nil "easymenu" "lisp\\easymenu.el") + +;;;*** + +;;;### (autoloads (font-menu-weight-constructor font-menu-size-constructor font-menu-family-constructor reset-device-font-menus) "font-menu" "lisp\\font-menu.el") + +(defcustom font-menu-ignore-scaled-fonts nil "*If non-nil, then the font menu will try to show only bitmap fonts." :type 'boolean :group 'font-menu) + +(defcustom font-menu-this-frame-only-p nil "*If non-nil, then changing the default font from the font menu will only\naffect one frame instead of all frames." :type 'boolean :group 'font-menu) + +(fset 'install-font-menus 'reset-device-font-menus) + +(autoload 'reset-device-font-menus "font-menu" "\ +Generates the `Font', `Size', and `Weight' submenus for the Options menu. +This is run the first time that a font-menu is needed for each device. +If you don't like the lazy invocation of this function, you can add it to +`create-device-hook' and that will make the font menus respond more quickly +when they are selected for the first time. If you add fonts to your system, +or if you change your font path, you can call this to re-initialize the menus." nil nil) + +(autoload 'font-menu-family-constructor "font-menu" nil nil nil) + +(autoload 'font-menu-size-constructor "font-menu" nil nil nil) + +(autoload 'font-menu-weight-constructor "font-menu" nil nil nil) + +;;;*** + +;;;### (autoloads (x-font-build-cache font-default-size-for-device font-default-encoding-for-device font-default-registry-for-device font-default-family-for-device font-default-object-for-device font-default-font-for-device font-create-object) "font" "lisp\\font.el") + +(autoload 'font-create-object "font" nil nil nil) + +(autoload 'font-default-font-for-device "font" nil nil nil) + +(autoload 'font-default-object-for-device "font" nil nil nil) + +(autoload 'font-default-family-for-device "font" nil nil nil) + +(autoload 'font-default-registry-for-device "font" nil nil nil) + +(autoload 'font-default-encoding-for-device "font" nil nil nil) + +(autoload 'font-default-size-for-device "font" nil nil nil) + +(autoload 'x-font-build-cache "font" nil nil nil) + +;;;*** (provide 'lisp-autoloads)
--- a/lisp/autoload.el Mon Aug 13 11:16:09 2007 +0200 +++ b/lisp/autoload.el Mon Aug 13 11:17:09 2007 +0200 @@ -114,10 +114,12 @@ (defun autoload-trim-file-name (file) "Returns a relative pathname of FILE including the last directory." (setq file (expand-file-name file)) - (file-relative-name file (file-name-directory - (directory-file-name - (file-name-directory file))))) - + (replace-in-string + (file-relative-name file (file-name-directory + (directory-file-name + (file-name-directory file)))) + "\\\\" "/")) + ;;;###autoload (defun generate-file-autoloads (file &optional funlist) "Insert at point a loaddefs autoload section for FILE. @@ -339,7 +341,7 @@ "Generic filename to put autoloads into. Unless you are an XEmacs maintainer, it is probably unwise to change this.") -(defvar autoload-target-directory "../lisp/prim/" +(defvar autoload-target-directory "../lisp/" "Directory to put autoload declaration file into. Unless you know what you're doing, don't mess with this.") @@ -349,7 +351,11 @@ data-directory) "*File `update-file-autoloads' puts autoloads into. A .el file can set this in its local variables section to make its -autoloads go somewhere else.") +autoloads go somewhere else. + +Note that `batch-update-directory' binds this variable to its own value, +generally the file named `autoload-file-name' in the directory being +updated.") (defconst cusload-file-name "custom-load.el" "Generic filename ot put custom loads into. @@ -458,7 +464,9 @@ (defun update-autoloads-from-directory (dir) "Update `generated-autoload-file' with all the current autoloads from DIR. This runs `update-file-autoloads' on each .el file in DIR. -Obsolete autoload entries for files that no longer exist are deleted." +Obsolete autoload entries for files that no longer exist are deleted. +Note that, if this function is called from `batch-update-directory', +`generated-autoload-file' was rebound in that function." (interactive "DUpdate autoloads for directory: ") (setq dir (expand-file-name dir)) (let ((simple-dir (file-name-as-directory @@ -534,18 +542,24 @@ (defvar autoload-package-name nil) +;; #### this function is almost identical, but subtly different, +;; from batch-update-autoloads. Steve, it's your responsibility to +;; clean this up. The two should be merged, but I'm not sure what +;; package-creation scripts out there might be using this. --ben + ;;;###autoload (defun batch-update-directory () - "Update the autoloads for the directory on the command line. -Runs `update-file-autoloads' on each file in the given directory, must -be used only with -batch and kills XEmacs on completion." + "Update the autoloads for the directories on the command line. +Runs `update-file-autoloads' on each file in the given directory, and must +be used only with -batch." (unless noninteractive (error "batch-update-directory is to be used only with -batch")) (let ((defdir default-directory) (enable-local-eval nil)) ; Don't query in batch mode. (dolist (arg command-line-args-left) (setq arg (expand-file-name arg defdir)) - (let ((generated-autoload-file (concat arg "/" autoload-file-name))) + (let ((generated-autoload-file (expand-file-name autoload-file-name + arg))) (cond ((file-directory-p arg) (message "Updating autoloads in directory %s..." arg) @@ -561,6 +575,36 @@ ) (setq command-line-args-left nil))) +;; #### i created the following. this one and the last should be merged into +;; batch-update-autoloads. --ben + +;;;###autoload +(defun batch-update-one-directory () + "Update the autoloads for a single directory on the command line. +Runs `update-file-autoloads' on each file in the given directory, and must +be used only with -batch." + (unless noninteractive + (error "batch-update-directory is to be used only with -batch")) + (let ((defdir default-directory) + (enable-local-eval nil)) ; Don't query in batch mode. + (let ((arg (car command-line-args-left))) + (setq command-line-args-left (cdr command-line-args-left)) + (setq arg (expand-file-name arg defdir)) + (let ((generated-autoload-file (expand-file-name autoload-file-name + arg))) + (cond + ((file-directory-p arg) + (message "Updating autoloads in directory %s..." arg) + (update-autoloads-from-directory arg)) + (t (error "No such file or directory: %s" arg))) + (fixup-autoload-buffer (concat (if autoload-package-name + autoload-package-name + (file-name-nondirectory arg)) + "-autoloads")) + (save-some-buffers t)) + ;; (message "Done") + ))) + (provide 'autoload) ;;; autoload.el ends here
--- a/lisp/bytecomp.el Mon Aug 13 11:16:09 2007 +0200 +++ b/lisp/bytecomp.el Mon Aug 13 11:17:09 2007 +0200 @@ -1355,7 +1355,7 @@ "Recompile every `.el' file in DIRECTORY that already has a `.elc' file. Files in subdirectories of DIRECTORY are processed also." (interactive "DByte force recompile (directory): ") - (byte-recompile-directory directory nil t)) + (byte-recompile-directory directory nil nil t)) ;;;###autoload (defun byte-recompile-directory (directory &optional arg norecursion force) @@ -4037,27 +4037,42 @@ (error "`batch-byte-compile' is to be used only with -batch")) (let ((error nil)) (while command-line-args-left - (if (file-directory-p (expand-file-name (car command-line-args-left))) - (let ((files (directory-files (car command-line-args-left))) - source dest) - (while files - (if (and (string-match emacs-lisp-file-regexp (car files)) - (not (auto-save-file-name-p (car files))) - (setq source (expand-file-name - (car files) - (car command-line-args-left))) - (setq dest (byte-compile-dest-file source)) - (file-exists-p dest) - (file-newer-than-file-p source dest)) - (if (null (batch-byte-compile-1 source)) - (setq error t))) - (setq files (cdr files)))) - (if (null (batch-byte-compile-1 (car command-line-args-left))) - (setq error t))) - (setq command-line-args-left (cdr command-line-args-left))) + (if (null (batch-byte-compile-one-file)) + (setq error t))) (message "Done") (kill-emacs (if error 1 0)))) +;;;###autoload +(defun batch-byte-compile-one-file () + "Run `byte-compile-file' on a single file remaining on the command line. +Use this from the command line, with `-batch'; +it won't work in an interactive Emacs." + ;; command-line-args-left is what is left of the command line (from + ;; startup.el) + (defvar command-line-args-left) ;Avoid 'free variable' warning + (if (not noninteractive) + (error "`batch-byte-compile-one-file' is to be used only with -batch")) + (let (error + (file-to-process (car command-line-args-left))) + (setq command-line-args-left (cdr command-line-args-left)) + (if (file-directory-p (expand-file-name file-to-process)) + (let ((files (directory-files file-to-process)) + source dest) + (while files + (if (and (string-match emacs-lisp-file-regexp (car files)) + (not (auto-save-file-name-p (car files))) + (setq source (expand-file-name + (car files) + file-to-process)) + (setq dest (byte-compile-dest-file source)) + (file-exists-p dest) + (file-newer-than-file-p source dest)) + (if (null (batch-byte-compile-1 source)) + (setq error t))) + (setq files (cdr files))) + (null error)) + (batch-byte-compile-1 file-to-process)))) + (defun batch-byte-compile-1 (file) (condition-case err (progn (byte-compile-file file) t)
--- a/lisp/cl-compat.el Mon Aug 13 11:16:09 2007 +0200 +++ b/lisp/cl-compat.el Mon Aug 13 11:17:09 2007 +0200 @@ -56,8 +56,10 @@ (defmacro defkeyword (x &optional doc) (list* 'defconst x (list 'quote x) (and doc (list doc)))) -(defun keywordp (sym) - (and (symbolp sym) (eq (aref (symbol-name sym) 0) ?\:) (set sym sym))) +;; XEmacs change. +;; We have built-in function. +;;(defun keywordp (sym) +;; (and (symbolp sym) (eq (aref (symbol-name sym) 0) ?\:) (set sym sym))) (defun keyword-of (sym) (or (keywordp sym) (keywordp (intern (format ":%s" sym)))))
--- a/lisp/custom-load.el Mon Aug 13 11:16:09 2007 +0200 +++ b/lisp/custom-load.el Mon Aug 13 11:17:09 2007 +0200 @@ -15,7 +15,7 @@ (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-items" "x-init" "toolbar-items" "cus-edit" "gnuserv" "sound")) +(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 'pui '("package-ui")) (custom-add-loads 'terminals '("gnuserv")) @@ -47,6 +47,7 @@ (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")) @@ -62,7 +63,7 @@ (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-items")) +(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")) @@ -70,16 +71,16 @@ (custom-add-loads 'fill '("simple" "fill")) (custom-add-loads 'custom-magic-faces '("cus-edit")) (custom-add-loads 'display '("toolbar" "scrollbar" "auto-show")) -(custom-add-loads 'faces '("faces" "cus-edit" "font-lock" "font" "hyper-apropos" "info" "wid-edit")) +(custom-add-loads 'faces '("faces" "font" "cus-edit" "font-lock" "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 'hyper-apropos '("hyper-apropos")) -(custom-add-loads 'wp '("cus-edit")) +(custom-add-loads 'wp '("printer" "cus-edit")) (custom-add-loads 'vc '("files")) (custom-add-loads 'isearch '("isearch-mode")) (custom-add-loads 'font-lock-faces '("font-lock")) (custom-add-loads 'modeline '("modeline")) -(custom-add-loads 'editing '("simple" "abbrev" "fill" "mouse" "cus-edit" "dragdrop")) +(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"))
--- a/lisp/dialog.el Mon Aug 13 11:16:09 2007 +0200 +++ b/lisp/dialog.el Mon Aug 13 11:17:09 2007 +0200 @@ -28,33 +28,35 @@ ;; This file is dumped with XEmacs (when dialog boxes are compiled in). +;; Dialog boxes are non-modal at the C level, but made modal at the +;; Lisp level via hacks in functions such as yes-or-no-p-dialog-box +;; below. Perhaps there should be truly modal dialog boxes +;; implemented at the C level for safety. All code using dialog boxes +;; should be careful to assume that the environment, for example the +;; current buffer, might be completely different after returning from +;; yes-or-no-p-dialog-box, but such code is difficult to write and test. + ;;; Code: (defun yes-or-no-p-dialog-box (prompt) - "Ask user a \"y or n\" question with a popup dialog box. -Returns t if answer is \"yes\". + "Ask user a yes-or-no question with a popup dialog box. +Return t if the answer is \"yes\". Takes one argument, which is the string to display to ask the question." - (let ((echo-keystrokes 0) - event) + (save-selected-frame (popup-dialog-box - ;; "Non-violent language please!" says Robin. - (cons prompt '(["%_Yes" yes t] ["%_No" no t] nil ["%_Cancel" abort t]))) -; (cons prompt '(["%_Yes" yes t] ["%_No" no t] nil ["A%_bort" abort t]))) - (catch 'ynp-done - (while t - (setq event (next-command-event event)) - (cond ((and (misc-user-event-p event) (eq (event-object event) 'yes)) - (throw 'ynp-done t)) - ((and (misc-user-event-p event) (eq (event-object event) 'no)) - (throw 'ynp-done nil)) - ((and (misc-user-event-p event) - (or (eq (event-object event) 'abort) - (eq (event-object event) 'menu-no-selection-hook))) - (signal 'quit nil)) - ((button-release-event-p event) ;; don't beep twice - nil) - (t - (beep) - (message "please answer the dialog box"))))))) + (list prompt ["Yes" yes t] ["No" no t] nil ["Cancel" cancel t])) + (let (event) + (catch 'ynp-done + (while t + (setq event (next-command-event event)) + (when (misc-user-event-p event) + (message "%s" (event-object event)) + (case (event-object event) + ((yes) (throw 'ynp-done t)) + ((no) (throw 'ynp-done nil)) + ((cancel menu-no-selection-hook) (signal 'quit nil)))) + (unless (button-release-event-p event) ; don't beep twice + (beep) + (message "please answer the dialog box"))))))) (defun yes-or-no-p-maybe-dialog-box (prompt) "Ask user a yes-or-no question. Return t if answer is yes. @@ -78,10 +80,9 @@ (yes-or-no-p-dialog-box prompt) (y-or-n-p-minibuf prompt))) -(if (fboundp 'popup-dialog-box) - (progn - (fset 'yes-or-no-p 'yes-or-no-p-maybe-dialog-box) - (fset 'y-or-n-p 'y-or-n-p-maybe-dialog-box))) +(when (fboundp 'popup-dialog-box) + (fset 'yes-or-no-p 'yes-or-no-p-maybe-dialog-box) + (fset 'y-or-n-p 'y-or-n-p-maybe-dialog-box)) ;; this is call-compatible with the horribly-named FSF Emacs function ;; `x-popup-dialog'. I refuse to use that name. @@ -154,4 +155,63 @@ (apply 'message-box fmt args) (apply 'message fmt args))) +(defun make-dialog-box (&optional spec props parent) + "Create a frame suitable for use as a general dialog box. +The frame is made a child of PARENT (defaults to the selected frame), +and has additional properties PROPS, as well as `dialog-frame-plist'. +SPEC is a string or glyph to be placed in the gutter. If INVISIBLE is +non-nil then the frame is initially unmapped. +Normally the created frame has no modelines, menubars, scrollbars, +minibuffer or toolbars and is entirely covered by its gutter." + (or parent (setq parent (selected-frame))) + (let* ((ftop (frame-property parent 'top)) + (fleft (frame-property parent 'left)) + (fwidth (frame-pixel-width parent)) + (fheight (frame-pixel-height parent)) + (fonth (font-height (face-font 'default))) + (fontw (font-width (face-font 'default))) + (props (append props dialog-frame-plist)) + (dfheight (plist-get props 'height)) + (dfwidth (plist-get props 'width)) + (unmapped (plist-get props 'initially-unmapped)) + (gutter-spec spec) + (name (or (plist-get props 'name) "XEmacs")) + (frame nil)) + (plist-remprop props 'initially-unmapped) + ;; allow the user to just provide a glyph + (when (glyphp spec) + (setq gutter-spec (copy-sequence "\n")) + (set-extent-begin-glyph (make-extent 0 1 gutter-spec) spec)) + ;; under FVWM at least, if I don't specify the initial position, + ;; it ends up always at (0, 0). xwininfo doesn't tell me + ;; that there are any program-specified position hints, so + ;; it must be an FVWM bug. So just be smashing and position + ;; in the center of the selected frame. + (setq frame (make-frame + (append props + `(popup ,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)) + frame)) + + ;;; dialog.el ends here
--- a/lisp/dumped-lisp.el Mon Aug 13 11:16:09 2007 +0200 +++ b/lisp/dumped-lisp.el Mon Aug 13 11:17:09 2007 +0200 @@ -85,6 +85,7 @@ "itimer" ; for vars auto-save-timeout and ; auto-gc-threshold "itimer-autosave" + "printer" (when-feature toolbar "toolbar") (when-feature scrollbar "scrollbar") (when-feature menubar "menubar") @@ -156,10 +157,11 @@ ;; Moved to sunpro-load.el - the default only for Sun. ;;(pureload "mime-setup") ;;; mule-load.el ends here + (when-feature (and gutter window-system) "gutter") (when-feature window-system "gui") (when-feature window-system "mode-motion") (when-feature window-system "mouse") - (when-feature window-system "select") + "select" (when-feature dragdrop-api "dragdrop") ;; preload the X code, for faster startup. (when-feature (and (not infodock)
--- a/lisp/etags.el Mon Aug 13 11:16:09 2007 +0200 +++ b/lisp/etags.el Mon Aug 13 11:17:09 2007 +0200 @@ -190,9 +190,12 @@ (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)))) - expression) + (let* ((key (or buffer-file-name + (concat default-directory (buffer-name)))) + (key (if (eq system-type 'windows-nt) + (replace-in-string key "\\\\" "/") + key)) + expression) (dolist (item tag-table-alist) (setq expression (car item)) ;; If the car of the alist item is a string, apply it as a regexp @@ -735,6 +738,16 @@ (cons buf startpos)))) ;;;###autoload +(defun find-tag-at-point (tagname &optional other-window) + "*Find tag whose name contains TAGNAME. +Identical to `find-tag' but does not prompt for tag when called interactively; +instead, uses tag around or before point." + (interactive (if current-prefix-arg + '(nil nil) + (list (find-tag-default) nil))) + (find-tag tagname other-window)) + +;;;###autoload (defun find-tag (tagname &optional other-window) "*Find tag whose name contains TAGNAME. Selects the buffer that the tag is contained in
--- a/lisp/faces.el Mon Aug 13 11:16:09 2007 +0200 +++ b/lisp/faces.el Mon Aug 13 11:17:09 2007 +0200 @@ -1589,14 +1589,17 @@ nil 'append)) ) -;; New function with 20.1, suggested by Per Abrahamsen, coded by Kyle Jones. +;; New function with 20.1, suggested by Per Abrahamsen, coded by Kyle +;; Jones and Hrvoje Niksic. (defun set-face-stipple (face pixmap &optional frame) "Change the stipple pixmap of FACE to PIXMAP. This is an Emacs compatibility function; consider using set-face-background-pixmap instead. PIXMAP should be a string, the name of a file of pixmap data. -The directories listed in the `x-bitmap-file-path' variable are searched. +The directories listed in the variables `x-bitmap-file-path' and +`mswindows-bitmap-file-path' under X and MS Windows respectively +are searched. Alternatively, PIXMAP may be a list of the form (WIDTH HEIGHT DATA) where WIDTH and HEIGHT are the size in pixels, and DATA is @@ -1607,20 +1610,33 @@ in that frame; otherwise change each frame." (while (not (find-face face)) (setq face (signal 'wrong-type-argument (list 'facep face)))) - (locate-file pixmap x-bitmap-file-path '(".xbm" "")) - (while (cond ((stringp pixmap) - (unless (file-readable-p pixmap) - (setq pixmap `[xbm :file ,pixmap])) - nil) - ((and (consp pixmap) (= (length pixmap) 3)) - (setq pixmap `[xbm :data ,pixmap]) - nil) - (t t)) - (setq pixmap (signal 'wrong-type-argument - (list 'stipple-pixmap-p pixmap)))) - (while (and frame (not (framep frame))) - (setq frame (signal 'wrong-type-argument (list 'framep frame)))) - (set-face-background-pixmap face pixmap frame)) + (let ((bitmap-path (ecase (console-type) + (x x-bitmap-file-path) + (mswindows mswindows-bitmap-file-path))) + instantiator) + (while + (null + (setq instantiator + (cond ((stringp pixmap) + (let ((file (if (file-name-absolute-p pixmap) + pixmap + (locate-file pixmap bitmap-path + '(".xbm" ""))))) + (and file + `[xbm :file ,file]))) + ((and (listp pixmap) (= (length pixmap) 3)) + `[xbm :data ,pixmap]) + (t nil)))) + ;; We're signaling a continuable error; let's make sure the + ;; function `stipple-pixmap-p' at least exists. + (flet ((stipple-pixmap-p (pixmap) + (or (stringp pixmap) + (and (listp pixmap) (= (length pixmap) 3))))) + (setq pixmap (signal 'wrong-type-argument + (list 'stipple-pixmap-p pixmap))))) + (while (and frame (not (framep frame))) + (setq frame (signal 'wrong-type-argument (list 'framep frame)))) + (set-face-background-pixmap face instantiator frame))) ;; Create the remaining standard faces now. This way, packages that we dump
--- a/lisp/finder.el Mon Aug 13 11:16:09 2007 +0200 +++ b/lisp/finder.el Mon Aug 13 11:17:09 2007 +0200 @@ -167,7 +167,7 @@ (lambda (d) (mapcar (lambda (f) - (when (not (member f processed)) + (when (and (not (member f processed)) (file-readable-p f)) (let (summary keystart keywords) (setq processed (cons f processed)) (if (not finder-compile-keywords-quiet)
--- a/lisp/font-lock.el Mon Aug 13 11:16:09 2007 +0200 +++ b/lisp/font-lock.el Mon Aug 13 11:17:09 2007 +0200 @@ -1496,17 +1496,22 @@ START should be at the beginning of a line." (let ((loudly (and font-lock-verbose (>= (- end start) font-lock-message-threshold)))) - (let ((case-fold-search font-lock-keywords-case-fold-search) - (keywords (cdr (if (eq (car-safe font-lock-keywords) t) - font-lock-keywords - (font-lock-compile-keywords)))) - (bufname (buffer-name)) (count 5) - keyword matcher highlights) + (let* ((case-fold-search font-lock-keywords-case-fold-search) + (keywords (cdr (if (eq (car-safe font-lock-keywords) t) + font-lock-keywords + (font-lock-compile-keywords)))) + (bufname (buffer-name)) + (progress 5) (old-progress 5) + (iter 0) + (nkeywords (length keywords)) + keyword matcher highlights) ;; ;; Fontify each item in `font-lock-keywords' from `start' to `end'. + ;; In order to measure progress accurately we need to know how + ;; many keywords we have and how big the region is. Then progress + ;; is ((pos - start)/ (end - start) * nkeywords + ;; + iteration / nkeywords) * 100 (while keywords - (when loudly (lprogress-display 'font-lock "Fontifying %s... (regexps)" - (setq count (+ count 5)) bufname)) ;; ;; Find an occurrence of `matcher' from `start' to `end'. (setq keyword (car keywords) matcher (car keyword)) @@ -1515,6 +1520,14 @@ (if (stringp matcher) (re-search-forward matcher end t) (funcall matcher end))) + ;; calculate progress + (setq progress + (+ (/ (* (- (point) start) 95) (* (- end start) nkeywords)) + (/ (* iter 95) nkeywords) 5)) + (when (and loudly (> progress old-progress)) + (lprogress-display 'font-lock "Fontifying %s... (regexps)" + progress bufname)) + (setq old-progress progress) ;; Apply each highlight to this instance of `matcher', which may be ;; specific highlights or more keywords anchored to `matcher'. (setq highlights (cdr keyword)) @@ -1528,6 +1541,7 @@ (and end (goto-char end))) (font-lock-fontify-anchored-keywords (car highlights) end)) (setq highlights (cdr highlights)))) + (setq iter (1+ iter)) (setq keywords (cdr keywords)))) (if loudly (lprogress-display 'font-lock "Fontifying %s... " 100 (buffer-name)))))
--- a/lisp/gutter-items.el Mon Aug 13 11:16:09 2007 +0200 +++ b/lisp/gutter-items.el Mon Aug 13 11:17:09 2007 +0200 @@ -24,88 +24,6 @@ ;; Boston, MA 02111-1307, USA. ;; Some of this is taken from the buffer-menu stuff in menubar-items.el -;; and the custom specs in toolbar.el. - -(defgroup gutter nil - "Input from the gutters." - :group 'environment) - -;; Although these customizations appear bogus, they are neccessary in -;; order to be able to save options through the options menu. -(defcustom default-gutter-position - (default-gutter-position) - "The location of the default gutter. It can be 'top, 'bottom, 'left or -'right. This option should be customized through the options menu. -To set the gutter position explicitly use `set-default-gutter-position'" - :group 'gutter - :type '(choice (const :tag "top" top) - (const :tag "bottom" bottom) - (const :tag "left" left) - (const :tag "right" right)) - :set #'(lambda (var val) - (set-default-gutter-position val) - (setq default-gutter-position val))) - -;;; Gutter helper functions - -;; called by Fset_default_gutter_position() -(defvar default-gutter-position-changed-hook nil - "Function or functions to be called when the gutter position is changed. -The value of this variable may be buffer-local.") - -;; called by set-gutter-element-visible-p -(defvar gutter-element-visibility-changed-hook nil - "Function or functions to be called when the visibility of an -element in the gutter changes. The value of this variable may be -buffer-local. The gutter element symbol is passed as an argument to -the hook, as is the visibility flag.") - -(defun set-gutter-element (gutter-specifier prop val &optional locale tag-set) - "Set GUTTER-SPECIFIER gutter element PROP to VAL in optional LOCALE. -This is a convenience function for setting gutter elements." - (map-extents #'(lambda (extent arg) - (set-extent-property extent 'duplicable t)) val) - (modify-specifier-instances gutter-specifier #'plist-put (list prop val) - 'force nil locale tag-set)) - -(defun remove-gutter-element (gutter-specifier prop &optional locale tag-set) - "Remove gutter element PROP from GUTTER-SPECIFIER in optional LOCALE. -This is a convenience function for removing gutter elements." - (modify-specifier-instances gutter-specifier #'plist-remprop (list prop) - 'force nil locale tag-set)) - -(defun set-gutter-element-visible-p (gutter-visible-specifier-p - prop &optional visible-p - locale tag-set) - "Change the visibility of gutter elements. -Set the visibility of element PROP to VISIBLE-P for -GUTTER-SPECIFIER-VISIBLE-P in optional LOCALE. -This is a convenience function for hiding and showing gutter elements." - (modify-specifier-instances - gutter-visible-specifier-p #'(lambda (spec prop visible-p) - (if (consp spec) - (if visible-p - (if (memq prop spec) spec - (cons prop spec)) - (delq prop spec)) - (if visible-p (list prop)))) - (list prop visible-p) - 'force nil locale tag-set) - (run-hook-with-args 'gutter-element-visibility-changed-hook prop visible-p)) - -(defun gutter-element-visible-p (gutter-visible-specifier-p - prop &optional domain) - "Determine whether a gutter element is visible. -Given GUTTER-VISIBLE-SPECIFIER-P and gutter element PROP, return -non-nil if it is visible in optional DOMAIN." - (let ((spec (specifier-instance gutter-visible-specifier-p domain))) - (or (and (listp spec) (memq 'buffers-tab spec)) - spec))) - -(defun init-gutter () - "Initialize the gutter." - ;; do nothing as yet. - ) ;;; The Buffers tab @@ -125,7 +43,8 @@ :group 'buffers-tab :type 'boolean :set #'(lambda (var val) - (set-gutter-element-visible-p default-gutter-visible-p 'buffers-tab val) + (set-gutter-element-visible-p default-gutter-visible-p + 'buffers-tab val) (setq gutter-buffers-tab-visible-p val))) (defvar gutter-buffers-tab-orientation 'top @@ -231,9 +150,17 @@ (defun buffers-tab-switch-to-buffer (buffer) "For use as a value for `buffers-tab-switch-to-buffer-function'." (unless (eq (window-buffer) buffer) + ;; this used to add the norecord flag to both calls below. + ;; this is bogus because it is a pervasive assumption in XEmacs + ;; that the current buffer is at the front of the buffers list. + ;; for example, select an item and then do M-C-l + ;; (switch-to-other-buffer). Things get way confused. + ;; + ;; Andy, if you want to maintain the current look, you must + ;; *uncouple* the gutter order and buffers order. (if (> (length (windows-of-buffer buffer)) 0) - (select-window (car (windows-of-buffer buffer)) t) - (switch-to-buffer buffer t)))) + (select-window (car (windows-of-buffer buffer))) + (switch-to-buffer buffer)))) (defun select-buffers-tab-buffers-by-mode (buf1 buf2) "For use as a value of `buffers-tab-selection-function'. @@ -345,7 +272,7 @@ (defun add-tab-to-gutter () "Put a tab control in the gutter area to hold the most recent buffers." (setq gutter-buffers-tab-orientation (default-gutter-position)) - (let ((gutter-string "\n")) + (let ((gutter-string (copy-sequence "\n"))) (unless gutter-buffers-tab-extent (setq gutter-buffers-tab-extent (make-extent 0 1 gutter-string))) (set-extent-begin-glyph @@ -434,10 +361,10 @@ (add-hook 'create-frame-hook #'(lambda (frame) (when gutter-buffers-tab (update-tab-in-gutter frame t)))) -(add-hook 'record-buffer-hook 'update-tab-in-gutter) -(add-hook 'default-gutter-position-changed - #'(lambda (arg) - (when gutter-buffers-tab (update-tab-in-gutter arg)))) +(add-hook 'buffer-list-changed-hook 'update-tab-in-gutter) +(add-hook 'default-gutter-position-changed-hook + #'(lambda () + (when gutter-buffers-tab (update-tab-in-gutter)))) (add-hook 'gutter-element-visibility-changed-hook #'(lambda (prop visible-p) (when (and (eq prop 'buffers-tab) visible-p) @@ -455,67 +382,83 @@ :type 'boolean :group 'gutter) +(defvar progress-glyph-height 32 + "Height of the gutter area for progress messages.") + +(defvar progress-display-popup-period 0.5 + "The time that the progress gauge should remain up after completion") + +;; private variables +(defvar progress-text-glyph + (make-glyph [string :data ""])) + +(defvar progress-layout-glyph nil) +(defvar progress-gauge-glyph + (make-glyph + `[progress-gauge + :pixel-height (- progress-glyph-height 8) + :pixel-width 250 + :descriptor "Progress"])) + +(defun set-progress-display-style (style) + "Control the appearance of the progress gauge. +If STYLE is 'large, the default, then the progress-display text is +displayed above the gauge itself. If STYLE is 'small then the gauge +and text are arranged side-by-side." + (cond + ((eq style 'small) + (setq progress-glyph-height 24) + (setq progress-layout-glyph + (make-glyph + `[layout + :orientation horizontal + :items (,progress-gauge-glyph + [button + :pixel-height (- progress-glyph-height 8) + ;; 'quit is special and acts "asynchronously". + :descriptor "Stop" :callback 'quit] + ,progress-text-glyph)]))) + (t + (setq progress-glyph-height 32) + (setq progress-layout-glyph + (make-glyph + `[layout + :orientation vertical :justify left + :items (,progress-text-glyph + [layout + :pixel-height (eval progress-glyph-height) + :orientation horizontal + :items (,progress-gauge-glyph + [button + :pixel-height (- progress-glyph-height 8) + :descriptor " Stop " + ;; 'quit is special and acts "asynchronously". + :callback 'quit])])]))))) + +(defcustom progress-display-style 'large + "*Control the appearance of the progress gauge. +If 'large, the default, then the progress-display text is displayed +above the gauge itself. If 'small then the gauge and text are arranged +side-by-side." + :group 'gutter + :type '(choice (const :tag "large" large) + (const :tag "small" small)) + :set #'(lambda (var val) + (set-progress-display-style val))) + (defvar progress-stack nil "An alist of label/string pairs representing active progress gauges. The first element in the list is currently displayed in the gutter area. Do not modify this directly--use the `progress-display' or `display-progress-display'/`clear-progress-display' functions.") -(defvar progress-glyph-height 32 - "Height of the gutter area for progress messages.") - -(defvar progress-display-stop-callback 'progress-display-quit-function - "Function to call to stop the progress operation.") - -(defvar progress-display-popup-period 0.5 - "The time that the progress gauge should remain up after completion") - -(defun progress-display-quit-function () - "Default function to call for the stop button in a progress gauge. -This just removes the progress gauge and calls quit." - (interactive) - (clear-progress-display) - (keyboard-quit)) - -;; private variables -(defvar progress-gauge-glyph - (make-glyph - (vector 'progress-gauge - :pixel-height (- progress-glyph-height 8) - :pixel-width 250 - :descriptor "Progress"))) - -(defvar progress-text-glyph - (make-glyph [string :data ""])) - -(defvar progress-layout-glyph - (make-glyph - (vector - 'layout :orientation 'vertical :justify 'left - :items (list - progress-text-glyph - (make-glyph - (vector - 'layout :pixel-height progress-glyph-height - :orientation 'horizontal - :items (list - progress-gauge-glyph - (vector - 'button :pixel-height (- progress-glyph-height 8) - :descriptor " Stop " - :callback '(funcall progress-display-stop-callback))))))))) - (defvar progress-abort-glyph (make-glyph - (vector 'layout :orientation 'vertical :justify 'left - :items (list progress-text-glyph - (make-glyph - (vector 'layout - :pixel-height progress-glyph-height - :orientation 'horizontal)))))) - -(defvar progress-extent-text "\n") -(defvar progress-extent nil) + `[layout :orientation vertical :justify left + :items (,progress-text-glyph + [layout + :pixel-height progress-glyph-height + :orientation horizontal])])) (defun progress-displayed-p (&optional return-string frame) "Return a non-nil value if a progress gauge is presently displayed in the @@ -551,7 +494,7 @@ nil ; just preparing to put another msg up (if progress-stack (let ((oldmsg (cdr (car progress-stack)))) - (raw-append-progress-display oldmsg frame) + (raw-append-progress-display oldmsg nil frame) oldmsg) ;; nothing to display so get rid of the gauge (set-specifier bottom-gutter-border-width 0 frame) @@ -559,11 +502,9 @@ 'progress nil frame))))) (defun progress-display-clear-when-idle (&optional label) - (add-hook 'pre-idle-hook - (defun progress-display-clear-pre-idle-hook () - (clear-progress-display label) - (remove-hook 'pre-idle-hook - 'progress-display-clear-pre-idle-hook)))) + (add-one-shot-hook 'pre-idle-hook + `(lambda () + (clear-progress-display ',label)))) (defun remove-progress-display (&optional label frame) ;; If label is nil, we want to remove all matching progress gauges. @@ -579,6 +520,14 @@ (setcdr s (cdr (cdr s)))) (setq s (cdr s))))))) +(defun progress-display-dispatch-non-command-events () + ;; don't allow errors to hose things + (condition-case t + ;; (sit-for 0) is too agressive and cause more display than we + ;; want. + (dispatch-non-command-events) + nil)) + (defun append-progress-display (label message &optional value frame) (or frame (setq frame (selected-frame))) ;; Add a new entry to the message-stack, or modify an existing one @@ -589,18 +538,17 @@ (setcdr top message) (if (equal tmsg message) (set-image-instance-property - (glyph-image-instance progress-gauge-glyph) - :percent value) + (glyph-image-instance progress-gauge-glyph + (frame-selected-window frame)) + :value value) (raw-append-progress-display message value frame)) (redisplay-gutter-area)) (push (cons label message) progress-stack) (raw-append-progress-display message value frame)) - (dispatch-non-command-events) + (progress-display-dispatch-non-command-events) ;; either get command events or sit waiting for them - (if (not (eq value 100)) - (when (input-pending-p) - (dispatch-event (next-command-event))) - (sit-for progress-display-popup-period nil) + (when (eq value 100) +; (sit-for progress-display-popup-period nil) (clear-progress-display label)))) (defun abort-progress-display (label message &optional frame) @@ -617,18 +565,16 @@ (push (cons label message) progress-stack)) (unless (equal message "") (insert-string message (get-buffer-create " *Gutter Area*")) - ;; Do what the device is able to cope with. - ;; do some funky display here. - (unless progress-extent - (setq progress-extent (make-extent 0 1 progress-extent-text))) - (let ((bglyph (extent-begin-glyph progress-extent))) - (set-extent-begin-glyph progress-extent progress-abort-glyph) + (let* ((gutter-string (copy-sequence "\n")) + (ext (make-extent 0 1 gutter-string))) + ;; do some funky display here. + (set-extent-begin-glyph ext progress-abort-glyph) ;; fixup the gutter specifiers - (set-gutter-element bottom-gutter - 'progress progress-extent-text frame) + (set-gutter-element bottom-gutter 'progress gutter-string frame) (set-specifier bottom-gutter-border-width 2 frame) (set-image-instance-property - (glyph-image-instance progress-text-glyph) :data message) + (glyph-image-instance progress-text-glyph + (frame-selected-window frame)) :data message) (set-specifier bottom-gutter-height 'autodetect frame) (set-gutter-element-visible-p bottom-gutter-visible-p 'progress t frame) @@ -636,38 +582,40 @@ ;; redisplay-gutter-area performs optimally. (redisplay-gutter-area) (sit-for progress-display-popup-period nil) - (clear-progress-display label) - (set-extent-begin-glyph progress-extent bglyph) + (clear-progress-display label frame) + (set-extent-begin-glyph ext progress-layout-glyph) + (set-gutter-element bottom-gutter 'progress gutter-string frame) ))))) (defun raw-append-progress-display (message &optional value frame) (unless (equal message "") - (let ((inhibit-read-only t) + (let* ((inhibit-read-only t) (zmacs-region-stays zmacs-region-stays) - (val (or value 0))) + (val (or value 0)) + (gutter-string (copy-sequence "\n")) + (ext (make-extent 0 1 gutter-string))) (insert-string message (get-buffer-create " *Gutter Area*")) ;; do some funky display here. - (unless progress-extent - (setq progress-extent (make-extent 0 1 progress-extent-text)) - (set-extent-begin-glyph progress-extent progress-layout-glyph)) + (set-extent-begin-glyph ext progress-layout-glyph) ;; fixup the gutter specifiers - (set-gutter-element bottom-gutter 'progress progress-extent-text frame) + (set-gutter-element bottom-gutter 'progress gutter-string frame) (set-specifier bottom-gutter-border-width 2 frame) (set-image-instance-property - (glyph-image-instance progress-gauge-glyph) :percent val) + (glyph-image-instance progress-gauge-glyph + (frame-selected-window frame)) + :value val) (set-image-instance-property - (glyph-image-instance progress-text-glyph) :data message) + (glyph-image-instance progress-text-glyph (frame-selected-window frame)) + :data message) (if (and (eq (specifier-instance bottom-gutter-height frame) 'autodetect) (gutter-element-visible-p bottom-gutter-visible-p 'progress frame)) + ;; if the gauge is already visible then just draw the gutter + ;; checking for user events (progn - ;; if the gauge is already visible then just draw the gutter - ;; checking for user events (redisplay-gutter-area) - (dispatch-non-command-events) - (when (input-pending-p) - (dispatch-event (next-command-event)))) + (progress-display-dispatch-non-command-events)) ;; otherwise make the gutter visible and redraw the frame (set-specifier bottom-gutter-height 'autodetect frame) (set-gutter-element-visible-p bottom-gutter-visible-p @@ -675,8 +623,8 @@ ;; we have to do this so redisplay is up-to-date and so ;; redisplay-gutter-area performs optimally. This may also ;; make sure the frame geometry looks ok. - (dispatch-non-command-events) - (redisplay-frame) + (progress-display-dispatch-non-command-events) + (redisplay-frame frame) )))) (defun display-progress-display (label message &optional value frame) @@ -731,5 +679,70 @@ (display-progress-display label str value) str)))) +;; +;; Simple search dialog +;; +(defvar search-dialog-direction t) +(defvar search-dialog-text + (make-glyph + [edit-field :width 15 :descriptor "" :active t :face default])) + +(defun search-dialog-callback (parent image-instance event) + (save-selected-frame + (select-frame parent) + (funcall (if search-dialog-direction + 'search-forward 'search-backward) + (image-instance-property + (glyph-image-instance search-dialog-text + (frame-selected-window + (event-channel event))) :text)) + (isearch-highlight (match-beginning 0) (match-end 0)))) + +(defun make-search-dialog () + "Popup a search dialog box." + (interactive) + (let* ((parent (selected-frame))) + (set-buffer-dedicated-frame + (get-buffer-create "Dialog") + (make-dialog-box + (make-glyph + `[layout + :orientation horizontal :justify left + :height 10 :width 40 + :border [string :data "Search"] + :items + ([layout :orientation vertical :justify left + :items + ([string :data "Search for:"] + [button :descriptor "Match case" + :style toggle + :selected (not case-fold-search) + :callback (setq case-fold-search + (not case-fold-search))] + [button :descriptor "Forwards" + :style radio + :selected search-dialog-direction + :callback (setq search-dialog-direction t)] + [button :descriptor "Backwards" + :style radio + :selected (not search-dialog-direction) + :callback (setq search-dialog-direction nil)] + )] + [layout :orientation vertical :justify left + :items + (search-dialog-text + [button :width 10 :descriptor "Find Next" + :callback-ex + (lambda (image-instance event) + (search-dialog-callback ,parent + image-instance event))] + [button :width 10 :descriptor "Cancel" + :callback-ex + (lambda (image-instance event) + (isearch-dehighlight) + (delete-frame + (event-channel event)))])])]) + '(height 10 width 40))))) + (provide 'gutter-items) ;;; gutter-items.el ends here.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lisp/gutter.el Mon Aug 13 11:17:09 2007 +0200 @@ -0,0 +1,118 @@ +;;; gutter.el --- Gutter manipulation for XEmacs. + +;; Copyright (C) 1999 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2000 Andy Piper. + +;; Maintainer: XEmacs Development Team +;; Keywords: frames, extensions, 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 Xmacs; see the file COPYING. If not, write to the +;; Free Software Foundation, 59 Temple Place - Suite 330, +;; Boston, MA 02111-1307, USA. + +;; Some of this is taken from the buffer-menu stuff in menubar-items.el +;; and the custom specs in toolbar.el. + +(defgroup gutter nil + "Input from the gutters." + :group 'environment) + +;; Although these customizations appear bogus, they are neccessary in +;; order to be able to save options through the options menu. +(defcustom default-gutter-position + (default-gutter-position) + "The location of the default gutter. It can be 'top, 'bottom, 'left or +'right. This option should be customized through the options menu. +To set the gutter position explicitly use `set-default-gutter-position'" + :group 'gutter + :type '(choice (const :tag "top" top) + (const :tag "bottom" bottom) + (const :tag "left" left) + (const :tag "right" right)) + :set #'(lambda (var val) + (set-default-gutter-position val) + (setq default-gutter-position val))) + +;;; Gutter helper functions + +;; called by Fset_default_gutter_position() +(defvar default-gutter-position-changed-hook nil + "Function or functions to be called when the gutter position is changed. +The value of this variable may be buffer-local.") + +;; called by set-gutter-element-visible-p +(defvar gutter-element-visibility-changed-hook nil + "Function or functions to be called when the visibility of an +element in the gutter changes. The value of this variable may be +buffer-local. The gutter element symbol is passed as an argument to +the hook, as is the visibility flag.") + +(defun set-gutter-element (gutter-specifier prop val &optional locale tag-set) + "Set GUTTER-SPECIFIER gutter element PROP to VAL in optional LOCALE. +This is a convenience function for setting gutter elements. +VAL in general must be a string. If VAL is a glyph then a string will be +created to put the glyph into." + (let ((spec val)) + (when (glyphp val) + (setq spec (copy-sequence "\n")) + (set-extent-begin-glyph (make-extent 0 1 spec) val)) + (map-extents #'(lambda (extent arg) + (set-extent-property extent 'duplicable t)) spec) + (modify-specifier-instances gutter-specifier #'plist-put (list prop spec) + 'force nil locale tag-set))) + +(defun remove-gutter-element (gutter-specifier prop &optional locale tag-set) + "Remove gutter element PROP from GUTTER-SPECIFIER in optional LOCALE. +This is a convenience function for removing gutter elements." + (modify-specifier-instances gutter-specifier #'plist-remprop (list prop) + 'force nil locale tag-set)) + +(defun set-gutter-element-visible-p (gutter-visible-specifier-p + prop &optional visible-p + locale tag-set) + "Change the visibility of gutter elements. +Set the visibility of element PROP to VISIBLE-P for +GUTTER-SPECIFIER-VISIBLE-P in optional LOCALE. +This is a convenience function for hiding and showing gutter elements." + (modify-specifier-instances + gutter-visible-specifier-p #'(lambda (spec prop visible-p) + (if (consp spec) + (if visible-p + (if (memq prop spec) spec + (cons prop spec)) + (delq prop spec)) + (if visible-p (list prop)))) + (list prop visible-p) + 'force nil locale tag-set) + (run-hook-with-args 'gutter-element-visibility-changed-hook prop visible-p)) + +(defun gutter-element-visible-p (gutter-visible-specifier-p + prop &optional domain) + "Determine whether a gutter element is visible. +Given GUTTER-VISIBLE-SPECIFIER-P and gutter element PROP, return +non-nil if it is visible in optional DOMAIN." + (let ((spec (specifier-instance gutter-visible-specifier-p domain))) + (or (and (listp spec) (memq 'buffers-tab spec)) + spec))) + +(defun init-gutter () + "Initialize the gutter." + ;; do nothing as yet. + ) + +;;; gutter.el ends here. + +
--- a/lisp/help.el Mon Aug 13 11:16:09 2007 +0200 +++ b/lisp/help.el Mon Aug 13 11:17:09 2007 +0200 @@ -730,7 +730,10 @@ (stringp Installation-string)) (with-displaying-help-buffer (lambda () - (princ Installation-string)) + (princ + (if (fboundp 'decode-coding-string) + (decode-coding-string Installation-string 'automatic-conversion) + Installation-string))) "Installation") (error "No Installation information available.")))
--- a/lisp/lisp-mode.el Mon Aug 13 11:16:09 2007 +0200 +++ b/lisp/lisp-mode.el Mon Aug 13 11:17:09 2007 +0200 @@ -90,8 +90,9 @@ ;Don't have a menubar entry in Lisp Interaction mode. Otherwise, the ;*scratch* buffer has a Lisp menubar item! Very confusing. -;(defvar lisp-interaction-mode-menubar-menu -; (purecopy (cons "Lisp" (cdr lisp-interaction-mode-popup-menu)))) +;Jan Vroonhof really wants this, so it's back. --ben +(defvar lisp-interaction-mode-menubar-menu + (purecopy (cons "%_Lisp" (cdr lisp-interaction-mode-popup-menu)))) (defvar emacs-lisp-mode-menubar-menu (purecopy (cons "%_Lisp" (cdr emacs-lisp-mode-popup-menu)))) @@ -363,7 +364,13 @@ (setq major-mode 'lisp-interaction-mode) (setq mode-name "Lisp Interaction") (setq mode-popup-menu lisp-interaction-mode-popup-menu) - + (if (and (featurep 'menubar) + current-menubar) + (progn + ;; make a local copy of the menubar, so our modes don't + ;; change the global menubar + (set-buffer-menubar current-menubar) + (add-submenu nil lisp-interaction-mode-menubar-menu))) (set-syntax-table emacs-lisp-mode-syntax-table) (lisp-mode-variables nil) (run-hooks 'lisp-interaction-mode-hook))
--- a/lisp/loaddefs.el Mon Aug 13 11:16:09 2007 +0200 +++ b/lisp/loaddefs.el Mon Aug 13 11:17:09 2007 +0200 @@ -86,11 +86,23 @@ ;; making it more likely you will get a unique match. (setq completion-ignored-extensions (mapcar 'purecopy - '(".o" ".elc" "~" ".bin" ".lbin" ".fasl" - ".dvi" ".toc" ;".log" - ".aux" ".a" ".ln" - ".lof" ".blg" ".bbl" ".glo" ".idx" ".lot" ".fmt" - ".diff" ".oi" ".class"))) + ;; this is way way way bogus. + ;; completely wtf? + ;; the only things that should be here are those that are + ;; (a) universally recognizable, and + ;; (b) obvious backup files, or + ;; (c) obvious binary files that are generated on a + ;; PER-SOURCE-FILE basis, so that they will actually + ;; cause annoyance. This includes .exe files, e.g. +; '(".o" ".elc" "~" ".bin" ".lbin" ".fasl" +; ".dvi" ".toc" ;".log" +; ".aux" ".a" ".ln" +; ".lof" ".blg" ".bbl" ".glo" ".idx" ".lot" ".fmt" +; ".diff" ".oi" ".class"))) + '(".o" ".obj" ".elc" "~" + ".bin" ".lbin" ;; #### these are doubtful, esp. the latter. + ".dvi";; possibly doubtful, too. + ".class"))) ;; This needs to be redone better. -slb
--- a/lisp/loadup.el Mon Aug 13 11:16:09 2007 +0200 +++ b/lisp/loadup.el Mon Aug 13 11:17:09 2007 +0200 @@ -45,7 +45,14 @@ (defvar Installation-string nil "Description of XEmacs installation.") -(let ((gc-cons-threshold 30000)) +;(start-profiling) + +(let ((gc-cons-threshold + ;; setting it low makes loadup incredibly fucking slow. + ;; no need to do it when not dumping. + (if (and purify-flag + (not (memq 'quick-build internal-error-checking))) + 30000 3000000))) ;; This is awfully damn early to be getting an error, right? (call-with-condition-handler 'really-early-error-handler @@ -110,7 +117,9 @@ (if full-path (prog1 (load full-path) - (garbage-collect)) + ;; but garbage collection really slows down loading. + (unless (memq 'quick-build internal-error-checking) + (garbage-collect))) (external-debugging-output (format "\nLoad file %s: not found\n" file)) ;; Uncomment in case of trouble @@ -156,7 +165,8 @@ ;; is generated. For VMS, you must edit ../../vms/makedoc.com. ;; For other systems, you must edit ../../src/Makefile.in.in. (when (load "site-load" t) - (garbage-collect)) + (garbage-collect) +) ;;FSFmacs randomness ;;(if (fboundp 'x-popup-menu) @@ -193,6 +203,71 @@ ) ;; frequent garbage collection +;(stop-profiling) + +;; yuck! need to insert the function def here, and rewrite the dolist +;; loop below. + +;(defun loadup-profile-results (&optional info stream) +; "Print profiling info INFO to STREAM in a pretty format. +;If INFO is omitted, the current profiling info is retrieved using +; `get-profiling-info'. +;If STREAM is omitted, either a *Profiling Results* buffer or standard +; output are used, depending on whether the function was called +; interactively or not." +; (interactive) +; (setq info (if info +; (copy-alist info) +; (get-profiling-info))) +; (when (and (not stream) +; (interactive-p)) +; (pop-to-buffer (get-buffer-create "*Profiling Results*")) +; (erase-buffer)) +; (let ((standard-output (or stream (if (interactive-p) +; (current-buffer) +; standard-output))) +; ;; Calculate the longest function +; (maxfunlen (apply #'max +; (length "Function Name") +; (mapcar +; (lambda (el) +; ;; Functions longer than 50 characters (usually +; ;; anonymous functions) don't qualify +; (let ((l (length (format "%s" (car el))))) +; (if (< l 50) +; l 0))) +; info)))) +; (princ (format "%-*s Ticks %%/Total Call Count\n" +; maxfunlen "Function Name")) +; (princ (make-string maxfunlen ?=)) +; (princ " ===== ======= ==========\n") +; (let ((sum (float (apply #'+ (mapcar #'cdr info))))) +; (let (entry +; (entry-list (nreverse (sort info #'cdr-less-than-cdr)))) +; (while entry-list +; (setq entry (car entry-list)) +; (princ (format "%-*s %-5d %-6.3f %s\n" +; maxfunlen (car entry) (cdr entry) +; (* 100 (/ (cdr entry) sum)) +; (or (gethash (car entry) call-count-profile-table) +; ""))) +; (setq entry-list (cdr entry-list)))) +; (princ (make-string maxfunlen ?-)) +; (princ "---------------------------------\n") +; (princ (format "%-*s %-5d %-6.2f\n" maxfunlen "Total" sum 100.0)) +; (princ (format "\n\nOne tick = %g ms\n" +; (/ default-profiling-interval 1000.0))) +; (and (boundp 'internal-error-checking) +; internal-error-checking +; (princ " +;WARNING: Error checking is turned on in this XEmacs. This might make +; the measurements very unreliable.\n")))) +; (when (and (not stream) +; (interactive-p)) +; (goto-char (point-min)))) + +;(loadup-profile-results nil 'external-debugging-output) + ;; Dump into the name `xemacs' (only) (when (member "dump" command-line-args) (message "Dumping under the name xemacs")
--- a/lisp/make-docfile.el Mon Aug 13 11:16:09 2007 +0200 +++ b/lisp/make-docfile.el Mon Aug 13 11:17:09 2007 +0200 @@ -86,6 +86,8 @@ (load "packages.el") (load "setup-paths.el") (load "dump-paths.el") +(require 'custom) +(load "process") (let (preloaded-file-list) (load (expand-file-name "../lisp/dumped-lisp.el"))
--- a/lisp/menubar-items.el Mon Aug 13 11:16:09 2007 +0200 +++ b/lisp/menubar-items.el Mon Aug 13 11:17:09 2007 +0200 @@ -4,7 +4,7 @@ ;; Copyright (C) 1995 Tinker Systems and INS Engineering Corp. ;; Copyright (C) 1995 Sun Microsystems. ;; Copyright (C) 1995, 1996, 2000 Ben Wing. -;; Copyright (C) 1997 MORIOKA Tomohiko +;; Copyright (C) 1997 MORIOKA Tomohiko. ;; Maintainer: XEmacs Development Team ;; Keywords: frames, extensions, internal, dumped @@ -26,6 +26,27 @@ ;; Free Software Foundation, 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. +;;; Authorship: + +;; Created c. 1991 for Lucid Emacs. Originally called x-menubar.el. +;; Contained four menus -- File, Edit, Buffers, Help. +;; Dynamic menu changes possible only through activate-menubar-hook. +;; Also contained menu manipulation funs, e.g. find-menu-item, add-menu. +;; Options menu added for 19.9 by Jamie Zawinski, late 1993. +;; Major reorganization c. 1994 by Ben Wing; added many items and moved +;; some items to two new menus, Apps and Tools. (for 19.10?) +;; Generic menubar functions moved to new file, menubar.el, by Ben Wing, +;; 1995, for 19.12; also, creation of current buffers menu options, +;; and buffers menu changed from purely most-recent to sorted alphabetical, +;; by mode. Also added mode-popup-menu support. +;; New API (add-submenu, add-menu-button) and menu filter support added +;; late summer 1995 by Stig, for 19.13. Also popup-menubar-menu. +;; Renamed to menubar-items.el c. 1998, with MS Win support. +;; Options menu rewritten to use custom c. 1999 by ? (Jan Vroonhof?). +;; Major reorganization Mar. 2000 by Ben Wing; added many items and changed +;; top-level menus to File, Edit, View, Cmds, Tools, Options, Buffers. +;; Accelerator spec functionality added Mar. 2000 by Ben Wing. + ;;; Commentary: ;; This file is dumped with XEmacs (when window system and menubar support is @@ -126,8 +147,10 @@ ["Save %_As..." write-file] ["Save So%_me Buffers" save-some-buffers] "-----" - ["%_Print Buffer" lpr-buffer - :active (fboundp 'lpr-buffer) + ["%_Print Buffer" 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 (buffer-name) "")] ["Prett%_y-Print Buffer" ps-print-buffer-with-faces :active (fboundp 'ps-print-buffer-with-faces) @@ -173,13 +196,12 @@ ["Select %_All" mark-whole-buffer] ["Select %_Page" mark-page] "----" - ["%_1 Search..." isearch-forward] - ["%_2 Search Backward..." isearch-backward] - ["%_3 Replace..." query-replace] + ["%_Search..." make-search-dialog] + ["%_1 Replace..." query-replace] "----" - ["%_4 Search (Regexp)..." isearch-forward-regexp] - ["%_5 Search Backward (Regexp)..." isearch-backward-regexp] - ["%_6 Replace (Regexp)..." query-replace-regexp] + ["%_2 Search (Regexp)..." isearch-forward-regexp] + ["%_3 Search Backward (Regexp)..." isearch-backward-regexp] + ["%_4 Replace (Regexp)..." query-replace-regexp] ,@(when (featurep 'mule) '("----" @@ -336,8 +358,8 @@ ["%_Open Rectangle" open-rectangle] ["%_Prefix Rectangle..." string-rectangle] ["Rectangle %_Mousing" - (customize-set-variable - mouse-track-rectangle-p (not mouse-track-rectangle-p)) + (customize-set-variable 'mouse-track-rectangle-p + (not mouse-track-rectangle-p)) :style toggle :selected mouse-track-rectangle-p] ) ("%_Sort" @@ -396,7 +418,6 @@ (menu-truncate-list grep-history 10))))) (append menu '("---") items)))) ["%_Grep..." grep :active (fboundp 'grep)] - ["%_Repeat Grep" recompile :active (fboundp 'recompile)] ["%_Kill Grep" kill-compilation :active (and (fboundp 'kill-compilation) (fboundp 'compilation-find-buffer) @@ -409,28 +430,71 @@ (progn (require 'compile) (let ((grep-command - (cons (concat grep-command " *") (length grep-command)))) + (cons (concat grep-command " *") + (length grep-command)))) (call-interactively 'grep))) :active (fboundp 'grep)] - ["Grep %_C Files in Current Directory..." + ["Grep %_C and C Header Files in Current Directory..." (progn (require 'compile) (let ((grep-command - (cons (concat grep-command " *.[ch]") (length grep-command)))) + (cons (concat grep-command " *.[chCH]" + ; i wanted to also use *.cc and *.hh. + ; see long comment below under Perl. + ) + (length grep-command)))) + (call-interactively 'grep))) + :active (fboundp 'grep)] + ["Grep C Hea%_der Files in Current Directory..." + (progn + (require 'compile) + (let ((grep-command + (cons (concat grep-command " *.[hH]" + ; i wanted to also use *.hh. + ; see long comment below under Perl. + ) + (length grep-command)))) (call-interactively 'grep))) :active (fboundp 'grep)] ["Grep %_E-Lisp Files in Current Directory..." (progn (require 'compile) (let ((grep-command - (cons (concat grep-command " *.el") (length grep-command)))) + (cons (concat grep-command " *.el") + (length grep-command)))) + (call-interactively 'grep))) + :active (fboundp 'grep)] + ["Grep %_Perl Files in Current Directory..." + (progn + (require 'compile) + (let ((grep-command + (cons (concat grep-command " *.pl" + ; i wanted to use this: + ; " *.pl *.pm *.am" + ; but grep complains if it can't + ; match anything in a glob, and + ; that screws other things up. + ; perhaps we need to first scan + ; each separate glob in the directory + ; to see if there are any files in + ; that glob, and if not, omit it. + ) + (length grep-command)))) + (call-interactively 'grep))) + :active (fboundp 'grep)] + ["Grep %_HTML Files in Current Directory..." + (progn + (require 'compile) + (let ((grep-command + (cons (concat grep-command " *.*htm*") + (length grep-command)))) (call-interactively 'grep))) :active (fboundp 'grep)] "---" ["%_Next Match" next-error :active (and (fboundp 'compilation-errors-exist-p) (compilation-errors-exist-p))] - ["%_Previous Match" previous-error + ["Pre%_vious Match" previous-error :active (and (fboundp 'compilation-errors-exist-p) (compilation-errors-exist-p))] ["%_First Match" first-error @@ -474,7 +538,7 @@ ["%_Next Error" next-error :active (and (fboundp 'compilation-errors-exist-p) (compilation-errors-exist-p))] - ["%_Previous Error" previous-error + ["Pre%_vious Error" previous-error :active (and (fboundp 'compilation-errors-exist-p) (compilation-errors-exist-p))] ["%_First Error" first-error @@ -700,6 +764,11 @@ ) ("%_Printing" + ["Set Printer %_Name for Generic Print Support..." + (customize-set-variable + 'printer-name + (read-string "Set printer name: " printer-name))] + "---" ["Command-Line %_Switches for `lpr'/`lp'..." ;; better to directly open a customization buffer, since the value ;; must be a list of strings, which is somewhat complex to prompt for. @@ -808,6 +877,23 @@ (customize-set-variable 'mail-host-address (read-string "Set machine email name: " mail-host-address))] + ["Set %_SMTP Server..." + (progn + (require 'smtpmail) + (customize-set-variable + 'smtpmail-smtp-server + (read-string "Set SMTP server: " smtpmail-smtp-server))) + :active (and (boundp 'send-mail-function) + (eq send-mail-function 'smtpmail-send-it))] + ["SMTP %_Debug Info" + (progn + (require 'smtpmail) + (customize-set-variable 'smtpmail-debug-info + (not smtpmail-debug-info))) + :style toggle + :selected (and (boundp 'smtpmail-debug-info) smtpmail-debug-info) + :active (and (boundp 'send-mail-function) + (eq send-mail-function 'smtpmail-send-it))] "---" ("%_Open URLs With" ["%_Emacs-W3" @@ -1307,69 +1393,34 @@ ("%_Help" ["%_About XEmacs..." about-xemacs] - ("%_Basics" - ["%_Installation" describe-installation - :active (boundp 'Installation-string)] - ;; Tutorials. - ,(if (featurep 'mule) - ;; Mule tutorials. - (let ((lang language-info-alist) (n 0) - submenu tut) - (while lang - (setq n (1+ n)) - (and (setq tut (assq 'tutorial (car lang))) - (not (string= (caar lang) "ASCII")) - (setq - submenu - (cons - `[,(concat (menu-item-generate-accelerator-spec n) - (caar lang)) - (help-with-tutorial nil ,(cdr tut))] - submenu))) - (setq lang (cdr lang))) - (append `("%_Tutorials" - :filter tutorials-menu-filter - ["%_Default" help-with-tutorial t - ,(concat "(" current-language-environment ")")]) - submenu)) - ;; Non mule tutorials. - (let ((lang tutorial-supported-languages) - (n 0) - submenu) - (while lang - (setq n (1+ n)) - (setq submenu - (cons - `[,(concat (menu-item-generate-accelerator-spec n) - (caar lang)) - (help-with-tutorial ,(format "TUTORIAL.%s" - (cadr (car lang))))] - submenu)) - (setq lang (cdr lang))) - (append '("%_Tutorials" - ["%_English" help-with-tutorial]) - submenu))) - ["%_News" view-emacs-news] - ["%_Packages" finder-by-keyword] - ["%_Splash" xemacs-splash-buffer]) + "-----" + ["XEmacs %_News" 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]) ("XEmacs %_FAQ" ["%_FAQ (local)" xemacs-local-faq] - ["FAQ via %_WWW" xemacs-www-faq (boundp 'browse-url-browser-function)] - ["%_Home Page" xemacs-www-page (boundp 'browse-url-browser-function)]) + ["FAQ via %_WWW" xemacs-www-faq + :active (boundp 'browse-url-browser-function)] + ["%_Home Page" xemacs-www-page + :active (boundp 'browse-url-browser-function)]) + ("%_Tutorials" + :filter tutorials-menu-filter) ("%_Samples" - ["Sample .%_emacs" (find-file (locate-data-file "sample.emacs")) (locate-data-file "sample.emacs")] - ["Sample .%_Xdefaults" (find-file (locate-data-file "sample.Xdefaults")) (locate-data-file "sample.Xdefaults")] - ["Sample e%_nriched" (find-file (locate-data-file "enriched.doc")) (locate-data-file "enriched.doc")]) - "-----" - ("Lookup in %_Info" - ["%_Key Binding..." Info-goto-emacs-key-command-node] - ["%_Command..." Info-goto-emacs-command-node] - ["%_Function..." Info-elisp-ref] - ["%_Topic..." Info-query]) - ("%_Manuals" - ["%_Info" info] - ["%_Unix Manual..." manual-entry]) + ["Sample .%_emacs" + (find-file (locate-data-file "sample.emacs")) + :active (locate-data-file "sample.emacs")] + ["Sample .%_Xdefaults" + (find-file (locate-data-file "sample.Xdefaults")) + :active (locate-data-file "sample.Xdefaults")] + ["Sample e%_nriched" + (find-file (locate-data-file "enriched.doc")) + :active (locate-data-file "enriched.doc")]) ("%_Commands & Keys" ["%_Mode" describe-mode] ["%_Apropos..." hyper-apropos] @@ -1386,10 +1437,14 @@ "-----" ["%_Recent Messages" view-lossage] ("%_Misc" + ["%_Current Installation Info" describe-installation + :active (boundp 'Installation-string)] ["%_No Warranty" describe-no-warranty] ["XEmacs %_License" describe-copying] - ["The Latest %_Version" describe-distribution]) - ["%_Send Bug Report..." report-emacs-bug + ["Find %_Packages" finder-by-keyword] + ["View %_Splash Screen" xemacs-splash-buffer] + ["%_Unix Manual..." manual-entry]) + ["Send %_Bug Report..." report-emacs-bug :active (fboundp 'report-emacs-bug)])))) @@ -1790,22 +1845,34 @@ ;;; The Help menu -(if (featurep 'mule) - (defun tutorials-menu-filter (menu-items) - ;; If there's a tutorial for the current language environment, make it - ;; appear first as the default one. Otherwise, use the english one. - (let* ((menu menu-items) - (item (pop menu-items))) - (aset - item 3 - (concat "(" - (if (assoc - 'tutorial - (assoc current-language-environment language-info-alist)) - current-language-environment - "English") - ")")) - menu))) +(defun tutorials-menu-filter (menu-items) + (append + (if (featurep 'mule) + (if (assq 'tutorial + (assoc current-language-environment language-info-alist)) + `([,(concat "%_Default (" current-language-environment ")") + help-with-tutorial])) + '(["%_English" help-with-tutorial])) + (submenu-generate-accelerator-spec + (if (featurep 'mule) + ;; Mule tutorials. + (mapcan #'(lambda (lang) + (let ((tut (assq 'tutorial lang))) + (and tut + (not (string= (car lang) "ASCII")) + ;; skip current language, since we already + ;; included it first + (not (string= (car lang) + current-language-environment)) + `([,(car lang) + (help-with-tutorial nil ,(cdr tut))])))) + language-info-alist)) + ;; Non mule tutorials. + (mapcar #'(lambda (lang) + `[,(car lang) + (help-with-tutorial ,(format "TUTORIAL.%s" + (cadr lang)))]) + tutorial-supported-languages)))) (set-menubar default-menubar) @@ -1907,8 +1974,7 @@ (popup-menu bmenu))) (defun popup-menubar-menu (event) - "Pop up a copy of menu that also appears in the menubar" - ;; by Stig@hackvan.com + "Pop up a copy of menu that also appears in the menubar." (interactive "e") (let ((window (and (event-over-text-area-p event) (event-window event))) popup-menubar)
--- a/lisp/menubar.el Mon Aug 13 11:16:09 2007 +0200 +++ b/lisp/menubar.el Mon Aug 13 11:17:09 2007 +0200 @@ -30,7 +30,7 @@ ;; This file is dumped with XEmacs (when menubar support is compiled in). -;; Some stuff in FSF menu-bar.el is in x-menubar.el +;; Some stuff in FSF menu-bar.el is in menubar-items.el ;;; Code:
--- a/lisp/modeline.el Mon Aug 13 11:16:09 2007 +0200 +++ b/lisp/modeline.el Mon Aug 13 11:17:09 2007 +0200 @@ -575,8 +575,13 @@ ; this used to be "XEmacs:" (cons modeline-buffer-id-right-extent (purecopy " %17b"))) "Modeline control for identifying the buffer being displayed. -Its default value is \"XEmacs: %17b\" (NOT!). Major modes that edit things -other than ordinary files may change this (e.g. Info, Dired,...)") +Its default value is + + (list (cons modeline-buffer-id-left-extent (purecopy \"XEmacs%N:\")) + (cons modeline-buffer-id-right-extent (purecopy \" %17b\"))) + +Major modes that edit things other than ordinary files may change this +(e.g. Info, Dired,...).") (make-variable-buffer-local 'modeline-buffer-identification) ;; These are for the sake of minor mode menu. #### All of this is
--- a/lisp/mule/mule-cmds.el Mon Aug 13 11:16:09 2007 +0200 +++ b/lisp/mule/mule-cmds.el Mon Aug 13 11:17:09 2007 +0200 @@ -611,7 +611,8 @@ (eval-after-load "menubar-items.elc" `(add-menu-button - '("Mule" "Describe Language Support") + '("%_Edit" "%_Multilingual (\"Mule\")" + "%_Describe Language Support") (vector ,lang-env '(describe-language-environment ,lang-env) t)))) @@ -622,11 +623,12 @@ (eval-after-load "menubar-items.elc" `(add-menu-button - '("Mule" "Set Language Environment") + '("%_Edit" "%_Multilingual (\"Mule\")" + "%_Set Language Environment") (vector ,lang-env '(set-language-environment ,lang-env) t)))) - + (while alist (set-language-info lang-env (car (car alist)) (cdr (car alist))) (setq alist (cdr alist)))))
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lisp/printer.el Mon Aug 13 11:17:09 2007 +0200 @@ -0,0 +1,210 @@ +;;; printer.el --- support for hard-copy printing in XEmacs + +;; Copyright (C) 2000 Ben Wing. +;; Copyright (C) 2000 Kirill Katsnelson. + +;; Maintainer: XEmacs Development Team +;; Keywords: printer, printing, 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, Inc., 59 Temple Place - Suite 330, Boston, MA +;; 02111-1307, USA. + +;;; Synched up with: Not in FSF. + +;;; Authorship: + +;; Created 2000 by Ben Wing, to provide the high-level interface onto the +;; print support implemented by Kirill Katsnelson. + +;;; Commentary: + +;; This file is dumped with XEmacs. + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; generic printing code ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; #### should be named print-buffer, but that's currently in +;; lpr-buffer with some horrible definition: print-buffer == "print with +;; headings", lpr-buffer == "print without headings", and the headings are +;; generated by calling the external program "pr"! This is major stone-age +;; here! +;; +;; I propose junking that package entirely and creating a unified, +;; modern API here that will work well with modern GUI's on top of it, +;; and with various different actual implementations (e.g. lpr or the +;; pretty-print package on Unix, built-in msprinter support on +;; Windows), where the workings of a particular implementation is +;; 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. + +(defgroup printing nil + "Generic printing support." + :group 'wp) + +(defcustom printer-name nil ; "Okidata OL610e/PS PostScript" + "*Name of printer to print to. +If nil, use default. +Under MS Windows, this can have the form `\\\\STOLI\\HP-345-PS'." + :type 'string + :group 'printing) + +(defcustom printer-page-header '(date buffer-name) +"*Controls printed page header. + +#### not yet implemented. + +This can be: +- nil. Header is not printed. +- An fbound symbol or lambda expression. The function is called with + 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. +- 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: + 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 + user-name User full name + - 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. + - A list, each element of which is any of the items given here. + Each element of the list is rendered in sequence. For example, + '(\"Page \" page) is rendered as \"Page 5\" on the fifth page. + - An fbound symbol or lambda expression, called with one parameter, + a print-context object, as above. The return value is treated as + if it was literally specified: i.e. it will be reprocessed." + :type 'sexp + :group 'printing) + +(defcustom printer-page-footer '(nil page) +"*Controls printed page footer. + +#### not yet implemented. + +Format is the same as `printer-page-header'." + :type 'sexp + :group 'printing) + +(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. +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 +user-name User full name" + (error "not yet implemented")) + +(defun generic-print-buffer (&optional buf) + "Print buffer BUF 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 BUF is nil or omitted, the current buffer is used." + (interactive) + (generic-print-region (point-min buf) (point-max buf) buf)) + +(defun generic-print-region (b e &optional buf) + "Print region using a printing method appropriate to the O.S. being run. +The region between B and E of BUF (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." + (cond ((valid-specifier-tag-p 'msprinter) + (or (stringp printer-name) + (error "Please set `printer-name'")) + (let (d f) + (setq buf (decode-buffer buf)) + (unwind-protect + (progn + (setq d (make-device 'msprinter printer-name)) + (setq f (make-frame + '(name "Test!" + 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 buf (current-buffer))) + (set-window-start w b) + (while (not done) + (redisplay-frame f) + (print-job-eject-page f) + (let ((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 (= end last-end) + ;; #### fuckme! window-end returns a value + ;; outside of the valid range of buffer + ;; positions!!! + (>= end e)) + (setq done t) + (setq last-end end) + (set-window-start w 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)) + ))) + ((and (not (eq system-type 'windows-nt)) + (fboundp 'lpr-buffer)) + (lpr-region buf)) + (t (error "No print support available"))))
--- a/lisp/process.el Mon Aug 13 11:16:09 2007 +0200 +++ b/lisp/process.el Mon Aug 13 11:17:09 2007 +0200 @@ -1,7 +1,7 @@ ;;; process.el --- commands for subprocesses; split out of simple.el ;; Copyright (C) 1985-7, 1993,4, 1997 Free Software Foundation, Inc. -;; Copyright (C) 1995 Ben Wing. +;; Copyright (C) 1995, 2000 Ben Wing. ;; Author: Ben Wing ;; Maintainer: XEmacs Development Team @@ -26,6 +26,13 @@ ;;; Synched up with: FSF 19.30. +;;; Authorship: + +;; Created 1995 by Ben Wing during Mule work -- some commands split out +;; of simple.el and wrappers of *-internal functions created so they could +;; be redefined in a Mule world. +;; Lisp definition of call-process-internal added Mar. 2000 by Ben Wing. + ;;; Commentary: ;; This file is dumped with XEmacs. @@ -67,6 +74,108 @@ (start-process name buffer shell-file-name shell-command-switch (mapconcat #'identity args " "))) +(defun call-process-internal (program &optional infile buffer display &rest args) + "Call PROGRAM synchronously in separate process, with coding-system specified. +Arguments are + (PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS). +The program's input comes from file INFILE (nil means `/dev/null'). +Insert output in BUFFER before point; t means current buffer; + nil for BUFFER means discard it; 0 means discard and don't wait. +BUFFER can also have the form (REAL-BUFFER STDERR-FILE); in that case, +REAL-BUFFER says what to do with standard output, as above, +while STDERR-FILE says what to do with standard error in the child. +STDERR-FILE may be nil (discard standard error output), +t (mix it with ordinary output), or a file name string. + +Fourth arg DISPLAY non-nil means redisplay buffer as output is inserted. +Remaining arguments are strings passed as command arguments to PROGRAM. + +If BUFFER is 0, `call-process' returns immediately with value nil. +Otherwise it waits for PROGRAM to terminate and returns a numeric exit status + or a signal description string. +If you quit, the process is killed with SIGINT, or SIGKILL if you + quit again." + ;; #### remove windows-nt check when this is ready for prime time. + (if (or (noninteractive) (not (eq 'windows-nt system-type))) + (apply 'old-call-process-internal program infile buffer display args) + (let (proc inbuf errbuf discard) + (unwind-protect + (progn + (when infile + (setq infile (expand-file-name infile)) + (setq inbuf (generate-new-buffer "*call-process*")) + (with-current-buffer inbuf + (insert-file-contents-internal infile nil nil nil nil + coding-system-for-read))) + (let ((stderr (if (consp buffer) (second buffer) t))) + (if (consp buffer) (setq buffer (car buffer))) + (setq buffer + (cond ((null buffer) nil) + ((eq buffer t) (current-buffer)) + ;; use integerp for compatibility with existing + ;; call-process rmsism. + ((integerp buffer) (setq discard t) nil) + (t (get-buffer-create buffer)))) + (when (and stderr (not (eq t stderr))) + (setq stderr (expand-file-name stderr)) + (setq errbuf (generate-new-buffer "*call-process*"))) + (setq proc + (apply 'start-process-internal "*call-process*" + buffer + ;#### not implemented until my new process + ;changes go in. + ;(if (eq t stderr) buffer (list buffer errbuf)) + program args)) + (if buffer + (set-marker (process-mark proc) (point buffer) buffer)) + (unwind-protect + (progn + (catch 'call-process-done + (when (not discard) + (set-process-sentinel + proc + #'(lambda (proc status) + (cond ((eq 'exit (process-status proc)) + (set-process-sentinel proc nil) + (throw 'call-process-done + (process-exit-status proc))) + ((eq 'signal (process-status proc)) + (set-process-sentinel proc nil) + (throw 'call-process-done status)))))) + (when inbuf + (process-send-region proc 1 + (1+ (buffer-size inbuf)) inbuf)) + (process-send-eof proc) + (when discard + ;; we're trying really really hard to emulate + ;; the old call-process. + (if errbuf + (set-process-sentinel + proc + `(lambda (proc status) + (write-region-internal + 1 (1+ (buffer-size)) + ,stderr + nil 'major-rms-kludge-city nil + coding-system-for-write)))) + (setq errbuf nil) + (setq proc nil) + (throw 'call-process-done nil)) + (while t + (accept-process-output proc) + (if display (sit-for 0)))) + (when errbuf + (with-current-buffer errbuf + (write-region-internal 1 (1+ (buffer-size)) stderr + nil 'major-rms-kludge-city nil + coding-system-for-write)))) + (if proc (set-process-sentinel proc nil))))) + (if inbuf (kill-buffer inbuf)) + (if errbuf (kill-buffer errbuf)) + (condition-case nil + (if (and proc (process-live-p proc)) (kill-process proc)) + (error nil)))))) + (defun call-process (program &optional infile buffer displayp &rest args) "Call PROGRAM synchronously in separate process. The program's input comes from file INFILE (nil means `/dev/null').
--- a/lisp/simple.el Mon Aug 13 11:16:09 2007 +0200 +++ b/lisp/simple.el Mon Aug 13 11:17:09 2007 +0200 @@ -1667,10 +1667,71 @@ ; (set-marker (mark-marker) nil))) (defvar mark-ring nil - "The list of former marks of the current buffer, most recent first.") + "The list of former marks of the current buffer, most recent first. +This variable is automatically buffer-local.") (make-variable-buffer-local 'mark-ring) (put 'mark-ring 'permanent-local t) +(defvar dont-record-current-mark nil + "If set to t, the current mark value should not be recorded on the mark ring. +This is set by commands that manipulate the mark incidentally, to avoid +cluttering the mark ring unnecessarily. Under most circumstances, you do +not need to set this directly; it is automatically reset each time +`push-mark' is called, according to `mark-ring-unrecorded-commands'. This +variable is automatically buffer-local.") +(make-variable-buffer-local 'dont-record-current-mark) +(put 'dont-record-current-mark 'permanent-local t) + +;; a conspiracy between push-mark and handle-pre-motion-command +(defvar in-shifted-motion-command nil) + +(defcustom mark-ring-unrecorded-commands '(shifted-motion-commands + yank + mark-beginning-of-buffer + mark-bob + mark-defun + mark-end-of-buffer + mark-end-of-line + mark-end-of-sentence + mark-eob + mark-marker + mark-page + mark-paragraph + mark-sexp + mark-whole-buffer + mark-word) + "*List of commands whose marks should not be recorded on the mark stack. +Many commands set the mark as part of their action. Normally, all such +marks get recorded onto the mark stack. However, this tends to clutter up +the mark stack unnecessarily. You can control this by putting a command +onto this list. Then, any marks set by the function will not be recorded. + +The special value `shifted-motion-commands' causes marks set as a result +of selection using any shifted motion commands to not be recorded. + +The value `yank' affects all yank-like commands, as well as just `yank'." + :type '(repeat (choice (const :tag "shifted motion commands" + 'shifted-motion-commands) + (const :tag "functions that select text" + :inline t + '(mark-beginning-of-buffer + mark-bob + mark-defun + mark-end-of-buffer + mark-end-of-line + mark-end-of-sentence + mark-eob + mark-marker + mark-page + mark-paragraph + mark-sexp + mark-whole-buffer + mark-word)) + (const :tag "functions that paste text" + 'yank) + function)) + :group 'killing) + (defcustom mark-ring-max 16 "*Maximum size of mark ring. Start discarding off end if gets this big." :type 'integer @@ -1692,6 +1753,14 @@ With argument, jump to mark, and pop a new position for mark off the ring \(does not affect global mark ring\). +The mark ring is a per-buffer stack of marks, most recent first. Its +maximum length is controlled by `mark-ring-max'. Generally, when new +marks are set, the current mark is pushed onto the stack. You can pop +marks off the stack using \\[universal-argument] \\[set-mark-command]. The term \"ring\" is used because when +you pop a mark off the stack, the current mark value is pushed onto the +far end of the stack. If this is confusing, just think of the mark ring +as a stack. + Novice Emacs Lisp programmers often try to use the mark for the wrong purposes. See the documentation of `set-mark' for more information." (interactive "P") @@ -1699,6 +1768,7 @@ (push-mark nil nil t) (if (null (mark t)) (error "No mark set in this buffer") + (if dont-record-current-mark (pop-mark)) (goto-char (mark t)) (pop-mark)))) @@ -1713,7 +1783,7 @@ Novice Emacs Lisp programmers often try to use the mark for the wrong purposes. See the documentation of `set-mark' for more information." (setq buffer (decode-buffer buffer)) ; XEmacs - (if (null (mark t buffer)) ; XEmacs + (if (or dont-record-current-mark (null (mark t buffer))) ; XEmacs nil ;; The save-excursion / set-buffer is necessary because mark-ring ;; is a buffer local variable @@ -1727,8 +1797,9 @@ (set-mark (or location (point buffer)) buffer) ; (set-marker (mark-marker) (or location (point)) (current-buffer)) ; FSF ;; Now push the mark on the global mark ring. - (if (or (null global-mark-ring) - (not (eq (marker-buffer (car global-mark-ring)) buffer))) + (if (and (not dont-record-current-mark) + (or (null global-mark-ring) + (not (eq (marker-buffer (car global-mark-ring)) buffer)))) ;; The last global mark pushed wasn't in this same buffer. (progn (setq global-mark-ring (cons (copy-marker (mark-marker t buffer)) @@ -1738,7 +1809,13 @@ (move-marker (car (nthcdr global-mark-ring-max global-mark-ring)) nil buffer) (setcdr (nthcdr (1- global-mark-ring-max) global-mark-ring) nil))))) - (or nomsg executing-kbd-macro (> (minibuffer-depth) 0) + (setq dont-record-current-mark + (not (not (or (and in-shifted-motion-command + (memq 'shifted-motion-commands + mark-ring-unrecorded-commands)) + (memq this-command mark-ring-unrecorded-commands))))) + (or dont-record-current-mark nomsg executing-kbd-macro + (> (minibuffer-depth) 0) (display-message 'command "Mark set")) (if activate-region (progn @@ -1877,7 +1954,8 @@ shifted-motion-keys-select-region (not (region-active-p)) (memq 'shift (event-modifiers last-input-event))) - (push-mark nil nil t))) + (let ((in-shifted-motion-command t)) + (push-mark nil nil t)))) (defun handle-post-motion-command () (if @@ -3276,6 +3354,10 @@ element)) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mail composition code ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + (defcustom mail-user-agent 'sendmail-user-agent "*Your preference for a mail composition package. Various Emacs Lisp packages (e.g. reporter) require you to compose an @@ -3421,6 +3503,10 @@ 'switch-to-buffer-other-frame yank-action send-actions)) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; set variable ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + (defun set-variable (var val) "Set VARIABLE to VALUE. VALUE is a Lisp object. When using this interactively, supply a Lisp expression for VALUE. @@ -3463,31 +3549,11 @@ (if (and (boundp var) (specifierp (symbol-value var))) (set-specifier (symbol-value var) val) (set var val))) + -;; XEmacs -(defun activate-region () - "Activate the region, if `zmacs-regions' is true. -Setting `zmacs-regions' to true causes LISPM-style active regions to be used. -This function has no effect if `zmacs-regions' is false." - (interactive) - (and zmacs-regions (zmacs-activate-region))) - -;; XEmacs -(defsubst region-exists-p () - "Return t if the region exists. -If active regions are in use (i.e. `zmacs-regions' is true), this means that - 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." - (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." - (and zmacs-regions zmacs-region-extent)) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; case changing code ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; A bunch of stuff was moved elsewhere: ;; completion-list-mode-map @@ -3565,12 +3631,42 @@ (forward-word 1)) (setq first nil)))))) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; zmacs active region code ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; Most of the zmacs code is now in elisp. The only thing left in C ;; are the variables zmacs-regions, zmacs-region-active-p and ;; zmacs-region-stays plus the function zmacs_update_region which ;; simply calls the lisp level zmacs-update-region. It must remain ;; for convenience, since it is called by core C code. +;; XEmacs +(defun activate-region () + "Activate the region, if `zmacs-regions' is true. +Setting `zmacs-regions' to true causes LISPM-style active regions to be used. +This function has no effect if `zmacs-regions' is false." + (interactive) + (and zmacs-regions (zmacs-activate-region))) + +;; XEmacs +(defsubst region-exists-p () + "Return t if the region exists. +If active regions are in use (i.e. `zmacs-regions' is true), this means that + 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." + (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." + (and zmacs-regions zmacs-region-extent)) + (defvar zmacs-activate-region-hook nil "Function or functions called when the region becomes active; see the variable `zmacs-regions'.") @@ -3711,9 +3807,10 @@ (mark-marker t)))) (run-hooks 'zmacs-update-region-hook))) -;;;;;; -;;;;;; echo area stuff -;;;;;; + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; message logging code ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; #### Should this be moved to a separate file, for clarity? ;;; -hniksic @@ -4034,10 +4131,10 @@ (display-message label str) str))) - -;;;;;; -;;;;;; warning stuff -;;;;;; + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; warning code ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defcustom log-warning-minimum-level 'info "Minimum level of warnings that should be logged. @@ -4239,6 +4336,11 @@ (set-window-start (display-buffer buffer) warning-marker)) (set-marker warning-marker (point-max buffer) buffer))) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; misc junk ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + (defun emacs-name () "Return the printable name of this instance of Emacs." (cond ((featurep 'infodock) "InfoDock")
--- a/lisp/subr.el Mon Aug 13 11:16:09 2007 +0200 +++ b/lisp/subr.el Mon Aug 13 11:17:09 2007 +0200 @@ -319,12 +319,6 @@ The value of this variable may be buffer-local. The buffer about to be killed is current when this hook is run.") -;; called by Frecord_buffer() -(defvar record-buffer-hook nil - "Function or functions to be called when a buffer is recorded. -The value of this variable may be buffer-local. -The buffer being recorded is passed as an argument to the hook.") - ;; in C in FSFmacs (defvar kill-emacs-hook nil "Function or functions to be called when `kill-emacs' is called, @@ -728,6 +722,12 @@ (t (error "Non-funcallable object: %s" function)))) +(defun function-allows-args (function n) + "Return whether FUNCTION can be called with N arguments." + (and (<= (function-min-args function) n) + (or (null (function-max-args function)) + (<= n (function-max-args function))))) + ;; This function used to be an alias to `buffer-substring', except ;; that FSF Emacs 20.4 added a BUFFER argument in an incompatible way. ;; The new FSF's semantics makes more sense, but we try to support
--- a/lisp/update-elc.el Mon Aug 13 11:16:09 2007 +0200 +++ b/lisp/update-elc.el Mon Aug 13 11:17:09 2007 +0200 @@ -39,9 +39,6 @@ ;; (the idea here is that you can bootstrap if your .ELC files ;; are missing or badly out-of-date) -;; Currently this code gets the list of files to check passed to it from -;; src/Makefile. This must be fixed. -slb - ;;; Code: (defvar processed nil) @@ -84,9 +81,14 @@ ;; (print (prin1-to-string update-elc-files-to-compile)) -(let (preloaded-file-list site-load-packages) +(let (preloaded-file-list site-load-packages need-to-dump dumped-exe) (load (expand-file-name "../lisp/dumped-lisp.el")) + (setq dumped-exe + (cond ((file-exists-p "../src/xemacs.exe") "../src/xemacs.exe") + ((file-exists-p "../src/xemacs") "../src/xemacs") + (t nil))) + ;; Path setup (let ((package-preloaded-file-list (packages-collect-package-dumped-lisps late-package-load-path))) @@ -94,6 +96,7 @@ (setq preloaded-file-list (append package-preloaded-file-list preloaded-file-list + '("bytecomp") packages-hardcoded-lisp))) (load (concat default-directory "../site-packages") t t) @@ -105,6 +108,22 @@ (while preloaded-file-list (let ((arg (car preloaded-file-list))) ;; (print (prin1-to-string arg)) + + ;; now check if .el or .elc is newer than the dumped exe. + ;; if so, need to redump. + (let ((frob + (if (string-match "\\.elc?\\'" arg) + (substring arg 0 (match-beginning 0)) + arg))) + (if (and dumped-exe + (or (and (file-exists-p (concat frob ".el")) + (file-newer-than-file-p (concat frob ".el") + dumped-exe)) + (and (file-exists-p (concat frob ".elc")) + (file-newer-than-file-p (concat frob ".elc") + dumped-exe)))) + (setq need-to-dump t))) + (if (null (member (file-name-nondirectory arg) packages-unbytecompiled-lisp)) (progn @@ -124,7 +143,14 @@ (file-newer-than-file-p (concat arg ".el") (concat arg ".elc"))) (setq processed (cons (concat arg ".el") processed))))) - (setq preloaded-file-list (cdr preloaded-file-list))))) + (setq preloaded-file-list (cdr preloaded-file-list)))) + + (if need-to-dump + (condition-case nil + (write-region-internal "foo" nil "../src/NEEDTODUMP") + (file-error nil))) + + ) (setq update-elc-files-to-compile (append update-elc-files-to-compile processed)) @@ -140,7 +166,7 @@ update-elc-files-to-compile)) (load "loadup-el.el")) (condition-case nil - (delete-file "./NOBYTECOMPILE") + (delete-file "../src/NOBYTECOMPILE") (file-error nil))) (kill-emacs)
--- a/lwlib/ChangeLog Mon Aug 13 11:16:09 2007 +0200 +++ b/lwlib/ChangeLog Mon Aug 13 11:17:09 2007 +0200 @@ -1,3 +1,43 @@ +2000-05-01 Martin Buchholz <martin@xemacs.org> + + * XEmacs 21.2.33 is released. + +2000-04-19 Martin Buchholz <martin@xemacs.org> + + * lwlib.c (lw_destroy_everything): Always use full ANSI prototypes. + * lwlib.c (lw_destroy_all_pop_ups): Always use full ANSI prototypes. + +2000-04-12 Andy Piper <andy@xemacs.org> + + * lwlib-Xaw.c (xaw_update_one_widget): no-op for text widgets. + (xaw_update_one_value): Get strings safely. + (xaw_create_text_field): add some extra properties. + +2000-04-05 Andy Piper <andy@xemacs.org> + + * lwlib-Xaw.c (lw_xaw_widget_p): include asciiTextWidgetClass as + an athena widget. + +2000-04-05 Andy Piper <andy@xemacs.org> + + * xlwradio.c (RadioSetValues): resize if position information has + changed. + + * lwlib-Xm.c (xm_create_text_field): text fields should be enabled + even if there is no callback. + * lwlib-Xaw.c (xaw_create_text_field): ditto. + +2000-04-03 Andy Piper <andy@xemacs.org> + + * lwlib.c (merge_widget_value_args): only merge when the two args + are actually different. + +2000-03-21 Didier Verna <didier@xemacs.org> + + * config.h.in: move INCLUDE_GLUE_1 and INCLUDE_GLUE_2 to + src/config.h.in. + * config.h.in (ATHENA_INCLUDE): use the `SMART_INCLUDE' macro. + 2000-03-20 Martin Buchholz <martin@xemacs.org> * XEmacs 21.2.32 is released.
--- a/lwlib/config.h.in Mon Aug 13 11:16:09 2007 +0200 +++ b/lwlib/config.h.in Mon Aug 13 11:17:09 2007 +0200 @@ -31,17 +31,10 @@ /* The path to the Athena widgets - the usual value is `X11/Xaw' */ #undef ATHENA_H_PATH - -/* For use in #include statements. - You can't use macros directly within the <> of a #include statement. - The multiply nested macros are necessary to make old gcc's happy. - However, those nested macros are too much for AIX xlc to deal with. */ -#if defined(_AIX) && !defined(__GNUC__) -#define ATHENA_INCLUDE(header_file) <ATHENA_H_PATH/header_file> +#ifdef ATHENA_H_PATH +# define ATHENA_INCLUDE(file) SMART_INCLUDE (ATHENA_H_PATH,file) #else -#define INCLUDE_GLUE_2(dirname,basename) <##dirname##/##basename##> -#define INCLUDE_GLUE_1(dirname,basename) INCLUDE_GLUE_2(dirname,basename) -#define ATHENA_INCLUDE(header_file) INCLUDE_GLUE_1(ATHENA_H_PATH,header_file) +# define ATHENA_INCLUDE(file) <file> #endif #endif /* _LWLIB_CONFIG_H_ */
--- a/lwlib/lwlib-Xaw.c Mon Aug 13 11:16:09 2007 +0200 +++ b/lwlib/lwlib-Xaw.c Mon Aug 13 11:17:09 2007 +0200 @@ -69,8 +69,8 @@ || XtIsSubclass (widget, labelWidgetClass) || XtIsSubclass (widget, toggleWidgetClass) || XtIsSubclass (widget, gaugeWidgetClass) -#if 0 - || XtIsSubclass (widget, textWidgetClass) +#ifndef NEED_MOTIF + || XtIsSubclass (widget, asciiTextWidgetClass) #endif #endif ); @@ -134,6 +134,13 @@ xaw_update_scrollbar (instance, widget, val); } #endif +#ifdef LWLIB_WIDGETS_ATHENA +#ifndef NEED_MOTIF + else if (XtIsSubclass (widget, asciiTextWidgetClass)) + { + } +#endif +#endif #ifdef LWLIB_DIALOGS_ATHENA else if (XtIsSubclass (widget, dialogWidgetClass)) { @@ -220,11 +227,19 @@ #ifndef NEED_MOTIF else if (XtIsSubclass (widget, asciiTextWidgetClass)) { - Arg al [1]; + Arg al [2]; + String buf = 0; + XtSetArg (al [0], XtNstring, &buf); + XtGetValues (widget, al, 2); + if (val->value) - free (val->value); - XtSetArg (al [0], XtNstring, &val->value); - XtGetValues (widget, al, 1); + { + free (val->value); + val->value = 0; + } + /* I don't think this causes a leak. */ + if (buf) + val->value = strdup (buf); val->edited = True; } #endif @@ -821,6 +836,7 @@ } #ifndef NEED_MOTIF +#define TEXT_BUFFER_SIZE 128 static Widget xaw_create_text_field (widget_instance *instance) { @@ -829,22 +845,36 @@ Widget text = 0; widget_value* val = instance->info->val; - XtSetArg (al [ac], XtNsensitive, val->enabled && val->call_data); ac++; + XtSetArg (al [ac], XtNsensitive, val->enabled); ac++; XtSetArg (al [ac], XtNmappedWhenManaged, FALSE); ac++; XtSetArg (al [ac], XtNhighlightThickness, (Dimension)0); ac++; XtSetArg (al [ac], XtNtype, XawAsciiString); ac++; XtSetArg (al [ac], XtNeditType, XawtextEdit); ac++; + XtSetArg (al [ac], XtNuseStringInPlace, False); ac++; +#if 0 + XtSetArg (al [ac], XtNlength, TEXT_BUFFER_SIZE); ac++; +#endif + if (val->value) + { + XtSetArg (al [ac], XtNstring, val->value); ac++; + } /* add any args the user supplied for creation time */ lw_add_value_args_to_args (val, al, &ac); text = XtCreateManagedWidget (val->name, asciiTextWidgetClass, instance->parent, al, ac); + + /* add the callback */ + if (val->call_data) + XtAddCallback (text, XtNgetValue, xaw_generic_callback, (XtPointer)instance); + XtManageChild (text); return text; } #endif + #endif /* LWLIB_WIDGETS_ATHENA */ widget_creation_entry
--- a/lwlib/lwlib-Xm.c Mon Aug 13 11:16:09 2007 +0200 +++ b/lwlib/lwlib-Xm.c Mon Aug 13 11:17:09 2007 +0200 @@ -1688,7 +1688,7 @@ Widget text = 0; widget_value* val = instance->info->val; - XtSetArg (al [ac], XmNsensitive, val->enabled && val->call_data); ac++; + XtSetArg (al [ac], XmNsensitive, val->enabled); ac++; XtSetArg (al [ac], XmNalignment, XmALIGNMENT_BEGINNING); ac++; XtSetArg (al [ac], XmNuserData, val->call_data); ac++; XtSetArg (al [ac], XmNmappedWhenManaged, FALSE); ac++;
--- a/lwlib/lwlib.c Mon Aug 13 11:16:09 2007 +0200 +++ b/lwlib/lwlib.c Mon Aug 13 11:17:09 2007 +0200 @@ -257,7 +257,7 @@ lw_copy_widget_value_args (old, new); changed = True; } - else if (new->args && old->args) + else if (new->args && old->args && new->args != old->args) { /* #### Do something more sensible here than just copying the new values (like actually merging the values). */ @@ -1048,14 +1048,14 @@ } void -lw_destroy_everything () +lw_destroy_everything (void) { while (all_widget_info) lw_destroy_all_widgets (all_widget_info->id); } void -lw_destroy_all_pop_ups () +lw_destroy_all_pop_ups (void) { widget_info *info; widget_info *next;
--- a/lwlib/xlwradio.c Mon Aug 13 11:16:09 2007 +0200 +++ b/lwlib/xlwradio.c Mon Aug 13 11:17:09 2007 +0200 @@ -272,13 +272,13 @@ switch( rw->label.justify ) { case XtJustifyLeft: - rw->label.label_x += bs(rw) + rw->label.internal_width ; + rw->label.label_x += (bs(rw) + rw->label.internal_width) ; break ; case XtJustifyRight: break ; case XtJustifyCenter: default: - rw->label.label_x += (bs(rw) + rw->label.internal_width)/2 ; + rw->label.label_x += (bs(rw) + rw->label.internal_width)/2; break ; } } @@ -374,7 +374,14 @@ { RadioSize(newrw, &newrw->core.width, &newrw->core.height) ; } - + + /* The label set values routine can resize the widget. We need to + * recalculate if this is true. + */ + if (newrw->label.label_x != oldrw->label.label_x) + { + RadioResize (new); + } return FALSE ; }
--- a/man/ChangeLog Mon Aug 13 11:16:09 2007 +0200 +++ b/man/ChangeLog Mon Aug 13 11:17:09 2007 +0200 @@ -1,3 +1,18 @@ +2000-05-01 Martin Buchholz <martin@xemacs.org> + + * XEmacs 21.2.33 is released. + +2000-04-11 Yoshiki Hayashi <yoshiki@xemacs.org> + + * xemacs-faq.texi (Q2.1.24): Removed wrong header. + +2000-04-01 Oscar Figueiredo <oscar@xemacs.org> + + * lispref/ldap.texi: Documentation of the add/modify/delete and + internationalization APIs + + * lispref/lispref.texi: Updated LDAP-related menus + 2000-03-20 Martin Buchholz <martin@xemacs.org> * XEmacs 21.2.32 is released.
--- a/man/lispref/ldap.texi Mon Aug 13 11:16:09 2007 +0200 +++ b/man/lispref/ldap.texi Mon Aug 13 11:17:09 2007 +0200 @@ -25,7 +25,7 @@ successfully built and tested with @itemize @bullet -@item OpenLDAP 1.0.3 (@url{http://www.openldap.org/}) +@item OpenLDAP 1.2 (@url{http://www.openldap.org/}) @item University of Michigan's LDAP 3.3 (@url{http://www.umich.edu/~dirsvcs/ldap/}) @item LDAP SDK 1.0 from Netscape Corp. (@url{http://developer.netscape.com/}) @end itemize @@ -33,7 +33,7 @@ Other libraries conforming to RFC 1823 will probably work also but may require some minor tweaking at C level. -The standard XEmacs configure script autodetects an installed LDAP +The standard XEmacs configure script auto-detects an installed LDAP library provided the library itself and the corresponding header files can be found in the library and include paths. A successful detection will be signalled in the final output of the configure script. @@ -49,13 +49,18 @@ higher-level layer which provides more convenient primitives to effectively use LDAP. -As of XEmacs 21.0, only interfaces to basic LDAP search functions are -provided, broader support is planned in future versions. +The low-level API should be used directly for very specific purposes +(such as multiple operations on a connection) only. The higher-level +functions provide a more convenient way to access LDAP directories +hiding the subtleties of handling the connection, translating arguments +and ensuring compliance with LDAP internationalization rules and formats +(currently partly implemented only). @menu * LDAP Variables:: Lisp variables related to LDAP * The High-Level LDAP API:: High-level LDAP lisp functions * The Low-Level LDAP API:: Low-level LDAP lisp primitives +* LDAP Internationalization:: I18n variables and functions @end menu @@ -77,7 +82,7 @@ @defvar ldap-default-base Default base for LDAP searches. This is a string using the syntax of RFC 1779. -For instance, "o¬ME, cÿ" limits the search to the +For instance, "o=ACME, c=US" limits the search to the Acme organization in the United States. @end defvar @@ -92,7 +97,7 @@ @table @code @item binddn The distinguished name of the user to bind as. This may look like -@samp{cÿ, o¬me, cnÿnny Bugs}, see RFC 1779 for details. +@samp{cn=Babs Jensen,o=ACME,c=US}, see RFC 1779 for details. @item passwd The password to use for authentication. @item auth @@ -127,41 +132,99 @@ @end table @end defvar +@defvar ldap-verbose +If non-@code{nil}, LDAP operations will echo progress messages. Defaults to @code{nil}. +@end defvar @node The High-Level LDAP API, The Low-Level LDAP API, LDAP Variables, XEmacs LDAP API @comment node-name, next, previous, up @subsection The High-Level LDAP API -As of this writing the high-level Lisp LDAP API only provides for LDAP -searches. Further support is planned in the future. +The following functions provide the most convenient interface to perform +LDAP operations. All of them open a connection to a host, perform an +operation (add/search/modify/delete) on one or several entries and +cleanly close the connection thus insulating the user from all the +details of the low-level interface such as LDAP Lisp objects @pxref{The +Low-Level LDAP API}. -The @code{ldap-search} function provides the most convenient interface -to perform LDAP searches. It opens a connection to a host, performs the -query and cleanly closes the connection thus insulating the user from -all the details of the low-level interface such as LDAP Lisp objects -@pxref{The Low-Level LDAP API} +Note that @code{ldap-search} which used to be the name of the high-level +search function in XEmacs 21.1 is now obsolete. For consistency in the +naming as well as backward compatibility, that function now acts as a +wrapper that calls either @code{ldap-search-basic} (low-level search +function) or @code{ldap-search-entries} (high-level search function) +according to the actual parameters. A direct call to one of these two +functions is preferred since it is faster and unambiguous. -@defun ldap-search filter &optional host attributes attrsonly +@defun ldap-search-entries filter &optional host attributes attrsonly withdn Perform an LDAP search. @var{filter} is the search filter @pxref{Syntax of Search Filters} -@var{host} is the LDAP host on which to perform the search +@var{host} is the LDAP host on which to perform the search. @var{attributes} is the specific attributes to retrieve, @code{nil} means -retrieve all +retrieve all. @var{attrsonly} if non-@code{nil} retrieves the attributes only without their associated values. +If @var{withdn} is non-@code{nil} each entry in the result will be prepended with +its distinguished name DN. Additional search parameters can be specified through @code{ldap-host-parameters-alist}. +The function returns a list of matching entries. Each entry is itself +an alist of attribute/value pairs optionally preceded by the DN of the +entry according to the value of @var{withdn}. +@end defun + +@defun ldap-add-entries entries &optional host binddn passwd +Add entries to an LDAP directory. @var{entries} is a list of entry +specifications of the form @code{(DN (ATTR . VALUE) (ATTR . VALUE) ...)} +where @var{dn} the distinguished name of an entry to add, the following +are cons cells containing attribute/value string pairs. @var{host} is +the LDAP host, defaulting to `ldap-default-host' @var{binddn} is the DN +to bind as to the server @var{passwd} is the corresponding password. @end defun -@node The Low-Level LDAP API, , The High-Level LDAP API, XEmacs LDAP API +@defun ldap-modify-entries entry-mods &optional host binddn passwd +Modify entries of an LDAP directory. +@var{entry_mods} is a list of entry modifications of the form +@code{(DN MOD-SPEC1 MOD-SPEC2 ...)} where @var{dn} is the distinguished name of +the entry to modify, the following are modification specifications. +A modification specification is itself a list of the form +@code{(MOD-OP ATTR VALUE1 VALUE2 ...)} @var{mod-op} and @var{attr} are mandatory, +@var{values} are optional depending on @var{mod-op}. +@var{mod-op} is the type of modification, one of the symbols @code{add}, @code{delete} +or @code{replace}. @var{attr} is the LDAP attribute type to modify. +@var{host} is the LDAP host, defaulting to @code{ldap-default-host} +@var{binddn} is the DN to bind as to the server +@var{passwd} is the corresponding password" +@end defun + +@defun ldap-delete-entries dn &optional host binddn passwd +Delete an entry from an LDAP directory. +@var{dn} is the distinguished name of an entry to delete or +a list of those. +@var{host} is the LDAP host, defaulting to @code{ldap-default-host} +@var{binddn} is the DN to bind as to the server +@var{passwd} is the corresponding password. +@end defun + + +@node The Low-Level LDAP API, LDAP Internationalization, The High-Level LDAP API, XEmacs LDAP API @comment node-name, next, previous, up @subsection The Low-Level LDAP API +The low-level API should be used directly for very specific purposes +(such as multiple operations on a connection) only. The higher-level +functions provide a more convenient way to access LDAP directories +hiding the subtleties of handling the connection, translating arguments +and ensuring compliance with LDAP internationalization rules and formats +(currently partly implemented only). See @pxref{The High-Level LDAP API} + +Note that the former functions @code{ldap-*-internal} functions have been +renamed in XEmacs 21.2 + @menu * The LDAP Lisp Object:: * Opening and Closing a LDAP Connection:: -* Searching on a LDAP Server (Low-level):: +* Low-level Operations on a LDAP Server:: @end menu @node The LDAP Lisp Object, Opening and Closing a LDAP Connection, The Low-Level LDAP API, The Low-Level LDAP API @@ -184,7 +247,7 @@ @end defun -@node Opening and Closing a LDAP Connection, Searching on a LDAP Server (Low-level), The LDAP Lisp Object, The Low-Level LDAP API +@node Opening and Closing a LDAP Connection, Low-level Operations on a LDAP Server, The LDAP Lisp Object, The Low-Level LDAP API @comment node-name, next, previous, up @subsubsection Opening and Closing a LDAP Connection @@ -202,7 +265,7 @@ @code{krbv41} and @code{krbv42}. @item binddn The distinguished name of the user to bind as. This may look like -@samp{cÿ, o¬me, cnÿnny Bugs}, see RFC 1779 for details. +@samp{c=com, o=Acme, cn=Babs Jensen}, see RFC 1779 for details. @item passwd The password to use for authentication. @item deref @@ -232,18 +295,17 @@ @end defun -@node Searching on a LDAP Server (Low-level), , Opening and Closing a LDAP Connection, The Low-Level LDAP API +@node Low-level Operations on a LDAP Server, , Opening and Closing a LDAP Connection, The Low-Level LDAP API @comment node-name, next, previous, up -@subsubsection Searching on a LDAP Server (Low-level) +@subsubsection Low-level Operations on a LDAP Server -@code{ldap-search-internal} is the low-level primitive to perform a +@code{ldap-search-basic} is the low-level primitive to perform a search on a LDAP server. It works directly on an open LDAP connection thus requiring a preliminary call to @code{ldap-open}. Multiple searches can be made on the same connection, then the session must be closed with @code{ldap-close}. - -@defun ldap-search-internal ldap filter base scope attrs attrsonly +@defun ldap-search-basic ldap filter base scope attrs attrsonly Perform a search on an open connection @var{ldap} created with @code{ldap-open}. @var{filter} is a filter string for the search @pxref{Syntax of Search Filters} @var{base} is the distinguished name at which to start the search. @@ -255,12 +317,138 @@ for each matching entry. If @code{nil} all available attributes are returned. If @code{attrsonly} is non-@code{nil} then only the attributes are retrieved, not their associated values -The function returns a list of matching entries. Each entry being itself -an alist of attribute/values. +If @code{withdn} is non-@code{nil} then each entry in the result is prepended with +its distinguished name DN +If @code{verbose} is non-@code{nil} then progress messages are echoed +The function returns a list of matching entries. Each entry is itself +an alist of attribute/value pairs optionally preceded by the DN of the +entry according to the value of @code{withdn}. +@end defun + +@defun ldap-add ldap dn entry +Add @var{entry} to a LDAP directory which a connection @var{ldap} has +been opened to with @code{ldap-open}. +@var{dn} is the distinguished name of the entry to add. +@var{entry} is an entry specification, i.e., a list of cons cells +containing attribute/value string pairs. +@end defun + +@defun ldap-modify ldap dn mods +Modify an entry in an LDAP directory. +@var{ldap} is an LDAP connection object created with @code{ldap-open}. +@var{dn} is the distinguished name of the entry to modify. +@var{mods} is a list of modifications to apply. +A modification is a list of the form @code{(MOD-OP ATTR VALUE1 VALUE2 ...)} +@var{mod-op} and @var{attr} are mandatory, @var{values} are optional depending on @var{mod-op}. +@var{mod-op} is the type of modification, one of the symbols @code{add}, @code{delete} +or @code{replace}. @var{attr} is the LDAP attribute type to modify +@end defun + +@defun ldap-delete ldap dn +Delete an entry to an LDAP directory. +@var{ldap} is an LDAP connection object created with @code{ldap-open}. +@var{dn} is the distinguished name of the entry to delete @end defun +@node LDAP Internationalization, , The Low-Level LDAP API, XEmacs LDAP API +@comment node-name, next, previous, up +@subsection LDAP Internationalization + +The XEmacs LDAP API provides basic internationalization features based +on the LDAP v3 specification (essentially RFC2252 on "LDAP v3 Attribute +Syntax Definitions"). Unfortunately since there is currently no free +LDAP v3 server software, this part has not received much testing and +should be considered experimental. The framework is in place though. + +@defun ldap-decode-attribute attr +Decode the attribute/value pair @var{attr} according to LDAP rules. +The attribute name is looked up in @code{ldap-attribute-syntaxes-alist} +and the corresponding decoder is then retrieved from +@code{ldap-attribute-syntax-decoders}' and applied on the value(s). +@end defun + +@menu +* LDAP Internationalization Variables:: +* Encoder/Decoder Functions:: +@end menu + +@node LDAP Internationalization Variables, Encoder/Decoder Functions, LDAP Internationalization, LDAP Internationalization +@comment node-name, next, previous, up +@subsubsection LDAP Internationalization Variables + +@defvar ldap-ignore-attribute-codings +If non-@code{nil}, no encoding/decoding will be performed LDAP attribute values +@end defvar + +@defvar ldap-coding-system +Coding system of LDAP string values. +LDAP v3 specifies the coding system of strings to be UTF-8. +You need an XEmacs with Mule support for this. +@end defvar + +@defvar ldap-default-attribute-decoder +Decoder function to use for attributes whose syntax is unknown. Such a +function receives an encoded attribute value as a string and should +return the decoded value as a string +@end defvar + +@defvar ldap-attribute-syntax-encoders +A vector of functions used to encode LDAP attribute values. +The sequence of functions corresponds to the sequence of LDAP attribute syntax +object identifiers of the form 1.3.6.1.4.1.1466.1115.121.1.* as defined in +RFC2252 section 4.3.2. As of this writing, only a few encoder functions +are available. +@end defvar + +@defvar ldap-attribute-syntax-decoders +A vector of functions used to decode LDAP attribute values. +The sequence of functions corresponds to the sequence of LDAP attribute syntax +object identifiers of the form 1.3.6.1.4.1.1466.1115.121.1.* as defined in +RFC2252 section 4.3.2. As of this writing, only a few decoder functions +are available. +@end defvar + +@defvar ldap-attribute-syntaxes-alist +A map of LDAP attribute names to their type object id minor number. +This table is built from RFC2252 Section 5 and RFC2256 Section 5 +@end defvar + +@node Encoder/Decoder Functions, , LDAP Internationalization Variables, LDAP Internationalization +@comment node-name, next, previous, up +@subsubsection Encoder/Decoder Functions + +@defun ldap-encode-boolean bool +A function that encodes an elisp boolean @var{bool} into a LDAP +boolean string representation +@end defun + +@defun ldap-decode-boolean str +A function that decodes a LDAP boolean string representation +@var{str} into an elisp boolean +@end defun + +@defun ldap-decode-string str +Decode a string @var{str} according to `ldap-coding-system' +@end defun + +@defun ldap-encode-string str +Encode a string @var{str} according to `ldap-coding-system' +@end defun + +@defun ldap-decode-address str +Decode an address @var{str} according to `ldap-coding-system' and +replacing $ signs with newlines as specified by LDAP encoding rules for +addresses +@end defun + +@defun ldap-encode-address str +Encode an address @var{str} according to `ldap-coding-system' and +replacing newlines with $ signs as specified by LDAP encoding rules for +addresses +@end defun + @node Syntax of Search Filters, , XEmacs LDAP API, LDAP Support @@ -299,6 +487,3 @@ matches records of class @code{Person} containing a @code{mail} attribute and corresponding to people whose last name is @code{Smith} or whose first name is @code{John}. - - -
--- a/man/lispref/lispref.texi Mon Aug 13 11:16:09 2007 +0200 +++ b/man/lispref/lispref.texi Mon Aug 13 11:17:09 2007 +0200 @@ -1099,12 +1099,18 @@ * LDAP Variables:: Lisp variables related to LDAP * The High-Level LDAP API:: High-level LDAP lisp functions * The Low-Level LDAP API:: Low-level LDAP lisp primitives +* LDAP Internationalization:: I18n variables and functions The Low-Level LDAP API * The LDAP Lisp Object:: * Opening and Closing a LDAP Connection:: -* Searching on a LDAP Server (Low-level):: +* Low-level Operations on a LDAP Server:: + +LDAP Internationalization + +* LDAP Internationalization Variables:: +* Encoder/Decoder Functions:: Internationalization
--- a/man/xemacs-faq.texi Mon Aug 13 11:16:09 2007 +0200 +++ b/man/xemacs-faq.texi Mon Aug 13 11:17:09 2007 +0200 @@ -7,7 +7,7 @@ @finalout @titlepage @title XEmacs FAQ -@subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2000/03/07 09:19:02 $ +@subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2000/04/26 07:18:27 $ @sp 1 @author Tony Rossini <rossini@@biostat.washington.edu> @author Ben Wing <ben@@xemacs.org> @@ -2491,7 +2491,6 @@ @node Q2.1.24, , Q2.1.23, Installation @unnumberedsubsec Q2.1.24: XEmacs won't start without network. (NEW) -Q2.1.23: Movemail on Linux does not work for XEmacs 19.15 and later. If XEmacs starts when you're on the network, but fails when you're not on the network, you may be missing a "localhost" entry in your
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nt/.cvsignore Mon Aug 13 11:17:09 2007 +0200 @@ -0,0 +1,4 @@ +config.inc +xemacs.ncb +xemacs.opt +xemacs.plg
--- a/nt/ChangeLog Mon Aug 13 11:16:09 2007 +0200 +++ b/nt/ChangeLog Mon Aug 13 11:17:09 2007 +0200 @@ -1,3 +1,77 @@ +2000-05-01 Martin Buchholz <martin@xemacs.org> + + * XEmacs 21.2.33 is released. + +2000-04-27 Ben Wing <ben@xemacs.org> + + * xemacs.mak: combine auto-autoloads.el and custom.el update into + one call to xemacs. + +2000-04-26 Ben Wing <ben@xemacs.org> + + * xemacs.mak: put in support for QUICK_BUILD. + + * config.inc.samp: put in an entry for QUICK_BUILD. + +2000-04-23 Ben Wing <ben@xemacs.org> + + * xemacs.mak: Modified section that dumps .exe to not dump + when nothing has changed. It does this by relying on a flag + set by update-elcs. + + Also in building of auto-autoloads.el, we no longer unconditionally + remove the old one. That was pointless and made the whole build + procedure a lot longer -- the autoload code is smart enough to + update itself automatically from an out-of-date autoload file. + +2000-04-04 Kirill 'Big K' Katsnelson <kkm@dtmx.com> + + * xemacs.mak: Build the i utility and use it to pipe windowed + [xt]emacs output to the build console. + +2000-03-25 Didier Verna <didier@xemacs.org> + + * config.h: handle the renaming of `foo_h_path' to `foo_h_file'. + +2000-03-22 Mike Alexander <mta@arbortext.com> + + * xemacs.mak (PROGRAM_DEFINES): Define EMACS_VERSION and + EMACS_PROGNAME + (DEPEND): Don't try to create $(OUTDIR) if it already exists + ($(SRC)\dump-id.c): Make it + (DOC_SRC11): Add dumper.c if portable dumping + (dump-xemacs): Make portable dumping work again and create + dump-id.c and compile it whenever we do a portable dump. + (depend): Change $(SRCDIR) to $(SRC) + +2000-03-22 Jonathan Harris <jhar@tardis.ed.ac.uk> + + * .cvsignore: New file, ignores user's config.inc and files + containing the user's DevStudio workspace info. + + * config.h.samp: Added DEPEND option. Renamed HAVE_MSW and HAVE_X to + HAVE_MS_WINDOWS and HAVE_X_WINDOWS. + + * README: Documented DEPEND option. Other small changes. + + * Todo: Removed - was hopelessly out of date. + + * config.h.samp: + * xemacs.mak: Added DEPEND option to control use of dependency + information generated by make-src-depend. Requires Perl. Defaults + to disabled. Renamed HAVE_MSW and HAVE_X to HAVE_MS_WINDOWS and + HAVE_X_WINDOWS as a side-effect. + Handles '&' in XEmacs codenames by replacing with 'and'. + + * xemacs.dsp: + Correct Output_Dir so that DevStudio finds the xemacs executable + by default. + +2000-03-20 Ben Wing <ben@xemacs.org> + + * README: Substantial rewrite. + * xemacs.mak: Pdump fix. (not working yet, though) + 2000-03-20 Martin Buchholz <martin@xemacs.org> * XEmacs 21.2.32 is released. @@ -18,12 +92,12 @@ 2000-03-12 Ben Wing <ben@xemacs.org> - * xemacs.mak (*): + * xemacs.mak (*): * config.inc: New. a) Added a file called config.inc which makes it easier to set build options for MS Windows. (Previously, the only way to do this - was through command line options to nmake.) + was through command line options to nmake.) b) Cleaned the file up a bit. @@ -36,7 +110,7 @@ * xemacs.dsp: New. For compiling, editing, and debugging XEmacs using the VC++ 5.0 GUI. They may well work under other versions of VC++, but I don't - have access to them to test them. + have access to them to test them. 2000-03-11 Andy Piper <andy@xemacs.org> @@ -191,7 +265,7 @@ * xemacs.mak (SRCDIR): Make path to xemacs absolute to facilitate building info in man subdirs. Echo all cd commands, - not just some of them. + not just some of them. (makeinfo-test): Test for availability of `texinfo' package to build info. Recommend use of external `makeinfo' program for @@ -274,7 +348,7 @@ 1999-06-05 Norbert Koch <n.koch@delta-ii.de> * xemacs.mak (mule): remove dependencies from mule-coding.c - + 1999-06-11 XEmacs Build Bot <builds@cvs.xemacs.org> * XEmacs 21.2.16 is released @@ -293,7 +367,7 @@ 1999-05-31 Andy Piper <andy@xemacs.org> * xemacs.mak: add select & select-x targets. - + 1999-05-14 XEmacs Build Bot <builds@cvs.xemacs.org> * XEmacs 21.2.14 is released @@ -324,9 +398,9 @@ report" did. 1999-04-29 Andy Piper <andy@xemacs.org> - + * sys/file.h: conditionalise definition of X_OK. - + 1999-03-12 XEmacs Build Bot <builds@cvs.xemacs.org> * XEmacs 21.2.13 is released @@ -415,7 +489,7 @@ 1998-12-13 Jonathan Harris <jhar@tardis.ed.ac.uk> * xemacs.mak: - Replaced PACKAGEPATH variable with PACKAGE_PREFIX. + Replaced PACKAGEPATH variable with PACKAGE_PREFIX. configure-package-path is initialised to contain subdirectories of PACKAGE_PREFIX. The install target makes a skeleton package tree under PACKAGE_PREFIX. @@ -454,7 +528,7 @@ 1998-12-07 Martin Buchholz <martin@xemacs.org> * xemacs.mak (TEMACS_OBJS): - (DOC_SRC4): + (DOC_SRC4): - Remove pure.c, pure.obj 1998-11-04 Adrian Aichner <adrian@xemacs.org> @@ -529,7 +603,7 @@ * xemacs.mak: change "copy" to "xcopy" in install target -1998-08-04 Jeff Sparkes <jsparkes@internetivity.com> +1998-08-04 Jeff Sparkes <jsparkes@internetivity.com> * xemacs.mak: Link in PNG, TIFF and JPEG in native build. @@ -637,9 +711,9 @@ 1998-05-20 Kirill M. Katsnelson <kkm@kis.ru> - * xemacs.mak: Unified -nologo compiler switch handling and lib-src + * xemacs.mak: Unified -nologo compiler switch handling and lib-src programs build (only make-docfile currently, adding other tools - soon). + soon). 1998-05-23 Kirill M. Katsnelson <kkm@kis.ru> @@ -713,7 +787,7 @@ 1998-04-10 Kirill M. Katsnelson <kkm@kis.ru> * config.h: Do not USE_ASSERTION when DEBUG_XEMACS is not - defined. + defined. * xemacs.mak: Added new file process-nt.c @@ -767,7 +841,7 @@ 1998-03-19 Kirill M. Katsnelson <kkm@kis.ru> - * xemacs.mak: HAVE_FILE_CODING removed: it is no longer an option, + * xemacs.mak: HAVE_FILE_CODING removed: it is no longer an option, since file I/O depends on it, and defined unconditioanlly in src/s/windowsnt.h. Added -nologo switch to different tools here and there. @@ -832,7 +906,7 @@ * config.h: removed #define HAVE_UNIXOID_EVENT_LOOP Thu December 04 1997 jhar@tardis.ed.ac.uk - + * xemacs.mak: Define DEBUG_XEMACS when compiling with debug. Tue November 29 12:29:33 1997 davidh @@ -850,14 +924,14 @@ - Rewrote timeout code, eliminating "!NILP(rest)" bug. - Special processing for 'Ctrl-@' keystroke. - Support for some new keysyms. - + Mon December 01 1997 jhar * xemacs.mak: - Add PACKAGE_PATH and EMACS_BETA_VERSION defines. - Automatically copy changed include files from \nt to \src. - Corrected some DOC_SRC* lists. - + Tue November 18 21:45:06 1997 davidh * xemacs.mak updated to remove dependency on startup.elc @@ -866,7 +940,7 @@ Thu September 25 23:06:44 1997 davidh * xemacs.mak updated to make the build as simple as typing - nmake -f xemacs.mak. Also support for native gui included + nmake -f xemacs.mak. Also support for native gui included which should mean the w32 directory is no longer required. * config.h synced with config.h.in from 20.3-b2 @@ -876,7 +950,7 @@ Thu September 25 23:06:44 1997 davidh * August Hill provided a patch to xemacs.mak to greatly simplify - the build - the DOC file gets created correctly. + the build - the DOC file gets created correctly. Tue September 22 23:06:44 1997 davidh @@ -902,7 +976,7 @@ * nt/TODO created. * nt/X11.patch created to help with the X build. - + * August Hill provided: a patch to fix the _WRETCODE undefined symbol, a patch to fix a problem with dired @@ -915,7 +989,7 @@ use the macro, I decided this would be easiest. * Modified src/fileio.c to only open files in O_BINARY. This - causes files to be opened and written without automatically + causes files to be opened and written without automatically writing ^M 's to the end of each line. MULE ought to sort this in theory, but I am less than convinced. @@ -956,7 +1030,7 @@ Thu Mar 13 00:19:25 1997 marcpa (marcpa at MARCPA) - * At end of compilation, there are some unresolved symbols: + * At end of compilation, there are some unresolved symbols: link.exe @C:\TEMP\nma00115. sysdep.obj : error LNK2001: unresolved external symbol _vfork @@ -983,12 +1057,11 @@ @@ -150,8 +150,9 @@ typedef CARD16 BITS16; typedef CARD8 BYTE; - + +#ifndef WIN32 typedef CARD8 BOOL; - +#endif * cpp.exe not used: cl.exe from VC++4.2 seems to handle everything - properly. - + properly.
--- a/nt/README Mon Aug 13 11:16:09 2007 +0200 +++ b/nt/README Mon Aug 13 11:17:09 2007 +0200 @@ -1,12 +1,12 @@ -Building and Installing XEmacs on Windows NT -*- mode:outline -*- +Building and Installing XEmacs on Windows 95/98/NT -*- mode:outline -*- David Hobley - Marc Paquette - Jonathan Harris + Marc Paquette + Jonathan Harris + Ben Wing -The port was made much easier by the groundbreaking work of Geoff Voelker -and others who worked on the GNU Emacs port to NT. Their version is available -from http://www.cs.washington.edu/homes/voelker/ntemacs.html +This is a port of XEmacs to Windows 95/98/NT. If you are looking for a port +of GNU Emacs, see http://www.cs.washington.edu/homes/voelker/ntemacs.html. * Required tools and sources @@ -24,17 +24,30 @@ c:\Program Files\DevStudio\VC\bin\ (or wherever you installed it) that you can run before building to set up all of these environment variables. -2. Grab the latest XEmacs source from ftp.xemacs.org if necessary. +2. Grab the latest XEmacs source from + + ftp://ftp.xemacs.org/pub/xemacs/ + + or one of its mirrors listed at http://www.xemacs.org/Download/index.html . + + You'll also need the packages. You probably want to get the unified + packages bundle from - You'll also need the xemacs-base package from the binary-packages - subdirectory and you'll probably also want at least the edit-utils, - text-modes, fsf-compat, cc-mode, prog-modes and xemacs-devel + ftp://ftp.xemacs.org/pub/xemacs/packages/xemacs-sumo.tar.gz + + Although we don't recommend it, you can also retrieve just the packages + you really need if you have an extremely slow net connection or are very + short on disk space. You can find the various packages in + ftp://ftp.xemacs.org/pub/xemacs/packages/. You will need the + xemacs-base package. You'll also need the texinfo package unless you + have a copy of makeinfo.exe on your machine. If you want to download + additional or updated packages from within XEmacs you'll need the efs, + dired and vm packages. You'll probably also want at least the + edit-utils, text-modes, fsf-compat, cc-mode, prog-modes and xemacs-devel packages. - You'll also need the texinfo package unless you have a copy of - makeinfo.exe on your machine. - - Unpack the packages into, say, "c:\Program Files\XEmacs\xemacs-packages". + Unpack the packages into "x:\your\choice\XEmacs\xemacs-packages", + for example "c:\Program Files\XEmacs\xemacs-packages". 3. At this point you can choose to build for X and/or for Win32 native GUI. If you only want to build for the Win32 native GUI then skip the next @@ -45,8 +58,8 @@ If you want support for X you will also need: -1. An X server. MI/X is available on the Internet for free; It is - available from: http://www.microimages.com/www/html/freestuf/mixdlfrm.htm +1. An X server. MI/X is available on the Internet as trialware; it is + available from: http://www.microimages.com/www/html/mix/ 2. Source for the MIT X11R6.3 libraries, available from: ftp.x.org @@ -64,15 +77,17 @@ * Optional libraries ==================== -1. If you want XPM image and toolbar support grab the latest version of the - xpm sources (xpm-3.4k.tar.gz at time of writing) and unpack them somewhere. +1. You really want the XPM library. Grab the latest version of the + xpm sources (xpm-3.4k.tar.gz at time of writing) from + ftp://ftp.xemacs.org/pub/xemacs/aux/ and unpack them somewhere. Copy nt\xpm.mak from the xemacs sources to the lib subdirectory of the xpm sources, cd to that directory and build xpm with 'nmake -f xpm.mak'. 2. You probably also want PNG image support. Grab the latest versions of zlib - and libpng (zlib-1.1.3 and libpng-1.0.2 at time of writing), unpack them - somewhere and read the respective READMEs for details on how to build them. - The following build procedure works for zlib-1.1.3 and libpng-1.0.2: + and libpng (zlib-1.1.3 and libpng-1.0.2 at time of writing) from + ftp://ftp.xemacs.org/pub/xemacs/aux/, unpack them somewhere and read + the respective READMEs for details on how to build them. The following + build procedure works for zlib-1.1.3 and libpng-1.0.2: cd to the zlib directory, type 'copy msdos\makefile.w32 Makefile' and then type 'nmake'. @@ -81,116 +96,161 @@ and type 'nmake -f scripts\makefile.w32'. 3. If you want TIFF support, grap the latest version of libtiff (tiff-v3.4 - at time of writing) and unpack it somewhere. Copy nt\tiff.mak from the - xemacs sources to the contrib\winnt subdirectory of the tiff sources, - cd to that directory and build libtiff with 'nmake -f tiff.mak'. Note: - tiff.mak has only been verified to work under WinNT, not Win95 or 98. - However, the lastest distribution of libtiff includes a - contrib\win95\makefile.w95; that might work. + at time of writing) from ftp://ftp.xemacs.org/pub/xemacs/aux/ and unpack + it somewhere. Copy nt\tiff.mak from the xemacs sources to the + contrib\winnt subdirectory of the tiff sources, cd to that directory and + build libtiff with 'nmake -f tiff.mak'. Note: tiff.mak has only been + verified to work under WinNT, not Win95 or 98. However, the lastest + distribution of libtiff includes a contrib\win95\makefile.w95; that might + work. 4. If you want JPEG support grab the latest version of jpegsrc (jpeg-6b at - time of writing) and read the README for details on how to build it. + time of writing) from ftp://ftp.xemacs.org/pub/xemacs/aux/ and read the + README for details on how to build it. -5. If you want X-Face support, grab compface distribution and unpack it - somewhere. Copy nt\compface.mak from xemacs sources to the compface - directory. cd to that directory and build libcompface with - 'nmake -f compface.mak'. +5. If you want X-Face support, grab the compface distribution from + ftp://ftp.xemacs.org/pub/xemacs/aux/ and unpack it somewhere. + Copy nt\compface.mak from xemacs sources to the compface directory. + cd to that directory and build libcompface with 'nmake -f compface.mak'. * Building ========== -1. cd to the nt subdirectory of the xemacs distribution and build xemacs: - `nmake install -f xemacs.mak`, but read on before hitting Enter. +1. cd to the nt subdirectory of the xemacs distribution and copy the file + config.inc.samp to config.inc. Make any necessary modifications. This + file controls the options that XEmacs is built with: + + -- If you're building with XPM support, modify the appropriate lines in + config.inc as follows: + + HAVE_XPM=1 + XPM_DIR="x:\location\of\your\xpm\sources" + + and similarly for JPEG and TIFF support. -2. If you're building with XPM support, add this to the nmake command line: - HAVE_XPM=1 XPM_DIR="x:\location\of\your\xpm\sources" - and similarly for JPEG and TIFF support. + -- If you're building with PNG support, modify the appropriate lines in + config.inc as follows: + + HAVE_PNG=1 + PNG_DIR="x:\location\of\your\png\sources" + ZLIB_DIR="x:\location\of\your\zlib\sources" + + -- If you're building with GIF support, modify the appropriate lines in + config.inc as follows: + + HAVE_GIF=1 - If you're building with PNG support, add this to the nmake command line: - HAVE_PNG=1 PNG_DIR="x:\location\of\your\png\sources" - ZLIB_DIR="x:\location\of\your\zlib\sources" + -- If you're building with X-Face support, modify the appropriate lines in + config.inc as follows: + + HAVE_XFACE=1 + COMPFACE_DIR="x:\location\of\your\compface\sources" + + -- If you're building for X, modify the appropriate lines in config.inc + as follows: + + HAVE_X_WINDOWS=1 + X11_DIR=x:\root\directory\of\your\X11\installation - If you want to build with GIF support, add this to the nmake command line: - HAVE_GIF=1 + -- By default, XEmacs will expect to find its packages in the + subdirectories "site-packages", "mule-packages" and "xemacs-packages" + under the directory "c:\Program Files\XEmacs". If you want it to look + for these subdirectories elsewhere, modify the appropriate lines in + config.inc as follows: - If you're building with X-Face support, add this to the nmake command line: - HAVE_XFACE=1 COMPFACE_DIR="x:\location\of\your\compface\sources" + PACKAGE_PREFIX="x:\your\package\directory" - If you're building for X, add this to the nmake command line: - HAVE_X=1 X11_DIR=x:\root\directory\of\your\X11\installation + Make sure that the directory pointed to by PACKAGE_PREFIX contains + the xemacs-packages directory into which you installed the packages. + + -- XEmacs can build its info files more quickly if you have a copy of the + makeinfo program. If you have a copy, modify the appropriate lines in + config.inc as follows: -3. By default, XEmacs will expect to find its packages in the subdirectories - "site-packages", "mule-packages" and "xemacs-packages" under the package - prefix directory "c:\Program Files\XEmacs". If you want it to look for - these subdirectories elsewhere, add this to the nmake command line: - PACKAGE_PREFIX="x:\your\package\directory" - If you change your mind and want to alter the package prefix directory - after you've built XEmacs, delete the file nt\obj\emacs.obj and rebuild - with the new PACKAGE_PREFIX setting. + MAKEINFO="x:\location\of\makeinfo.exe" + + If you don't have a copy of makeinfo then you'll need to have installed + the XEmacs texinfo package. + +2. If you want to install XEmacs when you build it, modify the appropriate + lines in config.inc as follows (you can also run XEmacs from its build + directory): + + INSTALL_DIR="x:\your\installation\directory" -4. By default, XEmacs will be installed in directories under the directory - "c:\Program Files\XEmacs\XEmacs-21.2". If you want to install it - elsewhere, add this to the nmake command line: - INSTALL_DIR="x:\your\installation\directory" + (By default, XEmacs will be installed in directories under the directory + "c:\Program Files\XEmacs\XEmacs-21.2".) + +2. If you want to build xemacs on the command line, use + `nmake install -f xemacs.mak', or just `nmake -f xemacs.mak' if you want + to run XEmacs from its build directory. nmake will build temacs, the DOC + file, update the elc's, dump xemacs and (optionally) install the relevant + files in the directories under the installation directory. + + If you chose to install XEmacs, the file that you should run to start + XEmacs will be installed (by default) as + "c:\Program Files\XEmacs\XEmacs-21.2\i586-pc-win32\xemacs.exe". + + To run from the build directory, run the file "nt\xemacs.exe" off of the + root of the build directory. -5. XEmacs can build its info files more quickly if you have a copy of the - makeinfo program. If you have a copy, add this to the nmake command line: - MAKEINFO="x:\location\of\makeinfo.exe" - If you don't have a copy of makeinfo then you'll need to have installed - the XEmacs texinfo package. + You may want to create a shortcut to the file from your Desktop or + Start Menu. + +3. To build using MS Developer Studio, you can use the workspace file + `nt/xemacs.dsw'. This was prepared for Visual C++ 5.0; if you have + a different version and this file doesn't work, just open up + `nt/xemacs.mak' from within MS Developer Studio and it will offer to + wrap this Makefile in a workspace file, from which you can build. + Assuming you want to run from the build directory (which you will + want to do if you are planning on doing any development work on XEmacs), + use the following settings in Project/Settings...: -6. Now you can press Enter. nmake will build temacs, the DOC file, update - the elc's, dump xemacs and install the relevant files in the directories - under the installation directory. + Under the General tab: + + Build command line: NMAKE /f xemacs.mak + Output file name: ..\src\xemacs.exe + Browse info file name: ..\src\temacs.bsc - Unless you set INSTALL_DIR above, the file that you should run to start - XEmacs will be installed as - "c:\Program Files\XEmacs\XEmacs-21.2\i586-pc-win32\runxemacs.exe". - You may want to create a shortcut to that file from your Desktop or - Start Menu. + Under the Debug tab: + + Executable for debug session: ..\src\xemacs.exe + + + If you want to install XEmacs when it's built, change the build command + line to "NMAKE install /f xemacs.mak". (You will have to make the same + change even if you use the provided workspace nt/xemacs.dsw.) * Debugging under MS Developer Studio ===================================== The build process always creates debugging and "Source Browser" information -in the source tree for use with DevStudio. If you actually want to debug -XEmacs you should probably build a debug version of XEmacs: +in the source tree for use with DevStudio. However that information is not +very useful unless you build a debug version of XEmacs: -1. Delete the directory nt\obj and it's contents. +1. Set DEBUG_XEMACS=1 and DEPEND=1 in config.inc and rebuild. -2. Add DEBUG_XEMACS=1 to the nmake command line and rebuild. You probably - don't want to install your debug build so you should tell nmake to build - the 'all' target instead of the 'install' target. +2. See instructions above for obtaining a workspace file for use with + MS Developer Studio. Build and debug your XEmacs this way. -3. To make use of the debugging and "Source Browser" information, create a - new "console" project in DevStudio and, under Project/Settings, set: - Debug: executable name = full path of src\xemacs.exe - Link: output file name = full path of src\temacs.exe - Browse Info: browse info file name = full path of src\temacs.bsc - Remember to close the Source Browser file in DevStudio before rebuilding. +3. To display the contents of a lisp variable, type Shift-F9 (or use the + menu) to bring up the QuickWatch window, type debug_print(variable) and + click Recalculate. The output will appear in a console window, as well + as in the Debug window in MS Developer Studio. -4. Start XEmacs from within DevStudio or by running src\xemacs.exe so that - you get a console window which may contain helpful debugging info. - -5. To display the contents of a lisp variable click Debug/QuickWatch, type - debug_print(variable) and click Recalculate. The output will appear in - the console window. - -6. To view lisp variables in the "Watch" window wrap the variable in one of - the helper functions from the file src\console-msw.c. eg type - DSTRING(variable) in the "Watch" window to inspect a lisp string. +4. To view Lisp variables in the "Watch" window wrap the variable in one of + the helper functions from the file src\console-msw.c, for example type + DSTRING(variable) in the "Watch" window to inspect a Lisp string. * Known Problems ================ -Please look at the PROBLEMS file for known problems and at the TODO list for -the current list of problems and people working on them. - -Any other problems you need clarified, please email us and we will endeavour -to provide any assistance we can: +Please look at the PROBLEMS file for known problems. Any other problems you +need clarified, please email us and we will endeavour to provide any +assistance we can: The XEmacs NT Mailing List: xemacs-nt@xemacs.org Subscribe address: xemacs-nt-request@xemacs.org @@ -199,5 +259,6 @@ Marc Paquette August Hill Jonathan Harris +Ben Wing and others.
--- a/nt/Todo Mon Aug 13 11:16:09 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -# List of problems with XEmacs. If anyone wants to work on these, please -# mail me and I'll update the table below. - -# Core NT issues - 1. Subprocess support is completely broken. - 2. Networking support is completely broken. This is due to the fact that - the model relies on the subprocess support also working. - 4. No binary release. We know a binary release would be A Good Thing. - However we want to make things stable before producing one so we don't - have to field too many problems. Sorry. - 5. Support for dired is perhaps not quite there. We need to port ls-lisp.el - from FSF Emacs. - 6. Currently the backup files do not get the same permissions as the file - being edited. August Hill is looking at this one. - 7. Verify that CRLF issues are dealt with correctly. Marc Paquette is - looking at this. - 8. Use the registry to store the root directory(ies) of lisp packages; that - is the path name, not the elisp files. - -# X issues - 1. Redrawing on my (davidh) system seems fairly broken - I don't know if - this is the XEmacs redraw functionality, my X server or just something - strange with X under NT. Has anyone else experiences with this ? - -# Native GUI issues - 0. The entire event model. - 1. Calling mouse_[enter|leave]_frame_hook - 2. Can't change bold, italic or bold-italic face fonts - 3. Bogus delay when setting default- or initial-frame-plist - 4. Short timeouts don't seem to be very accurate - 5. Scrollbar dragging. Redisplay isn't called while dragging. - Also can't retrieve 32 bit tracking position with GetScrollInfo() - 6. Menubar - 7. Palette handling - 8. Middle mouse button emulation - 9. Drag'n'drop - 10. Images - -Old Issues. - - 1. For some reason, HOME is a required environment variable. -
--- a/nt/config.h Mon Aug 13 11:16:09 2007 +0200 +++ b/nt/config.h Mon Aug 13 11:17:09 2007 +0200 @@ -21,7 +21,7 @@ /* Synched up with: FSF 19.30 (more or less). */ /* No code in XEmacs #includes config.h twice, but some of the code - intended to work with other packages as well (like gmalloc.c) + intended to work with other packages as well (like gmalloc.c) think they can include it as many times as they like. */ #ifndef _SRC_CONFIG_H_ #define _SRC_CONFIG_H_ @@ -286,7 +286,7 @@ /* Define HAVE_BERKELEY_DB if you want to use the BerkDB libraries */ #undef HAVE_BERKELEY_DB /* Full #include file path for Berkeley DB's db.h */ -#undef DB_H_PATH +#undef DB_H_FILE #if defined (HAVE_DBM) || defined (HAVE_BERKELEY_DB) # define HAVE_DATABASE @@ -295,8 +295,8 @@ /* Define HAVE_NCURSES if -lncurses is present. */ #undef HAVE_NCURSES /* Full #include file paths for ncurses' curses.h and term.h. */ -#undef CURSES_H_PATH -#undef TERM_H_PATH +#undef CURSES_H_FILE +#undef TERM_H_FILE #define LOWTAGS @@ -486,7 +486,7 @@ #undef SUNPRO /* Sun SparcStations, SGI machines, and HP9000s700s have support for playing - different sound files as beeps. If you are on a SparcStation but do not + different sound files as beeps. If you are on a SparcStation but do not have the sound option installed for some reason, then undefine HAVE_NATIVE_SOUND. (It's usually found in /usr/demo/SOUND/ on SunOS 4 and Solaris systems; on Solaris, you may need to install the "SUNWaudmo" @@ -536,7 +536,7 @@ uses, mbstowcs() and wcstombs(), are unusable when programs are statically linked (as XEmacs must be) because the static version of libc.a contains the *dynamic* versions of these functions. These - functions don't seem to be called when XEmacs is running, so it's + functions don't seem to be called when XEmacs is running, so it's enough to define stubs for them. This appears to be fixed in SunOS 4.1.2.
--- a/nt/config.inc.samp Mon Aug 13 11:16:09 2007 +0200 +++ b/nt/config.inc.samp Mon Aug 13 11:17:09 2007 +0200 @@ -12,10 +12,10 @@ HAVE_MULE=0 # Native MS Windows support. -HAVE_MSW=1 +HAVE_MS_WINDOWS=1 # X Windows support. -HAVE_X=0 +HAVE_X_WINDOWS=0 X11_DIR= ############################################################################ @@ -58,10 +58,16 @@ # Set this to enable some debug code that doesn't slow things down. DEBUG_XEMACS=1 +# Set this to speed up building, for development purposes. +QUICK_BUILD=0 + # Set this to see exactly which compilation commands are being run (not # generally recommended). VERBOSECC=0 +# Set this to get nmake to use dependency info (requires Perl to be installed) +DEPEND=0 + ############################################################################ # Some technical options.
--- a/nt/xemacs.dsp Mon Aug 13 11:16:09 2007 +0200 +++ b/nt/xemacs.dsp Mon Aug 13 11:17:09 2007 +0200 @@ -36,8 +36,8 @@ # PROP BASE Bsc_Name "xemacs.bsc" # PROP BASE Target_Dir "" # PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" +# PROP Output_Dir "..\src" +# PROP Intermediate_Dir "obj" # PROP Cmd_Line "NMAKE /f xemacs.mak" # PROP Rebuild_Opt "/a" # PROP Target_File "xemacs.exe" @@ -55,8 +55,8 @@ # PROP BASE Bsc_Name "xemacs.bsc" # PROP BASE Target_Dir "" # PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" +# PROP Output_Dir "..\src" +# PROP Intermediate_Dir "obj" # PROP Cmd_Line "NMAKE /f xemacs.mak" # PROP Rebuild_Opt "/a" # PROP Target_File "..\src\xemacs.exe"
--- a/nt/xemacs.mak Mon Aug 13 11:16:09 2007 +0200 +++ b/nt/xemacs.mak Mon Aug 13 11:17:09 2007 +0200 @@ -24,6 +24,8 @@ # Synched up with: Not in FSF. # +default: all + XEMACS=.. LISP=$(XEMACS)\lisp LIB_SRC=$(XEMACS)\lib-src @@ -31,6 +33,7 @@ NT=$(XEMACS)\nt OUTDIR=$(NT)\obj SRC=$(XEMACS)\src +LWLIB_SRCDIR=$(XEMACS)\lwlib MAKEDIRSTRING=$(MAKEDIR:\=\\) XEMACSDIRSTRING=$(MAKEDIRSTRING:\\nt=) @@ -40,7 +43,7 @@ # Program name and version -!include "..\version.sh" +!include "$(XEMACS)\version.sh" !include "config.inc" @@ -53,6 +56,8 @@ PROGRAM_DEFINES=-DINFODOCK \ -DPATH_VERSION=\"$(INFODOCK_VERSION_STRING)\" \ -DPATH_PROGNAME=\"infodock\" \ + -DEMACS_PROGNAME=\"infodock\" \ + -DEMACS_VERSION=\"$(INFODOCK_VERSION_STRING)\" \ -DINFODOCK_MAJOR_VERSION=$(infodock_major_version) \ -DINFODOCK_MINOR_VERSION=$(infodock_minor_version) \ -DINFODOCK_BUILD_VERSION=$(infodock_build_version) @@ -64,7 +69,9 @@ !endif PROGRAM_DEFINES= \ -DPATH_VERSION=\"$(XEMACS_VERSION_STRING)\" \ - -DPATH_PROGNAME=\"xemacs\" + -DPATH_PROGNAME=\"xemacs\" \ + -DEMACS_VERSION=\"$(XEMACS_VERSION_STRING)\" \ + -DEMACS_PROGNAME=\"xemacs\" !endif # @@ -91,11 +98,11 @@ ! endif !endif PATH_PACKAGEPATH="$(PACKAGE_PATH:\=\\)" -!if !defined(HAVE_MSW) -HAVE_MSW=1 +!if !defined(HAVE_MS_WINDOWS) +HAVE_MS_WINDOWS=1 !endif -!if !defined(HAVE_X) -HAVE_X=0 +!if !defined(HAVE_X_WINDOWS) +HAVE_X_WINDOWS=0 !endif !if !defined(HAVE_XPM) HAVE_XPM=0 @@ -133,6 +140,9 @@ !if !defined(DEBUG_XEMACS) DEBUG_XEMACS=0 !endif +!if !defined(QUICK_BUILD) +QUICK_BUILD=0 +!endif !if !defined(USE_UNION_TYPE) USE_UNION_TYPE=0 !endif @@ -201,67 +211,67 @@ !message [[[Developer note: If you want to fix it, read Q112297 first]]] #### CONFIG_ERROR=1 !endif -!if !$(HAVE_MSW) && !$(HAVE_X) -!message Please specify at least one HAVE_MSW=1 and/or HAVE_X=1 +!if !$(HAVE_MS_WINDOWS) && !$(HAVE_X_WINDOWS) +!message Please specify at least one HAVE_MS_WINDOWS=1 and/or HAVE_X_WINDOWS=1 CONFIG_ERROR=1 !endif -!if $(HAVE_X) && !defined(X11_DIR) +!if $(HAVE_X_WINDOWS) && !defined(X11_DIR) !message Please specify root directory for your X11 installation: X11_DIR=path CONFIG_ERROR=1 !endif -!if $(HAVE_X) && defined(X11_DIR) && !exist("$(X11_DIR)\LIB\X11.LIB") +!if $(HAVE_X_WINDOWS) && defined(X11_DIR) && !exist("$(X11_DIR)\LIB\X11.LIB") !message Specified X11 directory does not contain "$(X11_DIR)\LIB\X11.LIB" CONFIG_ERROR=1 !endif -!if $(HAVE_MSW) && $(HAVE_XPM) && !defined(XPM_DIR) +!if $(HAVE_MS_WINDOWS) && $(HAVE_XPM) && !defined(XPM_DIR) !message Please specify root directory for your XPM installation: XPM_DIR=path CONFIG_ERROR=1 !endif -!if $(HAVE_MSW) && $(HAVE_XPM) && defined(XPM_DIR) && !exist("$(XPM_DIR)\lib\Xpm.lib") +!if $(HAVE_MS_WINDOWS) && $(HAVE_XPM) && defined(XPM_DIR) && !exist("$(XPM_DIR)\lib\Xpm.lib") !message Specified XPM directory does not contain "$(XPM_DIR)\lib\Xpm.lib" CONFIG_ERROR=1 !endif -!if $(HAVE_MSW) && $(HAVE_PNG) && !defined(PNG_DIR) +!if $(HAVE_MS_WINDOWS) && $(HAVE_PNG) && !defined(PNG_DIR) !message Please specify root directory for your PNG installation: PNG_DIR=path CONFIG_ERROR=1 !endif -!if $(HAVE_MSW) && $(HAVE_PNG) && defined(PNG_DIR) && !exist("$(PNG_DIR)\libpng.lib") +!if $(HAVE_MS_WINDOWS) && $(HAVE_PNG) && defined(PNG_DIR) && !exist("$(PNG_DIR)\libpng.lib") !message Specified PNG directory does not contain "$(PNG_DIR)\libpng.lib" CONFIG_ERROR=1 !endif -!if $(HAVE_MSW) && $(HAVE_PNG) && !defined(ZLIB_DIR) +!if $(HAVE_MS_WINDOWS) && $(HAVE_PNG) && !defined(ZLIB_DIR) !message Please specify root directory for your ZLIB installation: ZLIB_DIR=path CONFIG_ERROR=1 !endif -!if $(HAVE_MSW) && $(HAVE_PNG) && defined(ZLIB_DIR) && !exist("$(ZLIB_DIR)\zlib.lib") +!if $(HAVE_MS_WINDOWS) && $(HAVE_PNG) && defined(ZLIB_DIR) && !exist("$(ZLIB_DIR)\zlib.lib") !message Specified ZLIB directory does not contain "$(ZLIB_DIR)\zlib.lib" CONFIG_ERROR=1 !endif -!if $(HAVE_MSW) && $(HAVE_TIFF) && !defined(TIFF_DIR) +!if $(HAVE_MS_WINDOWS) && $(HAVE_TIFF) && !defined(TIFF_DIR) !message Please specify root directory for your TIFF installation: TIFF_DIR=path CONFIG_ERROR=1 !endif -!if $(HAVE_MSW) && $(HAVE_TIFF) && !exist("$(TIFF_DIR)\libtiff\libtiff.lib") +!if $(HAVE_MS_WINDOWS) && $(HAVE_TIFF) && !exist("$(TIFF_DIR)\libtiff\libtiff.lib") !message Specified TIFF directory does not contain "$(TIFF_DIR)\libtiff\libtiff.lib" CONFIG_ERROR=1 !endif -!if $(HAVE_MSW) && $(HAVE_JPEG) && !defined(JPEG_DIR) +!if $(HAVE_MS_WINDOWS) && $(HAVE_JPEG) && !defined(JPEG_DIR) !message Please specify root directory for your JPEG installation: JPEG_DIR=path CONFIG_ERROR=1 !endif -!if $(HAVE_MSW) && $(HAVE_JPEG) && !exist("$(JPEG_DIR)\libjpeg.lib") +!if $(HAVE_MS_WINDOWS) && $(HAVE_JPEG) && !exist("$(JPEG_DIR)\libjpeg.lib") !message Specified JPEG directory does not contain "$(JPEG_DIR)\libjpeg.lib" CONFIG_ERROR=1 !endif -!if $(HAVE_MSW) && $(HAVE_XFACE) && !defined(COMPFACE_DIR) +!if $(HAVE_MS_WINDOWS) && $(HAVE_XFACE) && !defined(COMPFACE_DIR) !message Please specify root directory for your COMPFACE installation: COMPFACE_DIR=path CONFIG_ERROR=1 !endif -!if $(HAVE_MSW) && $(HAVE_XFACE) && !exist("$(COMPFACE_DIR)\libcompface.lib") +!if $(HAVE_MS_WINDOWS) && $(HAVE_XFACE) && !exist("$(COMPFACE_DIR)\libcompface.lib") !message Specified COMPFACE directory does not contain "$(COMPFACE_DIR)\libcompface.lib" CONFIG_ERROR=1 !endif -!if $(HAVE_MSW) && $(HAVE_TOOLBARS) && !$(HAVE_XPM) +!if $(HAVE_MS_WINDOWS) && $(HAVE_TOOLBARS) && !$(HAVE_XPM) !message Toolbars require XPM support CONFIG_ERROR=1 !endif @@ -278,6 +288,27 @@ !endif # +# Whether to use dependency information generated by make-src-depend +# +!if !defined(DEPEND) +DEPEND=0 +!endif +!if $(DEPEND) +! if [if not exist $(OUTDIR)\nul mkdir "$(OUTDIR)"] +! endif +# generate an nmake-readable version of depend +! if [perl -p -e "s/^\x23ifdef (.+)/!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/;" \ + < $(SRC)\depend > $(OUTDIR)\depend.tmp] +! endif +! include "$(OUTDIR)\depend.tmp" +!else +! if [echo WARNING: Compiling without dependency information.] +! endif +!endif + +# # Compiler command echo control. Define VERBOSECC=1 to get verbose compilation. # !if !defined(VERBOSECC) @@ -310,13 +341,13 @@ CFLAGS=-nologo -W3 $(OPT) $(C_LIBFLAG) -!if $(HAVE_X) +!if $(HAVE_X_WINDOWS) X_DEFINES=-DHAVE_X_WINDOWS X_INCLUDES=-I$(X11_DIR)\include X_LIBS=-libpath:$(X11_DIR)\lib Xaw.lib Xmu.lib Xt.lib SM.lib ICE.lib Xext.lib X11.lib !endif -!if $(HAVE_MSW) +!if $(HAVE_MS_WINDOWS) MSW_DEFINES=-DHAVE_MS_WINDOWS -DHAVE_SCROLLBARS -DHAVE_MENUBARS MSW_INCLUDES= MSW_LIBS= @@ -383,6 +414,10 @@ DEBUG_FLAGS=-debug:full !endif +!if $(QUICK_BUILD) +QUICK_DEFINES=-DQUICK_BUILD +!endif + !if $(USE_MINIMAL_TAGBITS) TAGBITS_DEFINES=-DUSE_MINIMAL_TAGBITS !endif @@ -415,18 +450,16 @@ # Generic variables -INCLUDES=$(X_INCLUDES) $(MSW_INCLUDES) -I$(NT)\inc -I$(SRC) -I$(XEMACS)\lwlib +INCLUDES=$(X_INCLUDES) $(MSW_INCLUDES) -I$(NT)\inc -I$(SRC) -I$(LWLIB_SRCDIR) DEFINES=$(X_DEFINES) $(MSW_DEFINES) $(MULE_DEFINES) \ $(TAGBITS_DEFINES) $(LRECORD_DEFINES) $(UNION_DEFINES) \ - $(DUMPER_DEFINES) $(MALLOC_DEFINES) \ + $(DUMPER_DEFINES) $(MALLOC_DEFINES) $(QUICK_DEFINES) \ -DWIN32 -D_WIN32 -DWIN32_LEAN_AND_MEAN -DWINDOWSNT -Demacs \ -DHAVE_CONFIG_H $(PROGRAM_DEFINES) $(PATH_DEFINES) #------------------------------------------------------------------------------ -default: $(OUTDIR)\nul all - $(OUTDIR)\nul: -@mkdir $(OUTDIR) @@ -491,13 +524,14 @@ nmake -nologo -f minitar.mak ZLIB="$(ZLIB_DIR)" NT="$(NT)" LIB_SRC="$(LIB_SRC)" LIB_SRC_TOOLS = \ - $(LIB_SRC)/make-docfile.exe \ + $(LIB_SRC)/etags.exe \ $(LIB_SRC)/hexl.exe \ - $(LIB_SRC)/movemail.exe \ + $(LIB_SRC)/i.exe \ + $(LIB_SRC)/make-docfile.exe \ $(LIB_SRC)/mmencode.exe \ + $(LIB_SRC)/movemail.exe \ $(LIB_SRC)/sorted-doc.exe \ - $(LIB_SRC)/wakeup.exe \ - $(LIB_SRC)/etags.exe + $(LIB_SRC)/wakeup.exe !if $(USE_MINITAR) LIB_SRC_TOOLS = \ $(LIB_SRC_TOOLS) \ @@ -506,6 +540,7 @@ !if $(USE_PORTABLE_DUMPER) LIB_SRC_TOOLS = \ $(XEMACS_INCLUDES) \ + $(LIB_SRC)/make-dump-id.exe \ $(LIB_SRC_TOOLS) !endif @@ -526,6 +561,15 @@ #------------------------------------------------------------------------------ +# dump-id.c file that contains the dump id + +$(SRC)\dump-id.c : $(LIB_SRC)/make-dump-id.exe + cd $(SRC) + $(LIB_SRC)\make-dump-id.exe + cd $(NT) + +#------------------------------------------------------------------------------ + # LASTFILE Library !if !$(USE_SYSTEM_MALLOC) || !$(USE_PORTABLE_DUMPER) @@ -546,12 +590,11 @@ #------------------------------------------------------------------------------ -!if $(HAVE_X) +!if $(HAVE_X_WINDOWS) # LWLIB Library LWLIB=$(OUTDIR)\lwlib.lib -LWLIB_SRC=$(XEMACS)\lwlib LWLIB_FLAGS=$(CFLAGS) $(INCLUDES) $(DEFINES) \ -DNEED_ATHENA -DNEED_LUCID \ -D_WINDOWS -DMENUBARS_LUCID -DSCROLLBARS_LUCID -DDIALOGS_ATHENA \ @@ -568,25 +611,25 @@ $(LWLIB): $(LWLIB_OBJS) link.exe -lib -nologo -out:$@ $(LWLIB_OBJS) -$(OUTDIR)\lwlib-config.obj: $(LWLIB_SRC)\lwlib-config.c +$(OUTDIR)\lwlib-config.obj: $(LWLIB_SRCDIR)\lwlib-config.c $(CCV) $(LWLIB_FLAGS) $** -$(OUTDIR)\lwlib-utils.obj: $(LWLIB_SRC)\lwlib-utils.c +$(OUTDIR)\lwlib-utils.obj: $(LWLIB_SRCDIR)\lwlib-utils.c $(CCV) $(LWLIB_FLAGS) $** -$(OUTDIR)\lwlib-Xaw.obj: $(LWLIB_SRC)\lwlib-Xaw.c +$(OUTDIR)\lwlib-Xaw.obj: $(LWLIB_SRCDIR)\lwlib-Xaw.c $(CCV) $(LWLIB_FLAGS) $** -$(OUTDIR)\lwlib-Xlw.obj: $(LWLIB_SRC)\lwlib-Xlw.c +$(OUTDIR)\lwlib-Xlw.obj: $(LWLIB_SRCDIR)\lwlib-Xlw.c $(CCV) $(LWLIB_FLAGS) $** -$(OUTDIR)\lwlib.obj: $(LWLIB_SRC)\lwlib.c +$(OUTDIR)\lwlib.obj: $(LWLIB_SRCDIR)\lwlib.c $(CCV) $(LWLIB_FLAGS) $** -$(OUTDIR)\xlwmenu.obj: $(LWLIB_SRC)\xlwmenu.c +$(OUTDIR)\xlwmenu.obj: $(LWLIB_SRCDIR)\xlwmenu.c $(CCV) $(LWLIB_FLAGS) $** -$(OUTDIR)\xlwscrollbar.obj: $(LWLIB_SRC)\xlwscrollbar.c +$(OUTDIR)\xlwscrollbar.obj: $(LWLIB_SRCDIR)\xlwscrollbar.c $(CCV) $(LWLIB_FLAGS) $** !endif @@ -685,7 +728,7 @@ $(SRC)\window.c \ $(SRC)\widget.c -!if $(HAVE_X) +!if $(HAVE_X_WINDOWS) DOC_SRC6=\ $(SRC)\balloon_help.c \ $(SRC)\console-x.c \ @@ -710,7 +753,7 @@ $(SRC)\select-x.c !endif -!if $(HAVE_MSW) +!if $(HAVE_MS_WINDOWS) DOC_SRC7=\ $(SRC)\console-msw.c \ $(SRC)\device-msw.c \ @@ -734,7 +777,7 @@ $(SRC)\mule.c \ $(SRC)\mule-charset.c \ $(SRC)\mule-ccl.c -! if $(HAVE_X) +! if $(HAVE_X_WINDOWS) DOC_SRC8=$(DOC_SRC8) $(SRC)\input-method-xlib.c ! endif !endif @@ -756,6 +799,9 @@ !if !$(USE_PORTABLE_DUMPER) DOC_SRC11=\ $(SRC)\unexnt.c +!else +DOC_SRC11=\ + $(SRC)\dumper.c !endif #------------------------------------------------------------------------------ @@ -789,11 +835,11 @@ -DEMACS_MAJOR_VERSION=$(emacs_major_version) \ -DEMACS_MINOR_VERSION=$(emacs_minor_version) \ $(EMACS_BETA_VERSION) \ - -DXEMACS_CODENAME=\"$(xemacs_codename)\" \ + -DXEMACS_CODENAME=\"$(xemacs_codename:&=and)\" \ -DEMACS_CONFIGURATION=\"$(EMACS_CONFIGURATION)\" \ -DPATH_PACKAGEPATH=\"$(PATH_PACKAGEPATH)\" -!if $(HAVE_X) +!if $(HAVE_X_WINDOWS) TEMACS_X_OBJS=\ $(OUTDIR)\balloon-x.obj \ $(OUTDIR)\balloon_help.obj \ @@ -818,7 +864,7 @@ $(OUTDIR)\select-x.obj !endif -!if $(HAVE_MSW) +!if $(HAVE_MS_WINDOWS) TEMACS_MSW_OBJS=\ $(OUTDIR)\console-msw.obj \ $(OUTDIR)\device-msw.obj \ @@ -842,7 +888,7 @@ $(OUTDIR)\mule.obj \ $(OUTDIR)\mule-charset.obj \ $(OUTDIR)\mule-ccl.obj -! if $(HAVE_X) +! if $(HAVE_X_WINDOWS) TEMACS_MULE_OBJS=\ $(TEMACS_MULE_OBJS) $(OUTDIR)\input-method-xlib.obj ! endif @@ -865,6 +911,9 @@ !if !$(USE_PORTABLE_DUMPER) TEMACS_DUMP_OBJS=\ $(OUTDIR)\unexnt.obj +!else +TEMACS_DUMP_OBJS=\ + $(OUTDIR)\dumper.obj !endif TEMACS_OBJS= \ @@ -975,6 +1024,8 @@ $(CCV) $(TEMACS_CPP_FLAGS) $< -Fo$@ !endif +$(OUTDIR)\emacs.obj: $(XEMACS)\version.sh + $(OUTDIR)\TopLevelEmacsShell.obj: $(TEMACS_SRC)\EmacsShell-sub.c $(CCV) $(TEMACS_CPP_FLAGS) -DDEFINE_TOP_LEVEL_EMACS_SHELL $** -Fo$@ @@ -996,9 +1047,12 @@ @$(DEL) bscmake.tmp !endif !if $(USE_PORTABLE_DUMPER) - @if exist $(TEMACS_DIR)\xemacs.dmp del $(TEMACS_DIR)\xemacs.dmp + @if exist $(SRC)\dump-id.c del $(SRC)\dump-id.c +# make a new dump id file. There is probably a better way to do this, but this works + @if exist $(OUTDIR)\dump-id.obj del $(OUTDIR)\dump-id.obj + nmake -nologo -f xemacs.mak OUTDIR=$(OUTDIR) $(OUTDIR)\dump-id.obj link.exe @<< - $(TEMACS_LFLAGS) -out:$@ $(TEMACS_OBJS) $(TEMACS_LIBS) + $(TEMACS_LFLAGS) -out:$@ $(TEMACS_OBJS) $(TEMACS_LIBS) $(OUTDIR)\dump-id.obj << !else link.exe @<< @@ -1009,11 +1063,15 @@ $(OUTDIR)\xemacs.res: xemacs.rc rc -Fo$@ xemacs.rc -# Section handling automated tests starts here PROGNAME=$(SRC)\xemacs.exe +TEMACS_BATCH="$(LIB_SRC)\i" "$(TEMACS)" -batch +XEMACS_BATCH="$(LIB_SRC)\i" "$(PROGNAME)" -vanilla -batch + +# Section handling automated tests starts here + blddir=$(MAKEDIR:\=\\)\\.. -temacs_loadup=$(TEMACS) -batch -l $(LISP)/loadup.el +temacs_loadup=$(TEMACS_BATCH) -l $(LISP)/loadup.el dump_temacs = $(temacs_loadup) dump run_temacs = $(temacs_loadup) run-temacs ## We have automated tests!! @@ -1056,7 +1114,7 @@ # Section handling info starts here !if !defined(MAKEINFO) -MAKEINFO=$(PROGNAME) -vanilla -batch -l texinfmt -f batch-texinfo-format +MAKEINFO=$(XEMACS_BATCH) -l texinfmt -f batch-texinfo-format !endif MANDIR = $(XEMACS)\man @@ -1237,7 +1295,7 @@ @<<makeinfo_test.bat @echo off if exist "$(MAKEINFO)" goto test_done -@"$(PROGNAME)" -batch -vanilla -eval "(condition-case nil (require (quote texinfo)) (t (kill-emacs 1)))" +@$(XEMACS_BATCH) -eval "(condition-case nil (require (quote texinfo)) (t (kill-emacs 1)))" @if not errorlevel 1 goto suggest_makeinfo @echo XEmacs `info' cannot be built! @echo Install XEmacs package `texinfo' (see README.packages). @@ -1261,11 +1319,11 @@ if exist $(DOC) del $(DOC) docfile :: $(DOC) -$(DOC): $(LIB_SRC)\make-docfile.exe +$(DOC): $(LIB_SRC)\make-docfile.exe $(DOC_SRC1) $(DOC_SRC2) $(DOC_SRC3) $(DOC_SRC4) $(DOC_SRC5) $(DOC_SRC6) $(DOC_SRC7) $(DOC_SRC8) $(DOC_SRC9) $(DOC_SRC10) $(DOC_SRC11) if exist $(DOC) del $(DOC) set EMACSBOOTSTRAPLOADPATH=$(LISP);$(PACKAGE_PATH) set EMACSBOOTSTRAPMODULEPATH=$(MODULES) - $(TEMACS) -batch -l $(TEMACS_DIR)\..\lisp\make-docfile.el -- -o $(DOC) -i $(XEMACS)\site-packages + $(TEMACS_BATCH) -l $(TEMACS_DIR)\..\lisp\make-docfile.el -- -o $(DOC) -i $(XEMACS)\site-packages $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC1) $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC2) $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC3) @@ -1281,20 +1339,25 @@ update-elc: set EMACSBOOTSTRAPLOADPATH=$(LISP);$(PACKAGE_PATH) set EMACSBOOTSTRAPMODULEPATH=$(MODULES) - $(TEMACS) -batch -l $(TEMACS_DIR)\..\lisp\update-elc.el + $(TEMACS_BATCH) -l $(TEMACS_DIR)\..\lisp\update-elc.el + +# This file is touched by update-elc.el when redumping is necessary. +$(TEMACS_DIR)\NEEDTODUMP : + @echo >$(TEMACS_DIR)\NEEDTODUMP # This rule dumps xemacs and then possibly spawns sub-make if PURESPACE # requirements have changed. -dump-xemacs: temacs + +$(PROGNAME) : $(TEMACS) $(TEMACS_DIR)\NEEDTODUMP @echo >$(TEMACS_DIR)\SATISFIED cd $(TEMACS_DIR) set EMACSBOOTSTRAPLOADPATH=$(LISP);$(PACKAGE_PATH) set EMACSBOOTSTRAPMODULEPATH=$(MODULES) - -1 $(TEMACS) -batch -l $(TEMACS_DIR)\..\lisp\loadup.el dump + -1 $(TEMACS_BATCH) -l $(TEMACS_DIR)\..\lisp\loadup.el dump !if $(USE_PORTABLE_DUMPER) rc -d INCLUDE_DUMP -Fo $(OUTDIR)\xemacs.res $(NT)\xemacs.rc link.exe @<< - $(TEMACS_LFLAGS) -out:xemacs.exe $(TEMACS_OBJS) $(OUTDIR)\xemacs.res $(TEMACS_LIBS) + $(TEMACS_LFLAGS) -out:xemacs.exe $(TEMACS_OBJS) $(OUTDIR)\xemacs.res $(TEMACS_LIBS) $(OUTDIR)\dump-id.obj << # 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. @@ -1307,8 +1370,8 @@ # use this rule to build the complete system all: installation $(OUTDIR)\nul $(LASTFILE) $(LWLIB) \ - $(LIB_SRC_TOOLS) $(RUNEMACS) $(TEMACS) update-elc $(DOC) dump-xemacs \ - $(LISP)/auto-autoloads.el $(LISP)/custom-load.el info + $(LIB_SRC_TOOLS) $(RUNEMACS) $(TEMACS) update-elc $(DOC) $(PROGNAME) \ + update-auto-and-custom info temacs: $(LASTFILE) $(TEMACS) @@ -1376,7 +1439,7 @@ $(DEL) *.info* depend: - cd $(SRCDIR) + cd $(SRC) perl ./make-src-depend > depend.tmp perl -MFile::Compare -e "compare('depend.tmp', 'depend') && rename('depend.tmp', 'depend') or unlink('depend.tmp')" @@ -1399,10 +1462,10 @@ !if $(INFODOCK) Building InfoDock. !endif -!if $(HAVE_MSW) +!if $(HAVE_MS_WINDOWS) Compiling in support for Microsoft Windows native GUI. !endif -!if $(HAVE_X) +!if $(HAVE_X_WINDOWS) Compiling in support for X-Windows. !endif !if $(HAVE_MULE) @@ -1482,6 +1545,9 @@ !if $(DEBUG_XEMACS) Compiling in extra debug checks. XEmacs will be slow! !endif +!if $(QUICK_BUILD) + Disabling non-essential build actions. Use with care! +!endif <<NOKEEP @echo -------------------------------------------------------------------- @type $(XEMACS)\Installation @@ -1489,19 +1555,14 @@ # Update auto-autoloads.el and custom-load.el similar to what # XEmacs.rules does for xemacs-packages. -VANILLA=-vanilla -FORCE: -$(LISP)\auto-autoloads.el: FORCE - @$(DEL) $(LISP)\auto-autoloads.el - $(PROGNAME) $(VANILLA) -batch \ - -l autoload -f batch-update-directory $(LISP) - $(PROGNAME) $(VANILLA) -batch \ - -f batch-byte-compile $@ +update-auto-and-custom: +# Don't delete this, because it forces rebuilding from scratch, +# which is time-consuming; and the autoload code is specifically +# written to do in-place updating. +# @$(DEL) $(LISP)\auto-autoloads.el +# 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-dependencies $(LISP) @$(DEL) $(LISP)\auto-autoloads.el~ -$(LISP)\custom-load.el: FORCE - $(PROGNAME) $(VANILLA) -batch -l cus-dep \ - -f Custom-make-dependencies $(LISP) - # DO NOT DELETE THIS LINE -- make depend depends on it.
--- a/src/ChangeLog Mon Aug 13 11:16:09 2007 +0200 +++ b/src/ChangeLog Mon Aug 13 11:17:09 2007 +0200 @@ -1,30 +1,680 @@ +2000-05-01 Martin Buchholz <martin@xemacs.org> + + * XEmacs 21.2.33 is released. + +2000-05-01 Yoshiki Hayashi <yoshiki@xemacs.org> + + * make-src-depend: Allow dots in header file name. + +2000-05-01 Yoshiki Hayashi <yoshiki@xmacs.org> + + * mule-charset.h (struct charset_lookup): Add + next_allocated_1_byte_leading_byte and + next_allocated_2_byte_leading_byte. + * mule-charset.c: Move above two variables so that those values + will be dumped. + +2000-04-26 Yoshiki Hayashi <yoshiki@xemacs.org> + + * insdel.c (find_charsets_in_bufbyte_string): Add Vcharset_ascii + when string length is zero. + (find_charsets_in_emchar_string): Ditto. + +2000-04-29 Bjrn Torkelsson <torkel@hpc2n.umu.se> + + * lisp.h: extern Qdialog and Qmenubar. + + * gui-x.c: added events.h. + also fixed typo which made the file uncompilable. + + * general.c: Added Qmenubar and Qdialog + +2000-04-28 Ben Wing <ben@xemacs.org> + + * frame-msw.c (mswindows_init_frame_1): + * frame-msw.c (mswindows_mark_frame): + * event-msw.c (mswindows_enqueue_dispatch_event): + * console-msw.h: + * console-msw.h (struct mswindows_frame): + * console-msw.h (FRAME_MSWINDOWS_WIDGET_HASH_TABLE1): + there are now three hash tables for callbacks. + mswindows_enqueue_dispatch_event is no longer static. + + * dialog-x.c (maybe_run_dbox_text_callback): + * dialog-x.c (dbox_descriptor_to_widget_value): + switch to new cons3 form for callbacks. + + * glyphs-msw.c (mswindows_register_gui_item): + * glyphs-msw.c (mswindows_widget_instantiate): + * glyphs-msw.c (add_tree_item): + * glyphs-msw.c (add_tab_item): + new image instance parameter, so it can be passed to callback-ex. + respect :callback-ex as well as :callback. + + * glyphs-widget.c (VALID_GUI_KEYWORDS): + add :callback-ex. + + * glyphs.c (print_image_instance): + prettify, e.g. now prints widget type. + + * gui-x.h: + certain funs have new image instance parameter. + + * gui.c: + * gui.c (get_gui_callback): + * gui.c (gui_item_add_keyval_pair): + * gui.c (gui_item_init): + * gui.c (gui_add_item_keywords_to_plist): + * gui.c (mark_gui_item): + * gui.c (gui_item_hash): + * gui.c (gui_item_equal): + * gui.c (copy_gui_item): + * gui.c (syms_of_gui): + recognize callback-ex in a number of places. + also, fix the annoying "can't get out of yes-no dialog" bug. + + * gui.h: + * gui.h (struct Lisp_Gui_Item): + recognize callback-ex in a number of places. + + * menubar-x.c (menu_item_descriptor_to_widget_value_1): + new parameter in button_item_to_widget_value. + + * glyphs-x.c (x_update_widget): + * glyphs-x.c (x_button_instantiate): + * glyphs-x.c (x_button_update): + * glyphs-x.c (x_progress_gauge_instantiate): + * glyphs-x.c (x_edit_field_instantiate): + * glyphs-x.c (x_combo_box_instantiate): + * glyphs-x.c (x_tab_control_instantiate): + * glyphs-x.c (x_label_instantiate): + new image instance parameter in various places. + + * event-Xt.c: + * event-Xt.c (enqueue_Xt_dispatch_event): + this fun gets exported. + + * gui-msw.c: + * gui-msw.c (mswindows_handle_gui_wm_command): + handle both :callback and :callback-ex, and generate our own + event because it's one of the callback-ex arguments. + + * gui-x.c: + * gui-x.c (popup_selection_callback): + handle both :callback and :callback-ex, and generate our own + event because it's one of the callback-ex arguments. + * gui-x.c (button_item_to_widget_value): + * gui-x.c (gui_items_to_widget_values_1): + * gui-x.c (gui_item_children_to_widget_values): + * gui-x.c (gui_items_to_widget_values): + new image instance parameter in various places. + + * fns.c (Freplace_list): + fix small typo in doc string. + + * lisp.h: + declare enqueue_Xt_dispatch_event. + +2000-04-28 Ben Wing <ben@xemacs.org> + + * buffer.c: + * buffer.c (Frecord_buffer): + * buffer.c (syms_of_buffer): + delete record-buffer-hook. + + * fns.c: + * fns.c (Freplace_list): + * fns.c (syms_of_fns): + new primitive replace-list. + + * frameslots.h: + slot for old buffer-alist. + + * lisp.h: + exfun replace-list. + + * redisplay.c: + * redisplay.c (redisplay_frame): + * redisplay.c (syms_of_redisplay): + * redisplay.c (vars_of_redisplay): + new hook buffer-list-changed-hook. + call it. + +2000-04-27 Ben Wing <ben@xemacs.org> + + * extents.h: extern in_modeline_generation. + + * redisplay.c (generate_formatted_string_db): set + in_modeline_generation. + + * extents.c (extent_changed_for_redisplay): don't mark redisplay + flags if in modeline generation. otherwise frame-modified-tick + is ticked far too often. + Declare in_modeline_generation. + +2000-04-26 Ben Wing <ben@xemacs.org> + + * emacs.c (vars_of_emacs): document quick-build "error-checking" + option. + (vars_of_emacs): add quick-build as an error-checking option. + A bit kludgy, but there doesn't seem much point in creating + a real var for this. + + * config.h.in: put in an entry for QUICK_BUILD; remove NO_DOC_FILE. + +2000-04-14 IKEYAMA Tomonori <tomonori@suiyokai.org> + + * redisplay.h (struct display_line): Add a new variable, + line_continuation. + + * redisplay.c (create_text_block): Set dl->line_continuation if + the line continues. + (create_string_text_block): Ditto. + (regenerate_window_incrementally): Use line_continuation instead + of searching continuation glyph. + (add_margin_runes): Call add_glyph_rune. + (add_glyph_rune): Handle margin glyph. + +2000-04-20 Martin Buchholz <martin@xemacs.org> + + * filelock.c (fill_in_lock_file_name): + ANSIfy. + Check for IS_ANY_SEP instead of '/'. + (lock_file_1): + Avoid generating gratuitous garbage. Call user_login_name() directly. + Never check errno without first seeing that system call failed. + (unlock_file): Add GCPRO. + (Flock_buffer): Fix docstring. + (Ffile_locked_p): Fix docstring. Add GCPRO. + +2000-04-19 Martin Buchholz <martin@xemacs.org> + + * sysdep.c (get_pty_max_bytes): + Fix hangs on DEC OSF 4.0 when (process-send-string) sends + strings longer than 252 bytes. + + * md5.c: Unconditionally include ANSI header <limits.h> + + * glyphs-x.c (convert_EImage_to_XImage): + * lisp-union.h (union Lisp_Object): + Use consistently the syntax #ifdef FEATURE, not #if FEATURE. + +2000-04-13 Yoshiki Hayashi <yoshiki@xemacs.org> + + * filelock.c (current_lock_owner): Remove unused variable o, p. + +2000-04-17 Norbert Koch <n.koch@eai-delta.de> + + * callint.c: Remove multiply defined symbol Qlet + (syms_of_callint): ditto. + +2000-04-14 Andy Piper <andy@xemacs.org> + + * general.c (syms_of_general): add last-command, this-command, let + and funcall. + + * lisp.h: declare various symbols. + + * glyphs.h: declare Qwidget_callback_current_channel; + + * glyphs-widget.c (syms_of_glyphs_widget): add + Qgui_callback_current_channel. + (vars_of_glyphs_widget): add Vgui_callback_current_channel. + + * gui-msw.c (mswindows_handle_gui_wm_command): bind + widget-callback-current-channel when invoking the interactive + arg. Also bind last-command and next-command when invoking the + widget updates. + * gui-x.c (popup_selection_callback): ditto. + + * gui.c (get_gui_callback): massage args so that we are always + calling eval. This allows us to add our own variable bindings + outside. + + * glyphs-x.c (x_button_instantiate): use + gui_items_to_widget_values since this is GC safe. + (x_progress_gauge_instantiate): ditto. + (x_edit_field_instantiate): ditto. + (x_label_instantiate): ditto. + + * event-Xt.c (emacs_Xt_handle_magic_event): remove old printfs. + (emacs_Xt_event_widget_focus_out): new function + (emacs_Xt_event_widget_focus_in): new function. Set the keyboard + focus. + (emacs_Xt_event_add_widget_actions): new function. add focus + functions as actions. + (init_event_Xt_late): use it. + +2000-04-14 Hrvoje Niksic <hniksic@iskon.hr> + + * event-stream.c (Fdispatch_event): Doc fix. + +2000-03-29 SL Baur <steve@musashimaru.m17n.org> + + * postgresql.c: Remove all references to PQsetenv*. + + * postgresql.h: Remove references to PGsetenvHandler object. + * lrecord.h (lrecord_type): Ditto. + +2000-04-11 Kirill 'Big K' Katsnelson <kkm@dtmx.com> + + * glyphs-msw.h (struct mswindows_image_instance_data): Added + real_heigh and real_width members, and accessor macros for these. + + * glyphs-msw.c (init_image_instance_geometry): New function. + (init_image_instance_from_dibitmap): Use it. + (mswindows_resource_instantiate): Use it. + (init_image_instance_from_xbm_inline): Use it. + (mswindows_initialize_image_instance_mask): Use real bitmap + geometry. + (mswindows_create_resized_bitmap): Ditto. + (mswindows_create_resized_mask): Ditto. + + * redisplay-msw.c (mswindows_output_dibitmap): Stretch real mask + and bitmap to their surface size. + +2000-04-11 Jan Vroonhof <jan@xemacs.org> + + * process-unix.c (unix_send_process): Guard against process MIA + after Faccept_process_output. + +2000-04-11 Ben Wing <ben@xemacs.org> + + * eval.c (unbind_to_hairy): fix brokenness introduced by + nanosecond speed improvements. + +2000-04-07 Raymond Toy <toy@rtp.ericsson.se> + + * sunplay.c (init_device): To play sounds correctly, the device + apparently needs to be initialized at least once by XEmacs. Make + it so. + +2000-04-10 IKEYAMA Tomonori <tomonori@suiyokai.org> + + * redisplay.c (add_margin_runes): Add text image glyph + handling. + +2000-04-06 Yoshiki Hayashi <yoshiki@xemacs.org> + + * lisp.h (DOESNT_RETURN): Don't declare as volatile when + gcc is newer than 2.5. + +2000-04-06 Colin Rafferty <colin@xemacs.org> + + * lisp.h (FLEXIBLE_ARRAY_STRUCT_SIZEOF): Created. + + * fns.c (size_bit_vector): + * alloc.c (size_vector): + (make_vector_internal): + (make_bit_vector_internal): + (sweep_bit_vectors_1): + Replace calls to offsetof with FLEXIBLE_ARRAY_STRUCT_SIZEOF macro. + +2000-04-06 Andy Piper <andy@xemacs.org> + + * gmalloc.c (malloc): undo previous change. + (malloc): ditto. + (free): ditto. + (realloc): ditto. + +2000-04-06 IKEYAMA Tomonori <tomonori@suiyokai.org> + + * line-number.c (buffer_line_number): Revert to former version. + +2000-04-06 Andy Piper <andy@xemacs.org> + + * gmalloc.c (malloc): add error checking. + (malloc): ditto. + (free): ditto. + (realloc): ditto. + + * dialog-x.c (dbox_descriptor_to_widget_value): add extra + button_item_to_widget_value arg. + + * glyphs-x.c (x_button_instantiate): add extra + button_item_to_widget_value arg. + (x_progress_gauge_instantiate): ditto. + (x_edit_field_instantiate): ditto. + (x_label_instantiate): ditto. + + * gui-x.c (gui_items_to_widget_values_1): add extra + button_item_to_widget_value arg. + (button_item_to_widget_value): add extra menu_item_p arg. + + * gui-x.h: change signature of button_item_to_widget_value. + + * menubar-x.c (menu_item_descriptor_to_widget_value_1): add extra + button_item_to_widget_value arg. + +2000-04-03 Yoshiki Hayashi <yoshiki@xemacs.org> + + * buffer.h (struct buffer): auto_save_modified should be long. + +2000-04-05 Andy Piper <andy@xemacs.org> + + * glyphs-widget.c (widget_instantiate): pixwidth != pixheight + type. + (button_query_geometry): give a little more room so that athena + buttons fit. + +2000-04-05 Andy Piper <andy@xemacs.org> + + * faces.c (complex_vars_of_faces): The widget face should inherit + the font of the gui-element face. + +2000-04-04 Andy Piper <andy@xemacs.org> + + * glyphs-x.c (x_button_update): new function. unconditionally + update a button's state when the instance is dirty. + (image_instantiator_format_create_glyphs_x): add x_button_update. + (x_widget_instantiate): remove old resize cruft. + +2000-04-02 Andy Piper <andy@xemacs.org> + + * frame.c (change_frame_size_1): The introduction of gutters means + that we need to allow 0 as a potential frame dimension. + +2000-04-02 IKEYAMA Tomonori <tomonori@suiyokai.org> + + * redisplay.c (add_glyph_rune): Don't set 0 to bufpos for text + image glyph if allow_cursor. + (add_hscroll_rune): Don't allow cursor to border glyph. + (create_text_block): Ditto. + + * redisplay-output.c (redisplay_move_cursor): Do nothing even if + text not in buffer. + (redisplay_output_layout): Call ensure_face_cachel_complete for + text image glyph. + + +2000-03-16 IKEYAMA Tomonori <tomonori@suiyokai.org> + + * redisplay.c (add_glyph_rune): Adding text image as text runes. + + * redisplay-output.c (redisplay_move_cursor): NO_CURSOR if text + not in buffer + + * redisplay-tty.c (tty_output_display_block): Delete the routine + for text image glyph + * redisplay-x.c (x_output_display_block): ditto + * redisplay-msw.c (mswindows_output_display_block): ditto + +2000-02-02 Mike Alexander <mta@arbortext.com> + + Note: Some of these were committed by accident as part of other + patches. + + * regex.c (regex_compile): Avoid compiler warnings. + + * ntproc.c (sys_spawnve): Avoid compiler warnings. + + * nt.h: Declare term_ntproc correctly. + + * nt.c: Remove incorrect declaration of get_home_directory which + is declared correctly in lisp.h. + + * keymap.c (get_keyelt): Avoid compiler warnings. + (raw_lookup_key_mapper): Avoid compiler warnings. + + * gutter.c (gutter_was_visible): Add return statement to avoid warning. + + * glyphs-eimage.c (png_instantiate): Avoid compiler warnings. + + * filemode.c (mode_string): Avoid compiler warnings. + + * file-coding.c (Fcoding_system_aliasee): Add return statement to + avoid warning. + + * events-mod.h: Undef some things that winuser.h defines differently. + + * data.c (Faset): Avoid compiler warnings. + + * alloc.c (Fmake_byte_code): Avoid compiler warnings. + +2000-03-03 Jan Vroonhof <vroonhof@math.ethz.ch> + + * sound.c (Fplay_sound_file): Wrap ESD in start/stop_interrupts. + Fall through to simple beep on error. + Replace "extern" by real header file. + + * linuxplay.c: Use nativesound.h + (play_sound_data): Return error code. Be less verbose on error. + + * sunplay.c: Use nativesound.h + (play_sound_data): Return error code. Be less verbose on error. + + * ntplay.c: Use nativesound.h + (play_sound_data): Return fake error code + + * sgiplay.c: Use nativesound.h + (play_sound_data): Return error code + + * hpplay.c: Use nativesound.h, partially implement + new error code. Break compilation until finished. + (play_sound_data): error code. + + * nativesound.h (play_sound_file): + (play_sound_data): Prototype in new header. + +2000-03-31 Andy Piper <andy@xemacs.org> + + * glyphs-widget.c: (button_query_geometry): new function. Adjust + for toggle and radio buttons. + (image_instantiator_buttons): use it. + +2000-03-03 Jan Vroonhof <vroonhof@math.ethz.ch> + + * scrollbar-x.c (x_update_vertical_scrollbar_callback): + (x_update_horizontal_scrollbar_callback): Return if no mirror was + found. Scrollbar event probably belonged to some old config. + +2000-03-31 Andy Piper <andy@xemacs.org> + + * glyphs-widget.c (widget_instantiate): use LAYOUT_VERTICAL rather + than 1. + (initialize_widget_image_instance): default layout to + LAYOUT_HORIZONTAL rather than 0. + (widget_instantiate): reverse the item list at the end rather than + every iteration. + (layout_layout): re-code for the border text at the front of the + item list rather than at the end. + (layout_query_geometry): ditto. Pick up fixed and dynamic sizes + provided by the user. + (widget_query_geometry): comment. + +2000-03-30 Andy Piper <andy@xemacs.org> + + * glyphs-widget.c (image_instantiator_layout): allow standard + widget keywords in layouts. + + * gutter.c (output_gutter): cope with nil gutter contents. + + * frame.c (Fset_frame_properties): add gutter docs. + +2000-03-29 Andy Piper <andy@xemacs.org> + + * toolbar-msw.c (TBSTYLE_FLAT): add. + (mswindows_output_toolbar): minor fiddling. + +2000-03-29 Andy Piper <andy@xemacs.org> + + * gutter.c (output_gutter): force gutter size recalculation if + what we are trying to display won't fit. + (update_gutter_geometry): new function. A per-gutter version of + update_frame_gutter_geometry. + (update_frame_gutter_geometry): use it. + (redraw_exposed_gutter): add extra debugging output. + +2000-03-28 Mike Alexander <mta@arbortext.com> + + * dumper.c: Declare pdump_hFile and pdump_hMap (Windows only) + (pdump_file_unmap): Implement it on Windows + (pdump_file_get): Save alocated handles for pdump_file_unmap + +2000-03-28 Andy Piper <andy@xemacs.org> + + * gui.c (get_gui_callback): treat Quit specially. + +2000-03-27 Andy Piper <andy@xemacs.org> + + * glyphs.c (image_instantiate): be careful to check in the same + way we assigned. + +2000-03-27 Didier Verna <didier@xemacs.org> + + * config.h.in: define the proper SMART_INCLUDE macro. + handle renaming of `foo_h_path' to `foo_h_file'. + + * database.c: ditto. + + * emacs.c: ditto. + + * linuxplay.c: ditto. + + * terminfo.c: ditto. + + * tooltalk.h: ditto. + +2000-03-27 Andy Piper <andy@xemacs.org> + + * glyphs-msw.c (mswindows_update_widget): make sure the widget + gets updated whenever the face might have changed. + +2000-03-26 Mike Alexander <mta@arbortext.com> + + * dumper.c (pdump_resource_free): Fix the comment. + +2000-03-21 Olivier Galibert <galibert@pobox.com> + + * input-method-xlib.c (XIM_init_frame): Remove painful warning. + +2000-03-22 Mike Alexander <mta@arbortext.com> + + * dumper.c: Include Windows headers on Windows + (pdump_resource_free): Add a body to the function + (pdump_load): exe_name -> exe_path and add some comments. + +2000-03-25 Mike Alexander <mta@arbortext.com> + + * gui.c (copy_gui_item_tree): Return a value in all cases + +2000-03-21 Didier Verna <didier@xemacs.org> + + * config.h.in: move INCLUDE_GLUE_1 and INCLUDE_GLUE_2 here from + lwlib/config.h.in. + (SMART_INCLUDE): new macro. + (POSTGRES_INCLUDE): new macro to include postgresql headers from + the proper location. + + * postgresql.c: use it. + + * inline.c: ditto. + +2000-03-24 Andy Piper <andy@xemacs.org> + + * gutter.c (redraw_exposed_gutters): must be "in display" when we + do this. + +2000-03-24 Andy Piper <andy@xemacs.org> + + * redisplay-output.c (compare_runes): use image_instance_changed + to detect changes. Do not depend on glyphs_changed, only depend on + dirtiness. + (redisplay_output_layout): add debug messages. + (compare_runes): ditto. + + * glyphs.h: declare new functions. + (struct Lisp_Image_Instance): remove percent and associated + accessors. + + * gui.h: declare new copying functions. + + * gui.c (copy_gui_item_tree): new function. + (copy_gui_item): new function. + (gui_item_id_hash): revert to standard hash. + (gui_item_hash): ditto. + (gui_item_hash_internal): deleted. + (mark_gui_item): mark value. + (gui_item_add_keyval_pair): add value. + (gui_item_init): ditto. + (gui_add_item_keywords_to_plist): ditto. + (gui_item_equal): ditto. + (syms_of_gui): add Q_value. + + * glyphs-x.c (x_progress_gauge_update): use pending items and + value for setting the state. + (x_update_widget): don't set items from pending here. + + * glyphs-widget.c (update_widget): update items here. + (progress_gauge_set_property): use items for storing value. Put + new value in pending items. + + * glyphs-msw.c (mswindows_progress_gauge_update): use pending + items for new value. Convert percent -> value. + (mswindows_tab_control_update): don't update items here. + + * glyphs.c (Fupdate_widget_instances): use image_instance_changed. + (update_subwindow): ditto. + (image_instance_changed): new function. Compare hash values and + past and present widget items. + (image_instantiate): We more careful about where we instantiate + things. + (image_instantiate): add error checking. + + * gutter.c (syms_of_gutter): use -hook. + +2000-03-20 Yoshiki Hayashi <yoshiki@xemacs.org> + + * console-tty.c (Fset_console_tty_input_coding_system): Use + Qkeyboard. + (Fset_console_tty_output_coding_system): Use Qterminal. + (tty_init_console): Use Qkeyboard and Qterminal. + +2000-03-21 Ben Wing <ben@xemacs.org> + + * ntproc.c (create_child): remove bogus HAVE_NTGUI's. + From Mike Alexander <mta@arbortext.com>. + +2000-03-21 Ben Wing <ben@xemacs.org> + + * event-msw.c (mswindows_need_event): Horrible kludge to fix + process brokenness. Proper implementation to come. + * callproc.c: + Rename call-process-internal to old-call-process-internal. + New impl. in process.el. + +2000-03-21 Martin Buchholz <martin@xemacs.org> + + * Makefile.in.in: Coalesce HAVE_NATIVE_SOUND code fragments. + +2000-03-20 Andy Piper <andy@xemacs.org> + + * glyphs.c (full_list_hash): make hashes of the same elements in + different orders return different values. + 2000-03-20 Martin Buchholz <martin@xemacs.org> * XEmacs 21.2.32 is released. -2000-03-12 Jan Vroonhof <vroonhof@math.ethz.ch> - - * sysdep.c: Include proper headers for mmap when pdumping() - 2000-03-20 Martin Buchholz <martin@xemacs.org> - * buffer.h (DFC_ALLOCA_USE_CONVERTED_DATA): - (DFC_MALLOC_USE_CONVERTED_DATA): + * buffer.h (DFC_ALLOCA_USE_CONVERTED_DATA): + (DFC_MALLOC_USE_CONVERTED_DATA): Add aliasing-safe casts to allow use with char* or unsigned char* lvalues. - * eldap.c (Fldap_open): - (Fldap_search_basic): - (Fldap_add): - (Fldap_modify): + * eldap.c (Fldap_open): + (Fldap_search_basic): + (Fldap_add): + (Fldap_modify): Make C++-compilable. Make sure GCPRO'ed variables are initialized. Use temp variables to avoid repeated calls to Flength. 2000-03-16 Martin Buchholz <martin@xemacs.org> - * sysfile.h: - Make sure PATH_MAX is always defined. + * sysfile.h: + Make sure PATH_MAX is always defined. Include limits.h for PATH_MAX. Deprecate use of MAXPATHLEN. @@ -33,7 +683,7 @@ * emacs.c: Add reinit_vars_of_fileio. * symsinit.h: Add reinit_vars_of_fileio. * fileio.c (reinit_vars_of_fileio): New. - * fileio.c (Fmake_temp_name): + * fileio.c (Fmake_temp_name): Initialize temp_name random number from microseconds to make collisions even less likely. Initialize always at process startup time. (make-temp-name) used to return the same file name twice in @@ -173,7 +823,7 @@ * glyphs.h (struct Lisp_Image_Instance): add optimize_output flag. (IMAGE_INSTANCE_OPTIMIZE_OUTPUT): access it. - + * glyphs.c: (update_frame_subwindows): deleted. (Fupdate_widget_instances): new function for updating the dirty state of widgets that might have changed. @@ -184,7 +834,7 @@ * frame-msw.c (mswindows_size_frame_internal): remove unused variable. - * faces.h (struct face_cachel): fix comment. + * faces.h (struct face_cachel): fix comment. * event-stream.c (Fdispatch_non_command_events): new function. Process non-command events, forcing an event cycle @@ -402,7 +1052,7 @@ editfns.c (get_home_directory): Changed behavior under Windows when HOME not defined; former behavior was irretrievably broken. - + * emacs.c: * emacs.c (main_1): * emacs.c (main): @@ -434,7 +1084,7 @@ * eval.c (reinit_vars_of_eval): Added code to catch throw loops and check for a pesky bug that may be gone now. - + * event-msw.c: * event-msw.c (key_needs_default_processing_p): * event-msw.c (mswindows_wnd_proc): @@ -486,7 +1136,7 @@ added. I will think about this more.) * event-unixoid.c (poll_fds_for_input): - * lread.c (readchar): + * lread.c (readchar): * redisplay-tty.c (tty_clear_frame): * redisplay-x.c (x_get_gc): * signal.c (interrupt_signal): @@ -496,7 +1146,7 @@ * filemode.c (mode_string): Warning fixes. - + * frame-msw.c: * frame-msw.c (mswindows_size_frame_internal): Fixed the computation of frame size and position to keep the frame @@ -540,7 +1190,7 @@ * gui.c (parse_gui_item_tree_children): * gui.c (parse_gui_item_tree_list): Mule-ized. Cleanup. GCPRO addition. - + * line-number.c (buffer_line_number): * lisp.h: * lisp.h (EMACS_INT_MAX):
--- a/src/ExternalClient.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/ExternalClient.c Mon Aug 13 11:17:09 2007 +0200 @@ -46,7 +46,7 @@ #include "extw-Xt.h" #ifdef TOOLTALK -#include TT_C_H_PATH +#include TT_C_H_FILE #endif /* This is the client widget, used to communicate with an ExternalShell
--- a/src/Makefile.in.in Mon Aug 13 11:16:09 2007 +0200 +++ b/src/Makefile.in.in Mon Aug 13 11:17:09 2007 +0200 @@ -116,10 +116,6 @@ RM = rm -f -#ifdef HAVE_NATIVE_SOUND -sound_cflags=@sound_cflags@ -#endif - LWLIB_SRCDIR = ${srcdir}/../lwlib #ifdef HAVE_X_WINDOWS @@ -686,6 +682,7 @@ #endif /* ! defined (C_ALLOCA) */ #ifdef HAVE_NATIVE_SOUND +sound_cflags=@sound_cflags@ sunplay.o: ${srcdir}/sunplay.c $(CC) -c $(sound_cflags) $(cflags) ${srcdir}/sunplay.c hpplay.o: ${srcdir}/hpplay.c
--- a/src/alloc.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/alloc.c Mon Aug 13 11:17:09 2007 +0200 @@ -1082,7 +1082,8 @@ static size_t size_vector (const void *lheader) { - return offsetof (Lisp_Vector, contents[((Lisp_Vector *) lheader)->size]); + return FLEXIBLE_ARRAY_STRUCT_SIZEOF (Lisp_Vector, contents, + ((Lisp_Vector *) lheader)->size); } static int @@ -1129,7 +1130,7 @@ make_vector_internal (size_t sizei) { /* no vector_next */ - size_t sizem = offsetof (Lisp_Vector, contents[sizei]); + size_t sizem = FLEXIBLE_ARRAY_STRUCT_SIZEOF (Lisp_Vector, contents, sizei); Lisp_Vector *p = (Lisp_Vector *) alloc_lcrecord (sizem, &lrecord_vector); p->size = sizei; @@ -1292,7 +1293,7 @@ make_bit_vector_internal (size_t sizei) { size_t num_longs = BIT_VECTOR_LONG_STORAGE (sizei); - size_t sizem = offsetof (Lisp_Bit_Vector, bits[num_longs]); + size_t sizem = FLEXIBLE_ARRAY_STRUCT_SIZEOF (Lisp_Bit_Vector, bits, num_longs); Lisp_Bit_Vector *p = (Lisp_Bit_Vector *) allocate_lisp_storage (sizem); set_lheader_implementation (&p->lheader, &lrecord_bit_vector); @@ -2663,7 +2664,8 @@ total_size += len; total_storage += MALLOC_OVERHEAD + - offsetof (Lisp_Bit_Vector, bits[BIT_VECTOR_LONG_STORAGE (len)]); + FLEXIBLE_ARRAY_STRUCT_SIZEOF (Lisp_Bit_Vector, bits, + BIT_VECTOR_LONG_STORAGE (len)); num_used++; /* #### May modify next on a C_READONLY bitvector */ prev = &(bit_vector_next (v)); @@ -3140,8 +3142,9 @@ UNMARK_RECORD_HEADER (&(p->lheader)); \ num_bytes += size; \ if (!BIG_STRING_SIZE_P (size)) \ - { num_small_bytes += size; \ - num_small_used++; \ + { \ + num_small_bytes += size; \ + num_small_used++; \ } \ if (debug) \ debug_string_purity_print (p); \
--- a/src/buffer.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/buffer.c Mon Aug 13 11:17:09 2007 +0200 @@ -195,7 +195,6 @@ Lisp_Object Qdefault_directory; Lisp_Object Qkill_buffer_hook; -Lisp_Object Qrecord_buffer_hook; Lisp_Object Qrename_auto_save_file; @@ -1027,12 +1026,6 @@ /* The aconses in the Vbuffer_alist are shared with frame->buffer_alist, so this will change it in the per-frame ordering as well. */ Fsetcar (Frassq (buf, Vbuffer_alist), newname); - /* If the buffer is the selected one then this is equivalent to - recording the buffer. */ - if (EQ (Fwindow_buffer (Fselected_window (Qnil)), buf)) - { - va_run_hook_with_args (Qrecord_buffer_hook, 1, buf); - } if (NILP (current_buffer->filename) && !NILP (current_buffer->auto_save_file_name)) @@ -1420,8 +1413,6 @@ XCDR (lynk) = f->buffer_alist; f->buffer_alist = lynk; - va_run_hook_with_args (Qrecord_buffer_hook, 1, buffer); - return Qnil; } @@ -2162,7 +2153,6 @@ defsymbol (&Qmode_class, "mode-class"); defsymbol (&Qrename_auto_save_file, "rename-auto-save-file"); defsymbol (&Qkill_buffer_hook, "kill-buffer-hook"); - defsymbol (&Qrecord_buffer_hook, "record-buffer-hook"); defsymbol (&Qpermanent_local, "permanent-local"); defsymbol (&Qfirst_change_hook, "first-change-hook");
--- a/src/buffer.h Mon Aug 13 11:16:09 2007 +0200 +++ b/src/buffer.h Mon Aug 13 11:17:09 2007 +0200 @@ -198,7 +198,7 @@ int modtime; /* the value of text->modiff at the last auto-save. */ - int auto_save_modified; + long auto_save_modified; /* The time at which we detected a failure to auto-save, Or -1 if we didn't have a failure. */
--- a/src/callint.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/callint.c Mon Aug 13 11:17:09 2007 +0200 @@ -56,7 +56,7 @@ Lisp_Object Vmouse_leave_buffer_hook, Qmouse_leave_buffer_hook; #endif -Lisp_Object Qlet, QletX, Qsave_excursion; +Lisp_Object QletX, Qsave_excursion; Lisp_Object Qread_from_minibuffer; Lisp_Object Qread_file_name; @@ -993,7 +993,6 @@ defsymbol (&Qcommand_debug_status, "command-debug-status"); defsymbol (&Qenable_recursive_minibuffers, "enable-recursive-minibuffers"); - defsymbol (&Qlet, "let"); defsymbol (&QletX, "let*"); defsymbol (&Qsave_excursion, "save-excursion"); #if 0 /* ill-conceived */
--- a/src/callproc.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/callproc.c Mon Aug 13 11:17:09 2007 +0200 @@ -152,7 +152,7 @@ } #endif /* unused */ -DEFUN ("call-process-internal", Fcall_process_internal, 1, MANY, 0, /* +DEFUN ("old-call-process-internal", Fold_call_process_internal, 1, MANY, 0, /* Call PROGRAM synchronously in separate process, with coding-system specified. Arguments are (PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS). @@ -906,7 +906,7 @@ void syms_of_callproc (void) { - DEFSUBR (Fcall_process_internal); + DEFSUBR (Fold_call_process_internal); DEFSUBR (Fgetenv); }
--- a/src/config.h.in Mon Aug 13 11:16:09 2007 +0200 +++ b/src/config.h.in Mon Aug 13 11:17:09 2007 +0200 @@ -26,6 +26,7 @@ #ifndef _SRC_CONFIG_H_ #define _SRC_CONFIG_H_ + /* alloca twiddling belongs in one place, not the s&m headers AIX requires this to be the first thing in the file. */ #undef HAVE_ALLOCA_H @@ -43,6 +44,32 @@ #endif /* C code */ +/* Use SMART_INCLUDE to generate #include statements with variable paths. + + #### WARNING: NEVER EVER PUT A SPACE BETWEEN THE ARGUMENTS OF THE + `SMART_INCLUDE' MACRO: when the simple (direct version) is defined, you + would end up with a space in your header filename. + + Since the effect of macro expansion in #include statements is underspecified + in the C standard, and rarely used in source code, different compilers need + different implementations of SMART_INCLUDE (e.g. gcc 2.5.8 and AIX xlc). +*/ +#undef SMART_INCLUDE_INDIRECTIONS + +#if SMART_INCLUDE_INDIRECTIONS == 0 +# define SMART_INCLUDE(path,file) <path/file> +#elif SMART_INCLUDE_INDIRECTIONS == 1 +# define GLUE_INCLUDE(path,file) <##path##/##file##> +# define SMART_INCLUDE(path,file) GLUE_INCLUDE(path,file) +#elif SMART_INCLUDE_INDIRECTIONS == 2 +# define GLUE_INCLUDE_2(path,file) <##path##/##file##> +# define GLUE_INCLUDE_1(path,file) GLUE_INCLUDE_2(path,file) +# define SMART_INCLUDE(path,file) GLUE_INCLUDE_1(path,file) +#else +# error SMART_INCLUDE_INDIRECTIONS was not properly defined by configure +#endif + + /* Use this to add code in a structured way to FSF-maintained source files so as to make it obvious where XEmacs changes are. */ #define XEMACS 1 @@ -377,7 +404,7 @@ /* Compile in support for Berkeley DB style databases? May require libdb. */ #undef HAVE_BERKELEY_DB /* Full #include file path for Berkeley DB's db.h */ -#undef DB_H_PATH +#undef DB_H_FILE /* Do we have either DBM or Berkeley DB database support? */ #undef HAVE_DATABASE @@ -397,6 +424,12 @@ */ #undef HAVE_POSTGRESQL #undef HAVE_POSTGRESQLV7 +#undef POSTGRES_H_PATH +#if defined POSTGRES_H_PATH +# define POSTGRES_INCLUDE(file) SMART_INCLUDE (POSTGRES_H_PATH,file) +#else +# define POSTGRES_INCLUDE(file) <file> +#endif /* Do you have the Xauth library present? This will add some extra functionality to gnuserv. */ @@ -408,8 +441,8 @@ /* Compile in support for ncurses? */ #undef HAVE_NCURSES /* Full #include file paths for ncurses' curses.h and term.h. */ -#undef CURSES_H_PATH -#undef TERM_H_PATH +#undef CURSES_H_FILE +#undef TERM_H_FILE /* Define USE_ASSERTIONS if you want the abort() to be changed to assert(). If the assertion fails, assert_failed() will be called. This is @@ -460,6 +493,10 @@ debugging the byte compiler. */ #undef ERROR_CHECK_BYTE_CODE +/* Minor sanity checking of glyphs, especially subwindows and + widgets. */ +#undef ERROR_CHECK_GLYPHS + /* Define DEBUG_XEMACS if you want extra debugging code compiled in. This is mainly intended for use by developers. */ #undef DEBUG_XEMACS @@ -539,10 +576,14 @@ /* Enable special GNU Make features in the Makefiles. */ #undef USE_GNU_MAKE -/* Debugging option: Don't automatically rebuild the DOC file. - This saves a lot of time when you're repeatedly - compiling-running-crashing. */ -#undef NO_DOC_FILE +/* Debugging development option: Remove inessential but time consuming + actions from happening during build. This saves a lot of time when + you're repeatedly compiling-running-crashing. This (1) doesn't + garbage-collect after loading each file during dumping, and (2) + doesn't automatically rebuild the DOC file. (Remove it by hand to + get it rebuilt.) + */ +#undef QUICK_BUILD /* Defined by AC_C_CONST in configure.in */ #undef const @@ -621,7 +662,7 @@ "SUNWaudmo" package.) */ #undef HAVE_NATIVE_SOUND /* Native sound may be provided via soundcard.h, in various directories */ -#undef SOUNDCARD_H_PATH +#undef SOUNDCARD_H_FILE /* Compile in support for NAS (Network Audio System)? NAS_NO_ERROR_JUMP means that the NAS libraries don't include some @@ -638,7 +679,7 @@ /* Compile in support for Tooltalk? */ #undef TOOLTALK /* tt_c.h might be in "Tt" or "desktop" subdirectories */ -#undef TT_C_H_PATH +#undef TT_C_H_FILE /* Toolkits used by lwlib for various widgets... */ #undef LWLIB_USES_MOTIF
--- a/src/console-msw.h Mon Aug 13 11:16:09 2007 +0200 +++ b/src/console-msw.h Mon Aug 13 11:17:09 2007 +0200 @@ -182,7 +182,7 @@ unsigned int menu_checksum; /* Widget glyphs attached to this frame. See glyphs-msw.c */ - Lisp_Object widget_hash_table; + Lisp_Object widget_hash_table1, widget_hash_table2, widget_hash_table3; /* Frame title hash value. See frame-msw.c */ unsigned int title_checksum; @@ -212,8 +212,12 @@ #define FRAME_MSWINDOWS_MENU_HASH_TABLE(f) (FRAME_MSWINDOWS_DATA (f)->menu_hash_table) #define FRAME_MSWINDOWS_TOOLBAR_HASH_TABLE(f) \ (FRAME_MSWINDOWS_DATA (f)->toolbar_hash_table) -#define FRAME_MSWINDOWS_WIDGET_HASH_TABLE(f) \ - (FRAME_MSWINDOWS_DATA (f)->widget_hash_table) +#define FRAME_MSWINDOWS_WIDGET_HASH_TABLE1(f) \ + (FRAME_MSWINDOWS_DATA (f)->widget_hash_table1) +#define FRAME_MSWINDOWS_WIDGET_HASH_TABLE2(f) \ + (FRAME_MSWINDOWS_DATA (f)->widget_hash_table2) +#define FRAME_MSWINDOWS_WIDGET_HASH_TABLE3(f) \ + (FRAME_MSWINDOWS_DATA (f)->widget_hash_table3) #define FRAME_MSWINDOWS_TOOLBAR_CHECKSUM(f,pos) \ (FRAME_MSWINDOWS_DATA (f)->toolbar_checksum[pos]) #define FRAME_MSWINDOWS_MENU_CHECKSUM(f) (FRAME_MSWINDOWS_DATA (f)->menu_checksum) @@ -297,6 +301,7 @@ HDDEDATA hdata, DWORD dwData1, DWORD dwData2); +void mswindows_enqueue_dispatch_event (Lisp_Object event); void mswindows_enqueue_misc_user_event (Lisp_Object channel, Lisp_Object function, Lisp_Object object);
--- a/src/console-tty.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/console-tty.c Mon Aug 13 11:17:09 2007 +0200 @@ -118,11 +118,11 @@ #ifdef FILE_CODING tty_con->instream = make_decoding_input_stream (XLSTREAM (tty_con->instream), - Fget_coding_system (Vkeyboard_coding_system)); + Fget_coding_system (Qkeyboard)); Lstream_set_character_mode (XLSTREAM (tty_con->instream)); tty_con->outstream = make_encoding_output_stream (XLSTREAM (tty_con->outstream), - Fget_coding_system (Vterminal_coding_system)); + Fget_coding_system (Qterminal)); #endif /* FILE_CODING */ tty_con->terminal_type = terminal_type; tty_con->controlling_process = controlling_process; @@ -253,7 +253,7 @@ { set_decoding_stream_coding_system (XLSTREAM (CONSOLE_TTY_DATA (decode_tty_console (console))->instream), - Fget_coding_system (NILP (codesys) ? Vkeyboard_coding_system : codesys)); + Fget_coding_system (NILP (codesys) ? Qkeyboard : codesys)); return Qnil; } @@ -277,7 +277,7 @@ { set_encoding_stream_coding_system (XLSTREAM (CONSOLE_TTY_DATA (decode_tty_console (console))->outstream), - Fget_coding_system (NILP (codesys) ? Vterminal_coding_system : codesys)); + Fget_coding_system (NILP (codesys) ? Qterminal : codesys)); /* Redraw tty */ face_property_was_changed (Vdefault_face, Qfont, Qtty); return Qnil;
--- a/src/data.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/data.c Mon Aug 13 11:17:09 2007 +0200 @@ -770,7 +770,7 @@ { CHECK_CHAR_COERCE_INT (newval); if (idx >= XSTRING_CHAR_LENGTH (array)) goto range_error; - set_string_char (XSTRING (array), idx, XCHAR (newval)); + set_string_char (XSTRING (array), idx, (unsigned char) XCHAR (newval)); bump_string_modiff (array); } else
--- a/src/database.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/database.c Mon Aug 13 11:17:09 2007 +0200 @@ -53,7 +53,7 @@ #endif /* WE_DONT_NEED_QUADS */ #endif /* HAVE_INTTYPES_H */ #endif /* !(defined __GLIBC__ && __GLIBC_MINOR__ >= 1) */ -#include DB_H_PATH /* Berkeley db's header file */ +#include DB_H_FILE /* Berkeley db's header file */ #ifndef DB_VERSION_MAJOR # define DB_VERSION_MAJOR 1 #endif /* DB_VERSION_MAJOR */
--- a/src/depend Mon Aug 13 11:16:09 2007 +0200 +++ b/src/depend Mon Aug 13 11:17:09 2007 +0200 @@ -8,13 +8,13 @@ LISP_H = lisp.h config.h $(LISP_UNION_H) #ifdef HAVE_MS_WINDOWS console-msw.o: $(LISP_H) conslots.h console-msw.h console.h events.h lisp-disunion.h lisp-union.h lrecord.h opaque.h symeval.h symsinit.h systime.h -device-msw.o: $(LISP_H) buffer.h bufslots.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 lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h systime.h toolbar.h +device-msw.o: $(LISP_H) buffer.h bufslots.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 lisp-disunion.h lisp-union.h lrecord.h mule-charset.h objects-msw.h objects.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h systime.h toolbar.h dialog-msw.o: $(LISP_H) buffer.h bufslots.h conslots.h console-msw.h console.h device.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h opaque.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h dired-msw.o: $(LISP_H) buffer.h bufslots.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h ndir.h nt.h regex.h symeval.h symsinit.h sysdir.h sysfile.h sysproc.h systime.h -event-msw.o: $(LISP_H) buffer.h bufslots.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 lisp-disunion.h lisp-union.h lrecord.h lstream.h menubar-msw.h mule-charset.h objects-msw.h objects.h process.h redisplay.h scrollbar-msw.h scrollbar.h select.h specifier.h symeval.h symsinit.h sysdep.h sysfile.h sysproc.h syssignal.h systime.h systty.h syswait.h toolbar.h +event-msw.o: $(LISP_H) buffer.h bufslots.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 lisp-disunion.h lisp-union.h lrecord.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 symeval.h symsinit.h sysdep.h sysfile.h sysproc.h syssignal.h systime.h systty.h syswait.h toolbar.h frame-msw.o: $(LISP_H) buffer.h bufslots.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 lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h glyphs-msw.o: $(LISP_H) buffer.h bufslots.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 lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h objects-msw.h objects.h opaque.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysfile.h toolbar.h window.h winslots.h -gui-msw.o: $(LISP_H) conslots.h console-msw.h console.h device.h elhash.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h +gui-msw.o: $(LISP_H) buffer.h bufslots.h conslots.h console-msw.h console.h device.h elhash.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h menubar-msw.o: $(LISP_H) buffer.h bufslots.h commands.h conslots.h console-msw.h console.h device.h elhash.h events.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h menubar-msw.h menubar.h mule-charset.h opaque.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h objects-msw.o: $(LISP_H) buffer.h bufslots.h conslots.h console-msw.h console.h device.h hash.h insdel.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h objects-msw.h objects.h specifier.h symeval.h symsinit.h redisplay-msw.o: $(LISP_H) buffer.h bufslots.h conslots.h console-msw.h console.h debug.h device.h events.h faces.h frame.h frameslots.h glyphs-msw.h glyphs.h gui.h gutter.h lisp-disunion.h lisp-union.h lrecord.h mule-ccl.h mule-charset.h objects-msw.h objects.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h systime.h toolbar.h window.h winslots.h @@ -25,14 +25,14 @@ #ifdef HAVE_X_WINDOWS balloon-x.o: $(LISP_H) balloon_help.h conslots.h console-x.h console.h device.h lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h xintrinsic.h console-x.o: $(LISP_H) conslots.h console-x.h console.h lisp-disunion.h lisp-union.h lrecord.h process.h redisplay.h symeval.h symsinit.h xintrinsic.h -device-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h buffer.h bufslots.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 lisp-disunion.h lisp-union.h lrecord.h mule-charset.h objects-x.h objects.h offix-types.h offix.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysfile.h systime.h toolbar.h window.h winslots.h xgccache.h xintrinsic.h xintrinsicp.h xmu.h +device-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h buffer.h bufslots.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 lisp-disunion.h lisp-union.h lrecord.h mule-charset.h objects-x.h objects.h offix-types.h offix.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.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 commands.h conslots.h console-x.h console.h device.h events.h frame.h frameslots.h glyphs.h gui-x.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h opaque.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.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 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 lisp-disunion.h lisp-union.h lrecord.h mule-charset.h objects-x.h objects.h offix-types.h offix.h redisplay.h scrollbar-x.h scrollbar.h specifier.h symeval.h symsinit.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 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 lisp-disunion.h lisp-union.h lrecord.h mule-charset.h objects-x.h objects.h offix-types.h offix.h redisplay.h scrollbar-x.h scrollbar.h specifier.h symeval.h symsinit.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 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 lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h objects-x.h objects.h opaque.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.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 conslots.h console-x.h console.h device.h frame.h frameslots.h glyphs.h gui-x.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h opaque.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h xintrinsic.h input-method-xfs.o: $(LISP_H) EmacsFrame.h buffer.h bufslots.h conslots.h console-x.h console.h device.h events.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h xintrinsic.h input-method-xlib.o: $(LISP_H) EmacsFrame.h buffer.h bufslots.h conslots.h console-x.h console.h device.h events.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h xintrinsic.h -menubar-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h buffer.h bufslots.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 lisp-disunion.h lisp-union.h lrecord.h mule-charset.h opaque.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.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 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 lisp-disunion.h lisp-union.h lrecord.h menubar.h mule-charset.h opaque.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h xintrinsic.h objects-x.o: $(LISP_H) buffer.h bufslots.h conslots.h console-x.h console.h device.h insdel.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h objects-x.h objects.h specifier.h symeval.h symsinit.h xintrinsic.h redisplay-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h EmacsFrameP.h buffer.h bufslots.h conslots.h console-x.h console.h debug.h device.h faces.h file-coding.h frame.h frameslots.h glyphs-x.h glyphs.h gui.h gutter.h lisp-disunion.h lisp-union.h lrecord.h mule-ccl.h mule-charset.h objects-x.h objects.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysproc.h systime.h toolbar.h window.h winslots.h xgccache.h xintrinsic.h xintrinsicp.h xmprimitivep.h scrollbar-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h conslots.h console-x.h console.h device.h frame.h frameslots.h glyphs-x.h glyphs.h gui-x.h gui.h lisp-disunion.h lisp-union.h lrecord.h redisplay.h scrollbar-x.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h xintrinsic.h @@ -62,7 +62,7 @@ EmacsShell-sub.o: EmacsShell.h EmacsShellP.h config.h xintrinsic.h xintrinsicp.h EmacsShell.o: EmacsShell.h ExternalShell.h config.h xintrinsicp.h abbrev.o: $(LISP_H) buffer.h bufslots.h chartab.h commands.h insdel.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h symeval.h symsinit.h syntax.h window.h winslots.h -alloc.o: $(LISP_H) backtrace.h buffer.h bufslots.h bytecode.h chartab.h conslots.h console-stream.h console.h device.h elhash.h events.h extents.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h opaque.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysfile.h systime.h toolbar.h window.h winslots.h +alloc.o: $(LISP_H) alloc.h backtrace.h buffer.h bufslots.h bytecode.h chartab.h conslots.h console-stream.h console.h device.h dumper.h elhash.h events.h extents.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h opaque.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysfile.h systime.h toolbar.h window.h winslots.h alloca.o: config.h balloon_help.o: balloon_help.h config.h xintrinsic.h blocktype.o: $(LISP_H) blocktype.h lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h @@ -89,21 +89,22 @@ doc.o: $(LISP_H) buffer.h bufslots.h bytecode.h insdel.h keymap.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h symeval.h symsinit.h sysfile.h doprnt.o: $(LISP_H) buffer.h bufslots.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h symeval.h symsinit.h dragdrop.o: $(LISP_H) dragdrop.h lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h +dumper.o: $(LISP_H) alloc.h conslots.h console-stream.h console.h dump-id.h dumper.h elhash.h lisp-disunion.h lisp-union.h lrecord.h specifier.h symeval.h symsinit.h sysfile.h dynarr.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h ecrt0.o: config.h editfns.o: $(LISP_H) buffer.h bufslots.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 lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysfile.h syspwd.h systime.h toolbar.h window.h winslots.h eldap.o: $(LISP_H) buffer.h bufslots.h eldap.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h opaque.h symeval.h symsinit.h sysdep.h elhash.o: $(LISP_H) bytecode.h elhash.h lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h -emacs.o: $(LISP_H) backtrace.h buffer.h bufslots.h commands.h conslots.h console.h device.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h paths.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysdll.h sysfile.h syssignal.h systime.h systty.h toolbar.h +emacs.o: $(LISP_H) backtrace.h buffer.h bufslots.h commands.h conslots.h console.h device.h dump-id.h dumper.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h paths.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysdll.h sysfile.h syssignal.h systime.h systty.h toolbar.h emodules.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h emodules.h file-coding.h frame.h frameslots.h glyphs.h gui.h insdel.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysdll.h toolbar.h window.h winslots.h esd.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h miscplay.h symeval.h symsinit.h eval.o: $(LISP_H) backtrace.h buffer.h bufslots.h bytecode.h commands.h conslots.h console.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h opaque.h symeval.h symsinit.h -event-Xt.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h blocktype.h buffer.h bufslots.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 lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h objects-x.h objects.h offix-types.h offix.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysproc.h syssignal.h systime.h systty.h toolbar.h xintrinsic.h xintrinsicp.h -event-stream.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h blocktype.h buffer.h bufslots.h commands.h conslots.h console-x.h console.h device.h elhash.h events-mod.h events.h file-coding.h frame.h frameslots.h glyphs.h gui-x.h gui.h insdel.h keymap.h lisp-disunion.h lisp-union.h lrecord.h lstream.h macros.h mule-charset.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysfile.h syssignal.h systime.h toolbar.h window.h winslots.h xintrinsic.h +event-Xt.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h Emacs.ad.h EmacsFrame.h blocktype.h buffer.h bufslots.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 lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h objects-x.h objects.h offix-types.h offix.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysproc.h syssignal.h systime.h systty.h toolbar.h xintrinsic.h xintrinsicp.h +event-stream.o: $(LISP_H) blocktype.h buffer.h bufslots.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 lisp-disunion.h lisp-union.h lrecord.h lstream.h macros.h menubar.h mule-charset.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysfile.h syssignal.h systime.h toolbar.h window.h winslots.h event-tty.o: $(LISP_H) conslots.h console-tty.h console.h device.h events.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysproc.h syssignal.h systime.h systty.h syswait.h toolbar.h event-unixoid.o: $(LISP_H) conslots.h console-stream.h console-tty.h console.h device.h events.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h process.h symeval.h symsinit.h sysdep.h sysfile.h sysproc.h syssignal.h systime.h systty.h events.o: $(LISP_H) buffer.h bufslots.h conslots.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 lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h syssignal.h systime.h systty.h toolbar.h window.h winslots.h xintrinsic.h -extents.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h debug.h device.h elhash.h extents.h faces.h frame.h frameslots.h glyphs.h gui.h insdel.h keymap.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h opaque.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h +extents.o: $(LISP_H) buffer.h bufslots.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 lisp-disunion.h lisp-union.h lrecord.h mule-charset.h opaque.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h faces.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h elhash.h extents.h faces.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h objects.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h file-coding.o: $(LISP_H) buffer.h bufslots.h chartab.h elhash.h file-coding.h insdel.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-ccl.h mule-charset.h opaque.h symeval.h symsinit.h fileio.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h events.h file-coding.h frame.h frameslots.h glyphs.h gui.h insdel.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h ndir.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysdir.h sysfile.h sysproc.h syspwd.h systime.h toolbar.h window.h winslots.h @@ -123,41 +124,42 @@ glyphs.o: $(LISP_H) blocktype.h buffer.h bufslots.h chartab.h conslots.h console.h device.h elhash.h faces.h frame.h frameslots.h glyphs.h gui.h insdel.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h objects.h opaque.h rangetab.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.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 lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h process.h symeval.h symsinit.h sysdep.h sysproc.h syssignal.h systime.h systty.h -gui.o: $(LISP_H) bytecode.h elhash.h gui.h lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h +gui.o: $(LISP_H) buffer.h bufslots.h bytecode.h elhash.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h symeval.h symsinit.h gutter.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h faces.h frame.h frameslots.h glyphs.h gui.h gutter.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h hash.o: $(LISP_H) hash.h lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h hftctl.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h -hpplay.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h +hpplay.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h nativesound.h symeval.h symsinit.h imgproc.o: $(LISP_H) imgproc.h lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h indent.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h extents.h faces.h frame.h frameslots.h glyphs.h gui.h insdel.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h -inline.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h buffer.h bufslots.h bytecode.h chartab.h conslots.h console.h database.h device.h eldap.h elhash.h events.h extents.h faces.h file-coding.h frame.h frameslots.h glyphs-x.h glyphs.h gui-x.h gui.h keymap.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h objects.h opaque.h process.h rangetab.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h syntax.h systime.h toolbar.h tooltalk.h window.h winslots.h xintrinsic.h +inline.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h buffer.h bufslots.h bytecode.h chartab.h conslots.h console.h database.h device.h eldap.h elhash.h events.h extents.h faces.h file-coding.h frame.h frameslots.h glyphs-x.h glyphs.h gui-x.h gui.h keymap.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h objects.h opaque.h postgresql.h process.h rangetab.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h syntax.h systime.h toolbar.h tooltalk.h window.h winslots.h xintrinsic.h input-method-motif.o: $(LISP_H) EmacsFrame.h conslots.h console-x.h console.h device.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h xintrinsic.h insdel.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h extents.h frame.h frameslots.h glyphs.h gui.h insdel.h line-number.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h intl.o: $(LISP_H) bytecode.h conslots.h console.h device.h lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h keymap.o: $(LISP_H) buffer.h bufslots.h bytecode.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 lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h libsst.o: $(LISP_H) libsst.h lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h line-number.o: $(LISP_H) buffer.h bufslots.h line-number.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h symeval.h symsinit.h -linuxplay.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h miscplay.h symeval.h symsinit.h sysfile.h syssignal.h +linuxplay.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h miscplay.h nativesound.h symeval.h symsinit.h sysfile.h syssignal.h lread.o: $(LISP_H) buffer.h bufslots.h bytecode.h elhash.h file-coding.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h opaque.h symeval.h symsinit.h sysfile.h sysfloat.h lstream.o: $(LISP_H) buffer.h bufslots.h insdel.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h symeval.h symsinit.h sysfile.h macros.o: $(LISP_H) buffer.h bufslots.h commands.h conslots.h console.h device.h events.h frame.h frameslots.h glyphs.h gui.h keymap.h lisp-disunion.h lisp-union.h lrecord.h macros.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h malloc.o: config.h getpagesize.h marker.o: $(LISP_H) buffer.h bufslots.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h symeval.h symsinit.h md5.o: $(LISP_H) buffer.h bufslots.h file-coding.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h symeval.h symsinit.h -menubar.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h menubar.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h +menubar.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h frame.h frameslots.h glyphs.h gui.h keymap.h lisp-disunion.h lisp-union.h lrecord.h menubar.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h minibuf.o: $(LISP_H) buffer.h bufslots.h commands.h conslots.h console-stream.h console.h device.h events.h frame.h frameslots.h glyphs.h gui.h insdel.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h miscplay.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h miscplay.h symeval.h symsinit.h sysfile.h syssignal.h nas.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h sysdep.h syssignal.h nt.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h nt.h ntheap.h symeval.h symsinit.h sysfile.h sysproc.h syssignal.h systime.h ntheap.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h ntheap.h symeval.h symsinit.h -ntplay.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h sysfile.h -ntproc.o: $(LISP_H) buffer.h bufslots.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h nt.h ntheap.h process.h symeval.h symsinit.h sysfile.h sysproc.h syssignal.h systime.h syswait.h +ntplay.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h nativesound.h symeval.h symsinit.h sysfile.h +ntproc.o: $(LISP_H) buffer.h bufslots.h conslots.h console-msw.h console.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h nt.h ntheap.h process.h symeval.h symsinit.h sysfile.h sysproc.h syssignal.h systime.h syswait.h objects-tty.o: $(LISP_H) conslots.h console-tty.h console.h device.h insdel.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h objects-tty.h objects.h specifier.h symeval.h symsinit.h syssignal.h systty.h objects.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h elhash.h faces.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h objects.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h offix.o: offix-cursors.h offix-types.h offix.h xintrinsic.h opaque.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h opaque.h symeval.h symsinit.h -print.o: $(LISP_H) backtrace.h buffer.h bufslots.h bytecode.h conslots.h console-stream.h console-tty.h console.h device.h extents.h frame.h frameslots.h glyphs.h gui.h insdel.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysfile.h syssignal.h systty.h toolbar.h -process-nt.o: $(LISP_H) hash.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h process.h procimpl.h symeval.h symsinit.h sysdep.h +postgresql.o: $(LISP_H) buffer.h bufslots.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h postgresql.h symeval.h symsinit.h sysdep.h +print.o: $(LISP_H) backtrace.h buffer.h bufslots.h bytecode.h conslots.h console-msw.h console-stream.h console-tty.h console.h device.h extents.h frame.h frameslots.h glyphs.h gui.h insdel.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysfile.h syssignal.h systty.h toolbar.h +process-nt.o: $(LISP_H) conslots.h console-msw.h console.h hash.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h process.h procimpl.h symeval.h symsinit.h sysdep.h process-unix.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h events.h file-coding.h frame.h frameslots.h glyphs.h gui.h hash.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h opaque.h process.h procimpl.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysfile.h sysproc.h syssignal.h systime.h systty.h syswait.h toolbar.h window.h winslots.h process.o: $(LISP_H) buffer.h bufslots.h commands.h conslots.h console.h device.h events.h file-coding.h frame.h frameslots.h glyphs.h gui.h hash.h insdel.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h opaque.h process.h procimpl.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysfile.h sysproc.h syssignal.h systime.h systty.h syswait.h toolbar.h window.h winslots.h profile.o: $(LISP_H) backtrace.h bytecode.h elhash.h hash.h lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h syssignal.h systime.h @@ -174,14 +176,14 @@ sgiplay.o: $(LISP_H) libst.h lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h sheap.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h sheap-adjust.h symeval.h symsinit.h signal.o: $(LISP_H) conslots.h console.h device.h events.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h syssignal.h systime.h toolbar.h -sound.o: $(LISP_H) buffer.h bufslots.h conslots.h console-x.h console.h device.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h symeval.h symsinit.h sysdep.h xintrinsic.h +sound.o: $(LISP_H) buffer.h bufslots.h conslots.h console-x.h console.h device.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h nativesound.h redisplay.h symeval.h symsinit.h sysdep.h xintrinsic.h specifier.o: $(LISP_H) buffer.h bufslots.h chartab.h conslots.h console.h device.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h opaque.h rangetab.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h strcat.o: config.h strcmp.o: config.h strcpy.o: config.h strftime.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h sunOS-fix.o: config.h -sunplay.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h sysdep.h syssignal.h +sunplay.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h nativesound.h symeval.h symsinit.h sysdep.h syssignal.h sunpro.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h symbols.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h elhash.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h symeval.h symsinit.h syntax.o: $(LISP_H) buffer.h bufslots.h chartab.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h symeval.h symsinit.h syntax.h
--- a/src/dialog-x.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/dialog-x.c Mon Aug 13 11:17:09 2007 +0200 @@ -51,10 +51,14 @@ Lisp_Object text_field_callback; char *text_field_value = wv->value; VOID_TO_LISP (text_field_callback, wv->call_data); + text_field_callback = XCAR (XCDR (text_field_callback)); if (text_field_value) { - void *tmp = LISP_TO_VOID (list2 (text_field_callback, - build_string (text_field_value))); + void *tmp = + LISP_TO_VOID (cons3 (Qnil, + list2 (text_field_callback, + build_string (text_field_value)), + Qnil)); popup_selection_callback (0, id, (XtPointer) tmp); } } @@ -166,7 +170,8 @@ wv = xmalloc_widget_value (); gui_item = gui_parse_item_keywords (button); - if (!button_item_to_widget_value (gui_item, wv, allow_text_p, 1)) + if (!button_item_to_widget_value (Qdialog, + gui_item, wv, allow_text_p, 1, 0)) { free_widget_value_tree (wv); continue;
--- a/src/dumper.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/dumper.c Mon Aug 13 11:17:09 2007 +0200 @@ -30,9 +30,15 @@ #include "console-stream.h" #include "dumper.h" +#ifdef WINDOWSNT +#define WINDOWS_LEAN_AND_MEAN +#include <windows.h> +#define PATH_MAX MAXPATHLEN +#else #ifdef HAVE_MMAP #include <sys/mman.h> #endif +#endif #ifndef SEPCHAR #define SEPCHAR ':' @@ -100,6 +106,14 @@ char *pdump_start, *pdump_end; static size_t pdump_length; + +#ifdef WINDOWSNT +// Handle for the dump file +HANDLE pdump_hFile = INVALID_HANDLE_VALUE; +// Handle for the file mapping object for the dump file +HANDLE pdump_hMap = INVALID_HANDLE_VALUE; +#endif + void (*pdump_free) (void); static const unsigned char align_table[256] = @@ -1097,36 +1111,38 @@ } #ifdef WINDOWSNT +/* Free the mapped file if we decide we don't want it after all */ static void pdump_file_unmap(void) { + UnmapViewOfFile (pdump_start); + CloseHandle (pdump_hFile); + CloseHandle (pdump_hMap); } static int pdump_file_get(const char *path) { - HANDLE hFile; - HANDLE hMap; - hFile = CreateFile (path, - GENERIC_READ + GENERIC_WRITE, /* Required for copy on write */ - 0, /* Not shared */ - NULL, /* Not inheritable */ - OPEN_EXISTING, - FILE_ATTRIBUTE_NORMAL, - NULL); /* No template file */ - if (hFile == INVALID_HANDLE_VALUE) + pdump_hFile = CreateFile (path, + GENERIC_READ + GENERIC_WRITE, /* Required for copy on write */ + 0, /* Not shared */ + NULL, /* Not inheritable */ + OPEN_EXISTING, + FILE_ATTRIBUTE_NORMAL, + NULL); /* No template file */ + if (pdump_hFile == INVALID_HANDLE_VALUE) return 0; - pdump_length = GetFileSize (hFile, NULL); - hMap = CreateFileMapping (hFile, - NULL, /* No security attributes */ - PAGE_WRITECOPY, /* Copy on write */ - 0, /* Max size, high half */ - 0, /* Max size, low half */ - NULL); /* Unnamed */ - if (hMap == INVALID_HANDLE_VALUE) + pdump_length = GetFileSize (pdump_hFile, NULL); + pdump_hMap = CreateFileMapping (pdump_hFile, + NULL, /* No security attributes */ + PAGE_WRITECOPY, /* Copy on write */ + 0, /* Max size, high half */ + 0, /* Max size, low half */ + NULL); /* Unnamed */ + if (pdump_hMap == INVALID_HANDLE_VALUE) return 0; - pdump_start = MapViewOfFile (hMap, + pdump_start = MapViewOfFile (pdump_hMap, FILE_MAP_COPY, /* Copy on write */ 0, /* Start at zero */ 0, @@ -1135,7 +1151,15 @@ return 1; } +/* pdump_resource_free is called (via the pdump_free pointer) to release + any resources allocated by pdump_resource_get. Since the Windows API + specs specifically state that you don't need to (and shouldn't) free the + resources allocated by FindResource, LoadResource, and LockResource this + routine does nothing. */ static void pdump_resource_free (void) +{ +} + static int pdump_resource_get (void) { HRSRC hRes; /* Handle to dump resource */ @@ -1268,10 +1292,10 @@ int pdump_load(const char *argv0) { char exe_path[PATH_MAX]; +#ifdef WINDOWSNT + GetModuleFileName (NULL, exe_path, PATH_MAX); +#else /* !WINDOWSNT */ char *w; -#ifdef WINDOWSNT - GetModuleFileName (NULL, exe_name, PATH_MAX); -#else /* !WINDOWSNT */ const char *dir, *p; dir = argv0;
--- a/src/emacs.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/emacs.c Mon Aug 13 11:17:09 2007 +0200 @@ -67,7 +67,7 @@ #endif #ifdef TOOLTALK -#include TT_C_H_PATH +#include TT_C_H_FILE #endif #if defined (WINDOWSNT) @@ -2988,6 +2988,8 @@ malloc - check operation of malloc; gc - check garbage collection; bufpos - check buffer positions. + +quick-build - user has requested the "quick-build" configure option. */ ); Vinternal_error_checking = Qnil; #ifdef ERROR_CHECK_EXTENTS @@ -3010,6 +3012,10 @@ Vinternal_error_checking = Fcons (intern ("bufpos"), Vinternal_error_checking); #endif +#ifdef QUICK_BUILD + Vinternal_error_checking = Fcons (intern ("quick-build"), + Vinternal_error_checking); +#endif DEFVAR_CONST_LISP ("mail-lock-methods", &Vmail_lock_methods /* Mail spool locking methods supported by this instance of XEmacs.
--- a/src/eval.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/eval.c Mon Aug 13 11:17:09 2007 +0200 @@ -4641,13 +4641,13 @@ { int quitf; + ++specpdl_ptr; + ++specpdl_depth_counter; + check_quit (); /* make Vquit_flag accurate */ quitf = !NILP (Vquit_flag); Vquit_flag = Qnil; - ++specpdl_ptr; - ++specpdl_depth_counter; - while (specpdl_depth_counter != count) { --specpdl_ptr;
--- a/src/event-Xt.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/event-Xt.c Mon Aug 13 11:17:09 2007 +0200 @@ -67,7 +67,6 @@ #include "events-mod.h" -static void enqueue_Xt_dispatch_event (Lisp_Object event); static void handle_focus_event_1 (struct frame *f, int in_p); static struct event_stream *Xt_event_stream; @@ -1491,7 +1490,6 @@ #ifdef HAVE_XIM XIM_focus_event (f, in_p); #endif /* HAVE_XIM */ - /* On focus change, clear all memory of sticky modifiers to avoid non-intuitive behavior. */ clear_sticky_modifiers (XDEVICE (FRAME_DEVICE (f))); @@ -1847,8 +1845,8 @@ break; case CreateNotify: - printf ("window created\n"); break; + default: break; } @@ -2513,7 +2511,7 @@ static Lisp_Object dispatch_event_queue, dispatch_event_queue_tail; -static void +void enqueue_Xt_dispatch_event (Lisp_Object event) { enqueue_event (event, &dispatch_event_queue, &dispatch_event_queue_tail); @@ -3079,6 +3077,42 @@ /************************************************************************/ +/* handle focus changes for native widgets */ +/************************************************************************/ +static void +emacs_Xt_event_widget_focus_in (Widget w, + XEvent *event, + String *params, + Cardinal *num_params) +{ + struct frame* f = + x_any_widget_or_parent_to_frame (get_device_from_display (event->xany.display), w); + + XtSetKeyboardFocus (FRAME_X_SHELL_WIDGET (f), w); +} + +static void +emacs_Xt_event_widget_focus_out (Widget w, + XEvent *event, + String *params, + Cardinal *num_params) +{ +} + +static XtActionsRec widgetActionsList[] = +{ + {"widget-focus-in", emacs_Xt_event_widget_focus_in }, + {"widget-focus-out", emacs_Xt_event_widget_focus_out }, +}; + +static void +emacs_Xt_event_add_widget_actions (XtAppContext ctx) +{ + XtAppAddActions (ctx, widgetActionsList, 2); +} + + +/************************************************************************/ /* initialization */ /************************************************************************/ @@ -3214,6 +3248,8 @@ NULL, 0, XtCacheByDisplay, EmacsFreeXIMStyles); #endif /* XIM_XLIB */ + /* Add extra actions to native widgets to handle focus and friends. */ + emacs_Xt_event_add_widget_actions (Xt_app_con); /* insert the visual inheritance patch/hack described above */ orig_shell_init_proc = shellClassRec.core_class.initialize;
--- a/src/event-msw.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/event-msw.c Mon Aug 13 11:17:09 2007 +0200 @@ -870,7 +870,7 @@ /* * Add an emacs event to the proper dispatch queue */ -static void +void mswindows_enqueue_dispatch_event (Lisp_Object event) { int user_p = mswindows_user_event_p (XEVENT(event)); @@ -1472,9 +1472,21 @@ mswindows_waitable_handles [ix] = mswindows_waitable_handles [--mswindows_waitable_count]; kick_status_notify (); - /* Have to return something: there may be no accompanying - process event */ - mswindows_enqueue_magic_event (NULL, XM_BUMPQUEUE); + /* We need to return a process event here so that + (1) accept-process-output will return when called on this + 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. + */ + if (!NILP (Vprocess_list)) + { + Lisp_Object vaffanculo = XCAR (Vprocess_list); + mswindows_enqueue_process_event (XPROCESS (vaffanculo)); + } + else /* trash me soon. */ + /* Have to return something: there may be no accompanying + process event */ + mswindows_enqueue_magic_event (NULL, XM_BUMPQUEUE); } } #endif
--- a/src/event-stream.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/event-stream.c Mon Aug 13 11:17:09 2007 +0200 @@ -4117,10 +4117,10 @@ be done without an undo boundary. This counter is reset as soon as a command other than self-insert-command is executed. - Programmers can also use the `self-insert-undo-magic' + Programmers can also use the `self-insert-defer-undo' property to install that behaviour on functions other than `self-insert-command', or to change the magic - number 20 to something else. */ + number 20 to something else. #### DOCUMENT THIS! */ if (SYMBOLP (leaf)) {
--- a/src/extents.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/extents.c Mon Aug 13 11:17:09 2007 +0200 @@ -465,6 +465,10 @@ EXFUN (Fextent_properties, 1); EXFUN (Fset_extent_property, 3); +/* if true, we don't want to set any redisplay flags on modeline extent + changes */ +int in_modeline_generation; + /************************************************************************/ /* Generalized gap array */ @@ -1612,7 +1616,8 @@ when we need it. (b) we don't have to update the gutters when only extents attached to buffers have changed. */ - MARK_EXTENTS_CHANGED; + if (!in_modeline_generation) + MARK_EXTENTS_CHANGED; gutter_extent_signal_changed_region_maybe (object, extent_endpoint_bufpos (extent, 0), extent_endpoint_bufpos (extent, 1));
--- a/src/extents.h Mon Aug 13 11:16:09 2007 +0200 +++ b/src/extents.h Mon Aug 13 11:17:09 2007 +0200 @@ -318,6 +318,7 @@ EXFUN (Fset_extent_parent, 2); extern int inside_undo; +extern int in_modeline_generation; struct extent_fragment *extent_fragment_new (Lisp_Object buffer_or_string, struct frame *frm);
--- a/src/faces.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/faces.c Mon Aug 13 11:17:09 2007 +0200 @@ -2030,6 +2030,8 @@ Vwidget_face = Fmake_face (Qwidget, build_string ("widget face"), Qnil); + set_specifier_fallback (Fget (Vwidget_face, Qfont, Qunbound), + Fget (Vgui_element_face, Qfont, Qunbound)); set_specifier_fallback (Fget (Vwidget_face, Qforeground, Qunbound), Fget (Vgui_element_face, Qforeground, Qunbound)); set_specifier_fallback (Fget (Vwidget_face, Qbackground, Qunbound),
--- a/src/file-coding.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/file-coding.c Mon Aug 13 11:17:09 2007 +0200 @@ -1071,6 +1071,7 @@ return aliasee; else signal_simple_error ("Symbol is not a coding system alias", alias); + return Qnil; /* To keep the compiler happy */ } static Lisp_Object
--- a/src/filelock.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/filelock.c Mon Aug 13 11:17:09 2007 +0200 @@ -34,14 +34,14 @@ Lisp_Object Qask_user_about_lock; #ifdef CLASH_DETECTION - + /* The strategy: to lock a file FN, create a symlink .#FN in FN's directory, with link data `user@host.pid'. This avoids a single mount (== failure) point for lock files. When the host in the lock data is the current host, we can check if the pid is valid with kill. - + Otherwise, we could look at a separate file that maps hostnames to reboot times to see if the remote pid can possibly be valid, since we don't want Emacs to have to communicate via pipes or sockets or @@ -63,13 +63,16 @@ Similarly, we don't worry about a possible 14-character limit on file names, because those are all the same systems that don't have symlinks. - + This is compatible with the locking scheme used by Interleaf (which has contributed this implementation for Emacs), and was designed by Ethan Jacobson, Kimbo Mundy, and others. - + --karl@cs.umb.edu/karl@hq.ileaf.com. */ +/* Note that muleization is provided by using mule-encapsulated + versions of the system calls we use like symlink(), unlink(), etc... */ + /* Here is the structure that stores information about a lock. */ @@ -90,27 +93,27 @@ /* Write the name of the lock file for FN into LFNAME. Length will be that of FN plus two more for the leading `.#' plus one for the null. */ #define MAKE_LOCK_NAME(lock, file) \ - (lock = (char *) alloca (XSTRING_LENGTH(file) + 2 + 1), \ - fill_in_lock_file_name (lock, (file))) + (lock = (char *) alloca (XSTRING_LENGTH (file) + 2 + 1), \ + fill_in_lock_file_name ((Bufbyte *) (lock), (file))) static void -fill_in_lock_file_name (lockfile, fn) - register char *lockfile; - register Lisp_Object fn; +fill_in_lock_file_name (Bufbyte *lockfile, Lisp_Object fn) { - register char *p; - - strcpy (lockfile, XSTRING_DATA(fn)); + Bufbyte *file_name = XSTRING_DATA (fn); + Bufbyte *p; + size_t dirlen; - /* Shift the nondirectory part of the file name (including the null) - right two characters. Here is one of the places where we'd have to - do something to support 14-character-max file names. */ - for (p = lockfile + strlen (lockfile); p != lockfile && *p != '/'; p--) - p[2] = *p; + for (p = file_name + XSTRING_LENGTH (fn) - 1; + p > file_name && !IS_ANY_SEP (p[-1]); + p--) + ; + dirlen = p - file_name; - /* Insert the `.#'. */ - p[1] = '.'; - p[2] = '#'; + memcpy (lockfile, file_name, dirlen); + p = lockfile + dirlen; + *(p++) = '.'; + *(p++) = '#'; + memcpy (p, file_name + dirlen, XSTRING_LENGTH (fn) - dirlen + 1); } /* Lock the lock file named LFNAME. @@ -118,21 +121,21 @@ Return 1 if successful, 0 if not. */ static int -lock_file_1 (char *lfname,int force) +lock_file_1 (char *lfname, int force) { - register int err; - char *user_name; + int err; + char *lock_info_str; char *host_name; - char *lock_info_str; + char *user_name = user_login_name (NULL); - if (STRINGP (Fuser_login_name (Qnil))) - user_name = (char *) XSTRING_DATA (Fuser_login_name (Qnil)); - else + if (user_name == NULL) user_name = ""; - if (STRINGP (Fsystem_name ())) - host_name = (char *) XSTRING_DATA (Fsystem_name ()); + + if (STRINGP (Vsystem_name)) + host_name = (char *) XSTRING_DATA (Vsystem_name); else host_name = ""; + lock_info_str = (char *)alloca (strlen (user_name) + strlen (host_name) + LOCK_PID_MAX + 5); @@ -140,7 +143,7 @@ (unsigned long) getpid ()); err = symlink (lock_info_str, lfname); - if (errno == EEXIST && force) + if (err != 0 && errno == EEXIST && force) { unlink (lfname); err = symlink (lock_info_str, lfname); @@ -157,7 +160,7 @@ static int current_lock_owner (lock_info_type *owner, char *lfname) { - int o, p, len, ret; + int len, ret; int local_owner = 0; char *at, *dot; char *lfinfo = 0; @@ -171,7 +174,7 @@ len = readlink (lfname, lfinfo, bufsize); } while (len >= bufsize); - + /* If nonexistent lock file, all is well; otherwise, got strange error. */ if (len == -1) { @@ -181,7 +184,7 @@ /* Link info exists, so `len' is its length. Null terminate. */ lfinfo[len] = 0; - + /* Even if the caller doesn't want the owner info, we still have to read it to determine return value, so allocate it. */ if (!owner) @@ -189,7 +192,7 @@ owner = (lock_info_type *) alloca (sizeof (lock_info_type)); local_owner = 1; } - + /* Parse USER@HOST.PID. If can't parse, return -1. */ /* The USER is everything before the first @. */ at = strchr (lfinfo, '@'); @@ -202,7 +205,7 @@ owner->user = (char *) xmalloc (len + 1); strncpy (owner->user, lfinfo, len); owner->user[len] = 0; - + /* The PID is everything after the last `.'. */ owner->pid = atoi (dot + 1); @@ -214,10 +217,10 @@ /* We're done looking at the link info. */ xfree (lfinfo); - + /* On current host? */ - if (STRINGP (Fsystem_name ()) - && strcmp (owner->host, XSTRING_DATA(Fsystem_name ())) == 0) + if (STRINGP (Fsystem_name ()) + && strcmp (owner->host, (char *) XSTRING_DATA (Fsystem_name ())) == 0) { if (owner->pid == getpid ()) ret = 2; /* We own it. */ @@ -236,7 +239,7 @@ here's where we'd do it. */ ret = 1; } - + /* Avoid garbage. */ if (local_owner || ret <= 0) { @@ -260,7 +263,7 @@ if (errno != EEXIST) return -1; - + locker = current_lock_owner (clasher, lfname); if (locker == 2) { @@ -299,7 +302,7 @@ /* dmoore - and can destroy current_buffer and all sorts of other mean nasty things with pointy teeth. If you call this make sure you protect things right. */ - /* Somebody updated the code in this function and removed the previous + /* Somebody updated the code in this function and removed the previous comment. -slb */ register Lisp_Object attack, orig_fn; @@ -323,7 +326,7 @@ && NILP (Fverify_visited_file_modtime (subject_buf)) && !NILP (Ffile_exists_p (fn))) call1_in_buffer (XBUFFER(subject_buf), - Qask_user_about_supersession_threat, fn); + Qask_user_about_supersession_threat, fn); } /* Try to lock the lock. */ @@ -337,7 +340,7 @@ sprintf (locker, "%s@%s (pid %lu)", lock_info.user, lock_info.host, lock_info.pid); FREE_LOCK_INFO (lock_info); - + attack = call2_in_buffer (BUFFERP (subject_buf) ? XBUFFER (subject_buf) : current_buffer, Qask_user_about_lock , fn, build_string (locker)); @@ -356,6 +359,9 @@ unlock_file (Lisp_Object fn) { register char *lfname; + struct gcpro gcpro1; + + GCPRO1 (fn); fn = Fexpand_file_name (fn, Qnil); @@ -363,28 +369,29 @@ if (current_lock_owner (0, lfname) == 2) unlink (lfname); + + UNGCPRO; } void unlock_all_files (void) { register Lisp_Object tail; - register struct buffer *b; for (tail = Vbuffer_alist; CONSP (tail); tail = XCDR (tail)) { - b = XBUFFER (XCDR (XCAR (tail))); + struct buffer *b = XBUFFER (XCDR (XCAR (tail))); if (STRINGP (b->file_truename) && BUF_SAVE_MODIFF (b) < BUF_MODIFF (b)) unlock_file (b->file_truename); } } DEFUN ("lock-buffer", Flock_buffer, 0, 1, 0, /* - Lock FILE, if current buffer is modified.\n\ -FILE defaults to current buffer's visited file,\n\ +Lock FILE, if current buffer is modified. +FILE defaults to current buffer's visited file, or else nothing is done if current buffer isn't visiting a file. */ - (file)) + (file)) { if (NILP (file)) file = current_buffer->file_truename; @@ -428,15 +435,18 @@ } DEFUN ("file-locked-p", Ffile_locked_p, 0, 1, 0, /* - Return nil if the FILENAME is not locked,\n\ +Return nil if the FILENAME is not locked, t if it is locked by you, else a string of the name of the locker. */ - (filename)) + (filename)) { Lisp_Object ret; register char *lfname; int owner; lock_info_type locker; + struct gcpro gcpro1; + + GCPRO1 (filename); filename = Fexpand_file_name (filename, Qnil); @@ -453,6 +463,8 @@ if (owner > 0) FREE_LOCK_INFO (locker); + UNGCPRO; + return ret; }
--- a/src/fns.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/fns.c Mon Aug 13 11:17:09 2007 +0200 @@ -115,8 +115,8 @@ size_bit_vector (const void *lheader) { Lisp_Bit_Vector *v = (Lisp_Bit_Vector *) lheader; - return offsetof (Lisp_Bit_Vector, - bits[BIT_VECTOR_LONG_STORAGE (bit_vector_length (v))]); + return FLEXIBLE_ARRAY_STRUCT_SIZEOF (Lisp_Bit_Vector, bits, + BIT_VECTOR_LONG_STORAGE (bit_vector_length (v))); } static const struct lrecord_description bit_vector_description[] = { @@ -3115,6 +3115,49 @@ } + + +DEFUN ("replace-list", Freplace_list, 2, 2, 0, /* +Destructively replace the list OLD with NEW. +This is like (copy-sequence NEW) except that it reuses the +conses in OLD as much as possible. If OLD and NEW are the same +length, no consing will take place. +*/ + (old, new)) +{ + Lisp_Object tail, oldtail = old, prevoldtail = Qnil; + + EXTERNAL_LIST_LOOP (tail, new) + { + if (!NILP (oldtail)) + { + CHECK_CONS (oldtail); + XCAR (oldtail) = XCAR (tail); + } + else if (!NILP (prevoldtail)) + { + XCDR (prevoldtail) = Fcons (XCAR (tail), Qnil); + prevoldtail = XCDR (prevoldtail); + } + else + old = oldtail = Fcons (XCAR (tail), Qnil); + + if (!NILP (oldtail)) + { + prevoldtail = oldtail; + oldtail = XCDR (oldtail); + } + } + + if (!NILP (prevoldtail)) + XCDR (prevoldtail) = Qnil; + else + old = Qnil; + + return old; +} + + /* #### this function doesn't belong in this file! */ DEFUN ("load-average", Fload_average, 0, 1, 0, /* @@ -3800,6 +3843,7 @@ DEFSUBR (Fmapvector); DEFSUBR (Fmapc_internal); DEFSUBR (Fmapconcat); + DEFSUBR (Freplace_list); DEFSUBR (Fload_average); DEFSUBR (Ffeaturep); DEFSUBR (Frequire);
--- a/src/frame-msw.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/frame-msw.c Mon Aug 13 11:17:09 2007 +0200 @@ -140,7 +140,11 @@ make_lisp_hash_table (50, HASH_TABLE_NON_WEAK, HASH_TABLE_EQUAL); #endif /* hashtable of instantiated glyphs on the frame. */ - FRAME_MSWINDOWS_WIDGET_HASH_TABLE (f) = + FRAME_MSWINDOWS_WIDGET_HASH_TABLE1 (f) = + make_lisp_hash_table (50, HASH_TABLE_VALUE_WEAK, HASH_TABLE_EQUAL); + FRAME_MSWINDOWS_WIDGET_HASH_TABLE2 (f) = + make_lisp_hash_table (50, HASH_TABLE_VALUE_WEAK, HASH_TABLE_EQUAL); + FRAME_MSWINDOWS_WIDGET_HASH_TABLE3 (f) = make_lisp_hash_table (50, HASH_TABLE_VALUE_WEAK, HASH_TABLE_EQUAL); /* Will initialize these in WM_SIZE handler. We cannot do it now, because we do not know what is CW_USEDEFAULT height and width */ @@ -259,7 +263,9 @@ #ifdef HAVE_TOOLBARS mark_object (FRAME_MSWINDOWS_TOOLBAR_HASH_TABLE (f)); #endif - mark_object (FRAME_MSWINDOWS_WIDGET_HASH_TABLE (f)); + mark_object (FRAME_MSWINDOWS_WIDGET_HASH_TABLE1 (f)); + mark_object (FRAME_MSWINDOWS_WIDGET_HASH_TABLE2 (f)); + mark_object (FRAME_MSWINDOWS_WIDGET_HASH_TABLE3 (f)); } static void
--- a/src/frame.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/frame.c Mon Aug 13 11:17:09 2007 +0200 @@ -2264,8 +2264,9 @@ minibuffer Gives the minibuffer behavior for this frame. Either t (frame has its own minibuffer), `only' (frame is - a minibuffer-only frame), or a window (frame uses that - window, which is on another frame, as the minibuffer). + a minibuffer-only frame), `none' (frame has no minibuffer) + or a window (frame uses that window, which is on another + frame, as the minibuffer). unsplittable If non-nil, frame cannot be split by `display-buffer'. @@ -2279,7 +2280,13 @@ left-toolbar-visible-p, right-toolbar-visible-p, toolbar-buttons-captioned-p, top-toolbar-border-width, bottom-toolbar-border-width, left-toolbar-border-width, right-toolbar-border-width, - modeline-shadow-thickness, has-modeline-p + modeline-shadow-thickness, has-modeline-p, + default-gutter, top-gutter, bottom-gutter, left-gutter, right-gutter, + default-gutter-height, default-gutter-width, top-gutter-height, + bottom-gutter-height, left-gutter-width, right-gutter-width, + default-gutter-visible-p, top-gutter-visible-p, bottom-gutter-visible-p, + left-gutter-visible-p, right-gutter-visible-p, top-gutter-border-width, + bottom-gutter-border-width, left-gutter-border-width, right-gutter-border-width, [Giving the name of any built-in specifier variable is equivalent to calling `set-specifier' on the specifier, with a locale of FRAME. Giving the name to `frame-property' @@ -2871,9 +2878,6 @@ - FRAME_REAL_BOTTOM_TOOLBAR_HEIGHT (f) - 2 * FRAME_REAL_BOTTOM_TOOLBAR_BORDER_WIDTH (f); - new_pixheight -= - (FRAME_TOP_GUTTER_BOUNDS (f) + FRAME_BOTTOM_GUTTER_BOUNDS (f)); - new_pixwidth += + FRAME_THEORETICAL_LEFT_TOOLBAR_WIDTH (f) + 2 * FRAME_THEORETICAL_LEFT_TOOLBAR_BORDER_WIDTH (f) @@ -2886,9 +2890,6 @@ - FRAME_REAL_RIGHT_TOOLBAR_WIDTH (f) - 2 * FRAME_REAL_RIGHT_TOOLBAR_BORDER_WIDTH (f); - new_pixwidth -= - (FRAME_LEFT_GUTTER_BOUNDS (f) + FRAME_RIGHT_GUTTER_BOUNDS (f)); - /* Adjust the width for the end glyph which may be a different width than the default character width. */ { @@ -2910,6 +2911,12 @@ if (new_pixheight) { + /* Adjust for gutters here so that we always get set + properly. */ + new_pixheight -= + (FRAME_TOP_GUTTER_BOUNDS (f) + + FRAME_BOTTOM_GUTTER_BOUNDS (f)); + XWINDOW (FRAME_ROOT_WINDOW (f))->pixel_top = FRAME_TOP_BORDER_END (f) + FRAME_TOP_GUTTER_BOUNDS (f); @@ -2955,6 +2962,12 @@ if (new_pixwidth) { + /* Adjust for gutters here so that we always get set + properly. */ + new_pixwidth -= + (FRAME_LEFT_GUTTER_BOUNDS (f) + + FRAME_RIGHT_GUTTER_BOUNDS (f)); + XWINDOW (FRAME_ROOT_WINDOW (f))->pixel_left = FRAME_LEFT_BORDER_END (f) + FRAME_LEFT_GUTTER_BOUNDS (f); set_window_pixwidth (FRAME_ROOT_WINDOW (f), new_pixwidth, 0);
--- a/src/frameslots.h Mon Aug 13 11:16:09 2007 +0200 +++ b/src/frameslots.h Mon Aug 13 11:17:09 2007 +0200 @@ -84,6 +84,9 @@ /* frame property list */ MARKED_SLOT (plist); + /* buffer_alist at last redisplay. */ + MARKED_SLOT (old_buffer_alist); + /* A copy of the global Vbuffer_list, to maintain a per-frame buffer ordering. The Vbuffer_list variable and the buffer_list slot of each frame contain exactly the same data, just in different orders. */
--- a/src/general.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/general.c Mon Aug 13 11:17:09 2007 +0200 @@ -66,6 +66,7 @@ Lisp_Object Qdelete; Lisp_Object Qdelq; Lisp_Object Qdevice; +Lisp_Object Qdialog; Lisp_Object Qdimension; Lisp_Object Qdisplay; Lisp_Object Qdoc_string; @@ -82,6 +83,7 @@ Lisp_Object Qfont; Lisp_Object Qframe; Lisp_Object Qfunction; +Lisp_Object Qfuncall; Lisp_Object Qgap_overhead; Lisp_Object Qgeneric; Lisp_Object Qgeometry; @@ -102,14 +104,17 @@ Lisp_Object Qkeyboard; Lisp_Object Qkeymap; Lisp_Object Qlandscape; +Lisp_Object Qlast_command; Lisp_Object Qleft; Lisp_Object Qleft_margin; +Lisp_Object Qlet; Lisp_Object Qlist; Lisp_Object Qmagic; Lisp_Object Qmalloc_overhead; Lisp_Object Qmarkers; Lisp_Object Qmax; Lisp_Object Qmemory; +Lisp_Object Qmenubar; Lisp_Object Qmessage; Lisp_Object Qminus; Lisp_Object Qmodifiers; @@ -160,6 +165,7 @@ Lisp_Object Qterminal; Lisp_Object Qtest; Lisp_Object Qtext; +Lisp_Object Qthis_command; Lisp_Object Qtimeout; Lisp_Object Qtimestamp; Lisp_Object Qtoolbar; @@ -218,6 +224,7 @@ defsymbol (&Qdelete, "delete"); defsymbol (&Qdelq, "delq"); defsymbol (&Qdevice, "device"); + defsymbol (&Qdialog, "dialog"); defsymbol (&Qdimension, "dimension"); defsymbol (&Qdisplay, "display"); defsymbol (&Qdoc_string, "doc-string"); @@ -234,6 +241,7 @@ defsymbol (&Qfont, "font"); defsymbol (&Qframe, "frame"); defsymbol (&Qfunction, "function"); + defsymbol (&Qfuncall, "funcall"); defsymbol (&Qgap_overhead, "gap-overhead"); defsymbol (&Qgeneric, "generic"); defsymbol (&Qgeometry, "geometry"); @@ -254,14 +262,17 @@ defsymbol (&Qkeyboard, "keyboard"); defsymbol (&Qkeymap, "keymap"); defsymbol (&Qlandscape, "landscape"); + defsymbol (&Qlast_command, "last-command"); defsymbol (&Qleft, "left"); defsymbol (&Qleft_margin, "left-margin"); + defsymbol (&Qlet, "let"); defsymbol (&Qlist, "list"); defsymbol (&Qmagic, "magic"); defsymbol (&Qmalloc_overhead, "malloc-overhead"); defsymbol (&Qmarkers, "markers"); defsymbol (&Qmax, "max"); defsymbol (&Qmemory, "memory"); + defsymbol (&Qmenubar, "menubar"); defsymbol (&Qmessage, "message"); defsymbol (&Qminus, "-"); defsymbol (&Qmodifiers, "modifiers"); @@ -312,6 +323,7 @@ defsymbol (&Qterminal, "terminal"); defsymbol (&Qtest, "test"); defsymbol (&Qtext, "text"); + defsymbol (&Qthis_command, "this-command"); defsymbol (&Qtimeout, "timeout"); defsymbol (&Qtimestamp, "timestamp"); defsymbol (&Qtoolbar, "toolbar");
--- a/src/glyphs-msw.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/glyphs-msw.c Mon Aug 13 11:17:09 2007 +0200 @@ -121,6 +121,42 @@ return DEVICE_MSPRINTER_HCDC (d); } +/* + * Initialize image instance pixel sizes in II. For a display bitmap, + * these will be same as real bitmap sizes. For a printer bitmap, + * these will be scaled up so that the bitmap is proportionally enlarged + * when output to printer. Redisplay code takes care of scaling, to + * conserve memory we do not really scale bitmaps. Set the watermark + * only here. + * #### Add support for unscalable bitmaps. + */ +static void init_image_instance_geometry (Lisp_Image_Instance *ii) +{ + Lisp_Object device = IMAGE_INSTANCE_DEVICE (ii); + struct device *d = XDEVICE (device); + + if (/* #### Scaleable && */ DEVICE_MSPRINTER_P (d)) + { + HDC printer_dc = DEVICE_MSPRINTER_HCDC (d); + HDC display_dc = CreateCompatibleDC (NULL); + IMAGE_INSTANCE_PIXMAP_WIDTH (ii) = + MulDiv (IMAGE_INSTANCE_MSWINDOWS_BITMAP_REAL_WIDTH (ii), + GetDeviceCaps (printer_dc, LOGPIXELSX), + GetDeviceCaps (display_dc, LOGPIXELSX)); + IMAGE_INSTANCE_PIXMAP_HEIGHT (ii) = + MulDiv (IMAGE_INSTANCE_MSWINDOWS_BITMAP_REAL_HEIGHT (ii), + GetDeviceCaps (printer_dc, LOGPIXELSY), + GetDeviceCaps (display_dc, LOGPIXELSY)); + } + else + { + IMAGE_INSTANCE_PIXMAP_WIDTH (ii) = + IMAGE_INSTANCE_MSWINDOWS_BITMAP_REAL_WIDTH (ii); + IMAGE_INSTANCE_PIXMAP_HEIGHT (ii) = + IMAGE_INSTANCE_MSWINDOWS_BITMAP_REAL_HEIGHT (ii); + } +} + #define BPLINE(width) ((int)(~3UL & (unsigned long)((width) +3))) /************************************************************************/ @@ -350,11 +386,14 @@ IMAGE_INSTANCE_MSWINDOWS_BITMAP (ii) = bitmap; IMAGE_INSTANCE_MSWINDOWS_MASK (ii) = NULL; - IMAGE_INSTANCE_PIXMAP_WIDTH (ii) = bmp_info->bmiHeader.biWidth; - IMAGE_INSTANCE_PIXMAP_HEIGHT (ii) = bmp_info->bmiHeader.biHeight; + IMAGE_INSTANCE_MSWINDOWS_BITMAP_REAL_WIDTH (ii) = + bmp_info->bmiHeader.biWidth; + IMAGE_INSTANCE_MSWINDOWS_BITMAP_REAL_HEIGHT (ii) = + bmp_info->bmiHeader.biHeight; IMAGE_INSTANCE_PIXMAP_DEPTH (ii) = bmp_info->bmiHeader.biBitCount; XSETINT (IMAGE_INSTANCE_PIXMAP_HOTSPOT_X (ii), x_hot); XSETINT (IMAGE_INSTANCE_PIXMAP_HOTSPOT_Y (ii), y_hot); + init_image_instance_geometry (ii); if (create_mask) { @@ -469,15 +508,15 @@ BITMAPINFO *bmp_info = (BITMAPINFO*) xmalloc_and_zero (sizeof (BITMAPINFO) + sizeof (RGBQUAD)); int i, j; - int height = IMAGE_INSTANCE_PIXMAP_HEIGHT (image); - - int maskbpline = BPLINE ((IMAGE_INSTANCE_PIXMAP_WIDTH (image) + 7) / 8); - int bpline = BPLINE (IMAGE_INSTANCE_PIXMAP_WIDTH (image) * 3); + int height = IMAGE_INSTANCE_MSWINDOWS_BITMAP_REAL_HEIGHT (image); + + int maskbpline = BPLINE ((IMAGE_INSTANCE_MSWINDOWS_BITMAP_REAL_WIDTH (image) + 7) / 8); + int bpline = BPLINE (IMAGE_INSTANCE_MSWINDOWS_BITMAP_REAL_WIDTH (image) * 3); if (!bmp_info) return; - bmp_info->bmiHeader.biWidth=IMAGE_INSTANCE_PIXMAP_WIDTH (image); + bmp_info->bmiHeader.biWidth=IMAGE_INSTANCE_MSWINDOWS_BITMAP_REAL_WIDTH (image); bmp_info->bmiHeader.biHeight = height; bmp_info->bmiHeader.biPlanes = 1; bmp_info->bmiHeader.biSize=sizeof(BITMAPINFOHEADER); @@ -509,10 +548,10 @@ /* build up an in-memory set of bits to mess with */ xzero (*bmp_info); - bmp_info->bmiHeader.biWidth=IMAGE_INSTANCE_PIXMAP_WIDTH (image); + bmp_info->bmiHeader.biWidth = IMAGE_INSTANCE_MSWINDOWS_BITMAP_REAL_WIDTH (image); bmp_info->bmiHeader.biHeight = -height; bmp_info->bmiHeader.biPlanes = 1; - bmp_info->bmiHeader.biSize=sizeof(BITMAPINFOHEADER); + bmp_info->bmiHeader.biSize = sizeof(BITMAPINFOHEADER); bmp_info->bmiHeader.biBitCount = 24; bmp_info->bmiHeader.biCompression = BI_RGB; bmp_info->bmiHeader.biClrUsed = 0; @@ -534,7 +573,7 @@ /* now set the colored bits in the mask and transparent ones to black in the original */ - for (i=0; i<IMAGE_INSTANCE_PIXMAP_WIDTH (image); i++) + for (i = 0; i < IMAGE_INSTANCE_MSWINDOWS_BITMAP_REAL_WIDTH (image); i++) { for (j=0; j<height; j++) { @@ -627,8 +666,8 @@ { return create_resized_bitmap (IMAGE_INSTANCE_MSWINDOWS_BITMAP (ii), f, - IMAGE_INSTANCE_PIXMAP_WIDTH (ii), - IMAGE_INSTANCE_PIXMAP_HEIGHT (ii), + IMAGE_INSTANCE_MSWINDOWS_BITMAP_REAL_WIDTH (ii), + IMAGE_INSTANCE_MSWINDOWS_BITMAP_REAL_HEIGHT (ii), newx, newy); } @@ -642,12 +681,14 @@ return create_resized_bitmap (IMAGE_INSTANCE_MSWINDOWS_MASK (ii), f, - IMAGE_INSTANCE_PIXMAP_WIDTH (ii), - IMAGE_INSTANCE_PIXMAP_HEIGHT (ii), + IMAGE_INSTANCE_MSWINDOWS_BITMAP_REAL_WIDTH (ii), + IMAGE_INSTANCE_MSWINDOWS_BITMAP_REAL_HEIGHT (ii), newx, newy); } #if 0 /* Currently unused */ +/* #### Warining: This function is not correct anymore with + resizable printer bitmaps. If you uncomment it, clean it. --kkm */ int mswindows_resize_dibitmap_instance (Lisp_Image_Instance* ii, struct frame* f, @@ -1289,11 +1330,12 @@ mswindows_initialize_dibitmap_image_instance (ii, 1, iitype); IMAGE_INSTANCE_PIXMAP_FILENAME (ii) = file; - IMAGE_INSTANCE_PIXMAP_WIDTH (ii) = + IMAGE_INSTANCE_MSWINDOWS_BITMAP_REAL_WIDTH (ii) = GetSystemMetrics (type == IMAGE_CURSOR ? SM_CXCURSOR : SM_CXICON); - IMAGE_INSTANCE_PIXMAP_HEIGHT (ii) = + IMAGE_INSTANCE_MSWINDOWS_BITMAP_REAL_HEIGHT (ii) = GetSystemMetrics (type == IMAGE_CURSOR ? SM_CYCURSOR : SM_CYICON); IMAGE_INSTANCE_PIXMAP_DEPTH (ii) = 1; + init_image_instance_geometry (ii); /* hey, we've got an icon type thing so we can reverse engineer the bitmap and mask */ @@ -1762,11 +1804,13 @@ IMAGE_INSTANCE_PIXMAP_FILENAME (ii) = find_keyword_in_vector (instantiator, Q_file); - IMAGE_INSTANCE_PIXMAP_WIDTH (ii) = width; - IMAGE_INSTANCE_PIXMAP_HEIGHT (ii) = height; + IMAGE_INSTANCE_MSWINDOWS_BITMAP_REAL_WIDTH (ii) = width; + IMAGE_INSTANCE_MSWINDOWS_BITMAP_REAL_HEIGHT (ii) = height; IMAGE_INSTANCE_PIXMAP_DEPTH (ii) = 1; XSETINT (IMAGE_INSTANCE_PIXMAP_HOTSPOT_X (ii), 0); XSETINT (IMAGE_INSTANCE_PIXMAP_HOTSPOT_Y (ii), 0); + init_image_instance_geometry (ii); + IMAGE_INSTANCE_MSWINDOWS_MASK (ii) = mask ? mask : xbm_create_bitmap_from_data (hdc, (Extbyte *) bits, width, height, TRUE, black, white); @@ -2166,7 +2210,11 @@ mswindows_update_widget (Lisp_Image_Instance *p) { /* Possibly update the face font and colors. */ - if (IMAGE_INSTANCE_WIDGET_FACE_CHANGED (p)) + if (IMAGE_INSTANCE_WIDGET_FACE_CHANGED (p) + || + XFRAME (IMAGE_INSTANCE_SUBWINDOW_FRAME (p))->faces_changed + || + IMAGE_INSTANCE_WIDGET_ITEMS_CHANGED (p)) { /* set the widget font from the widget face */ SendMessage (WIDGET_INSTANCE_MSWINDOWS_HANDLE (p), @@ -2198,23 +2246,28 @@ callbacks. The hashtable is weak so deregistration is handled automatically */ static int -mswindows_register_gui_item (Lisp_Object gui, Lisp_Object domain) +mswindows_register_gui_item (Lisp_Object image_instance, + Lisp_Object gui, Lisp_Object domain) { Lisp_Object frame = FW_FRAME (domain); struct frame* f = XFRAME (frame); - int id = gui_item_id_hash (FRAME_MSWINDOWS_WIDGET_HASH_TABLE (f), + int id = gui_item_id_hash (FRAME_MSWINDOWS_WIDGET_HASH_TABLE2 (f), gui, WIDGET_GLYPH_SLOT); - Fputhash (make_int (id), - XGUI_ITEM (gui)->callback, - FRAME_MSWINDOWS_WIDGET_HASH_TABLE (f)); + Fputhash (make_int (id), image_instance, + FRAME_MSWINDOWS_WIDGET_HASH_TABLE1 (f)); + Fputhash (make_int (id), XGUI_ITEM (gui)->callback, + FRAME_MSWINDOWS_WIDGET_HASH_TABLE2 (f)); + Fputhash (make_int (id), XGUI_ITEM (gui)->callback_ex, + FRAME_MSWINDOWS_WIDGET_HASH_TABLE3 (f)); return id; } static int mswindows_register_widget_instance (Lisp_Object instance, Lisp_Object domain) { - return mswindows_register_gui_item (XIMAGE_INSTANCE_WIDGET_ITEM (instance), + return mswindows_register_gui_item (instance, + XIMAGE_INSTANCE_WIDGET_ITEM (instance), domain); } @@ -2361,7 +2414,7 @@ style = pgui->style; - if (!NILP (pgui->callback)) + if (!NILP (pgui->callback) || !NILP (pgui->callback_ex)) { id = mswindows_register_widget_instance (image_instance, domain); } @@ -2567,7 +2620,8 @@ if (GUI_ITEMP (item)) { - tvitem.item.lParam = mswindows_register_gui_item (item, domain); + tvitem.item.lParam = mswindows_register_gui_item (image_instance, + item, domain); tvitem.item.mask |= TVIF_PARAM; TO_EXTERNAL_FORMAT (LISP_STRING, XGUI_ITEM (item)->name, C_STRING_ALLOCA, tvitem.item.pszText, @@ -2649,7 +2703,8 @@ if (GUI_ITEMP (item)) { - tvitem.lParam = mswindows_register_gui_item (item, domain); + tvitem.lParam = mswindows_register_gui_item (image_instance, + item, domain); tvitem.mask |= TCIF_PARAM; TO_EXTERNAL_FORMAT (LISP_STRING, XGUI_ITEM (item)->name, C_STRING_ALLOCA, tvitem.pszText, @@ -2726,13 +2781,8 @@ /* delete the pre-existing items */ SendMessage (wnd, TCM_DELETEALLITEMS, 0, 0); - /* Pick up the items we recorded earlier. We do this here so - that the callbacks get set up with the new items. */ - IMAGE_INSTANCE_WIDGET_ITEMS (ii) = - IMAGE_INSTANCE_WIDGET_PENDING_ITEMS (ii); - IMAGE_INSTANCE_WIDGET_PENDING_ITEMS (ii) = Qnil; /* add items to the tab */ - LIST_LOOP (rest, XCDR (IMAGE_INSTANCE_WIDGET_ITEMS (ii))) + LIST_LOOP (rest, XCDR (IMAGE_INSTANCE_WIDGET_PENDING_ITEMS (ii))) { add_tab_item (image_instance, wnd, XCAR (rest), IMAGE_INSTANCE_SUBWINDOW_FRAME (ii), i); @@ -2881,11 +2931,18 @@ { Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); - if (IMAGE_INSTANCE_WIDGET_PERCENT_CHANGED (ii)) + if (IMAGE_INSTANCE_WIDGET_ITEMS_CHANGED (ii)) { - /* #### I'm not convinced we should store this in the plist. */ - Lisp_Object val = Fplist_get (IMAGE_INSTANCE_WIDGET_PROPS (ii), - Q_percent, Qnil); + Lisp_Object val; +#ifdef ERROR_CHECK_GLYPHS + assert (GUI_ITEMP (IMAGE_INSTANCE_WIDGET_PENDING_ITEMS (ii))); +#endif + val = XGUI_ITEM (IMAGE_INSTANCE_WIDGET_PENDING_ITEMS (ii))->value; +#ifdef DEBUG_WIDGET_OUTPUT + printf ("progress gauge displayed value on %p updated to %ld\n", + WIDGET_INSTANCE_MSWINDOWS_HANDLE (ii), + XINT(val)); +#endif CHECK_INT (val); SendMessage (WIDGET_INSTANCE_MSWINDOWS_HANDLE (ii), PBM_SETPOS, (WPARAM)XINT (val), 0);
--- a/src/glyphs-msw.h Mon Aug 13 11:16:09 2007 +0200 +++ b/src/glyphs-msw.h Mon Aug 13 11:17:09 2007 +0200 @@ -36,6 +36,7 @@ { HBITMAP* bitmaps; HICON icon; + int real_width, real_height; }; #define MSWINDOWS_IMAGE_INSTANCE_DATA(i) \ @@ -51,6 +52,10 @@ (*(HBITMAP*)&(IMAGE_INSTANCE_PIXMAP_MASK (i))) /* Make it lvalue */ #define IMAGE_INSTANCE_MSWINDOWS_ICON(i) \ (MSWINDOWS_IMAGE_INSTANCE_DATA (i)->icon) +#define IMAGE_INSTANCE_MSWINDOWS_BITMAP_REAL_WIDTH(i) \ + (MSWINDOWS_IMAGE_INSTANCE_DATA (i)->real_width) +#define IMAGE_INSTANCE_MSWINDOWS_BITMAP_REAL_HEIGHT(i) \ + (MSWINDOWS_IMAGE_INSTANCE_DATA (i)->real_height) #define XIMAGE_INSTANCE_MSWINDOWS_BITMAP(i) \ IMAGE_INSTANCE_MSWINDOWS_BITMAP (XIMAGE_INSTANCE (i))
--- a/src/glyphs-widget.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/glyphs-widget.c Mon Aug 13 11:17:09 2007 +0200 @@ -57,8 +57,10 @@ Lisp_Object Qlayout; Lisp_Object Q_descriptor, Q_height, Q_width, Q_properties, Q_items; -Lisp_Object Q_image, Q_text, Q_percent, Q_orientation, Q_justify, Q_border; +Lisp_Object Q_image, Q_text, Q_orientation, Q_justify, Q_border; Lisp_Object Qetched_in, Qetched_out, Qbevel_in, Qbevel_out; +Lisp_Object Vwidget_callback_current_channel; +Lisp_Object Qwidget_callback_current_channel; #ifdef DEBUG_WIDGETS int debug_widget_instances; @@ -356,6 +358,14 @@ IMAGE_INSTANCE_WIDGET_TYPE (ii), ERROR_ME_NOT); MAYBE_IIFORMAT_METH (meths, update, (widget)); + + /* Pick up the items we recorded earlier. */ + if (IMAGE_INSTANCE_WIDGET_ITEMS_CHANGED (ii)) + { + IMAGE_INSTANCE_WIDGET_ITEMS (ii) = + IMAGE_INSTANCE_WIDGET_PENDING_ITEMS (ii); + IMAGE_INSTANCE_WIDGET_PENDING_ITEMS (ii) = Qnil; + } } /* Query for a widgets desired geometry. If no type specific method is @@ -511,7 +521,7 @@ IMAGE_INSTANCE_WIDGET_HEIGHT_SUBR (ii) = Qnil; IMAGE_INSTANCE_SUBWINDOW_H_RESIZEP (ii) = 1; IMAGE_INSTANCE_SUBWINDOW_V_RESIZEP (ii) = 1; - IMAGE_INSTANCE_SUBWINDOW_ORIENT (ii) = 0; + IMAGE_INSTANCE_SUBWINDOW_ORIENT (ii) = LAYOUT_HORIZONTAL; IMAGE_INSTANCE_SUBWINDOW_JUSTIFY (ii) = 0; } @@ -597,10 +607,10 @@ /* make sure we are designated as the parent. */ XIMAGE_INSTANCE_PARENT (gii) = image_instance; children = Fcons (gii, children); - /* Make sure elements in the layout are in the order the - user expected. */ - children = Fnreverse (children); } + /* Make sure elements in the layout are in the order the + user expected. */ + children = Fnreverse (children); IMAGE_INSTANCE_LAYOUT_CHILDREN (ii) = children; } /* retrieve the gui item information. This is easy if we have been @@ -619,7 +629,7 @@ /* Pick up the orientation before we do our first layout. */ if (EQ (orient, Qleft) || EQ (orient, Qright) || EQ (orient, Qvertical)) - IMAGE_INSTANCE_SUBWINDOW_ORIENT (ii) = 1; + IMAGE_INSTANCE_SUBWINDOW_ORIENT (ii) = LAYOUT_VERTICAL; /* parse more gui items out of the properties */ if (!NILP (props) @@ -659,7 +669,7 @@ if (!NILP (pixheight)) { - if (!INTP (pixwidth)) + if (!INTP (pixheight)) IMAGE_INSTANCE_WIDGET_HEIGHT_SUBR (ii) = pixheight; else { @@ -716,6 +726,33 @@ #endif } +/* Get the geometry of a button control. We need to adjust the size + depending on the type of button. */ +static void +button_query_geometry (Lisp_Object image_instance, + unsigned int* width, unsigned int* height, + enum image_instance_geometry disp, Lisp_Object domain) +{ + Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); + unsigned int w, h; + query_string_geometry (IMAGE_INSTANCE_WIDGET_TEXT (ii), + IMAGE_INSTANCE_WIDGET_FACE (ii), + &w, &h, 0, domain); + /* Adjust the size for borders. */ + if (IMAGE_INSTANCE_SUBWINDOW_H_RESIZEP (ii)) + { + *width = w + 2 * WIDGET_BORDER_WIDTH; + + if (EQ (XGUI_ITEM (IMAGE_INSTANCE_WIDGET_ITEM (ii))->style, Qradio) + || + EQ (XGUI_ITEM (IMAGE_INSTANCE_WIDGET_ITEM (ii))->style, Qtoggle)) + /* This is an approximation to the size of the actual button bit. */ + *width += 12; + } + if (IMAGE_INSTANCE_SUBWINDOW_V_RESIZEP (ii)) + *height = h + 2 * WIDGET_BORDER_HEIGHT; +} + /* tree-view geometry - get the height right */ static void tree_view_query_geometry (Lisp_Object image_instance, @@ -816,12 +853,21 @@ { Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); - if (EQ (prop, Q_percent)) + if (EQ (prop, Q_value)) { CHECK_INT (val); - IMAGE_INSTANCE_WIDGET_PROPS (ii) - = Fplist_put (IMAGE_INSTANCE_WIDGET_PROPS (ii), prop, val); - IMAGE_INSTANCE_WIDGET_PERCENT_CHANGED (ii) = 1; +#ifdef DEBUG_WIDGET_OUTPUT + printf ("progress gauge value set to %ld\n", XINT (val)); +#endif + IMAGE_INSTANCE_WIDGET_PENDING_ITEMS (ii) = + copy_gui_item_tree (IMAGE_INSTANCE_WIDGET_ITEMS (ii)); +#ifdef ERROR_CHECK_GLYPHS + assert (GUI_ITEMP (IMAGE_INSTANCE_WIDGET_PENDING_ITEMS (ii))); +#endif + if (GUI_ITEMP (IMAGE_INSTANCE_WIDGET_PENDING_ITEMS (ii))) + XGUI_ITEM (IMAGE_INSTANCE_WIDGET_PENDING_ITEMS (ii))->value = val; + + IMAGE_INSTANCE_WIDGET_ITEMS_CHANGED (ii) = 1; return Qt; } @@ -921,56 +967,76 @@ Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); Lisp_Object items = IMAGE_INSTANCE_LAYOUT_CHILDREN (ii), rest; int maxph = 0, maxpw = 0, nitems = 0, ph_adjust = 0; + unsigned int gheight, gwidth; + /* First just set up what we already have. */ + if (width) *width = IMAGE_INSTANCE_WIDTH (ii); + if (height) *height = IMAGE_INSTANCE_HEIGHT (ii); + + /* If we are not allowed to dynamically size then return. */ + if (!IMAGE_INSTANCE_SUBWINDOW_V_RESIZEP (ii) + && + !IMAGE_INSTANCE_SUBWINDOW_H_RESIZEP (ii)) + return; + + /* Pick up the border text if we have one. */ + if (INTP (IMAGE_INSTANCE_LAYOUT_BORDER (ii))) + { + image_instance_query_geometry (XCAR (items), &gwidth, &gheight, disp, domain); + ph_adjust = gheight / 2; + items = XCDR (items); + } + /* Flip through the items to work out how much stuff we have to display */ LIST_LOOP (rest, items) { Lisp_Object glyph = XCAR (rest); - unsigned int gheight, gwidth; - image_instance_query_geometry (glyph, &gwidth, &gheight, disp, domain); - /* Pick up the border text if we have one. */ - if (INTP (IMAGE_INSTANCE_LAYOUT_BORDER (ii)) - && NILP (XCDR (rest))) + nitems ++; + if (IMAGE_INSTANCE_SUBWINDOW_ORIENT (ii) + == LAYOUT_HORIZONTAL) { - ph_adjust = gheight / 2; + maxph = max (maxph, gheight); + maxpw += gwidth; } else { - - nitems ++; - if (IMAGE_INSTANCE_SUBWINDOW_ORIENT (ii) - == LAYOUT_HORIZONTAL) - { - maxph = max (maxph, gheight); - maxpw += gwidth; - } - else - { - maxpw = max (maxpw, gwidth); - maxph += gheight; - } + maxpw = max (maxpw, gwidth); + maxph += gheight; } } - /* work out spacing between items and bounds of the layout. No user - provided width so we just do default spacing. */ - if (IMAGE_INSTANCE_SUBWINDOW_ORIENT (ii) - == LAYOUT_HORIZONTAL) + /* Work out minimum space we need to fit all the items. This could + have been fixed by the user. */ + if (!NILP (IMAGE_INSTANCE_WIDGET_WIDTH_SUBR (ii))) + { + Lisp_Object dynamic_width = + Feval (IMAGE_INSTANCE_WIDGET_WIDTH_SUBR (ii)); + if (INTP (dynamic_width)) + *width = XINT (dynamic_width); + } + else if (IMAGE_INSTANCE_SUBWINDOW_ORIENT (ii) + == LAYOUT_HORIZONTAL) *width = maxpw + (nitems + 1) * WIDGET_BORDER_WIDTH * 2; else *width = maxpw + 2 * WIDGET_BORDER_WIDTH * 2; /* Work out vertical spacings. */ - if (IMAGE_INSTANCE_SUBWINDOW_ORIENT (ii) - == LAYOUT_VERTICAL) + if (!NILP (IMAGE_INSTANCE_WIDGET_HEIGHT_SUBR (ii))) + { + Lisp_Object dynamic_height = + Feval (IMAGE_INSTANCE_WIDGET_HEIGHT_SUBR (ii)); + if (INTP (dynamic_height)) + *height = XINT (dynamic_height); + } + else if (IMAGE_INSTANCE_SUBWINDOW_ORIENT (ii) + == LAYOUT_VERTICAL) *height = maxph + (nitems + 1) * WIDGET_BORDER_HEIGHT * 2 + ph_adjust; - else + else *height = maxph + 2 * WIDGET_BORDER_HEIGHT * 2 + ph_adjust; } - static void layout_layout (Lisp_Object image_instance, unsigned int width, unsigned int height, Lisp_Object domain) @@ -981,38 +1047,41 @@ int x, y, maxph = 0, maxpw = 0, nitems = 0, horiz_spacing, vert_spacing, ph_adjust = 0; unsigned int gheight, gwidth; + + /* Pick up the border text if we have one. */ + if (INTP (IMAGE_INSTANCE_LAYOUT_BORDER (ii))) + { + Lisp_Object border = XCAR (items); + items = XCDR (items); + image_instance_query_geometry (border, &gwidth, &gheight, + IMAGE_DESIRED_GEOMETRY, domain); + /* #### Really, what should this be? */ + XIMAGE_INSTANCE_XOFFSET (border) = 10; + XIMAGE_INSTANCE_YOFFSET (border) = 0; + ph_adjust = gheight / 2; + IMAGE_INSTANCE_LAYOUT_BORDER (ii) = make_int (ph_adjust); - /* flip through the items to work out how much stuff we have to display */ + image_instance_layout (border, gwidth, gheight, domain); + } + + /* Flip through the items to work out how much stuff we have to display. */ LIST_LOOP (rest, items) { Lisp_Object glyph = XCAR (rest); image_instance_query_geometry (glyph, &gwidth, &gheight, IMAGE_DESIRED_GEOMETRY, domain); - - /* Pick up the border text if we have one. */ - if (INTP (IMAGE_INSTANCE_LAYOUT_BORDER (ii)) - && NILP (XCDR (rest))) + nitems ++; + if (IMAGE_INSTANCE_SUBWINDOW_ORIENT (ii) + == LAYOUT_HORIZONTAL) { - XIMAGE_INSTANCE_XOFFSET (glyph) = 10; /* Really, what should this be? */ - XIMAGE_INSTANCE_YOFFSET (glyph) = 0; - ph_adjust = gheight / 2; - IMAGE_INSTANCE_LAYOUT_BORDER (ii) = make_int (ph_adjust); + maxph = max (maxph, gheight); + maxpw += gwidth; } else { - nitems ++; - if (IMAGE_INSTANCE_SUBWINDOW_ORIENT (ii) - == LAYOUT_HORIZONTAL) - { - maxph = max (maxph, gheight); - maxpw += gwidth; - } - else - { - maxpw = max (maxpw, gwidth); - maxph += gheight; - } + maxpw = max (maxpw, gwidth); + maxph += gheight; } } @@ -1051,42 +1120,38 @@ image_instance_query_geometry (glyph, &gwidth, &gheight, IMAGE_DESIRED_GEOMETRY, domain); - if (!INTP (IMAGE_INSTANCE_LAYOUT_BORDER (ii)) - || !NILP (XCDR (rest))) - { - if (IMAGE_INSTANCE_SUBWINDOW_ORIENT (ii) - == LAYOUT_HORIZONTAL) - { - if (IMAGE_INSTANCE_SUBWINDOW_JUSTIFY (ii) - == LAYOUT_JUSTIFY_RIGHT) - y = height - (gheight + vert_spacing); - if (IMAGE_INSTANCE_SUBWINDOW_JUSTIFY (ii) - == LAYOUT_JUSTIFY_CENTER) - y = (height - gheight) / 2; - } - else - { - if (IMAGE_INSTANCE_SUBWINDOW_JUSTIFY (ii) - == LAYOUT_JUSTIFY_RIGHT) - x = width - (gwidth + horiz_spacing); - if (IMAGE_INSTANCE_SUBWINDOW_JUSTIFY (ii) - == LAYOUT_JUSTIFY_CENTER) - x = (width - gwidth) / 2; - } + if (IMAGE_INSTANCE_SUBWINDOW_ORIENT (ii) + == LAYOUT_HORIZONTAL) + { + if (IMAGE_INSTANCE_SUBWINDOW_JUSTIFY (ii) + == LAYOUT_JUSTIFY_RIGHT) + y = height - (gheight + vert_spacing); + if (IMAGE_INSTANCE_SUBWINDOW_JUSTIFY (ii) + == LAYOUT_JUSTIFY_CENTER) + y = (height - gheight) / 2; + } + else + { + if (IMAGE_INSTANCE_SUBWINDOW_JUSTIFY (ii) + == LAYOUT_JUSTIFY_RIGHT) + x = width - (gwidth + horiz_spacing); + if (IMAGE_INSTANCE_SUBWINDOW_JUSTIFY (ii) + == LAYOUT_JUSTIFY_CENTER) + x = (width - gwidth) / 2; + } - XIMAGE_INSTANCE_XOFFSET (glyph) = x; - XIMAGE_INSTANCE_YOFFSET (glyph) = y; + XIMAGE_INSTANCE_XOFFSET (glyph) = x; + XIMAGE_INSTANCE_YOFFSET (glyph) = y; - if (IMAGE_INSTANCE_SUBWINDOW_ORIENT (ii) - == LAYOUT_HORIZONTAL) - { - x += (gwidth + horiz_spacing); - } - else - { - y += (gheight + vert_spacing); - } - } + if (IMAGE_INSTANCE_SUBWINDOW_ORIENT (ii) + == LAYOUT_HORIZONTAL) + { + x += (gwidth + horiz_spacing); + } + else + { + y += (gheight + vert_spacing); + } /* Now layout subwidgets if they require it. */ image_instance_layout (glyph, gwidth, gheight, domain); @@ -1107,7 +1172,6 @@ defkeyword (&Q_properties, ":properties"); defkeyword (&Q_items, ":items"); defkeyword (&Q_image, ":image"); - defkeyword (&Q_percent, ":percent"); defkeyword (&Q_text, ":text"); defkeyword (&Q_orientation, ":orientation"); defkeyword (&Q_justify, ":justify"); @@ -1117,6 +1181,7 @@ defsymbol (&Qetched_out, "etched-out"); defsymbol (&Qbevel_in, "bevel-in"); defsymbol (&Qbevel_out, "bevel-out"); + defsymbol (&Qwidget_callback_current_channel, "widget-callback-current-channel"); } #define VALID_GUI_KEYWORDS(type) do { \ @@ -1132,6 +1197,7 @@ IIFORMAT_VALID_KEYWORD (type, Q_accelerator, check_valid_string); \ IIFORMAT_VALID_KEYWORD (type, Q_label, check_valid_anything); \ IIFORMAT_VALID_NONCOPY_KEYWORD (type, Q_callback, check_valid_callback); \ + IIFORMAT_VALID_NONCOPY_KEYWORD (type, Q_callback_ex, check_valid_callback); \ IIFORMAT_VALID_NONCOPY_KEYWORD (type, Q_descriptor, check_valid_string_or_vector); \ } while (0) @@ -1160,6 +1226,7 @@ IIFORMAT_HAS_SHARED_METHOD (button, possible_dest_types, widget); IIFORMAT_HAS_SHARED_METHOD (button, instantiate, widget); IIFORMAT_HAS_SHARED_METHOD (button, normalize, widget); + IIFORMAT_HAS_METHOD (button, query_geometry); IIFORMAT_VALID_KEYWORD (button, Q_image, check_valid_glyph_or_instantiator); VALID_WIDGET_KEYWORDS (button); @@ -1257,8 +1324,7 @@ IIFORMAT_HAS_METHOD (layout, normalize); IIFORMAT_HAS_METHOD (layout, query_geometry); IIFORMAT_HAS_METHOD (layout, layout); - IIFORMAT_VALID_KEYWORD (layout, Q_pixel_width, check_valid_int_or_function); - IIFORMAT_VALID_KEYWORD (layout, Q_pixel_height, check_valid_int_or_function); + VALID_WIDGET_KEYWORDS (layout); IIFORMAT_VALID_KEYWORD (layout, Q_orientation, check_valid_orientation); IIFORMAT_VALID_KEYWORD (layout, Q_justify, check_valid_justification); IIFORMAT_VALID_KEYWORD (layout, Q_border, check_valid_border); @@ -1293,4 +1359,10 @@ vars_of_glyphs_widget (void) { reinit_vars_of_glyphs_widget (); + + DEFVAR_LISP ("widget-callback-current-channel", &Vwidget_callback_current_channel /* +The domain that is current when a widget callback is invoked. +This is invariably the frame that the widget is instantiated in. +*/); + Vwidget_callback_current_channel = Qnil; }
--- a/src/glyphs-x.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/glyphs-x.c Mon Aug 13 11:17:09 2007 +0200 @@ -264,7 +264,7 @@ gr = *ip++; bl = *ip++; conv.val = pixarray[QUANT_GET_COLOR(qtable,rd,gr,bl)]; -#if WORDS_BIGENDIAN +#ifdef WORDS_BIGENDIAN if (outimg->byte_order == MSBFirst) for (q = 4-byte_cnt; q < 4; q++) *dp++ = conv.cp[q]; else @@ -339,7 +339,7 @@ bl = *ip++ >> (8 - bbits); conv.val = (rd << rshift) | (gr << gshift) | (bl << bshift); -#if WORDS_BIGENDIAN +#ifdef WORDS_BIGENDIAN if (outimg->byte_order == MSBFirst) for (q = 4-byte_cnt; q < 4; q++) *dp++ = conv.cp[q]; else @@ -2189,14 +2189,11 @@ need to update most other things after the items have changed.*/ if (IMAGE_INSTANCE_WIDGET_ITEMS_CHANGED (p)) { - /* Pick up the items we recorded earlier. We do this here so - that the callbacks get set up with the new items. */ - IMAGE_INSTANCE_WIDGET_ITEMS (p) = - IMAGE_INSTANCE_WIDGET_PENDING_ITEMS (p); - IMAGE_INSTANCE_WIDGET_PENDING_ITEMS (p) = Qnil; - + Lisp_Object image_instance; + + XSETIMAGE_INSTANCE (image_instance, p); wv = gui_items_to_widget_values - (IMAGE_INSTANCE_WIDGET_ITEMS (p)); + (image_instance, IMAGE_INSTANCE_WIDGET_PENDING_ITEMS (p)); wv->change = STRUCTURAL_CHANGE; /* now modify the widget */ lw_modify_all_widgets (IMAGE_INSTANCE_X_WIDGET_LWID (p), @@ -2211,7 +2208,7 @@ return; /* Possibly update the colors and font */ - if (IMAGE_INSTANCE_WIDGET_FACE_CHANGED (p) + if (IMAGE_INSTANCE_WIDGET_FACE_CHANGED (p) || XFRAME (IMAGE_INSTANCE_SUBWINDOW_FRAME (p))->faces_changed || @@ -2234,7 +2231,9 @@ /* Possibly update the size. */ if (IMAGE_INSTANCE_SIZE_CHANGED (p) || - IMAGE_INSTANCE_WIDGET_ITEMS_CHANGED (p)) + IMAGE_INSTANCE_WIDGET_ITEMS_CHANGED (p) + || + IMAGE_INSTANCE_TEXT_CHANGED (p)) { assert (IMAGE_INSTANCE_X_WIDGET_ID (p) && IMAGE_INSTANCE_X_CLIPWIDGET (p)) ; @@ -2503,16 +2502,6 @@ IMAGE_INSTANCE_SUBWINDOW_ID (ii) = (void*)wid; IMAGE_INSTANCE_X_WIDGET_LWID (ii) = id; -#if 0 - /* Resize the widget here so that the values do not get copied by - lwlib. */ - ac = 0; - XtSetArg (al [ac], XtNwidth, - (Dimension)IMAGE_INSTANCE_SUBWINDOW_WIDTH (ii)); ac++; - XtSetArg (al [ac], XtNheight, - (Dimension)IMAGE_INSTANCE_SUBWINDOW_HEIGHT (ii)); ac++; - XtSetValues (IMAGE_INSTANCE_X_WIDGET_ID (ii), al, ac); -#endif /* because the EmacsManager is the widgets parent we have to offset the redisplay of the widget by the amount the text widget is inside the manager. */ @@ -2554,9 +2543,7 @@ Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); Lisp_Object gui = IMAGE_INSTANCE_WIDGET_ITEM (ii); Lisp_Object glyph = find_keyword_in_vector (instantiator, Q_image); - widget_value* wv = xmalloc_widget_value (); - - button_item_to_widget_value (gui, wv, 1, 1); + widget_value* wv = gui_items_to_widget_values (image_instance, gui); if (!NILP (glyph)) { @@ -2583,6 +2570,30 @@ } } +/* Update a button's clicked state. + + #### This is overkill, but it works. Right now this causes all + button instances to flash for some reason buried deep in lwlib. In + theory this should be the Right Thing to do since lwlib should only + merge in changed values - and if nothing has changed then nothing + should get done. This may be because of the args stuff, + i.e. although the arg contents may be the same the args look + different and so are re-applied to the widget. */ +static void +x_button_update (Lisp_Object image_instance) +{ + /* This function can GC if IN_REDISPLAY is false. */ + Lisp_Image_Instance *p = XIMAGE_INSTANCE (image_instance); + widget_value* wv = + gui_items_to_widget_values (image_instance, + IMAGE_INSTANCE_WIDGET_ITEMS (p)); + + /* now modify the widget */ + lw_modify_all_widgets (IMAGE_INSTANCE_X_WIDGET_LWID (p), + wv, True); + free_widget_value_tree (wv); +} + /* get properties of a button */ static Lisp_Object x_button_property (Lisp_Object image_instance, Lisp_Object prop) @@ -2609,9 +2620,7 @@ { Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); Lisp_Object gui = IMAGE_INSTANCE_WIDGET_ITEM (ii); - widget_value* wv = xmalloc_widget_value (); - - button_item_to_widget_value (gui, wv, 1, 1); + widget_value* wv = gui_items_to_widget_values (image_instance, gui); x_widget_instantiate (image_instance, instantiator, pointer_fg, pointer_bg, dest_mask, domain, "progress", wv); @@ -2623,12 +2632,14 @@ { Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); - if (IMAGE_INSTANCE_WIDGET_PERCENT_CHANGED (ii)) + if (IMAGE_INSTANCE_WIDGET_ITEMS_CHANGED (ii)) { Arg al [1]; - /* #### I'm not convinced we should store this in the plist. */ - Lisp_Object val = Fplist_get (IMAGE_INSTANCE_WIDGET_PROPS (ii), - Q_percent, Qnil); + Lisp_Object val; +#ifdef ERROR_CHECK_GLYPHS + assert (GUI_ITEMP (IMAGE_INSTANCE_WIDGET_PENDING_ITEMS (ii))); +#endif + val = XGUI_ITEM (IMAGE_INSTANCE_WIDGET_PENDING_ITEMS (ii))->value; XtSetArg (al[0], XtNvalue, XINT (val)); XtSetValues (IMAGE_INSTANCE_X_WIDGET_ID (ii), al, 1); } @@ -2642,9 +2653,7 @@ { Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); Lisp_Object gui = IMAGE_INSTANCE_WIDGET_ITEM (ii); - widget_value* wv = xmalloc_widget_value (); - - button_item_to_widget_value (gui, wv, 1, 1); + widget_value* wv = gui_items_to_widget_values (image_instance, gui); x_widget_instantiate (image_instance, instantiator, pointer_fg, pointer_bg, dest_mask, domain, "text-field", wv); @@ -2664,7 +2673,8 @@ widget_instantiate (image_instance, instantiator, pointer_fg, pointer_bg, dest_mask, domain); - wv = gui_items_to_widget_values (IMAGE_INSTANCE_WIDGET_ITEMS (ii)); + wv = gui_items_to_widget_values (image_instance, + IMAGE_INSTANCE_WIDGET_ITEMS (ii)); x_widget_instantiate (image_instance, instantiator, pointer_fg, pointer_bg, dest_mask, domain, "combo-box", wv); @@ -2678,7 +2688,8 @@ { Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); widget_value * wv = - gui_items_to_widget_values (IMAGE_INSTANCE_WIDGET_ITEMS (ii)); + gui_items_to_widget_values (image_instance, + IMAGE_INSTANCE_WIDGET_ITEMS (ii)); update_tab_widget_face (wv, ii, IMAGE_INSTANCE_SUBWINDOW_FRAME (ii)); @@ -2689,12 +2700,12 @@ /* set the properties of a tab control */ static void -x_tab_control_update (Lisp_Object image_instance) +x_tab_control_update (Lisp_Object image_instance) { Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); /* Possibly update the face. */ - if (IMAGE_INSTANCE_WIDGET_FACE_CHANGED (ii) + if (IMAGE_INSTANCE_WIDGET_FACE_CHANGED (ii) || XFRAME (IMAGE_INSTANCE_SUBWINDOW_FRAME (ii))->faces_changed || @@ -2721,9 +2732,7 @@ { Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); Lisp_Object gui = IMAGE_INSTANCE_WIDGET_ITEM (ii); - widget_value* wv = xmalloc_widget_value (); - - button_item_to_widget_value (gui, wv, 1, 1); + widget_value* wv = gui_items_to_widget_values (image_instance, gui); x_widget_instantiate (image_instance, instantiator, pointer_fg, pointer_bg, dest_mask, domain, "button", wv); @@ -2795,6 +2804,7 @@ INITIALIZE_DEVICE_IIFORMAT (x, button); IIFORMAT_HAS_DEVMETHOD (x, button, property); IIFORMAT_HAS_DEVMETHOD (x, button, instantiate); + IIFORMAT_HAS_DEVMETHOD (x, button, update); INITIALIZE_DEVICE_IIFORMAT (x, widget); IIFORMAT_HAS_DEVMETHOD (x, widget, property);
--- a/src/glyphs-x.h Mon Aug 13 11:16:09 2007 +0200 +++ b/src/glyphs-x.h Mon Aug 13 11:17:09 2007 +0200 @@ -96,7 +96,7 @@ Window parent_window; Window clip_window; } sub; - struct + struct { Widget clip_window; Position x_offset;
--- a/src/glyphs.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/glyphs.c Mon Aug 13 11:17:09 2007 +0200 @@ -771,16 +771,21 @@ break; case IMAGE_WIDGET: + print_internal (IMAGE_INSTANCE_WIDGET_TYPE (ii), printcharfun, 0); + + if (!NILP (IMAGE_INSTANCE_WIDGET_TEXT (ii))) + { + write_c_string (" ", printcharfun); + print_internal (IMAGE_INSTANCE_WIDGET_TEXT (ii), printcharfun, 1); + } + if (!NILP (IMAGE_INSTANCE_WIDGET_FACE (ii))) { - write_c_string (" (", printcharfun); + write_c_string (" face=", printcharfun); print_internal (IMAGE_INSTANCE_WIDGET_FACE (ii), printcharfun, 0); - write_c_string (")", printcharfun); } - if (!NILP (IMAGE_INSTANCE_WIDGET_TEXT (ii))) - print_internal (IMAGE_INSTANCE_WIDGET_TEXT (ii), printcharfun, 0); case IMAGE_SUBWINDOW: case IMAGE_LAYOUT: @@ -801,10 +806,8 @@ else write_c_string (DEVICE_TYPE_NAME (XDEVICE (FRAME_DEVICE (f))), printcharfun); - - write_c_string ("-frame ", printcharfun); } - write_c_string (">", printcharfun); + write_c_string ("-frame>", printcharfun); sprintf (buf, " 0x%p", IMAGE_INSTANCE_SUBWINDOW_ID (ii)); write_c_string (buf, printcharfun); @@ -934,6 +937,10 @@ return DEVMETH_OR_GIVEN (d1, image_instance_equal, (i1, i2, depth), 1); } +#if 0 +/* internal_hash will not go very far down a list because of the way + its written. For items we need to hash all elements so we provide + our own list hashing function. */ static unsigned long full_list_hash (Lisp_Object obj, int depth) { @@ -943,12 +950,14 @@ if (!CONSP (obj)) return internal_hash (obj, depth + 1); - LIST_LOOP (rest, obj) + hash = LISP_HASH (XCAR (obj)); + LIST_LOOP (rest, XCDR (obj)) { - hash = HASH2 (internal_hash (XCAR (rest), depth + 1), hash); + hash = HASH2 (hash, internal_hash (XCAR (rest), depth + 1)); } return hash; } +#endif static unsigned long image_instance_hash (Lisp_Object obj, int depth) @@ -984,12 +993,8 @@ displayed. */ hash = HASH4 (hash, LISP_HASH (IMAGE_INSTANCE_WIDGET_TYPE (i)), - full_list_hash (IMAGE_INSTANCE_WIDGET_PROPS (i), depth + 1), - full_list_hash - (NILP (IMAGE_INSTANCE_WIDGET_PENDING_ITEMS (i)) - ? IMAGE_INSTANCE_WIDGET_ITEMS (i) - : IMAGE_INSTANCE_WIDGET_PENDING_ITEMS (i), - depth + 1)); + internal_hash (IMAGE_INSTANCE_WIDGET_PROPS (i), depth + 1), + internal_hash (IMAGE_INSTANCE_WIDGET_ITEMS (i), depth + 1)); case IMAGE_SUBWINDOW: hash = HASH2 (hash, (int) IMAGE_INSTANCE_SUBWINDOW_ID (i)); break; @@ -2784,18 +2789,11 @@ Lisp_Object pointer_fg = Qnil; Lisp_Object pointer_bg = Qnil; - if (dest_mask & (IMAGE_SUBWINDOW_MASK - | IMAGE_WIDGET_MASK - | IMAGE_TEXT_MASK)) - { - if (!WINDOWP (domain)) - signal_simple_error ("Can't instantiate text or subwindow outside a window", - instantiator); - else if ((dest_mask & (IMAGE_SUBWINDOW_MASK - | IMAGE_WIDGET_MASK)) - && MINI_WINDOW_P (XWINDOW (domain))) - domain = Fnext_window (domain, Qnil, Qnil, Qnil); - } + /* We have to put subwindow, widget and text image instances in + a per-window cache so that we can see the same glyph in + different windows. Unfortunately we do not know the type of + image_instance until after it has been created. We thus need + to be really careful how we place things. */ if (pointerp) { @@ -2850,7 +2848,9 @@ && dest_mask & (IMAGE_SUBWINDOW_MASK | IMAGE_WIDGET_MASK - | IMAGE_TEXT_MASK)) + | IMAGE_LAYOUT_MASK + | IMAGE_TEXT_MASK) + && WINDOWP (domain)) { instance = Fgethash (instantiator, XWINDOW (domain)->subwindow_instance_cache, @@ -2889,11 +2889,36 @@ & (IMAGE_SUBWINDOW_MASK | IMAGE_WIDGET_MASK + | IMAGE_LAYOUT_MASK | IMAGE_TEXT_MASK )) { +#ifdef ERROR_CHECK_GLYPHS + if (XIMAGE_INSTANCE_TYPE (instance) != IMAGE_TEXT) + assert (EQ (XIMAGE_INSTANCE_SUBWINDOW_FRAME (instance), + FW_FRAME (domain))); +#endif + if (!WINDOWP (domain)) + signal_simple_error ("Can't instantiate text or subwindow outside a window", + instantiator); +#ifdef ERROR_CHECK_GLYPHS + if (XIMAGE_INSTANCE_TYPE (instance) != IMAGE_TEXT) + assert (EQ (XIMAGE_INSTANCE_SUBWINDOW_FRAME (instance), + FW_FRAME (domain))); +#endif Fsetcdr (XCDR (locative), XWINDOW (domain)->subwindow_instance_cache); } unbind_to (speccount, Qnil); +#ifdef ERROR_CHECK_GLYPHS + if (image_instance_type_to_mask (XIMAGE_INSTANCE_TYPE (instance)) + & + (IMAGE_SUBWINDOW_MASK + | IMAGE_WIDGET_MASK + | IMAGE_LAYOUT_MASK + | IMAGE_TEXT_MASK )) + assert (EQ (Fgethash ((pointerp ? ls3 : instantiator), + XWINDOW (domain)->subwindow_instance_cache, + Qunbound), instance)); +#endif } else free_list (ls3); @@ -2901,6 +2926,12 @@ if (NILP (instance)) signal_simple_error ("Can't instantiate image (probably cached)", instantiator); +#ifdef ERROR_CHECK_GLYPHS + if (image_instance_type_to_mask (XIMAGE_INSTANCE_TYPE (instance)) + & (IMAGE_SUBWINDOW_MASK | IMAGE_WIDGET_MASK)) + assert (EQ (XIMAGE_INSTANCE_SUBWINDOW_FRAME (instance), + FW_FRAME (domain))); +#endif return instance; } @@ -4318,8 +4349,6 @@ { Lisp_Image_Instance* ii = XIMAGE_INSTANCE (subwindow); int count = specpdl_depth (); - unsigned long display_hash = internal_hash (subwindow, - IMAGE_INSTANCE_HASH_DEPTH); /* The update method is allowed to call eval. Since it is quite common for this function to get called from somewhere in @@ -4331,17 +4360,10 @@ || IMAGE_INSTANCE_TYPE (ii) == IMAGE_LAYOUT) { - if (IMAGE_INSTANCE_TYPE (ii) == IMAGE_WIDGET - && - (display_hash != IMAGE_INSTANCE_DISPLAY_HASH (ii) - || - IMAGE_INSTANCE_DISPLAY_HASH (ii) == 0)) - { - update_widget (subwindow); - } + if (image_instance_changed (subwindow)) + update_widget (subwindow); /* Reset the changed flags. */ IMAGE_INSTANCE_WIDGET_FACE_CHANGED (ii) = 0; - IMAGE_INSTANCE_WIDGET_PERCENT_CHANGED (ii) = 0; IMAGE_INSTANCE_WIDGET_ITEMS_CHANGED (ii) = 0; IMAGE_INSTANCE_TEXT_CHANGED (ii) = 0; } @@ -4361,12 +4383,30 @@ visual appearance. However, we would rather that then the other way round - it simply means that we will get more displays than we might need. We can get better hashing by making the depth - negative - currently it will recurse down 5 levels.*/ - IMAGE_INSTANCE_DISPLAY_HASH (ii) = display_hash; + negative - currently it will recurse down 7 levels.*/ + IMAGE_INSTANCE_DISPLAY_HASH (ii) = internal_hash (subwindow, + IMAGE_INSTANCE_HASH_DEPTH); unbind_to (count, Qnil); } +int +image_instance_changed (Lisp_Object subwindow) +{ + Lisp_Image_Instance* ii = XIMAGE_INSTANCE (subwindow); + + if (internal_hash (subwindow, IMAGE_INSTANCE_HASH_DEPTH) != + IMAGE_INSTANCE_DISPLAY_HASH (ii)) + return 1; + else if ((WIDGET_IMAGE_INSTANCEP (subwindow) + || LAYOUT_IMAGE_INSTANCEP (subwindow)) + && !internal_equal (IMAGE_INSTANCE_WIDGET_ITEMS (ii), + IMAGE_INSTANCE_WIDGET_PENDING_ITEMS (ii), 0)) + return 1; + else + return 0; +} + /* Update all the subwindows on a frame. */ DEFUN ("update-widget-instances", Fupdate_widget_instances,1, 1, 0, /* Given a FRAME, re-evaluate the display hash code for all widgets in the frame. @@ -4386,18 +4426,10 @@ Dynarr_atp (f->subwindow_cachels, elt); if (cachel->being_displayed && - XIMAGE_INSTANCE_TYPE (cachel->subwindow) - == IMAGE_WIDGET) + image_instance_changed (cachel->subwindow)) { - /* If a subwindow hash changed mark it so that redisplay - will fix it. */ - if (internal_hash (cachel->subwindow, - IMAGE_INSTANCE_HASH_DEPTH) != - XIMAGE_INSTANCE_DISPLAY_HASH (cachel->subwindow)) - { - set_image_instance_dirty_p (cachel->subwindow, 1); - MARK_FRAME_GLYPHS_CHANGED (f); - } + set_image_instance_dirty_p (cachel->subwindow, 1); + MARK_FRAME_GLYPHS_CHANGED (f); } } return Qnil;
--- a/src/glyphs.h Mon Aug 13 11:16:09 2007 +0200 +++ b/src/glyphs.h Mon Aug 13 11:17:09 2007 +0200 @@ -550,7 +550,6 @@ /* Change flags to augment dirty. */ unsigned int face_changed : 1; unsigned int items_changed : 1; - unsigned int percent_changed : 1; } subwindow; } u; @@ -566,7 +565,7 @@ #define LAYOUT_JUSTIFY_RIGHT 1 #define LAYOUT_JUSTIFY_CENTER 2 -#define IMAGE_INSTANCE_HASH_DEPTH -2 +#define IMAGE_INSTANCE_HASH_DEPTH 0 /* Accessor macros. */ #define IMAGE_INSTANCE_DEVICE(i) ((i)->device) @@ -596,8 +595,6 @@ ((i)->u.subwindow.face_changed) #define IMAGE_INSTANCE_WIDGET_ITEMS_CHANGED(i) \ ((i)->u.subwindow.items_changed) -#define IMAGE_INSTANCE_WIDGET_PERCENT_CHANGED(i) \ - ((i)->u.subwindow.percent_changed) #define IMAGE_INSTANCE_LAYOUT_CHANGED(i) ((i)->layout_changed) #define IMAGE_INSTANCE_OPTIMIZE_OUTPUT(i) ((i)->optimize_output) @@ -885,12 +882,14 @@ extern Lisp_Object Q_mask_file, Q_mask_data, Q_hotspot_x, Q_hotspot_y; extern Lisp_Object Q_foreground, Q_background, Q_face, Q_descriptor, Q_group; extern Lisp_Object Q_width, Q_height, Q_pixel_width, Q_pixel_height, Q_text; -extern Lisp_Object Q_items, Q_properties, Q_image, Q_percent, Qimage_conversion_error; +extern Lisp_Object Q_items, Q_properties, Q_image, Qimage_conversion_error; extern Lisp_Object Q_orientation, Qupdate_widget_instances; +extern Lisp_Object Qwidget_callback_current_channel; extern Lisp_Object Vcontinuation_glyph, Vcontrol_arrow_glyph, Vhscroll_glyph; extern Lisp_Object Vinvisible_text_glyph, Voctal_escape_glyph, Vtruncation_glyph; extern Lisp_Object Vxemacs_logo; + unsigned short glyph_width (Lisp_Object glyph, Lisp_Object domain); unsigned short glyph_ascent (Lisp_Object glyph, Lisp_Object domain); unsigned short glyph_descent (Lisp_Object glyph, Lisp_Object domain); @@ -1013,6 +1012,7 @@ void update_widget (Lisp_Object widget); void update_subwindow (Lisp_Object subwindow); Lisp_Object image_instance_parent_glyph (struct Lisp_Image_Instance*); +int image_instance_changed (Lisp_Object image); struct expose_ignore {
--- a/src/gmalloc.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/gmalloc.c Mon Aug 13 11:17:09 2007 +0200 @@ -1036,7 +1036,7 @@ int type; __malloc_size_t block, blocks, oldlimit; - if (PURE_DATA(ptr)) + if (PURE_DATA (ptr)) { result = malloc (size); memcpy(result, ptr, size);
--- a/src/gui-msw.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/gui-msw.c Mon Aug 13 11:17:09 2007 +0200 @@ -22,9 +22,11 @@ #include <config.h> #include "lisp.h" +#include "redisplay.h" #include "gui.h" -#include "redisplay.h" +#include "glyphs.h" #include "frame.h" +#include "events.h" #include "elhash.h" #include "console-msw.h" #include "buffer.h" @@ -39,26 +41,58 @@ mswindows_handle_gui_wm_command (struct frame* f, HWND ctrl, LPARAM id) { /* Try to map the command id through the proper hash table */ - Lisp_Object data, fn, arg, frame; + Lisp_Object callback, callback_ex, image_instance, frame, event; + + XSETFRAME (frame, f); /* #### make_int should assert that --kkm */ assert (XINT (make_int (id)) == id); - data = Fgethash (make_int (id), - FRAME_MSWINDOWS_WIDGET_HASH_TABLE (f), Qnil); - - if (NILP (data) || UNBOUNDP (data)) - return Qnil; + image_instance = Fgethash (make_int (id), + FRAME_MSWINDOWS_WIDGET_HASH_TABLE1 (f), Qnil); + callback = Fgethash (make_int (id), + FRAME_MSWINDOWS_WIDGET_HASH_TABLE2 (f), Qnil); + callback_ex = Fgethash (make_int (id), + FRAME_MSWINDOWS_WIDGET_HASH_TABLE3 (f), Qnil); + + if (!NILP (callback_ex) && !UNBOUNDP (callback_ex)) + { + event = Fmake_event (Qnil, Qnil); - /* Ok, this is our one. Enqueue it. */ - get_gui_callback (data, &fn, &arg); - XSETFRAME (frame, f); - mswindows_enqueue_misc_user_event (frame, fn, arg); + XEVENT (event)->event_type = misc_user_event; + XEVENT (event)->channel = frame; + XEVENT (event)->timestamp = GetTickCount (); + XEVENT (event)->event.eval.function = Qeval; + XEVENT (event)->event.eval.object = + list4 (Qfuncall, callback_ex, image_instance, event); + } + else if (NILP (callback) || UNBOUNDP (callback)) + return Qnil; + else + { + Lisp_Object fn, arg; + + event = Fmake_event (Qnil, Qnil); + + get_gui_callback (callback, &fn, &arg); + XEVENT (event)->event_type = misc_user_event; + XEVENT (event)->channel = frame; + XEVENT (event)->timestamp = GetTickCount (); + XEVENT (event)->event.eval.function = fn; + XEVENT (event)->event.eval.object = arg; + } + + mswindows_enqueue_dispatch_event (event); /* The result of this evaluation could cause other instances to change so - enqueue an update callback to check this. */ - mswindows_enqueue_misc_user_event (frame, Qeval, - list2 (Qupdate_widget_instances, frame)); - + enqueue an update callback to check this. We also have to make sure that + the function does not appear in the command history. + #### I'm sure someone can tell me how to optimize this. */ + mswindows_enqueue_misc_user_event + (frame, Qeval, + list3 (Qlet, + list2 (Qthis_command, + Qlast_command), + list2 (Qupdate_widget_instances, frame))); return Qt; }
--- a/src/gui-x.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/gui-x.c Mon Aug 13 11:17:09 2007 +0200 @@ -33,8 +33,10 @@ #include "gui-x.h" #include "buffer.h" #include "device.h" +#include "events.h" #include "frame.h" #include "gui.h" +#include "glyphs.h" #include "redisplay.h" #include "opaque.h" @@ -210,9 +212,8 @@ popup_selection_callback (Widget widget, LWLIB_ID ignored_id, XtPointer client_data) { - Lisp_Object fn, arg; - Lisp_Object data; - Lisp_Object frame; + Lisp_Object data, image_instance, callback, callback_ex; + Lisp_Object frame, event; int update_subwindows_p = 0; struct device *d = get_device_from_display (XtDisplay (widget)); struct frame *f = x_any_widget_or_parent_to_frame (d, widget); @@ -228,6 +229,10 @@ VOID_TO_LISP (data, client_data); XSETFRAME (frame, f); + image_instance = XCAR (data); + callback = XCAR (XCDR (data)); + callback_ex = XCDR (XCDR (data)); + #if 0 /* #### What the hell? I can't understand why this call is here, and doing it is really courting disaster in the new event @@ -241,13 +246,41 @@ if (((EMACS_INT) client_data) == -1) { - fn = Qrun_hooks; - arg = Qmenu_no_selection_hook; + event = Fmake_event (Qnil, Qnil); + + XEVENT (event)->event_type = misc_user_event; + XEVENT (event)->channel = frame; + XEVENT (event)->event.eval.function = Qrun_hooks; + XEVENT (event)->event.eval.object = Qmenu_no_selection_hook; } else { update_subwindows_p = 1; - get_gui_callback (data, &fn, &arg); + + if (!NILP (callback_ex) && !UNBOUNDP (callback_ex)) + { + event = Fmake_event (Qnil, Qnil); + + XEVENT (event)->event_type = misc_user_event; + XEVENT (event)->channel = frame; + XEVENT (event)->event.eval.function = Qeval; + XEVENT (event)->event.eval.object = + list4 (Qfuncall, callback_ex, image_instance, event); + } + else if (NILP (callback) || UNBOUNDP (callback)) + event = Qnil; + else + { + Lisp_Object fn, arg; + + event = Fmake_event (Qnil, Qnil); + + get_gui_callback (callback, &fn, &arg); + XEVENT (event)->event_type = misc_user_event; + XEVENT (event)->channel = frame; + XEVENT (event)->event.eval.function = fn; + XEVENT (event)->event.eval.object = arg; + } } /* This is the timestamp used for asserting focus so we need to get an @@ -258,12 +291,19 @@ #else DEVICE_X_MOUSE_TIMESTAMP (d) = DEVICE_X_GLOBAL_MOUSE_TIMESTAMP (d); #endif - signal_special_Xt_user_event (frame, fn, arg); + if (!NILP (event)) + enqueue_Xt_dispatch_event (event); /* The result of this evaluation could cause other instances to change so - enqueue an update callback to check this. */ - if (update_subwindows_p) + enqueue an update callback to check this. We also have to make sure that + the function does not appear in the command history. + #### I'm sure someone can tell me how to optimize this. */ + if (update_subwindows_p && !NILP (event)) signal_special_Xt_user_event (frame, Qeval, - list2 (Qupdate_widget_instances, frame)); + list3 (Qlet, + list2 (Qthis_command, + Qlast_command), + list2 (Qupdate_widget_instances, + frame))); } #if 1 @@ -337,8 +377,10 @@ /* This does the dirty work. gc_currently_forbidden is 1 when this is called. */ int -button_item_to_widget_value (Lisp_Object gui_item, widget_value *wv, - int allow_text_field_p, int no_keys_p) +button_item_to_widget_value (Lisp_Object gui_object_instance, + Lisp_Object gui_item, widget_value *wv, + int allow_text_field_p, int no_keys_p, + int menu_entry_p) { /* !!#### This function has not been Mule-ized */ /* This function cannot GC because gc_currently_forbidden is set when @@ -362,7 +404,7 @@ signal_simple_error(":filter keyword not permitted on leaf nodes", gui_item); #ifdef HAVE_MENUBARS - if (!gui_item_included_p (gui_item, Vmenubar_configuration)) + if (menu_entry_p && !gui_item_included_p (gui_item, Vmenubar_configuration)) { /* the include specification says to ignore this item. */ return 0; @@ -401,12 +443,14 @@ wv_set_evalable_slot (wv->enabled, pgui->active); wv_set_evalable_slot (wv->selected, pgui->selected); - if (!NILP (pgui->callback)) - wv->call_data = LISP_TO_VOID (pgui->callback); + if (!NILP (pgui->callback) || !NILP (pgui->callback_ex)) + wv->call_data = LISP_TO_VOID (cons3 (gui_object_instance, + pgui->callback, + pgui->callback_ex)); if (no_keys_p #ifdef HAVE_MENUBARS - || !menubar_show_keybindings + || (menu_entry_p && !menubar_show_keybindings) #endif ) wv->key = 0; @@ -486,10 +530,13 @@ } /* parse tree's of gui items into widget_value hierarchies */ -static void gui_item_children_to_widget_values (Lisp_Object items, widget_value* parent); +static void gui_item_children_to_widget_values (Lisp_Object gui_object_instance, + Lisp_Object items, + widget_value* parent); static widget_value * -gui_items_to_widget_values_1 (Lisp_Object items, widget_value* parent, +gui_items_to_widget_values_1 (Lisp_Object gui_object_instance, + Lisp_Object items, widget_value* parent, widget_value* prev) { widget_value* wv = 0; @@ -503,7 +550,8 @@ parent->contents = wv; else prev->next = wv; - if (!button_item_to_widget_value (items, wv, 0, 1)) + if (!button_item_to_widget_value (gui_object_instance, + items, wv, 0, 1, 0)) { free_widget_value_tree (wv); if (parent) @@ -523,35 +571,40 @@ signal_simple_error ("parent item must not be a list", XCAR (items)); if (parent) - wv = gui_items_to_widget_values_1 (XCAR (items), parent, 0); + wv = gui_items_to_widget_values_1 (gui_object_instance, + XCAR (items), parent, 0); else - wv = gui_items_to_widget_values_1 (XCAR (items), 0, prev); + wv = gui_items_to_widget_values_1 (gui_object_instance, + XCAR (items), 0, prev); /* the rest are the children */ - gui_item_children_to_widget_values (XCDR (items), wv); + gui_item_children_to_widget_values (gui_object_instance, + XCDR (items), wv); } return wv; } static void -gui_item_children_to_widget_values (Lisp_Object items, widget_value* parent) +gui_item_children_to_widget_values (Lisp_Object gui_object_instance, + Lisp_Object items, widget_value* parent) { widget_value* wv = 0, *prev = 0; Lisp_Object rest; CHECK_CONS (items); /* first one is master */ - prev = gui_items_to_widget_values_1 (XCAR (items), parent, 0); + prev = gui_items_to_widget_values_1 (gui_object_instance, XCAR (items), + parent, 0); /* the rest are the children */ LIST_LOOP (rest, XCDR (items)) { Lisp_Object tab = XCAR (rest); - wv = gui_items_to_widget_values_1 (tab, 0, prev); + wv = gui_items_to_widget_values_1 (gui_object_instance, tab, 0, prev); prev = wv; } } widget_value * -gui_items_to_widget_values (Lisp_Object items) +gui_items_to_widget_values (Lisp_Object gui_object_instance, Lisp_Object items) { /* !!#### This function has not been Mule-ized */ /* This function can GC */ @@ -575,7 +628,7 @@ wv_closure = make_opaque_ptr (control); record_unwind_protect (widget_value_unwind, wv_closure); - gui_items_to_widget_values_1 (items, control, 0); + gui_items_to_widget_values_1 (gui_object_instance, items, control, 0); /* mess about getting the data we really want */ tmp = control;
--- a/src/gui-x.h Mon Aug 13 11:16:09 2007 +0200 +++ b/src/gui-x.h Mon Aug 13 11:17:09 2007 +0200 @@ -69,9 +69,12 @@ void popup_selection_callback (Widget widget, LWLIB_ID ignored_id, XtPointer client_data); char *strdup_and_add_accel (char *name); -int button_item_to_widget_value (Lisp_Object desc, widget_value *wv, - int allow_text_field_p, int no_keys_p); -widget_value * gui_items_to_widget_values (Lisp_Object items); +int button_item_to_widget_value (Lisp_Object gui_object_instance, + Lisp_Object gui_item, widget_value *wv, + int allow_text_field_p, int no_keys_p, + int menu_entry_p); +widget_value * gui_items_to_widget_values (Lisp_Object gui_object_instance, + Lisp_Object items); Lisp_Object menu_name_to_accelerator (char *name); char *menu_separator_style (const char *s); Lisp_Object widget_value_unwind (Lisp_Object closure);
--- a/src/gui.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/gui.c Mon Aug 13 11:17:09 2007 +0200 @@ -32,7 +32,7 @@ Lisp_Object Q_active, Q_suffix, Q_keys, Q_style, Q_selected; Lisp_Object Q_filter, Q_config, Q_included, Q_key_sequence; -Lisp_Object Q_accelerator, Q_label, Q_callback; +Lisp_Object Q_accelerator, Q_label, Q_callback, Q_callback_ex, Q_value; Lisp_Object Qtoggle, Qradio; static Lisp_Object parse_gui_item_tree_list (Lisp_Object list); @@ -74,7 +74,13 @@ void get_gui_callback (Lisp_Object data, Lisp_Object *fn, Lisp_Object *arg) { - if (SYMBOLP (data) + if (EQ (data, Qquit)) + { + *fn = Qeval; + *arg = list3 (Qsignal, list2 (Qquote, Qquit), Qnil); + Vquit_flag = Qt; + } + else if (SYMBOLP (data) || (COMPILED_FUNCTIONP (data) && XCOMPILED_FUNCTION (data)->flags.interactivep) || (CONSP (data) && (EQ (XCAR (data), Qlambda)) @@ -122,7 +128,9 @@ else if (EQ (key, Q_style)) pgui_item->style = val; else if (EQ (key, Q_selected)) pgui_item->selected = val; else if (EQ (key, Q_keys)) pgui_item->keys = val; - else if (EQ (key, Q_callback)) pgui_item->callback = val; + else if (EQ (key, Q_callback)) pgui_item->callback = val; + else if (EQ (key, Q_callback_ex)) pgui_item->callback_ex = val; + else if (EQ (key, Q_value)) pgui_item->value = val; else if (EQ (key, Q_key_sequence)) ; /* ignored for FSF compatibility */ else if (EQ (key, Q_label)) ; /* ignored for 21.0 implement in 21.2 */ else if (EQ (key, Q_accelerator)) @@ -144,6 +152,7 @@ lp->name = Qnil; lp->callback = Qnil; + lp->callback_ex = Qnil; lp->suffix = Qnil; lp->active = Qt; lp->included = Qt; @@ -153,6 +162,7 @@ lp->selected = Qnil; lp->keys = Qnil; lp->accelerator = Qnil; + lp->value = Qnil; } Lisp_Object @@ -257,6 +267,8 @@ if (!NILP (pgui_item->callback)) Fplist_put (plist, Q_callback, pgui_item->callback); + if (!NILP (pgui_item->callback_ex)) + Fplist_put (plist, Q_callback_ex, pgui_item->callback_ex); if (!NILP (pgui_item->suffix)) Fplist_put (plist, Q_suffix, pgui_item->suffix); if (!NILP (pgui_item->active)) @@ -275,6 +287,8 @@ Fplist_put (plist, Q_keys, pgui_item->keys); if (!NILP (pgui_item->accelerator)) Fplist_put (plist, Q_accelerator, pgui_item->accelerator); + if (!NILP (pgui_item->value)) + Fplist_put (plist, Q_value, pgui_item->value); } /* @@ -482,6 +496,7 @@ mark_object (p->name); mark_object (p->callback); + mark_object (p->callback_ex); mark_object (p->config); mark_object (p->suffix); mark_object (p->active); @@ -492,50 +507,34 @@ mark_object (p->selected); mark_object (p->keys); mark_object (p->accelerator); + mark_object (p->value); return Qnil; } static unsigned long -gui_item_hash_internal (Lisp_Object obj, int depth) -{ - Lisp_Gui_Item *p = XGUI_ITEM (obj); - - return HASH2 (HASH5 (internal_hash (p->name, depth + 1), - internal_hash (p->callback, depth + 1), - internal_hash (p->suffix, depth + 1), - internal_hash (p->active, depth + 1), - internal_hash (p->included, depth + 1)), - HASH5 (internal_hash (p->config, depth + 1), - internal_hash (p->filter, depth + 1), - internal_hash (p->style, depth + 1), - internal_hash (p->selected, depth + 1), - internal_hash (p->keys, depth + 1))); -} - -static unsigned long gui_item_hash (Lisp_Object obj, int depth) { Lisp_Gui_Item *p = XGUI_ITEM (obj); - /* Note that this evaluates the active and selected slots so that - the hash changes when the result of these changes. */ - return HASH2 (HASH5 (internal_hash (p->name, depth + 1), + return HASH2 (HASH6 (internal_hash (p->name, depth + 1), internal_hash (p->callback, depth + 1), + internal_hash (p->callback_ex, depth + 1), internal_hash (p->suffix, depth + 1), - gui_item_active_p (obj), + internal_hash (p->active, depth + 1), internal_hash (p->included, depth + 1)), - HASH5 (internal_hash (p->config, depth + 1), + HASH6 (internal_hash (p->config, depth + 1), internal_hash (p->filter, depth + 1), internal_hash (p->style, depth + 1), - gui_item_selected_p (obj), - internal_hash (p->keys, depth + 1))); + internal_hash (p->selected, depth + 1), + internal_hash (p->keys, depth + 1), + internal_hash (p->value, depth + 1))); } int gui_item_id_hash (Lisp_Object hashtable, Lisp_Object gitem, int slot) { - int hashid = gui_item_hash_internal (gitem, 0); + int hashid = gui_item_hash (gitem, 0); int id = GUI_ITEM_ID_BITS (hashid, slot); while (!NILP (Fgethash (make_int (id), hashtable, Qnil))) @@ -555,6 +554,8 @@ && internal_equal (p1->callback, p2->callback, depth + 1) && + internal_equal (p1->callback_ex, p2->callback_ex, depth + 1) + && EQ (p1->suffix, p2->suffix) && EQ (p1->active, p2->active) @@ -571,7 +572,9 @@ && EQ (p1->accelerator, p2->accelerator) && - EQ (p1->keys, p2->keys))) + EQ (p1->keys, p2->keys) + && + EQ (p1->value, p2->value))) return 0; return 1; } @@ -590,6 +593,49 @@ write_c_string (buf, printcharfun); } +static Lisp_Object +copy_gui_item (Lisp_Object gui_item) +{ + Lisp_Object ret = allocate_gui_item (); + Lisp_Gui_Item *lp, *g = XGUI_ITEM (gui_item); + + lp = XGUI_ITEM (ret); + lp->name = g->name; + lp->callback = g->callback; + lp->callback_ex = g->callback_ex; + lp->suffix = g->suffix; + lp->active = g->active; + lp->included = g->included; + lp->config = g->config; + lp->filter = g->filter; + lp->style = g->style; + lp->selected = g->selected; + lp->keys = g->keys; + lp->accelerator = g->accelerator; + lp->value = g->value; + + return ret; +} + +Lisp_Object +copy_gui_item_tree (Lisp_Object arg) +{ + if (CONSP (arg)) + { + Lisp_Object rest = arg = Fcopy_sequence (arg); + while (CONSP (rest)) + { + XCAR (rest) = copy_gui_item_tree (XCAR (rest)); + rest = XCDR (rest); + } + return arg; + } + else if (GUI_ITEMP (arg)) + return copy_gui_item (arg); + else + return arg; +} + /* parse a glyph descriptor into a tree of gui items. The gui_item slot of an image instance can be a single item or an @@ -681,6 +727,8 @@ defkeyword (&Q_accelerator, ":accelerator"); defkeyword (&Q_label, ":label"); defkeyword (&Q_callback, ":callback"); + defkeyword (&Q_callback_ex, ":callback-ex"); + defkeyword (&Q_value, ":value"); defsymbol (&Qtoggle, "toggle"); defsymbol (&Qradio, "radio");
--- a/src/gui.h Mon Aug 13 11:16:09 2007 +0200 +++ b/src/gui.h Mon Aug 13 11:17:09 2007 +0200 @@ -43,6 +43,7 @@ struct lcrecord_header header; Lisp_Object name; /* String */ Lisp_Object callback; /* Symbol or form */ + Lisp_Object callback_ex; /* Form taking context arguments */ Lisp_Object suffix; /* String */ Lisp_Object active; /* Form */ Lisp_Object included; /* Form */ @@ -52,6 +53,7 @@ Lisp_Object selected; /* Form */ Lisp_Object keys; /* String */ Lisp_Object accelerator; /* Char or Symbol */ + Lisp_Object value; /* Anything you like */ }; DECLARE_LRECORD (gui_item, Lisp_Gui_Item); @@ -63,7 +65,7 @@ extern Lisp_Object Q_accelerator, Q_active, Q_config, Q_filter, Q_included; extern Lisp_Object Q_keys, Q_selected, Q_suffix, Qradio, Qtoggle; -extern Lisp_Object Q_key_sequence, Q_label, Q_callback; +extern Lisp_Object Q_key_sequence, Q_label, Q_callback, Q_callback_ex, Q_value; void gui_item_add_keyval_pair (Lisp_Object, Lisp_Object key, Lisp_Object val, @@ -85,6 +87,7 @@ Lisp_Object allocate_gui_item (void); void gui_item_init (Lisp_Object gui_item); Lisp_Object parse_gui_item_tree_children (Lisp_Object list); +Lisp_Object copy_gui_item_tree (Lisp_Object arg); /* this is mswindows biased but reasonably safe I think */ #define GUI_ITEM_ID_SLOTS 8
--- a/src/gutter.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/gutter.c Mon Aug 13 11:17:09 2007 +0200 @@ -50,6 +50,9 @@ Lisp_Object Qgutter_visible; Lisp_Object Qdefault_gutter_position_changed_hook; +static void +update_gutter_geometry (struct frame *f, enum gutter_pos pos); + #define SET_GUTTER_WAS_VISIBLE_FLAG(frame, pos, flag) \ do { \ switch (pos) \ @@ -85,6 +88,7 @@ return frame->right_gutter_was_visible; default: abort (); + return 0; /* To keep the compiler happy */ } } @@ -256,7 +260,7 @@ int line, border_width; face_index findex; display_line_dynarr* ddla, *cdla; - struct display_line *dl; + struct display_line *dl = 0; int cdla_len; if (!WINDOW_LIVE_P (w)) @@ -321,10 +325,38 @@ } /* grab coordinates of last line and blank after it. */ - dl = Dynarr_atp (ddla, Dynarr_length (ddla) - 1); - ypos = dl->ypos + dl->descent - dl->clip; + if (Dynarr_length (ddla) > 0) + { + dl = Dynarr_atp (ddla, Dynarr_length (ddla) - 1); + ypos = dl->ypos + dl->descent - dl->clip; + } + else + ypos = y; + redisplay_clear_region (window, findex, x + border_width , ypos, width - 2 * border_width, height - (ypos - y) - border_width); + /* If, for some reason, we have more to display than we have + room for, and we are allowed to resize the gutter, then make + sure this happens before the next time we try and + output. This can happen when face font sizes change. */ + if (dl && dl->clip > 0 && EQ (w->gutter_size[pos], Qautodetect)) + { + /* #### Ideally we would just mark the specifier as dirty + and everything else would "just work". Unfortunately we have + two problems with this. One is that the specifier cache + won't be recalculated unless the specifier code thinks the + cached value has actually changed, even though we have + marked the specifier as dirty. Additionally, although doing + this results in a gutter size change, we never seem to get + back into redisplay so that the frame size can be updated. I + think this is because we are already in redisplay and later + on the frame will be marked as clean. Thus we also have to + force a pending recalculation of the frame size. */ + w->gutter_size[pos] = Qnil; + Fset_specifier_dirty_flag (Vgutter_size[pos]); + update_gutter_geometry (f, pos); + } + /* bevel the gutter area if so desired */ if (border_width != 0) { @@ -468,6 +500,25 @@ /* We have to change the gutter geometry separately to the gutter update since it needs to occur outside of redisplay proper. */ +static void +update_gutter_geometry (struct frame *f, enum gutter_pos pos) +{ + /* If the gutter geometry has changed then re-layout the + frame. If we are in display there is almost no point in doing + anything else since the frame size changes will be delayed + until we are out of redisplay proper. */ + if (FRAME_GUTTER_BOUNDS (f, pos) != f->current_gutter_bounds[pos]) + { + int width, height; + pixel_to_char_size (f, FRAME_PIXWIDTH (f), FRAME_PIXHEIGHT (f), + &width, &height); + change_frame_size (f, height, width, 0); + } + + /* Mark sizes as up-to-date. */ + f->current_gutter_bounds[pos] = FRAME_GUTTER_BOUNDS (f, pos); +} + void update_frame_gutter_geometry (struct frame *f) { @@ -481,20 +532,7 @@ until we are out of redisplay proper. */ GUTTER_POS_LOOP (pos) { - if (FRAME_GUTTER_BOUNDS (f, pos) != f->current_gutter_bounds[pos]) - { - int width, height; - pixel_to_char_size (f, FRAME_PIXWIDTH (f), FRAME_PIXHEIGHT (f), - &width, &height); - change_frame_size (f, height, width, 0); - break; - } - } - - GUTTER_POS_LOOP (pos) - { - /* Mark sizes as up-to-date. */ - f->current_gutter_bounds[pos] = FRAME_GUTTER_BOUNDS (f, pos); + update_gutter_geometry (f, pos); } } } @@ -557,6 +595,10 @@ if (((x + width) < g_x) || (x > (g_x + g_width))) return; +#ifdef DEBUG_WIDGETS + printf ("redrawing gutter after expose %d+%d, %dx%d\n", + x, y, width, height); +#endif /* #### optimize this - redrawing the whole gutter for every expose is very expensive. We reset the current display lines because if they're being exposed they are no longer current. */ @@ -573,11 +615,16 @@ int height) { enum gutter_pos pos; + + /* We have to be "in display" when we output the gutter - make it + so. */ + hold_frame_size_changes (); GUTTER_POS_LOOP (pos) { if (FRAME_GUTTER_VISIBLE (f, pos)) redraw_exposed_gutter (f, pos, x, y, width, height); } + unhold_one_frame_size_changes (f); } void @@ -1047,8 +1094,8 @@ defsymbol (&Qgutter_size, "gutter-size"); defsymbol (&Qgutter_visible, "gutter-visible"); - defsymbol (&Qdefault_gutter_position_changed_hook, - "default-gutter-position-changed"); + defsymbol (&Qdefault_gutter_position_changed_hook, + "default-gutter-position-changed-hook"); } void
--- a/src/hpplay.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/hpplay.c Mon Aug 13 11:17:09 2007 +0200 @@ -51,6 +51,8 @@ #include <config.h> #include "lisp.h" +#include "nativesound.h" + #include <stdlib.h> #include <stdio.h> #ifdef HPUX10 @@ -61,6 +63,7 @@ #include <audio/CUlib.h> #endif /* !HPUX 10 */ + Lisp_Object Vhp_play_server; Lisp_Object Vhp_play_speaker; int hp_play_gain; @@ -202,11 +205,11 @@ play_bucket_internal(audio, pSBucket, volume); - ASetErrorHandler(prevHandler); + ASetErrorHandler(prevHandler); } -void +int play_sound_data (data, length, volume) unsigned char * data; int length; @@ -218,7 +221,17 @@ SunHeader *header; long status; char *server; + int result; + /* #### Finish this to return an error code. + This function signal a lisp error. How consistent with the rest. + What if this function is needed in doing the beep for the error? + + Apparently the author of this didn't read the comment in + Fplay_sound. + */ + + if (STRINGP (Vhp_play_server)) server = (char *) XSTRING_DATA (Vhp_play_server); server = ""; @@ -250,6 +263,8 @@ ASetErrorHandler(prevHandler); if (status) player_error_internal( audio, "Audio data copy failed", status ); + + return 1; } void
--- a/src/inline.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/inline.c Mon Aug 13 11:17:09 2007 +0200 @@ -69,7 +69,7 @@ #endif #ifdef HAVE_POSTGRESQL -#include <libpq-fe.h> +#include POSTGRES_INCLUDE (libpq-fe.h) #include "postgresql.h" #endif
--- a/src/input-method-xlib.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/input-method-xlib.c Mon Aug 13 11:17:09 2007 +0200 @@ -333,7 +333,6 @@ if (!xim) { - xim_info ("X Input Method open failed. Waiting for an XIM to be enabled.\n"); return; }
--- a/src/insdel.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/insdel.c Mon Aug 13 11:17:09 2007 +0200 @@ -3082,6 +3082,13 @@ const Bufbyte *strend = str + len; memset (charsets, 0, NUM_LEADING_BYTES); + /* #### SJT doesn't like this. */ + if (len == 0) + { + charsets[XCHARSET_LEADING_BYTE (Vcharset_ascii) - 128] = 1; + return; + } + while (str < strend) { charsets[CHAR_LEADING_BYTE (charptr_emchar (str)) - 128] = 1; @@ -3101,6 +3108,14 @@ int i; memset (charsets, 0, NUM_LEADING_BYTES); + + /* #### SJT doesn't like this. */ + if (len == 0) + { + charsets[XCHARSET_LEADING_BYTE (Vcharset_ascii) - 128] = 1; + return; + } + for (i = 0; i < len; i++) { charsets[CHAR_LEADING_BYTE (str[i]) - 128] = 1;
--- a/src/keymap.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/keymap.c Mon Aug 13 11:17:09 2007 +0200 @@ -2071,7 +2071,8 @@ { struct key_data metified; metified.keysym = raw_keys[1].keysym; - metified.modifiers = raw_keys[1].modifiers | XEMACS_MOD_META; + metified.modifiers = raw_keys[1].modifiers | + (unsigned char) XEMACS_MOD_META; /* Search for meta-next-char sequence directly */ cmd = keymap_lookup_1 (k, &metified, accept_default);
--- a/src/line-number.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/line-number.c Mon Aug 13 11:17:09 2007 +0200 @@ -293,7 +293,7 @@ get_nearest_line_number (b, &beg, pos, &cached_lines); } - scan_buffer (b, '\n', beg, pos, pos > beg ? EMACS_INT_MAX : EMACS_INT_MIN, + scan_buffer (b, '\n', beg, pos, pos > beg ? EMACS_INT_MAX : -EMACS_INT_MAX, &shortage, 0); line = EMACS_INT_MAX - shortage;
--- a/src/linuxplay.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/linuxplay.c Mon Aug 13 11:17:09 2007 +0200 @@ -58,10 +58,11 @@ #endif #include "miscplay.h" +#include "nativesound.h" #include <errno.h> #include <fcntl.h> -#include SOUNDCARD_H_PATH /* Path computed by configure */ +#include SOUNDCARD_H_FILE /* Path computed by configure */ #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -277,8 +278,11 @@ } /* XEmacs requires code both for playback of pre-loaded data and for playback - from a soundfile; we use one function for both cases */ -static void linux_play_data_or_file(int fd,unsigned char *data, + from a soundfile; we use one function for both cases. + + Returns 1 on succes. 0 otherwise. +*/ +static int linux_play_data_or_file(int fd,unsigned char *data, int length,int volume) { size_t (*parsesndfile)(void **dayta,size_t *sz,void **outbuf); @@ -292,11 +296,11 @@ /* We need to read at least the header information before we can start doing anything */ if (!data || length < HEADERSZ) { - if (fd < 0) return; + if (fd < 0) return 0; else { length = read(fd,sndbuf,SNDBUFSZ); if (length < HEADERSZ) - return; + return 0; data = sndbuf; length = SNDBUFSZ; } } @@ -305,14 +309,16 @@ if (ffmt != fmtRaw && ffmt != fmtSunAudio && ffmt != fmtWave) { warn("Unsupported file format (neither RAW, nor Sun/DECAudio, nor WAVE)"); - return; } + return 0; } /* The VoxWare-SDK discourages opening /dev/audio; opening /dev/dsp and properly initializing it via ioctl() is preferred */ if ((audio_fd=open(audio_dev, O_WRONLY | O_NONBLOCK, 0)) < 0) { - perror(audio_dev); + /* JV. Much too verbose. In addition this can crash. See NOTE: in + Fplay_sound + perror(audio_dev); */ if (mix_fd > 0 && mix_fd != audio_fd) { close(mix_fd); mix_fd = -1; } - return; } + return 0; } /* The VoxWare-SDK discourages direct manipulation of the mixer device as this could lead to problems, when multiple sound cards are installed */ @@ -356,7 +362,7 @@ if (ffmt == fmtWave) parse_wave_complete(); - + END_OF_PLAY: /* Now cleanup all used resources */ @@ -378,12 +384,11 @@ close(audio_fd); audio_fd = -1; - return; + return 1; } /* Call "linux_play_data_or_file" with the appropriate parameters for playing a soundfile */ -void play_sound_file (char *sound_file, int volume); void play_sound_file (char *sound_file, int volume) { int fd; @@ -398,9 +403,7 @@ /* Call "linux_play_data_or_file" with the appropriate parameters for playing pre-loaded data */ -void play_sound_data (unsigned char *data, int length, int volume); -void play_sound_data (unsigned char *data, int length, int volume) +int play_sound_data (unsigned char *data, int length, int volume) { - linux_play_data_or_file(-1,data,length,volume); - return; + return linux_play_data_or_file(-1,data,length,volume); }
--- a/src/lisp-union.h Mon Aug 13 11:16:09 2007 +0200 +++ b/src/lisp-union.h Mon Aug 13 11:17:09 2007 +0200 @@ -30,7 +30,7 @@ union Lisp_Object { /* if non-valbits are at lower addresses */ -#if defined(WORDS_BIGENDIAN) +#ifdef WORDS_BIGENDIAN struct { EMACS_UINT val : VALBITS;
--- a/src/lisp.h Mon Aug 13 11:16:09 2007 +0200 +++ b/src/lisp.h Mon Aug 13 11:17:09 2007 +0200 @@ -165,13 +165,13 @@ #ifndef DOESNT_RETURN # if defined __GNUC__ # if ((__GNUC__ > 2) || (__GNUC__ == 2) && (__GNUC_MINOR__ >= 5)) -# define DOESNT_RETURN void volatile +# define DOESNT_RETURN void # define DECLARE_DOESNT_RETURN(decl) \ - extern void volatile decl __attribute__ ((noreturn)) + extern void decl __attribute__ ((noreturn)) # define DECLARE_DOESNT_RETURN_GCC_ATTRIBUTE_SYNTAX_SUCKS(decl,str,idx) \ /* Should be able to state multiple independent __attribute__s, but \ the losing syntax doesn't work that way, and screws losing cpp */ \ - extern void volatile decl \ + extern void decl \ __attribute__ ((noreturn, format (printf, str, idx))) # else # define DOESNT_RETURN void volatile @@ -968,6 +968,15 @@ #endif /* not MULE */ +/* Return the true size of a struct with a variable-length array field. */ +#define FLEXIBLE_ARRAY_STRUCT_SIZEOF(flexible_array_structtype, \ + flexible_array_field, \ + flexible_array_length) \ + (offsetof (flexible_array_structtype, flexible_array_field) + \ + (offsetof (flexible_array_structtype, flexible_array_field[1]) - \ + offsetof (flexible_array_structtype, flexible_array_field[0])) * \ + (flexible_array_length)) + /*********** vector ***********/ struct Lisp_Vector @@ -2245,6 +2254,7 @@ Lisp_Object, int, int, int, int); /* Defined in event-Xt.c */ +void enqueue_Xt_dispatch_event (Lisp_Object event); void signal_special_Xt_user_event (Lisp_Object, Lisp_Object, Lisp_Object); @@ -2720,6 +2730,7 @@ EXFUN (Freally_free, 1); EXFUN (Frem, 2); EXFUN (Fremassq, 2); +EXFUN (Freplace_list, 2); EXFUN (Fselected_frame, 1); EXFUN (Fset, 2); EXFUN (Fset_coding_category_system, 2); @@ -2789,6 +2800,7 @@ extern Lisp_Object Qcrlf, Qctext, Qcurrent_menubar, Qctext, Qcursor; extern Lisp_Object Qcyclic_variable_indirection, Qdata, Qdead, Qdecode; extern Lisp_Object Qdefault, Qdefun, Qdelete, Qdelq, Qdevice, Qdevice_live_p; +extern Lisp_Object Qdialog; extern Lisp_Object Qdim, Qdimension, Qdisabled, Qdisplay, Qdisplay_table; extern Lisp_Object Qdoc_string, Qdomain_error, Qduplex, Qdynarr_overhead; extern Lisp_Object Qempty, Qencode, Qend_of_buffer, Qend_of_file, Qend_open; @@ -2799,8 +2811,8 @@ extern Lisp_Object Qfile_name, Qfile_error; extern Lisp_Object Qfont, Qforce_g0_on_output, Qforce_g1_on_output; extern Lisp_Object Qforce_g2_on_output, Qforce_g3_on_output, Qforeground; -extern Lisp_Object Qformat, Qframe, Qframe_live_p, Qfunction, Qgap_overhead; -extern Lisp_Object Qgeneric, Qgeometry, Qglobal, Qheight; +extern Lisp_Object Qformat, Qframe, Qframe_live_p, Qfuncall, Qfunction; +extern Lisp_Object Qgap_overhead, Qgeneric, Qgeometry, Qglobal, Qheight; extern Lisp_Object Qhighlight, Qhorizontal, Qicon; extern Lisp_Object Qicon_glyph_p, Qid, Qidentity, Qimage, Qinfo, Qinherit; extern Lisp_Object Qinhibit_quit, Qinhibit_read_only; @@ -2809,10 +2821,12 @@ extern Lisp_Object Qinteger_or_marker_p, Qintegerp, Qinteractive, Qinternal; extern Lisp_Object Qinvalid_function, Qinvalid_read_syntax, Qio_error; extern Lisp_Object Qiso2022, Qkey, Qkey_assoc, Qkeyboard, Qkeymap; -extern Lisp_Object Qlambda, Qlayout, Qlandscape, Qleft, Qleft_margin, Qlf; +extern Lisp_Object Qlambda, Qlast_command, Qlayout, Qlandscape; +extern Lisp_Object Qleft, Qleft_margin, Qlet, Qlf; extern Lisp_Object Qlist, Qlistp, Qload, Qlock_shift, Qmacro, Qmagic; extern Lisp_Object Qmakunbound, Qmalformed_list, Qmalformed_property_list; extern Lisp_Object Qmalloc_overhead, Qmark, Qmarkers; +extern Lisp_Object Qmenubar; extern Lisp_Object Qmax, Qmemory, Qmessage, Qminus, Qmnemonic, Qmodifiers; extern Lisp_Object Qmono_pixmap_image_instance_p, Qmotion; extern Lisp_Object Qmouse_leave_buffer_hook, Qmsprinter, Qmswindows; @@ -2841,8 +2855,8 @@ extern Lisp_Object Qspecifier, Qstandard_input, Qstandard_output, Qstart_open; extern Lisp_Object Qstream, Qstring, Qstring_lessp, Qsubwindow; extern Lisp_Object Qsubwindow_image_instance_p; -extern Lisp_Object Qsymbol, Qsyntax, Qt, Qterminal, Qtest; -extern Lisp_Object Qtext, Qtext_image_instance_p, Qtimeout, Qtimestamp; +extern Lisp_Object Qsymbol, Qsyntax, Qt, Qterminal, Qtest, Qtext; +extern Lisp_Object Qtext_image_instance_p, Qthis_command, Qtimeout, Qtimestamp; extern Lisp_Object Qtoolbar, Qtop, Qtop_margin, Qtop_level; extern Lisp_Object Qtrue_list_p, Qtty, Qtype; extern Lisp_Object Qunbound, Qundecided, Qundefined, Qunderflow_error;
--- a/src/lrecord.h Mon Aug 13 11:16:09 2007 +0200 +++ b/src/lrecord.h Mon Aug 13 11:17:09 2007 +0200 @@ -186,7 +186,6 @@ lrecord_type_ldap, lrecord_type_pgconn, lrecord_type_pgresult, - lrecord_type_pgsetenv, lrecord_type_count /* must be last */ };
--- a/src/make-src-depend Mon Aug 13 11:16:09 2007 +0200 +++ b/src/make-src-depend Mon Aug 13 11:17:09 2007 +0200 @@ -52,11 +52,11 @@ s/[ \t]+//g; # Find include dependencies for (/^\#include([^\n]+)/gm) { - if (m@^\"([A-Za-z0-9_-]+\.h)\"@) { + if (m@^\"([A-Za-z0-9._-]+\.h)\"@) { $uses{$file}{$1} = 1 if exists $exists{$1}; - } elsif (m@<([A-Za-z0-9_-]+\.h)>@) { + } elsif (m@<([A-Za-z0-9._-]+\.h)>@) { $uses{$file}{$1} = 1 if exists $generated_header{$1}; - } elsif (m@\"../lwlib/([A-Za-z0-9_-]+\.h)\"@) { + } elsif (m@\"../lwlib/([A-Za-z0-9._-]+\.h)\"@) { $uses{$file}{"\$(LWLIB_SRCDIR)/lwlib.h"} = 1; } }
--- a/src/md5.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/md5.c Mon Aug 13 11:17:09 2007 +0200 @@ -29,10 +29,7 @@ #include <sys/types.h> #include <string.h> #include <stdio.h> - -#if defined HAVE_LIMITS_H || _LIBC -# include <limits.h> -#endif +#include <limits.h> /* The following contortions are an attempt to use the C preprocessor to determine an unsigned integral type that is 32 bits wide. An
--- a/src/menubar-x.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/menubar-x.c Mon Aug 13 11:17:09 2007 +0200 @@ -139,9 +139,10 @@ else if (VECTORP (desc)) { Lisp_Object gui_item = gui_parse_item_keywords (desc); - if (!button_item_to_widget_value (gui_item, wv, 1, + if (!button_item_to_widget_value (Qmenubar, + gui_item, wv, 1, (menu_type == MENUBAR_TYPE - && depth <= 1))) + && depth <= 1), 1)) { /* :included form was nil */ wv = NULL;
--- a/src/mule-charset.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/mule-charset.c Mon Aug 13 11:17:09 2007 +0200 @@ -150,9 +150,6 @@ Lisp_Object Vcharset_hash_table; -static Bufbyte next_allocated_1_byte_leading_byte; -static Bufbyte next_allocated_2_byte_leading_byte; - /* Composite characters are characters constructed by overstriking two or more regular characters. @@ -529,17 +526,17 @@ if (dimension == 1) { - if (next_allocated_1_byte_leading_byte > MAX_LEADING_BYTE_PRIVATE_1) + if (chlook->next_allocated_1_byte_leading_byte > MAX_LEADING_BYTE_PRIVATE_1) lb = 0; else - lb = next_allocated_1_byte_leading_byte++; + lb = chlook->next_allocated_1_byte_leading_byte++; } else { - if (next_allocated_2_byte_leading_byte > MAX_LEADING_BYTE_PRIVATE_2) + if (chlook->next_allocated_2_byte_leading_byte > MAX_LEADING_BYTE_PRIVATE_2) lb = 0; else - lb = next_allocated_2_byte_leading_byte++; + lb = chlook->next_allocated_2_byte_leading_byte++; } if (!lb) @@ -1348,8 +1345,8 @@ for (k = 0; k < countof (chlook->charset_by_attributes[0][0]); k++) chlook->charset_by_attributes[i][j][k] = Qnil; - next_allocated_1_byte_leading_byte = MIN_LEADING_BYTE_PRIVATE_1; - next_allocated_2_byte_leading_byte = MIN_LEADING_BYTE_PRIVATE_2; + chlook->next_allocated_1_byte_leading_byte = MIN_LEADING_BYTE_PRIVATE_1; + chlook->next_allocated_2_byte_leading_byte = MIN_LEADING_BYTE_PRIVATE_2; } void
--- a/src/mule-charset.h Mon Aug 13 11:16:09 2007 +0200 +++ b/src/mule-charset.h Mon Aug 13 11:17:09 2007 +0200 @@ -557,6 +557,8 @@ /* Table of charsets indexed by type/final-byte/direction. */ Lisp_Object charset_by_attributes[4][128][2]; + Bufbyte next_allocated_1_byte_leading_byte; + Bufbyte next_allocated_2_byte_leading_byte; }; extern struct charset_lookup *chlook;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/nativesound.h Mon Aug 13 11:17:09 2007 +0200 @@ -0,0 +1,27 @@ +/* Sound functions. + Copyright (C) 2000 Free Software Foundation, Inc. + +This file is part of XEmacs. + +XEmacs is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the +Free Software Foundation; either version 2, or (at your option) any +later version. + +XEmacs is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with XEmacs; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +/* Synched up with: Not in FSF. */ + +/* These are defined in the appropriate file (sunplay.c, sgiplay.c, + or hpplay.c). */ + +void play_sound_file (char *name, int volume); +int play_sound_data (unsigned char *data, int length, int volume);
--- a/src/nt.h Mon Aug 13 11:16:09 2007 +0200 +++ b/src/nt.h Mon Aug 13 11:17:09 2007 +0200 @@ -148,6 +148,6 @@ time_t convert_time (FILETIME ft); extern void init_ntproc (); -extern void term_ntproc (); +extern void term_ntproc (int unused); #endif /* INCLUDED_nt_h_ */
--- a/src/ntplay.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/ntplay.c Mon Aug 13 11:17:09 2007 +0200 @@ -23,6 +23,7 @@ #include <stdio.h> #include "sysfile.h" #include "lisp.h" +#include "nativesound.h" #if (defined (__CYGWIN32__) || defined(__MINGW32__)) && \ CYGWIN_VERSION_DLL_MAJOR < 21 @@ -30,7 +31,7 @@ #else #include <mmsystem.h> #endif -static void play_sound_data_1 (unsigned char *data, int length, +static int play_sound_data_1 (unsigned char *data, int length, int volume, int convert); void play_sound_file (char *sound_file, int volume) @@ -76,7 +77,7 @@ /* mswindows can't cope with playing a sound from alloca space so we have to convert if necessary */ -static void play_sound_data_1 (unsigned char *data, int length, int volume, +static int play_sound_data_1 (unsigned char *data, int length, int volume, int convert_to_malloc) { DWORD flags = SND_ASYNC | SND_MEMORY | SND_NODEFAULT; @@ -98,10 +99,11 @@ PlaySound(sound_data, NULL, flags); - return; + /* #### Error handling? */ + return 1; } -void play_sound_data (unsigned char *data, int length, int volume) +int play_sound_data (unsigned char *data, int length, int volume) { - play_sound_data_1 (data, length, volume, TRUE); + return play_sound_data_1 (data, length, volume, TRUE); }
--- a/src/ntproc.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/ntproc.c Mon Aug 13 11:17:09 2007 +0200 @@ -409,7 +409,6 @@ xzero (start); start.cb = sizeof (start); -#ifdef HAVE_NTGUI if (NILP (Vwin32_start_process_show_window)) start.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW; else @@ -419,7 +418,6 @@ start.hStdInput = GetStdHandle (STD_INPUT_HANDLE); start.hStdOutput = GetStdHandle (STD_OUTPUT_HANDLE); start.hStdError = GetStdHandle (STD_ERROR_HANDLE); -#endif /* HAVE_NTGUI */ /* Explicitly specify no security */ if (!InitializeSecurityDescriptor (&sec_desc, SECURITY_DESCRIPTOR_REVISION))
--- a/src/postgresql.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/postgresql.c Mon Aug 13 11:17:09 2007 +0200 @@ -57,9 +57,6 @@ PQgetlineAsync (copy in/out Asynch.) PQputnbytes (copy in/out Asynch.) PQendcopy (copy in/out) - PQsetenvStart (Asynch. Queries) - PQsetenvPoll (Asynch. Queries) - PQsetenvHandle (Asynch. Queries) Unsupported functions: PQsetdbLogin -- This function is deprecated, has a subset of the @@ -95,6 +92,7 @@ */ #if (EMACS_MAJOR_VERSION == 21) && (EMACS_MINOR_VERSION < 2) #define RUNNING_XEMACS_21_1 1 +#define POSTGRES_INCLUDE(file) <file> #endif /* #define POSTGRES_LO_IMPORT_IS_VOID 1 */ @@ -103,9 +101,7 @@ #include "sysdep.h" #include "buffer.h" -#include <libpq-fe.h> -/* Undefine the following when asynchronous setenvs are fixed in libpq. */ -/* #define LIBPQ_7_0_IS_FIXED */ +#include POSTGRES_INCLUDE (libpq-fe.h) #include "postgresql.h" #ifdef RUNNING_XEMACS_21_1 /* handle interface changes */ @@ -396,109 +392,6 @@ Lisp_PGresult); #endif -/****/ -#ifdef HAVE_POSTGRESQLV7 -/* PGsetenvHandle is an opaque object and we need to be able to store them in - Lisp code so we can make asynchronous environmental calls. - - Asynchronous setenv calls were introduced in libpq-7.0. -*/ -#ifdef LIBPQ_7_0_IS_FIXED - -Lisp_Object Qpgsetenvp; - -static Lisp_Object -make_pgsetenv (Lisp_PGsetenvHandle *pgsetenv) -{ - Lisp_Object lisp_pgsetenv; - XSETPGSETENV (lisp_pgsetenv, pgsetenv); - return lisp_pgsetenv; -} - -static Lisp_Object -#ifdef RUNNING_XEMACS_21_1 -mark_pgsetenv (Lisp_Object obj, void (*markobj) (Lisp_Object)) -#else -mark_pgsetenv (Lisp_Object obj) -#endif -{ - return Qnil; -} - -static void -print_pgsetenv (Lisp_Object obj, Lisp_Object printcharfun, int escapeflag) -{ - char *fmt = "#<PGsetenvHandle %s>"; - char buf[1024]; - PGsetenvHandle *h; - - h = (XPGSETENV (obj))->pgsetenv; - - sprintf (buf, fmt, h ? "live" : "DEAD"); - - /* There are no accessor functions to retrieve any fields, so we must */ - /* treat this as being completely opaque. */ - if (print_readably) - error ("printing unreadable object %s", buf); - else - write_c_string (buf, printcharfun); -} - -static Lisp_PGsetenvHandle * -allocate_pgresult (void) -{ -#ifdef RUNNING_XEMACS_21_1 - Lisp_PGsetenvHandle *pgsetenv = - alloc_lcrecord_type (Lisp_PGsetenvHandle, lrecord_pgsetenv); -#else - Lisp_PGsetenvHandle *pgsetenv = - alloc_lcrecord_type (Lisp_PGsetenvHandle, &lrecord_pgsetenv); -#endif - pgsetenv->pgsetenv = (PGsetenvState *)NULL; - return pgsetenv; -} - -static void -finalize_pgsetenv (void *header, int for_disksave) -{ - Lisp_PGsetenvHandle *pgsetenv = (Lisp_PGsetenvHandle *)header; - - if (for_disksave) - signal_simple_error ("Can't dump an emacs containing PGsetenvHandle objects", - make_pgsetenv (pgsetenv)); - - /* #### PGsetenvHandle's are allocated with malloc(), however in - libpq-7.0 the treatment of them is little short of disastrous. - We don't dare attempt to free it, because there are many code - paths which lead to the handle being freed internally. The - connection routines leak setenv handles and so will we until - libpq gets cleaned up. - Actually, in 7.0b1 asynchronous setenv cannot work outside libpq, so - these functions are disabled in this API. - */ - if (pgsetenv->pgsetenv) - { - free (pgsetenv->pgsetenv); - pgsetenv->pgsetenv = (PGsetenvHandle *)NULL; - } -} - -#ifdef RUNNING_XEMACS_21_1 -DEFINE_LRECORD_IMPLEMENTATION ("pgresult", pgresult, - mark_pgresult, print_pgresult, finalize_pgresult, - NULL, NULL, - Lisp_PGresult); -#else -DEFINE_LRECORD_IMPLEMENTATION ("pgresult", pgresult, - mark_pgresult, print_pgresult, finalize_pgresult, - NULL, NULL, - 0, - Lisp_PGresult); -#endif /* RUNNING_XEMACS_21_1 */ - -#endif /* LIBPQ_7_0_IS_FIXED */ -#endif /* HAVE_POSTGRESQLV7 */ - /***********************/ /* notices */ @@ -1687,114 +1580,12 @@ return PQendcopy (P) ? Qt : Qnil; } -/* The setenv suite of functions. The author of the libpq manual doesn't - know a whole lot about them, and neither do I. -*/ -#if !defined (HAVE_POSTGRESQLV7) || defined (LIBPQ_7_0_IS_FIXED) -DEFUN ("pq-setenv", Fpq_setenv, 1, 1, 0, /* -Set environmental parameters on the backend synchronously. -Returns t if the operation was successful, nil otherwise. -*/ - (conn)) -{ - PGconn *P; - - CHECK_PGCONN (conn); - P = (XPGCONN (conn))->pgconn; - CHECK_LIVE_CONNECTION (P); - - return PQsetenv (P) ? Qt : Qnil; -} -#endif - -#ifdef LIBPQ_7_0_IS_FIXED - -DEFUN ("pq-setenv-start", Fpq_setenv_start, 1, 1, 0, /* -Set environmental parameters on the backend asynchronously. -A PGsetenvHandle is returned on success, nil otherwise. -*/ - (conn)) -{ - PGconn *P; - PGsetenvHandle *handle; - Lisp_setenvHandle *lseh; - - CHECK_PGCONN (conn); - P = (XPGCONN (conn))->pgconn; - CHECK_LIVE_CONNECTION (P); - - handle = PQsetenvStart (P); - if (!handle) error ("out of memory?"); - - lseh = allocate_pgsetenv (); - lseh->setenv = handle; - - return make_pgsetenv (lseh); -} - -DEFUN ("pq-setenv-poll", Fpq_setenv_poll, 1, 1, 0, /* -Poll an asynchronous setenv operation for completion. -*/ - (conn)) -{ - PGconn *P; - PostgresPollingStatusType pst; - - CHECK_PGCONN (conn); - P = (XPGCONN (conn))->pgconn; - CHECK_LIVE_CONNECTION (P); - - pst = PQsetenvPoll (P); - switch (pst) - { - case PGRES_POLLING_FAILED: - /* Something Bad has happened */ - { - char *e = PQerrorMessage (P); - error ("libpq: %s", e); - } - case PGRES_POLLING_OK: - return Qpgres_polling_ok; - case PGRES_POLLING_READING: - return Qpgres_polling_reading; - case PGRES_POLLING_WRITING: - return Qpgres_polling_writing; - case PGRES_POLLING_ACTIVE: - return Qpgres_polling_active; - default: - /* they've added a new field we don't know about */ - error ("Help! Unknown status code %08x from backend!", PS); - } -} - -DEFUN ("pq-setenv-abort", Fpq_setenv_abort, 1, 1, 0, /* -Attempt to abort an in-progress asynchronous setenv operation. -*/ - (handle)) -{ - PGsetenvHandle *h; - - CHECK_PGSETENV (handle); - h = (XPGSETENV (handle))->pgsetenv; - PUKE_IF_NULL (h); - - PQsetenvAbort (h); - /* PQsetenvAbort usually free(3)'s the handle, don't take any chances. */ - (XSETENV (handle))->pgsetenv = (PGsetenvHandle *)NULL; - - return Qt; -} -#endif /* LIBPQ_7_0_IS_FIXED */ - void syms_of_postgresql(void) { #ifndef RUNNING_XEMACS_21_1 INIT_LRECORD_IMPLEMENTATION (pgconn); INIT_LRECORD_IMPLEMENTATION (pgresult); -#ifdef LIBPQ_7_0_IS_FIXED - INIT_LRECORD_IMPLEMENTATION (pgsetenv); -#endif #endif defsymbol (&Qpostgresql, "postgresql"); @@ -1907,16 +1698,6 @@ DEFSUBR (Fpq_get_line_async); DEFSUBR (Fpq_put_nbytes); DEFSUBR (Fpq_end_copy); - - /* The value of the setenv functions is questioned in the libpq manual. */ -#if !defined (HAVE_POSTGRESQLV7) || defined (LIBPQ_7_0_IS_FIXED) - DEFSUBR (Fpq_setenv); -#endif -#ifdef LIBPQ_7_0_IS_FIXED - DEFSUBR (Fpq_setenv_start); - DEFSUBR (Fpq_setenv_poll); - DEFSUBR (Fpq_setenv_abort); -#endif /* LIBPQ_7_0_IS_FIXED */ } void
--- a/src/postgresql.h Mon Aug 13 11:16:09 2007 +0200 +++ b/src/postgresql.h Mon Aug 13 11:17:09 2007 +0200 @@ -57,31 +57,4 @@ #define CHECK_PGRESULT(x) CHECK_RECORD (x, pgresult) #define CONCHECK_PGRESULT(x) CONCHECK_RECORD (x, pgresult) -/****/ -#ifdef HAVE_POSTGRESQLV7 - -#ifdef LIBPQ_7_0_IS_FIXED /* this is broken in released 7.0b1 */ - -/* PGsetenvHandle is an opaque object and we need to be able to store - them in Lisp code in order to make asynchronous environment calls. -*/ -struct Lisp_PGsetenvHandle -{ - struct lcrecord_header header; - PGsetenvHandle *pgsetenv; -}; -typedef struct Lisp_PGsetenvHandle Lisp_PGsetenvHandle; - -DECLARE_LRECORD (pgsetenv, Lisp_PGsetenvHandle); - -#define XPGSETENV(x) XRECORD (x, pgsetenv, Lisp_PGsetenvHandle) -#define XSETPGSETENV(x, p) XSETRECORD (x, p, pgsetenv) -#define PGSETENVP(x) RECORDP (x, pgsetenv) -#define CHECK_PGSETENV(x) CHECK_RECORD (x, pgsetenv) -#define CONCHECK_PGSETENV(x) CONCHECK_RECORD (x, pgsetenv) - -#endif /* LIBPQ_7_0_IS_FIXED */ - -#endif /* HAVE_POSTGRESQLV7 */ - #endif /* XEMACS_POSTGRESQL_H__ */
--- a/src/process-nt.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/process-nt.c Mon Aug 13 11:17:09 2007 +0200 @@ -1000,14 +1000,14 @@ /* use a reasonable-sized buffer (somewhere around the size of the stream buffer) so as to avoid inundating the stream with blocked data. */ - Bufbyte chunkbuf[128]; + Bufbyte chunkbuf[512]; Bytecount chunklen; while (1) { ssize_t writeret; - chunklen = Lstream_read (lstream, chunkbuf, 128); + chunklen = Lstream_read (lstream, chunkbuf, 512); if (chunklen <= 0) break; /* perhaps should abort() if < 0? This should never happen. */
--- a/src/process-unix.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/process-unix.c Mon Aug 13 11:17:09 2007 +0200 @@ -1139,6 +1139,14 @@ volatile Lisp_Object vol_proc = proc; Lisp_Process *volatile p = XPROCESS (proc); + /* #### JV: layering violation? + + This function knows too much about the relation between the encodingstream + (DATA_OUTSTREAM) and te actual output stream p->output_stream. + + If encoding streams properly forwarded all calls, we could simply + use DATA_OUTSTREAM everywhere. */ + if (!SETJMP (send_process_frame)) { /* use a reasonable-sized buffer (somewhere around the size of the @@ -1173,6 +1181,9 @@ that may allow the program to finish doing output and read more. */ Faccept_process_output (Qnil, make_int (1), Qnil); + /* It could have *really* finished, deleting the process */ + if (NILP(p->pipe_outstream)) + return; old_sigpipe = (SIGTYPE (*) (int)) signal (SIGPIPE, send_process_trap); Lstream_flush (XLSTREAM (p->pipe_outstream));
--- a/src/redisplay-msw.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/redisplay-msw.c Mon Aug 13 11:17:09 2007 +0200 @@ -577,8 +577,12 @@ HDC hcompdc = get_frame_compdc (f); HGDIOBJ old=NULL; COLORREF bgcolor = GetBkColor (hdc); + const int real_x = IMAGE_INSTANCE_MSWINDOWS_BITMAP_REAL_WIDTH (p); + const int real_y = IMAGE_INSTANCE_MSWINDOWS_BITMAP_REAL_HEIGHT (p); + const int surface_x = IMAGE_INSTANCE_PIXMAP_WIDTH (p); + const int surface_y = IMAGE_INSTANCE_PIXMAP_HEIGHT (p); - /* first blt the mask */ + /* first blit the mask */ if (IMAGE_INSTANCE_MSWINDOWS_MASK (p)) { RGBQUAD col; @@ -591,27 +595,33 @@ SetDIBColorTable (hcompdc, 1, 1, &col); - BitBlt (hdc, - db->xpos, db->ypos, - dga->width, dga->height, - hcompdc, - dga->xoffset, dga->yoffset, - SRCCOPY); + StretchBlt (hdc, + db->xpos, db->ypos, + dga->width, dga->height, + hcompdc, + MulDiv (dga->xoffset, real_x, surface_x), + MulDiv (dga->yoffset, real_y, surface_y), + MulDiv (dga->width, real_x, surface_x), + MulDiv (dga->height, real_y, surface_y), + SRCCOPY); SelectObject (hcompdc, old); } - /* Now blt the bitmap itself, or one of its slices. */ + /* Now blit the bitmap itself, or one of its slices. */ old = SelectObject (hcompdc, IMAGE_INSTANCE_MSWINDOWS_BITMAP_SLICE (p, IMAGE_INSTANCE_PIXMAP_SLICE (p))); - BitBlt (hdc, - db->xpos, db->ypos, - dga->width, dga->height, - hcompdc, - dga->xoffset, dga->yoffset, - IMAGE_INSTANCE_MSWINDOWS_MASK (p) ? SRCINVERT : SRCCOPY); + StretchBlt (hdc, + db->xpos, db->ypos, + dga->width, dga->height, + hcompdc, + MulDiv (dga->xoffset, real_x, surface_x), + MulDiv (dga->yoffset, real_y, surface_y), + MulDiv (dga->width, real_x, surface_x), + MulDiv (dga->height, real_y, surface_y), + IMAGE_INSTANCE_MSWINDOWS_MASK (p) ? SRCINVERT : SRCCOPY); SelectObject (hcompdc, old); } @@ -1137,27 +1147,6 @@ { switch (XIMAGE_INSTANCE_TYPE (instance)) { - case IMAGE_TEXT: - { - /* #### This is way losing. See the comment in - add_glyph_rune(). */ - Lisp_Object string = - XIMAGE_INSTANCE_TEXT_STRING (instance); - convert_bufbyte_string_into_emchar_dynarr - (XSTRING_DATA (string), XSTRING_LENGTH (string), buf); - - if (rb->cursor_type == CURSOR_ON) - mswindows_output_cursor (w, dl, xpos, cursor_width, - findex, Dynarr_at (buf, 0), 0); - else /* #### redisplay-x passes -1 as the width: why ? */ - mswindows_output_string (w, dl, buf, xpos, - rb->object.dglyph.xoffset, - start_pixpos, rb->width, findex, - 0, 0, 0, 0); - Dynarr_reset (buf); - } - break; - case IMAGE_MONO_PIXMAP: case IMAGE_COLOR_PIXMAP: redisplay_output_pixmap (w, instance, &dbox, &dga, findex, @@ -1168,9 +1157,6 @@ findex, 0, 1); break; - case IMAGE_POINTER: - abort (); - case IMAGE_SUBWINDOW: case IMAGE_WIDGET: redisplay_output_subwindow (w, instance, &dbox, &dga, findex, @@ -1193,7 +1179,9 @@ case IMAGE_NOTHING: /* nothing is as nothing does */ break; - + + case IMAGE_TEXT: + case IMAGE_POINTER: default: abort (); }
--- a/src/redisplay-output.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/redisplay-output.c Mon Aug 13 11:17:09 2007 +0200 @@ -233,8 +233,7 @@ return 0; /* Only check dirtiness if we know something has changed. */ else if (crb->type == RUNE_DGLYPH && - ((XFRAME (w->frame)->glyphs_changed && - XGLYPH_DIRTYP (crb->object.dglyph.glyph)) || + (XGLYPH_DIRTYP (crb->object.dglyph.glyph) || crb->findex != drb->findex)) { /* We need some way of telling redisplay_output_layout () that the @@ -262,10 +261,9 @@ cases they will actually be the same object. This does not mean, however, that nothing has changed. We therefore need to check the current hash of the glyph against the last recorded - display hash. See update_subwindow (). */ - if (IMAGE_INSTANCE_DISPLAY_HASH (ii) == 0 || - IMAGE_INSTANCE_DISPLAY_HASH (ii) != - internal_hash (image, IMAGE_INSTANCE_HASH_DEPTH) || + display hash and the pending display items. See + update_subwindow (). */ + if (image_instance_changed (image) || crb->findex != drb->findex || WINDOW_FACE_CACHEL_DIRTY (w, drb->findex)) { @@ -283,7 +281,13 @@ return 0; } else - return 1; + { +#ifdef DEBUG_WIDGET_OUTPUT + if (XIMAGE_INSTANCE_TYPE (image) == IMAGE_LAYOUT) + printf ("glyph layout %p considered unchanged\n", ii); +#endif + return 1; + } } /* We now do this last so that glyph checks can do their own thing for face changes. Face changes quite often happen when we are @@ -898,15 +902,7 @@ else { DEVMETH (d, output_begin, (d)); - - /* #### This is a gross kludge. Cursor handling is such a royal - pain in the ass. */ - if (rb->type == RUNE_DGLYPH && - (EQ (rb->object.dglyph.glyph, Vtruncation_glyph) || - EQ (rb->object.dglyph.glyph, Vcontinuation_glyph))) - rb->cursor_type = NO_CURSOR; - else - rb->cursor_type = CURSOR_OFF; + rb->cursor_type = CURSOR_OFF; dl->cursor_elt = -1; output_display_line (w, 0, cla, y, rb->xpos, rb->xpos + rb->width); } @@ -1301,7 +1297,9 @@ dga->height = layout_height; dga->width = layout_width; - +#ifdef DEBUG_WIDGET_OUTPUT + printf ("outputing layout glyph %p\n", p); +#endif /* This makes the glyph area fit into the display area. */ if (!redisplay_normalize_glyph_area (db, dga)) return; @@ -1406,7 +1404,7 @@ continue; /* We have to invert the offset here as normalization will have made them positive which the output - routines will treat as a truely +ve offset. */ + routines will treat as a truly +ve offset. */ cdga.xoffset = -cdga.xoffset; cdga.yoffset = -cdga.yoffset; @@ -1424,6 +1422,14 @@ struct display_line dl; /* this is fake */ Lisp_Object string = IMAGE_INSTANCE_TEXT_STRING (childii); + unsigned char charsets[NUM_LEADING_BYTES]; + struct face_cachel *cachel = WINDOW_FACE_CACHEL (w, findex); + + find_charsets_in_bufbyte_string (charsets, + XSTRING_DATA (string), + XSTRING_LENGTH (string)); + ensure_face_cachel_complete (cachel, window, charsets); + convert_bufbyte_string_into_emchar_dynarr (XSTRING_DATA (string), XSTRING_LENGTH (string), buf);
--- a/src/redisplay-tty.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/redisplay-tty.c Mon Aug 13 11:17:09 2007 +0200 @@ -336,59 +336,6 @@ { switch (XIMAGE_INSTANCE_TYPE (instance)) { - case IMAGE_TEXT: - { - Bufbyte *temptemp; - Lisp_Object string = - XIMAGE_INSTANCE_TEXT_STRING (instance); - Bytecount len = XSTRING_LENGTH (string); - - /* In the unlikely instance that a garbage-collect - occurs during encoding, we at least need to - copy the string. - */ - temptemp = (Bufbyte *) alloca (len); - memcpy (temptemp, XSTRING_DATA (string), len); - { - int i; - - /* Now truncate the first rb->object.dglyph.xoffset - columns. */ - for (i = 0; i < rb->object.dglyph.xoffset;) - { -#ifdef MULE - Emchar ch = charptr_emchar (temptemp); - i += XCHARSET_COLUMNS (CHAR_CHARSET (ch)); -#else - i++; /* telescope this */ -#endif - INC_CHARPTR (temptemp); - } - - /* If we truncated one column too many, then - add a space at the beginning. */ - if (i > rb->object.dglyph.xoffset) - { - assert (i > 0); - *--temptemp = ' '; - i--; - } - len -= i; - } - - tty_output_bufbyte_string (w, dl, temptemp, len, - xpos, findex, 0); - - if (xpos >= cursor_start - && (cursor_start < - xpos + (bufbyte_string_displayed_columns - (temptemp, len)))) - { - cmgoto (f, dl->ypos - 1, cursor_start); - } - } - break; - case IMAGE_MONO_PIXMAP: case IMAGE_COLOR_PIXMAP: case IMAGE_SUBWINDOW: @@ -397,13 +344,12 @@ /* just do nothing here */ break; - case IMAGE_POINTER: - abort (); - case IMAGE_NOTHING: /* nothing is as nothing does */ break; + case IMAGE_TEXT: + case IMAGE_POINTER: default: abort (); }
--- a/src/redisplay-x.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/redisplay-x.c Mon Aug 13 11:17:09 2007 +0200 @@ -452,25 +452,6 @@ { switch (XIMAGE_INSTANCE_TYPE (instance)) { - case IMAGE_TEXT: - { - /* #### This is way losing. See the comment in - add_glyph_rune(). */ - Lisp_Object string = - XIMAGE_INSTANCE_TEXT_STRING (instance); - convert_bufbyte_string_into_emchar_dynarr - (XSTRING_DATA (string), XSTRING_LENGTH (string), buf); - - x_output_string (w, dl, buf, xpos, - rb->object.dglyph.xoffset, - start_pixpos, -1, findex, - (rb->cursor_type == CURSOR_ON), - cursor_start, cursor_width, - cursor_height); - Dynarr_reset (buf); - } - break; - case IMAGE_MONO_PIXMAP: case IMAGE_COLOR_PIXMAP: redisplay_output_pixmap (w, instance, &dbox, &dga, findex, @@ -495,6 +476,7 @@ /* nothing is as nothing does */ break; + case IMAGE_TEXT: case IMAGE_POINTER: default: abort ();
--- a/src/redisplay.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/redisplay.c Mon Aug 13 11:17:09 2007 +0200 @@ -450,6 +450,9 @@ Lisp_Object Vwindow_scroll_functions; Lisp_Object Qredisplay_end_trigger_functions, Vredisplay_end_trigger_functions; +Lisp_Object Qbuffer_list_changed_hook, Vbuffer_list_changed_hook; + + #define INHIBIT_REDISPLAY_HOOKS /* #### Until we've thought about this more. */ #ifndef INHIBIT_REDISPLAY_HOOKS @@ -804,7 +807,7 @@ gb.glyph = Vhscroll_glyph; { int oldpixpos = data->pixpos; - retval = add_glyph_rune (data, &gb, BEGIN_GLYPHS, 1, + retval = add_glyph_rune (data, &gb, BEGIN_GLYPHS, 0, GLYPH_CACHEL (XWINDOW (data->window), HSCROLL_GLYPH_INDEX)); data->hscroll_glyph_width_adjust = @@ -924,9 +927,7 @@ else if (data->is_modeline) crb->bufpos = data->modeline_charpos; else - /* fuckme if this shouldn't be an abort. */ - /* abort (); fuckme harder, this abort gets tripped quite often, - in propagation and whatnot. #### fixme */ + /* Text but not in buffer */ crb->bufpos = 0; crb->type = RUNE_CHAR; crb->object.chr.ch = data->font_is_bogus ? '~' : data->ch; @@ -1542,7 +1543,8 @@ || (pos_type == BEGIN_GLYPHS && extent_begin_glyph_layout (XEXTENT (gb->extent)) == GL_TEXT) || (pos_type == END_GLYPHS && - extent_end_glyph_layout (XEXTENT (gb->extent)) == GL_TEXT)) + extent_end_glyph_layout (XEXTENT (gb->extent)) == GL_TEXT) + || pos_type == LEFT_GLYPHS || pos_type == RIGHT_GLYPHS) { struct rune rb; int width; @@ -1550,6 +1552,8 @@ int ascent, descent; Lisp_Object baseline; Lisp_Object face; + Lisp_Object instance; + face_index findex; if (cachel) width = cachel->width; @@ -1661,10 +1665,32 @@ face = glyph_face (gb->glyph, data->window); if (NILP (face)) - rb.findex = data->findex; + findex = data->findex; else - rb.findex = get_builtin_face_cache_index (w, face); - + findex = get_builtin_face_cache_index (w, face); + + instance = glyph_image_instance (gb->glyph, data->window, + ERROR_ME_NOT, 1); + if (TEXT_IMAGE_INSTANCEP (instance)) + { + Lisp_Object string = XIMAGE_INSTANCE_TEXT_STRING (instance); + face_index orig_findex = data->findex; + Bytind orig_bufpos = data->bi_bufpos; + Bytind orig_start_col_enabled = data->bi_start_col_enabled; + + data->findex = findex; + data->bi_start_col_enabled = 0; + if (!allow_cursor) + data->bi_bufpos = 0; + add_bufbyte_string_runes (data, XSTRING_DATA (string), + XSTRING_LENGTH (string), 0); + data->findex = orig_findex; + data->bi_bufpos = orig_bufpos; + data->bi_start_col_enabled = orig_start_col_enabled; + return NULL; + } + + rb.findex = findex; rb.xpos = data->pixpos; rb.width = width; rb.bufpos = 0; /* glyphs are never "at" anywhere */ @@ -1675,13 +1701,6 @@ else rb.endpos = 0; rb.type = RUNE_DGLYPH; - /* #### Ben sez: this is way bogus if the glyph is a string. - You should not make the output routines have to cope with - this. The string could contain Mule characters, or non- - printable characters, or characters to be passed through - the display table, or non-character objects (when this gets - implemented), etc. Instead, this routine here should parse - the string into a series of runes. */ rb.object.dglyph.glyph = gb->glyph; rb.object.dglyph.extent = gb->extent; rb.object.dglyph.xoffset = xoffset; @@ -1884,6 +1903,7 @@ dl->used_prop_data = 0; dl->num_chars = 0; + dl->line_continuation = 0; xzero (data); data.ef = extent_fragment_new (w->buffer, f); @@ -2474,11 +2494,12 @@ /* data.bi_bufpos is already at the start of the next line. */ + dl->line_continuation = 1; gb.glyph = Vcontinuation_glyph; cachel = GLYPH_CACHEL (w, CONT_GLYPH_INDEX); } - add_glyph_rune (&data, &gb, BEGIN_GLYPHS, 1, cachel); + add_glyph_rune (&data, &gb, BEGIN_GLYPHS, 0, cachel); if (truncate_win && data.bi_bufpos == BI_BUF_ZV (b) && BI_BUF_FETCH_CHAR (b, prev_bytind (b, BI_BUF_ZV (b))) != '\n') @@ -2726,8 +2747,26 @@ ? dl->left_glyphs : dl->right_glyphs); int elt, end; - int xpos = start; int reverse; + struct window *w = XWINDOW (window); + struct frame *f = XFRAME (w->frame); + struct device *d = XDEVICE (f->device); + pos_data data; + + xzero (data); + data.d = d; + data.window = window; + data.db = db; + data.dl = dl; + data.pixpos = start; + data.cursor_type = NO_CURSOR; + data.cursor_x = -1; + data.last_charset = Qunbound; + data.last_findex = DEFAULT_INDEX; + data.result_str = Qnil; + data.string = Qnil; + data.new_ascent = dl->ascent; + data.new_descent = dl->descent; if ((layout == GL_WHITESPACE && side == LEFT_GLYPHS) || (layout == GL_INSIDE_MARGIN && side == RIGHT_GLYPHS)) @@ -2756,79 +2795,31 @@ || (side == RIGHT_GLYPHS && extent_end_glyph_layout (XEXTENT (gb->extent)) == layout))) { - struct rune rb; - - rb.width = gb->width; - rb.findex = gb->findex; - rb.xpos = xpos; - rb.bufpos = -1; - rb.endpos = 0; - rb.type = RUNE_DGLYPH; - rb.object.dglyph.glyph = gb->glyph; - rb.object.dglyph.extent = gb->extent; - rb.object.dglyph.xoffset = 0; - rb.cursor_type = CURSOR_OFF; - - Dynarr_add (db->runes, rb); - xpos += rb.width; + data.findex = gb->findex; + data.max_pixpos = data.pixpos + gb->width; + add_glyph_rune (&data, gb, side, 0, NULL); count--; gb->active = 0; - - if (glyph_contrib_p (gb->glyph, window)) - { - unsigned short ascent, descent; - Lisp_Object baseline = glyph_baseline (gb->glyph, window); - - ascent = glyph_ascent (gb->glyph, window); - descent = glyph_descent (gb->glyph, window); - - /* A pixmap that has not had a baseline explicitly set. - We use the existing ascent / descent ratio of the - line. */ - if (NILP (baseline)) - { - int gheight = ascent + descent; - int line_height = dl->ascent + dl->descent; - int pix_ascent, pix_descent; - - pix_descent = (int) (gheight * dl->descent) / line_height; - pix_ascent = gheight - pix_descent; - - dl->ascent = max ((int) dl->ascent, pix_ascent); - dl->descent = max ((int) dl->descent, pix_descent); - } - - /* A string so determine contribution normally. */ - else if (EQ (baseline, Qt)) - { - dl->ascent = max (dl->ascent, ascent); - dl->descent = max (dl->descent, descent); - } - - /* A pixmap with an explicitly set baseline. We determine the - contribution here. */ - else if (INTP (baseline)) - { - int height = ascent + descent; - int pix_ascent, pix_descent; - - pix_ascent = height * XINT (baseline) / 100; - pix_descent = height - pix_ascent; - - dl->ascent = max ((int) dl->ascent, pix_ascent); - dl->descent = max ((int) dl->descent, pix_descent); - } - - /* Otherwise something is screwed up. */ - else - abort (); - } } (reverse ? elt-- : elt++); } - return xpos; + if (data.max_pixmap_height) + { + int height = data.new_ascent + data.new_descent; + int pix_ascent, pix_descent; + + pix_descent = data.max_pixmap_height * data.new_descent / height; + pix_ascent = data.max_pixmap_height - pix_descent; + data.new_ascent = max (data.new_ascent, pix_ascent); + data.new_descent = max (data.new_descent, pix_descent); + } + + dl->ascent = data.new_ascent; + dl->descent = data.new_descent; + + return data.pixpos; } /* Add a blank to a margin display block. */ @@ -3556,6 +3547,8 @@ Bufbyte *strdata; struct buffer *buf = XBUFFER (WINDOW_BUFFER (w)); + in_modeline_generation = 1; + detach_all_extents (result_str); resize_string (XSTRING (result_str), -1, data.bytepos - XSTRING_LENGTH (result_str)); @@ -3592,6 +3585,8 @@ Dynarr_at (formatted_string_extent_end_dynarr, elt), result_str); } + + in_modeline_generation = 0; } } @@ -4367,6 +4362,7 @@ dl->used_prop_data = 0; dl->num_chars = 0; + dl->line_continuation = 0; /* set up faces to use for clearing areas, used by output_display_line */ @@ -4759,6 +4755,7 @@ /* data.bi_bufpos is already at the start of the next line. */ + dl->line_continuation = 1; gb.glyph = Vcontinuation_glyph; cachel = GLYPH_CACHEL (w, CONT_GLYPH_INDEX); } @@ -5597,20 +5594,9 @@ assert (cdl->end_bufpos == ddl->end_bufpos); assert (cdl->offset == ddl->offset); - /* If the last rune is already a continuation glyph, fail. - #### We should be able to handle this better. */ - { - struct display_block *db = get_display_block_from_line (ddl, TEXT); - if (Dynarr_length (db->runes)) - { - struct rune *rb = - Dynarr_atp (db->runes, Dynarr_length (db->runes) - 1); - - if (rb->type == RUNE_DGLYPH - && EQ (rb->object.dglyph.glyph, Vcontinuation_glyph)) - return 0; - } - } + /* If the line continues to next display line, fail. */ + if (ddl->line_continuation) + return 0; /* If the line was generated using propagation data, fail. */ if (ddl->used_prop_data) @@ -5628,19 +5614,9 @@ return 0; } - /* If the last rune is now a continuation glyph, fail. */ - { - struct display_block *db = get_display_block_from_line (ddl, TEXT); - if (Dynarr_length (db->runes)) - { - struct rune *rb = - Dynarr_atp (db->runes, Dynarr_length (db->runes) - 1); - - if (rb->type == RUNE_DGLYPH - && EQ (rb->object.dglyph.glyph, Vcontinuation_glyph)) - return 0; - } - } + /* If the line continues to next display line, fail. */ + if (ddl->line_continuation) + return 0; /* If any line position parameters have changed or a cursor has disappeared or disappeared, fail. */ @@ -6310,6 +6286,16 @@ return 1; } + if (!internal_equal (f->old_buffer_alist, f->buffer_alist, 0)) + { + Lisp_Object frame; + + f->old_buffer_alist = Freplace_list (f->old_buffer_alist, + f->buffer_alist); + XSETFRAME (frame, f); + va_run_hook_with_args (Qbuffer_list_changed_hook, 1, frame); + } + /* Before we put a hold on frame size changes, attempt to process any which are already pending. */ if (f->size_change_pending) @@ -9272,6 +9258,7 @@ defsymbol (&Qredisplay_end_trigger_functions, "redisplay-end-trigger-functions"); defsymbol (&Qtop_bottom, "top-bottom"); + defsymbol (&Qbuffer_list_changed_hook, "buffer-list-changed-hook"); DEFSUBR (Fredisplay_echo_area); DEFSUBR (Fredraw_frame); @@ -9423,17 +9410,22 @@ #ifndef INHIBIT_REDISPLAY_HOOKS xxDEFVAR_LISP ("pre-redisplay-hook", &Vpre_redisplay_hook /* Function or functions to run before every redisplay. -Functions on this hook must be careful to avoid signalling errors! */ ); Vpre_redisplay_hook = Qnil; xxDEFVAR_LISP ("post-redisplay-hook", &Vpost_redisplay_hook /* Function or functions to run after every redisplay. -Functions on this hook must be careful to avoid signalling errors! */ ); Vpost_redisplay_hook = Qnil; #endif /* INHIBIT_REDISPLAY_HOOKS */ + DEFVAR_LISP ("buffer-list-changed-hook", &Vbuffer_list_changed_hook /* +Function or functions to call when a frame's buffer list has changed. +This is called during redisplay, before redisplaying each frame. +Functions on this hook are called with one argument, the frame. +*/ ); + Vbuffer_list_changed_hook = Qnil; + DEFVAR_INT ("display-warning-tick", &display_warning_tick /* Bump this to tell the C code to call `display-warning-buffer' at next redisplay. You should not normally change this; the function
--- a/src/redisplay.h Mon Aug 13 11:16:09 2007 +0200 +++ b/src/redisplay.h Mon Aug 13 11:17:09 2007 +0200 @@ -308,6 +308,9 @@ char modeline; /* t if this line is a modeline */ + char line_continuation; /* t if this line continues to + next display line. */ + /* Dynamic array of display blocks */ display_block_dynarr *display_blocks;
--- a/src/scrollbar-x.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/scrollbar-x.c Mon Aug 13 11:17:09 2007 +0200 @@ -406,6 +406,9 @@ return; mirror = find_scrollbar_window_mirror (f, id); + if (!mirror) + return; + win = real_window (mirror, 1); if (NILP (win)) @@ -609,6 +612,9 @@ return; mirror = find_scrollbar_window_mirror (f, id); + if (!mirror) + return; + win = real_window (mirror, 1); if (NILP (win))
--- a/src/sound.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/sound.c Mon Aug 13 11:17:09 2007 +0200 @@ -43,6 +43,7 @@ #ifdef HAVE_NATIVE_SOUND # include <netdb.h> +# include "nativesound.h" #endif #ifdef HAVE_ESD_SOUND @@ -58,11 +59,6 @@ Lisp_Object Vnative_sound_only_on_console; Lisp_Object Q_volume, Q_pitch, Q_duration, Q_sound; -/* These are defined in the appropriate file (sunplay.c, sgiplay.c, - or hpplay.c). */ - -extern void play_sound_file (char *name, int volume); -extern void play_sound_data (unsigned char *data, int length, int volume); #ifdef HAVE_NAS_SOUND extern int nas_play_sound_file (char *name, int volume); @@ -139,11 +135,17 @@ if (DEVICE_CONNECTED_TO_ESD_P (d)) { char *fileext; + int result; TO_EXTERNAL_FORMAT (LISP_STRING, file, C_STRING_ALLOCA, fileext, Qfile_name); - if (esd_play_sound_file (fileext, vol)) + + /* #### ESD uses alarm(). But why should we also stop SIGIO? */ + stop_interrupts (); + result = esd_play_sound_file (fileext, vol); + start_interrupts (); + if (result) return Qnil; } #endif /* HAVE_ESD_SOUND */ @@ -277,7 +279,7 @@ /* variable `sound' is anything that can be a cdr in sound-alist */ Lisp_Object new_volume, pitch, duration, data; int loop_count = 0; - int vol, pit, dur; + int vol, pit, dur, succes; struct device *d = decode_device (device); /* NOTE! You'd better not signal an error in here. */ @@ -336,8 +338,14 @@ TO_EXTERNAL_FORMAT (LISP_STRING, sound, ALLOCA, (soundext, soundextlen), Qbinary); - if (esd_play_sound_data (soundext, soundextlen, vol)) - return Qnil; + + /* #### ESD uses alarm(). But why should we also stop SIGIO? */ + stop_interrupts (); + succes = esd_play_sound_data (soundext, soundextlen, vol); + start_interrupts (); + QUIT; + if(succes) + return Qnil; } #endif /* HAVE_ESD_SOUND */ @@ -353,10 +361,11 @@ Qbinary); /* The sound code doesn't like getting SIGIO interrupts. Unix sucks! */ stop_interrupts (); - play_sound_data ((unsigned char*)soundext, soundextlen, vol); + succes = play_sound_data ((unsigned char*)soundext, soundextlen, vol); start_interrupts (); QUIT; - return Qnil; + if (succes) + return Qnil; } #endif /* HAVE_NATIVE_SOUND */
--- a/src/sunplay.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/sunplay.c Mon Aug 13 11:17:09 2007 +0200 @@ -41,6 +41,7 @@ # include "lisp.h" # include "sysdep.h" # include <errno.h> +# include "nativesound.h" #include "syssignal.h" # define perror(string) \ message("audio: %s, %s ", string, strerror (errno)) @@ -57,13 +58,11 @@ #define audio_open() open ("/dev/audio", (O_WRONLY | O_NONBLOCK), 0) +static int initialized_device_p; static int reset_volume_p, reset_device_p; static double old_volume; static Audio_hdr dev_hdr; -void play_sound_file (char *name, int volume); -void play_sound_data (unsigned char *data, int length, int volume); - static int init_device (int volume, unsigned char *data, int fd, unsigned int *header_length) @@ -98,11 +97,12 @@ audio_flush_play (audio_fd); - if (0 != audio_cmp_hdr (&dev_hdr, &file_hdr)) + if (!initialized_device_p || (0 != audio_cmp_hdr (&dev_hdr, &file_hdr))) { Audio_hdr new_hdr; new_hdr = file_hdr; reset_device_p = 1; + initialized_device_p = 1; if (AUDIO_SUCCESS != audio_set_play_config (audio_fd, &new_hdr)) { char buf1 [100], buf2 [100], buf3 [250]; @@ -227,15 +227,16 @@ } -void +int play_sound_data (unsigned char *data, int length, int volume) { int wrtn, start = 0; unsigned int ilen; + int result = 0; audio_fd = -1; - if (length == 0) return; + if (length == 0) return 0; /* this is just to get a better error message */ if (strncmp (".snd\0", (char *) data, 4)) @@ -251,10 +252,7 @@ audio_fd = audio_open (); if (audio_fd < 0) - { - perror ("open /dev/audio"); - return; - } + return 0; /* where to find the proto for signal()... */ sighup_handler = (SIGTYPE (*) (int)) signal (SIGHUP, sighandler); @@ -292,6 +290,8 @@ goto END_OF_PLAY; } + result = 1; + END_OF_PLAY: if (audio_fd > 0) @@ -302,6 +302,8 @@ signal (SIGHUP, sighup_handler); signal (SIGINT, sigint_handler); + + return result; } /* #### sigcontext doesn't exist in Solaris. This should be updated
--- a/src/sysdep.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/sysdep.c Mon Aug 13 11:17:09 2007 +0200 @@ -93,11 +93,6 @@ #include "ntheap.h" #endif -#ifdef HAVE_MMAP -#include <unistd.h> -#include <sys/mman.h> -#endif - /* ------------------------------- */ /* TTY definitions */ /* ------------------------------- */ @@ -767,23 +762,31 @@ /* Given FD, obtain pty buffer size. When no luck, a good guess is made, - so that the function works even fd is not a pty. */ + so that the function works even when fd is not a pty. */ int get_pty_max_bytes (int fd) { - int pty_max_bytes; - + /* DEC OSF 4.0 fpathconf returns 255, but xemacs hangs on long shell + input lines if we return 253. 252 is OK!. So let's leave a bit + of slack for the newline that xemacs will insert, and for those + inevitable vendor off-by-one-or-two-or-three bugs. */ +#define MAX_CANON_SLACK 10 +#define SAFE_MAX_CANON (127 - MAX_CANON_SLACK) #if defined (HAVE_FPATHCONF) && defined (_PC_MAX_CANON) - pty_max_bytes = fpathconf (fd, _PC_MAX_CANON); - if (pty_max_bytes < 0) + { + int max_canon = fpathconf (fd, _PC_MAX_CANON); + return (max_canon < 0 ? SAFE_MAX_CANON : + max_canon > SAFE_MAX_CANON ? max_canon - MAX_CANON_SLACK : + max_canon); + } +#elif defined (_POSIX_MAX_CANON) + return (_POSIX_MAX_CANON > SAFE_MAX_CANON ? + _POSIX_MAX_CANON - MAX_CANON_SLACK : + _POSIX_MAX_CANON); +#else + return SAFE_MAX_CANON; #endif - pty_max_bytes = 250; - - /* Deduct one, to leave space for the eof. */ - pty_max_bytes--; - - return pty_max_bytes; } /* Figure out the eof character for the FD. */
--- a/src/terminfo.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/terminfo.c Mon Aug 13 11:17:09 2007 +0200 @@ -48,7 +48,7 @@ format is different too. */ -#include CURSES_H_PATH +#include CURSES_H_FILE /* Sun, in their infinite lameness, supplies (possibly) broken headers even under Solaris. GCC feels it necessary to correct things by supplying its own headers. Unfortunately, if you build GCC under @@ -59,7 +59,7 @@ but not term.h.) However, it seems to work to just not include term.h under Solaris, so we try that. KLUDGE! */ #if !(defined (__GNUC__) && defined (SOLARIS2)) -#include TERM_H_PATH +#include TERM_H_FILE #endif extern void *xmalloc (int size);
--- a/src/toolbar-msw.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/toolbar-msw.c Mon Aug 13 11:17:09 2007 +0200 @@ -55,6 +55,9 @@ #ifndef TB_SETPADDING #define TB_SETPADDING (WM_USER + 87) #endif +#ifndef TBSTYLE_FLAT +#define TBSTYLE_FLAT 0x800 +#endif #define MSWINDOWS_BUTTON_SHADOW_THICKNESS 2 #define MSWINDOWS_BLANK_SIZE 5 #define MSWINDOWS_MINIMUM_TOOLBAR_SIZE 8 @@ -131,7 +134,7 @@ ShowWindow(toolbarwnd, SW_HIDE); } - FRAME_MSWINDOWS_TOOLBAR_CHECKSUM(f,pos)=0; + FRAME_MSWINDOWS_TOOLBAR_CHECKSUM (f, pos) = 0; SET_TOOLBAR_WAS_VISIBLE_FLAG (f, pos, 0); } @@ -223,7 +226,7 @@ /* remove the old one */ mswindows_clear_toolbar (f, pos, 0); - FRAME_MSWINDOWS_TOOLBAR_CHECKSUM(f,pos)=checksum; + FRAME_MSWINDOWS_TOOLBAR_CHECKSUM (f, pos)=checksum; /* build up the data required by win32 fns. */ button_tbl = xnew_array_and_zero (TBBUTTON, nbuttons); @@ -384,10 +387,12 @@ CreateWindowEx ( WS_EX_WINDOWEDGE, TOOLBARCLASSNAME, NULL, - WS_CHILD | WS_VISIBLE + WS_CHILD | (style_3d ? WS_DLGFRAME : 0) - | TBSTYLE_TOOLTIPS | CCS_NORESIZE - | CCS_NOPARENTALIGN | CCS_NODIVIDER, + | TBSTYLE_TOOLTIPS + | CCS_NORESIZE + | CCS_NOPARENTALIGN | CCS_NODIVIDER + | CCS_ADJUSTABLE, x, y, bar_width, bar_height, FRAME_MSWINDOWS_HANDLE (f), (HMENU)(TOOLBAR_ID_BIAS + pos),
--- a/src/toolbar.c Mon Aug 13 11:16:09 2007 +0200 +++ b/src/toolbar.c Mon Aug 13 11:17:09 2007 +0200 @@ -1037,10 +1037,10 @@ if (!CONSP (elt[0])) { /* We can't check the buffer-local here because we don't know - which buffer to check in. #### I think this is a bad thing. - See if we can't get enough information to this function so - that it can check. - + which buffer to check in. #### I think this is a bad thing. + See if we can't get enough information to this function so + that it can check. + #### Wrong. We shouldn't be checking the value at all here. The user might set or change the value at any time. */ value = Fsymbol_value (elt[0]);
--- a/src/tooltalk.h Mon Aug 13 11:16:09 2007 +0200 +++ b/src/tooltalk.h Mon Aug 13 11:17:09 2007 +0200 @@ -24,7 +24,7 @@ #ifndef INCLUDED_tooltalk_h_ #define INCLUDED_tooltalk_h_ -#include TT_C_H_PATH +#include TT_C_H_FILE typedef struct Lisp_Tooltalk_Message Lisp_Tooltalk_Message; DECLARE_LRECORD (tooltalk_message, Lisp_Tooltalk_Message);
--- a/tests/ChangeLog Mon Aug 13 11:16:09 2007 +0200 +++ b/tests/ChangeLog Mon Aug 13 11:17:09 2007 +0200 @@ -1,3 +1,7 @@ +2000-05-01 Martin Buchholz <martin@xemacs.org> + + * XEmacs 21.2.33 is released. + 2000-03-20 Martin Buchholz <martin@xemacs.org> * XEmacs 21.2.32 is released.
--- a/tests/glyph-test.el Mon Aug 13 11:16:09 2007 +0200 +++ b/tests/glyph-test.el Mon Aug 13 11:17:09 2007 +0200 @@ -18,7 +18,8 @@ (make-extent (point) (point)) (setq radio-button1 (make-glyph - [button :descriptor ["ok1" (setq ok-select t) + [button :face widget + :descriptor ["ok1" (setq ok-select t) :style radio :selected ok-select]]))) ;; button in a group (set-extent-begin-glyph @@ -48,7 +49,7 @@ (setq push-button (make-glyph [button :width 10 :height 2 :face modeline-mousable - :descriptor "ok" :callback foo + :descriptor "ok" :callback foo :selected t]))) ;; tree view (set-extent-begin-glyph @@ -82,7 +83,7 @@ ;; progress the progress ... (let ((x 0)) (while (<= x 100) - (set-image-instance-property (glyph-image-instance pgauge) :percent x) + (set-image-instance-property (glyph-image-instance pgauge) :value x) (setq x (+ x 5)) (sit-for 0.1))) @@ -95,7 +96,7 @@ ;; progress the progress ... (let ((x 0)) (while (<= x 100) - (set-image-instance-property (glyph-image-instance pg) :percent x) + (set-image-instance-property (glyph-image-instance pg) :value x) (setq x (+ x 5)) (sit-for 0.1)))
--- a/version.sh Mon Aug 13 11:16:09 2007 +0200 +++ b/version.sh Mon Aug 13 11:17:09 2007 +0200 @@ -2,8 +2,8 @@ emacs_is_beta=t emacs_major_version=21 emacs_minor_version=2 -emacs_beta_version=32 -xemacs_codename="Kastor & Polydeukes" +emacs_beta_version=33 +xemacs_codename="Melpomene" infodock_major_version=4 infodock_minor_version=0 infodock_build_version=8