+to 21.2.30 "Hygeia"
+-- Make (find-tag-other-window) always use other window,
+ even if tag is found in buffer of current window, Samuel Mikes
+-- Make configure complain about broken compiler versions (Jan Vroonhof, Yoshiki Hayashi, Bill Perry)
+-- `write-region' now deals properly with non-ASCII file names, Martin Buchholz
+-- `file-truename' now respects file-name-coding-system, Martin Buchholz
+-- arm configure support fixed.
+-- non-ASCII string handling performance boost, Martin Buchholz
+-- Garbage collector performance boost, Martin Buchholz
+-- Lisp engine performance boost, Martin Buchholz
+-- New ldap API (Oscar Figueiredo)
+-- (- 0) is now optimized to 0, not (-), Martin Buchholz
+-- More gutter tabs fixes, Andy Piper
+
to 21.2.29 "Hestia"
-- Fix compile errors on pre-X11R6 systems, introduced in 21.2.28.
-- Fix autodetection of Berkeley DB on Linux Glibc 2 systems.
-- 10% faster redisplay from Jan Vroonhof
-- Fixes from Jeff Miller, Alexandre Oliva and Yoshiki Hayashi
-- "If you've got problems, read PROBLEMS!" from Robert Pluim
+-- Completely revamped GPM support from William Perry
-- Lstream code now uses size_t, ssize_t consistently, Martin Buchholz
-- Fix `make install' if prefix != exec_prefix, Martin Buchholz
-- Fix compile warnings and C++ compilation, Martin Buchholz
+2000-02-21 Martin Buchholz <martin@xemacs.org>
+
+ * XEmacs 21.2.30 is released.
+
+2000-02-20 Martin Buchholz <martin@xemacs.org>
+
+ * configure.in: Enforce use of autoconf version >= 2.13.
+
+ * configure.in: Fix OS release test on Solaris.
+
+2000-02-19 Marcus Thiessel <marcus@xemacs.org>
+
+ * PROBLEMS: Update email address. Describe more HP Motif errors.
+
+2000-02-19 Jan Vroonhof <vroonhof@math.ethz.ch>
+
+ * configure.in: Split Solaris version test in two parts. In the
+ Bourne shell the "-a" operator does NOT short-circuit.
+
+1999-12-15 Jan Vroonhof <jan@xemacs.org>
+
+ * (configure.in): Autodetect broken gcc versions. Patch from WM
+ Perry with tiny tweaks by Yoshiki Hayashi and yours truly.
+
+2000-02-17 Martin Buchholz <martin@xemacs.org>
+
+ * configure.in: Autodetect sys/param.h. Reorganize
+ AC_CHECK_HEADERS call.
+ * src/config.h.in: Add HAVE_SYS_PARAM_H.
+
+2000-02-16 Martin Buchholz <martin@xemacs.org>
+
+ * configure.in: Test for arm simply using arm* instead of arm-*
+
+2000-01-05 Yoshiki Hayashi <t90553@mail.ecc.u-tokyo.ac.jp>
+
+ * etc/TUTORIAL.ja: Synch with English version.
+
2000-02-16 Martin Buchholz <martin@xemacs.org>
* XEmacs 21.2.29 is released.
The `--dynamic' option specifies that configure should try to link
emacs dynamically rather than statically.
-The `--const-is-losing' option is for use if you have trouble
-compiling due to the `const' storage class in C. This is defined by
-default. Most users should have no need to change this.
-
You can build XEmacs for several different machine types from a single
source directory. To do this, you must use a version of `make' that
-supports the `VPATH' variable, such as GNU `make'. Make separate
+supports the `VPATH' variable, such as GNU `make'. Create separate
build directories for the different configuration types, and in each
one, run the XEmacs `configure' script. `configure' looks for the
Emacs source code in the directory that `configure' is in.
*** On HP-UX, problems with make
-Marcus Thiessel <marcus_thiessel@hp.com>
+Marcus Thiessel <marcus@xemacs.org>
Some releases of XEmacs (e.g. 20.4) require GNU make to build
successfully. You don't need GNU make when building 21.x.
*** On HP-UX 9.05 XEmacs won't compile or coredump during the build.
-Marcus Thiessel <marcus_thiessel@hp.com>
+Marcus Thiessel <marcus@xemacs.org>
This might be a sed problem. For your own safety make sure to use
GNU sed while dumping XEmacs.
-*** On HP-UX 11.0 XEmacs causes excessive X11 errors when running.
+*** On HP-UX 11.0 XEmacs causes excessive X11 errors when running.
+ (also appears on AIX as reported in comp.emacs.xemacs)
-Marcus Thiessel <marcus_thiessel@hp.com>
+Marcus Thiessel <marcus@xemacs.org>
Unfortunately, XEmacs releases prior to 21.0 don't work with
Motif2.1. It will compile but you will get excessive X11 errors like
Make sure /usr/lib/Motif1.2_R6/libXm.sl is a link to
/usr/lib/Motif1.2_R6/libXm.3.
+*** On HP-UX 11.0: Object "" does not have windowed ancestor
+
+Marcus Thiessel <marcus@xemacs.org>
+
+ XEmacs dies without core file and reports:
+
+ Error: Object "" does not have windowed ancestor.
+
+ This is a bug. Please apply the patch PHSS_19964 (check if
+ superseded). The other alternative is to link with Motif1.2_R6 (see
+ previous item).
+
+
** SCO OpenServer
*** Native cc on SCO OpenServer 5 is now OK. Icc may still throw you
a curve. Here is what Robert Lipe <robertl@arnet.com> says:
### from the file `./configure.in'.
### To rebuild it, execute the command
### autoconf
-### in the this directory. You must have autoconf version 2.12 or later.
+### in the this directory. You must have autoconf version 2.13 or later.
### This file is part of XEmacs.
m68*-sony-* ) machine=news ;;
mips-sony-* ) machine=news-risc ;;
clipper-* ) machine=clipper ;;
- arm-* ) machine=arm ;;
- armv34lb-* ) machine=arm ;;
+ arm* ) machine=arm ;;
ns32k-* ) machine=ns32000 ;;
esac
# 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:1580: checking for $ac_word" >&5
+echo "configure:1579: checking for $ac_word" >&5
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
# 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:1607: checking for $ac_word" >&5
+echo "configure:1606: checking for $ac_word" >&5
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
# 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:1655: checking for $ac_word" >&5
+echo "configure:1654: checking for $ac_word" >&5
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1684: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1683: 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'
cat > conftest.$ac_ext << EOF
-#line 1697 "configure"
+#line 1696 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:1702: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1701: \"$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
{ 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:1730: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1729: 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:1735: checking whether we are using GNU C" >&5
+echo "configure:1734: 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:1742: \"$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:1741: \"$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
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1760: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1759: checking whether ${CC-cc} accepts -g" >&5
echo 'void f(){}' > conftest.c
if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
# 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:1793: checking for $ac_word" >&5
+echo "configure:1792: checking for $ac_word" >&5
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
# 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:1820: checking for $ac_word" >&5
+echo "configure:1819: checking for $ac_word" >&5
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
# 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:1868: checking for $ac_word" >&5
+echo "configure:1867: checking for $ac_word" >&5
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1897: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1896: 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'
cat > conftest.$ac_ext << EOF
-#line 1910 "configure"
+#line 1909 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:1915: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1914: \"$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
{ 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:1943: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1942: 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:1948: checking whether we are using GNU C" >&5
+echo "configure:1947: 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:1955: \"$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:1954: \"$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
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1973: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1972: checking whether ${CC-cc} accepts -g" >&5
echo 'void f(){}' > conftest.c
if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
# 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:2006: checking for $ac_word" >&5
+echo "configure:2005: checking for $ac_word" >&5
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
# 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:2033: checking for $ac_word" >&5
+echo "configure:2032: checking for $ac_word" >&5
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
# 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:2081: checking for $ac_word" >&5
+echo "configure:2080: checking for $ac_word" >&5
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:2110: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:2109: 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'
cat > conftest.$ac_ext << EOF
-#line 2123 "configure"
+#line 2122 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:2128: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2127: \"$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
{ 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:2156: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:2155: 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:2161: checking whether we are using GNU C" >&5
+echo "configure:2160: 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:2168: \"$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:2167: \"$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
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:2186: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:2185: checking whether ${CC-cc} accepts -g" >&5
echo 'void f(){}' > conftest.c
if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
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:2223: checking how to run the C preprocessor" >&5
+echo "configure:2222: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 2236 "configure"
+#line 2235 "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:2242: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2241: \"$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*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 2253 "configure"
+#line 2252 "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:2259: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2258: \"$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*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <<EOF
-#line 2270 "configure"
+#line 2269 "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:2276: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2275: \"$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
:
echo $ac_n "checking for AIX""... $ac_c" 1>&6
-echo "configure:2303: checking for AIX" >&5
+echo "configure:2302: checking for AIX" >&5
cat > conftest.$ac_ext <<EOF
-#line 2305 "configure"
+#line 2304 "configure"
#include "confdefs.h"
#ifdef _AIX
yes
echo $ac_n "checking for GNU libc""... $ac_c" 1>&6
-echo "configure:2331: checking for GNU libc" >&5
+echo "configure:2330: checking for GNU libc" >&5
cat > conftest.$ac_ext <<EOF
-#line 2333 "configure"
+#line 2332 "configure"
#include "confdefs.h"
#include <features.h>
int main() {
; return 0; }
EOF
-if { (eval echo configure:2345: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2344: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
have_glibc=yes
else
esac
cat > conftest.$ac_ext <<EOF
-#line 2422 "configure"
+#line 2421 "configure"
#include "confdefs.h"
int main () {
#if defined __SUNPRO_C
#endif
}
EOF
-if { (eval echo configure:2434: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:2433: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
:
else
CFLAGS="-O" ; fi
fi
+if test "$GCC" = "yes"; then
+echo $ac_n "checking for buggy gcc versions""... $ac_c" 1>&6
+echo "configure:2657: 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.*)
+ case "$CFLAGS" in
+ *-O2*|*-O3*)
+ case "$CFLAGS" in
+ *-fno-schedule-insns*) ;;
+ *)
+ echo "$ac_t""Yes" 1>&6
+ echo "configure: warning: Don't use -O2 with gcc 2.8.1 and egcs 1.0 under SPARC architectures" 1>&2
+ echo "configure: warning: without also using -fno-schedule-insns." 1>&2
+ { echo "configure: error: Aborting due to known problem" 1>&2; exit 1; }
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ Linux:alpha:egcs-2.91.*)
+ echo "$ac_t""Yes" 1>&6
+ echo "configure: warning: There have been reports of egcs-1.1 not compiling XEmacs correctly on" 1>&2
+ echo "configure: warning: Alpha Linux. There have also been reports that egcs-1.0.3a is O.K." 1>&2
+ { echo "configure: error: Aborting due to known problem" 1>&2; exit 1; }
+ ;;
+ *:i*86*:2.7.2*)
+ case "$GCC_VERSION" in
+ 2.7.2)
+ case "$CFLAGS" in
+ *-O2*|*-O3*)
+ case "$CFLAGS" in
+ *-fno-strength-reduce*) ;;
+ *)
+ echo "$ac_t""Yes" 1>&6
+ echo "configure: warning: Don't use -O2 with gcc 2.7.2 under Intel/XXX without also using" 1>&2
+ echo "configure: warning: -fno-strength-reduce." 1>&2
+ { echo "configure: error: Aborting due to known problem" 1>&2; exit 1; }
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+ case "$CFLAGS" in
+ *-fno-caller-saves*) ;;
+ *)
+ echo "$ac_t""Yes" 1>&6
+ echo "configure: warning: Don't use -O2 with gcc 2.7.2 under Intel/XXX without also using" 1>&2
+ echo "configure: warning: -fno-caller-saves." 1>&2
+ { echo "configure: error: Aborting due to known problem" 1>&2; exit 1; }
+ ;;
+ esac
+ ;;
+esac
+fi
+echo "$ac_t""No" 1>&6
+
if test "$GCC" = "yes"; then
set x $ld_switch_system; shift; ld_switch_system=""
fi
echo $ac_n "checking for dynodump""... $ac_c" 1>&6
-echo "configure:2720: checking for dynodump" >&5
+echo "configure:2777: checking for dynodump" >&5
if test "$unexec" != "unexsol2.o"; then
echo "$ac_t""no" 1>&6
else
done
echo $ac_n "checking for terminateAndUnload in -lC""... $ac_c" 1>&6
-echo "configure:2758: checking for terminateAndUnload in -lC" >&5
+echo "configure:2815: 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 2763 "configure"
+#line 2820 "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
terminateAndUnload()
; return 0; }
EOF
-if { (eval echo configure:2774: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2831: \"$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
if test "$add_runtime_path" = "yes"; then
echo $ac_n "checking "for runtime libraries flag"""... $ac_c" 1>&6
-echo "configure:2882: checking "for runtime libraries flag"" >&5
+echo "configure:2939: checking "for runtime libraries flag"" >&5
case "$opsys" in
sol2 ) dash_r="-R" ;;
decosf* | linux* | irix*) dash_r="-rpath " ;;
done
fi
cat > conftest.$ac_ext <<EOF
-#line 2904 "configure"
+#line 2961 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:2911: \"$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*
dash_r="$try_dash_r"
else
fi
after_morecore_hook_exists=yes
echo $ac_n "checking for malloc_get_state""... $ac_c" 1>&6
-echo "configure:3013: checking for malloc_get_state" >&5
+echo "configure:3070: checking for malloc_get_state" >&5
cat > conftest.$ac_ext <<EOF
-#line 3016 "configure"
+#line 3073 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char malloc_get_state(); below. */
; return 0; }
EOF
-if { (eval echo configure:3039: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3096: \"$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
fi
echo $ac_n "checking for malloc_set_state""... $ac_c" 1>&6
-echo "configure:3059: checking for malloc_set_state" >&5
+echo "configure:3116: checking for malloc_set_state" >&5
cat > conftest.$ac_ext <<EOF
-#line 3062 "configure"
+#line 3119 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char malloc_set_state(); below. */
; return 0; }
EOF
-if { (eval echo configure:3085: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3142: \"$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
fi
echo $ac_n "checking whether __after_morecore_hook exists""... $ac_c" 1>&6
-echo "configure:3105: checking whether __after_morecore_hook exists" >&5
+echo "configure:3162: checking whether __after_morecore_hook exists" >&5
cat > conftest.$ac_ext <<EOF
-#line 3107 "configure"
+#line 3164 "configure"
#include "confdefs.h"
extern void (* __after_morecore_hook)();
int main() {
__after_morecore_hook = 0
; return 0; }
EOF
-if { (eval echo configure:3114: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3171: \"$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
# 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:3173: checking for $ac_word" >&5
+echo "configure:3230: checking for $ac_word" >&5
if test -n "$RANLIB"; then
ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
# 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:3228: checking for a BSD compatible install" >&5
+echo "configure:3285: checking for a BSD compatible install" >&5
if test -z "$INSTALL"; then
IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
# 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:3282: checking for $ac_word" >&5
+echo "configure:3339: checking for $ac_word" >&5
if test -n "$YACC"; then
ac_cv_prog_YACC="$YACC" # Let the user override the test.
test -n "$YACC" || YACC="yacc"
-for ac_hdr in mach/mach.h sys/stropts.h sys/timeb.h sys/time.h unistd.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3314: checking for $ac_hdr" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3317 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3322: \"$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
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- { test "$extra_verbose" = "yes" && cat << EOF
- Defining $ac_tr_hdr
-EOF
-cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-}
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in utime.h locale.h libgen.h fcntl.h ulimit.h cygwin/version.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3355: checking for $ac_hdr" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3358 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3363: \"$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
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- { test "$extra_verbose" = "yes" && cat << EOF
- Defining $ac_tr_hdr
-EOF
-cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-}
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in kstat.h sys/pstat.h inttypes.h sys/un.h a.out.h
+for ac_hdr in a.out.h cygwin/version.h fcntl.h inttypes.h libgen.h locale.h mach/mach.h sys/param.h sys/pstat.h sys/stropts.h sys/time.h sys/timeb.h sys/un.h kstat.h ulimit.h unistd.h utime.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3396: checking for $ac_hdr" >&5
+echo "configure:3371: checking for $ac_hdr" >&5
cat > conftest.$ac_ext <<EOF
-#line 3399 "configure"
+#line 3374 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3404: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3379: \"$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*
done
echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
-echo "configure:3434: checking for sys/wait.h that is POSIX.1 compatible" >&5
+echo "configure:3409: checking for sys/wait.h that is POSIX.1 compatible" >&5
cat > conftest.$ac_ext <<EOF
-#line 3437 "configure"
+#line 3412 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/wait.h>
s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
; return 0; }
EOF
-if { (eval echo configure:3453: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3428: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_header_sys_wait_h=yes
else
fi
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:3477: checking for ANSI C header files" >&5
+echo "configure:3452: checking for ANSI C header files" >&5
cat > conftest.$ac_ext <<EOF
-#line 3480 "configure"
+#line 3455 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3488: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3463: \"$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*
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 3505 "configure"
+#line 3480 "configure"
#include "confdefs.h"
#include <string.h>
EOF
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 3523 "configure"
+#line 3498 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
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 3541 "configure"
+#line 3516 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
exit (0); }
EOF
-if { (eval echo configure:3552: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:3527: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
:
else
fi
echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:3578: checking whether time.h and sys/time.h may both be included" >&5
+echo "configure:3553: checking whether time.h and sys/time.h may both be included" >&5
cat > conftest.$ac_ext <<EOF
-#line 3581 "configure"
+#line 3556 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/time.h>
struct tm *tp;
; return 0; }
EOF
-if { (eval echo configure:3590: \"$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_time=yes
else
fi
echo $ac_n "checking for sys_siglist declaration in signal.h or unistd.h""... $ac_c" 1>&6
-echo "configure:3614: checking for sys_siglist declaration in signal.h or unistd.h" >&5
+echo "configure:3589: checking for sys_siglist declaration in signal.h or unistd.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 3617 "configure"
+#line 3592 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <signal.h>
char *msg = *(sys_siglist + 1);
; return 0; }
EOF
-if { (eval echo configure:3629: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3604: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_decl_sys_siglist=yes
else
echo $ac_n "checking for struct utimbuf""... $ac_c" 1>&6
-echo "configure:3654: checking for struct utimbuf" >&5
+echo "configure:3629: checking for struct utimbuf" >&5
cat > conftest.$ac_ext <<EOF
-#line 3656 "configure"
+#line 3631 "configure"
#include "confdefs.h"
#ifdef TIME_WITH_SYS_TIME
#include <sys/time.h>
static struct utimbuf x; x.actime = x.modtime;
; return 0; }
EOF
-if { (eval echo configure:3675: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3650: \"$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
rm -f conftest*
echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:3695: checking return type of signal handlers" >&5
+echo "configure:3670: checking return type of signal handlers" >&5
cat > conftest.$ac_ext <<EOF
-#line 3698 "configure"
+#line 3673 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <signal.h>
int i;
; return 0; }
EOF
-if { (eval echo configure:3715: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3690: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_type_signal=void
else
echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:3737: checking for size_t" >&5
+echo "configure:3712: checking for size_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 3740 "configure"
+#line 3715 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
fi
echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:3771: checking for pid_t" >&5
+echo "configure:3746: checking for pid_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 3774 "configure"
+#line 3749 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
fi
echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:3805: checking for uid_t in sys/types.h" >&5
+echo "configure:3780: checking for uid_t in sys/types.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 3808 "configure"
+#line 3783 "configure"
#include "confdefs.h"
#include <sys/types.h>
EOF
fi
echo $ac_n "checking for mode_t""... $ac_c" 1>&6
-echo "configure:3844: checking for mode_t" >&5
+echo "configure:3819: checking for mode_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 3847 "configure"
+#line 3822 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
fi
echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:3878: checking for off_t" >&5
+echo "configure:3853: checking for off_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 3881 "configure"
+#line 3856 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
fi
echo $ac_n "checking for ssize_t""... $ac_c" 1>&6
-echo "configure:3912: checking for ssize_t" >&5
+echo "configure:3887: checking for ssize_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 3915 "configure"
+#line 3890 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
echo $ac_n "checking for struct timeval""... $ac_c" 1>&6
-echo "configure:3947: checking for struct timeval" >&5
+echo "configure:3922: checking for struct timeval" >&5
cat > conftest.$ac_ext <<EOF
-#line 3949 "configure"
+#line 3924 "configure"
#include "confdefs.h"
#ifdef TIME_WITH_SYS_TIME
#include <sys/time.h>
static struct timeval x; x.tv_sec = x.tv_usec;
; return 0; }
EOF
-if { (eval echo configure:3965: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3940: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
HAVE_TIMEVAL=yes
rm -f conftest*
echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6
-echo "configure:3987: checking whether struct tm is in sys/time.h or time.h" >&5
+echo "configure:3962: checking whether struct tm is in sys/time.h or time.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 3990 "configure"
+#line 3965 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <time.h>
struct tm *tp; tp->tm_sec;
; return 0; }
EOF
-if { (eval echo configure:3998: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3973: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_struct_tm=time.h
else
fi
echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6
-echo "configure:4022: checking for tm_zone in struct tm" >&5
+echo "configure:3997: checking for tm_zone in struct tm" >&5
cat > conftest.$ac_ext <<EOF
-#line 4025 "configure"
+#line 4000 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <$ac_cv_struct_tm>
struct tm tm; tm.tm_zone;
; return 0; }
EOF
-if { (eval echo configure:4033: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4008: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_struct_tm_zone=yes
else
else
echo $ac_n "checking for tzname""... $ac_c" 1>&6
-echo "configure:4056: checking for tzname" >&5
+echo "configure:4031: checking for tzname" >&5
cat > conftest.$ac_ext <<EOF
-#line 4059 "configure"
+#line 4034 "configure"
#include "confdefs.h"
#include <time.h>
#ifndef tzname /* For SGI. */
atoi(*tzname);
; return 0; }
EOF
-if { (eval echo configure:4069: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4044: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_var_tzname=yes
else
echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:4095: checking for working const" >&5
+echo "configure:4070: checking for working const" >&5
cat > conftest.$ac_ext <<EOF
-#line 4098 "configure"
+#line 4073 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:4147: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4122: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_const=yes
else
echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:4172: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:4147: checking whether ${MAKE-make} sets \${MAKE}" >&5
set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
cat > conftestmake <<\EOF
echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
-echo "configure:4197: checking whether byte ordering is bigendian" >&5
+echo "configure:4172: 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 4202 "configure"
+#line 4177 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/param.h>
#endif
; return 0; }
EOF
-if { (eval echo configure:4213: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4188: \"$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 4217 "configure"
+#line 4192 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/param.h>
#endif
; return 0; }
EOF
-if { (eval echo configure:4228: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4203: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_bigendian=yes
else
rm -f conftest*
if test $ac_cv_c_bigendian = unknown; then
cat > conftest.$ac_ext <<EOF
-#line 4245 "configure"
+#line 4220 "configure"
#include "confdefs.h"
main () {
/* Are we little or big endian? From Harbison&Steele. */
exit (u.c[sizeof (long) - 1] == 1);
}
EOF
-if { (eval echo configure:4258: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4233: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
ac_cv_c_bigendian=no
else
echo $ac_n "checking size of short""... $ac_c" 1>&6
-echo "configure:4285: checking size of short" >&5
+echo "configure:4260: checking size of short" >&5
cat > conftest.$ac_ext <<EOF
-#line 4288 "configure"
+#line 4263 "configure"
#include "confdefs.h"
#include <stdio.h>
main()
exit(0);
}
EOF
-if { (eval echo configure:4299: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4274: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
ac_cv_sizeof_short=`cat conftestval`
else
exit 1
fi
echo $ac_n "checking size of int""... $ac_c" 1>&6
-echo "configure:4327: checking size of int" >&5
+echo "configure:4302: checking size of int" >&5
cat > conftest.$ac_ext <<EOF
-#line 4330 "configure"
+#line 4305 "configure"
#include "confdefs.h"
#include <stdio.h>
main()
exit(0);
}
EOF
-if { (eval echo configure:4341: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4316: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
ac_cv_sizeof_int=`cat conftestval`
else
echo $ac_n "checking size of long""... $ac_c" 1>&6
-echo "configure:4363: checking size of long" >&5
+echo "configure:4338: checking size of long" >&5
cat > conftest.$ac_ext <<EOF
-#line 4366 "configure"
+#line 4341 "configure"
#include "confdefs.h"
#include <stdio.h>
main()
exit(0);
}
EOF
-if { (eval echo configure:4377: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4352: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
ac_cv_sizeof_long=`cat conftestval`
else
echo $ac_n "checking size of long long""... $ac_c" 1>&6
-echo "configure:4399: checking size of long long" >&5
+echo "configure:4374: checking size of long long" >&5
cat > conftest.$ac_ext <<EOF
-#line 4402 "configure"
+#line 4377 "configure"
#include "confdefs.h"
#include <stdio.h>
main()
exit(0);
}
EOF
-if { (eval echo configure:4413: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4388: \"$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
echo $ac_n "checking size of void *""... $ac_c" 1>&6
-echo "configure:4435: checking size of void *" >&5
+echo "configure:4410: checking size of void *" >&5
cat > conftest.$ac_ext <<EOF
-#line 4438 "configure"
+#line 4413 "configure"
#include "confdefs.h"
#include <stdio.h>
main()
exit(0);
}
EOF
-if { (eval echo configure:4449: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4424: \"$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
echo $ac_n "checking for long file names""... $ac_c" 1>&6
-echo "configure:4472: checking for long file names" >&5
+echo "configure:4447: 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:
echo $ac_n "checking for sin""... $ac_c" 1>&6
-echo "configure:4518: checking for sin" >&5
+echo "configure:4493: checking for sin" >&5
cat > conftest.$ac_ext <<EOF
-#line 4521 "configure"
+#line 4496 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char sin(); below. */
; return 0; }
EOF
-if { (eval echo configure:4544: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4519: \"$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
echo "$ac_t""no" 1>&6
echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6
-echo "configure:4562: checking for sin in -lm" >&5
+echo "configure:4537: 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 4567 "configure"
+#line 4542 "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
sin()
; return 0; }
EOF
-if { (eval echo configure:4578: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4553: \"$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
cat > conftest.$ac_ext <<EOF
-#line 4622 "configure"
+#line 4597 "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:4629: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4604: \"$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
rm -f conftest*
echo "checking type of mail spool file locking" 1>&6
-echo "configure:4646: checking type of mail spool file locking" >&5
+echo "configure:4621: 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:4650: checking for $ac_func" >&5
+echo "configure:4625: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 4653 "configure"
+#line 4628 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:4676: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4651: \"$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
case "$opsys" in decosf*)
echo $ac_n "checking for cma_open in -lpthreads""... $ac_c" 1>&6
-echo "configure:4749: checking for cma_open in -lpthreads" >&5
+echo "configure:4724: 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 4754 "configure"
+#line 4729 "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
cma_open()
; return 0; }
EOF
-if { (eval echo configure:4765: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4740: \"$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
esac
echo $ac_n "checking whether the -xildoff compiler flag is required""... $ac_c" 1>&6
-echo "configure:4801: checking whether the -xildoff compiler flag is required" >&5
+echo "configure:4776: 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;
else echo "$ac_t""no" 1>&6
fi
-if test "$opsys" = "sol2" -a "$os_release" -ge 56; then
- echo $ac_n "checking for \"-z ignore\" linker flag""... $ac_c" 1>&6
-echo "configure:4812: 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 ;;
- *) echo "$ac_t""no" 1>&6 ;;
- esac
+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:4788: 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 ;;
+ *) echo "$ac_t""no" 1>&6 ;;
+ esac
+ fi
fi
echo "checking "for specified window system"" 1>&6
-echo "configure:4822: checking "for specified window system"" >&5
+echo "configure:4799: checking "for specified window system"" >&5
if test "$with_x11" != "no"; then
test "$x_includes $x_libraries" != "NONE NONE" && \
# 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:4855: checking for X" >&5
+echo "configure:4832: checking for X" >&5
# Check whether --with-x or --without-x was given.
if test "${with_x+set}" = set; then
# First, try using that file with no special directory specified.
cat > conftest.$ac_ext <<EOF
-#line 4915 "configure"
+#line 4892 "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:4920: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4897: \"$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*
ac_save_LIBS="$LIBS"
LIBS="-l$x_direct_test_library $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 4989 "configure"
+#line 4966 "configure"
#include "confdefs.h"
int main() {
${x_direct_test_function}()
; return 0; }
EOF
-if { (eval echo configure:4996: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4973: \"$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.
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:5105: checking whether -R must be followed by a space" >&5
+echo "configure:5082: 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 5108 "configure"
+#line 5085 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:5115: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5092: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_R_nospace=yes
else
else
LIBS="$ac_xsave_LIBS -R $x_libraries"
cat > conftest.$ac_ext <<EOF
-#line 5131 "configure"
+#line 5108 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:5138: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5115: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_R_space=yes
else
else
echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6
-echo "configure:5174: checking for dnet_ntoa in -ldnet" >&5
+echo "configure:5151: 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 5179 "configure"
+#line 5156 "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
dnet_ntoa()
; return 0; }
EOF
-if { (eval echo configure:5190: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5167: \"$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
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:5214: checking for dnet_ntoa in -ldnet_stub" >&5
+echo "configure:5191: 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 5219 "configure"
+#line 5196 "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
dnet_ntoa()
; return 0; }
EOF
-if { (eval echo configure:5230: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5207: \"$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
# 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:5259: checking for gethostbyname" >&5
+echo "configure:5236: checking for gethostbyname" >&5
cat > conftest.$ac_ext <<EOF
-#line 5262 "configure"
+#line 5239 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char gethostbyname(); below. */
; return 0; }
EOF
-if { (eval echo configure:5285: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5262: \"$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
if test $ac_cv_func_gethostbyname = no; then
echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
-echo "configure:5306: checking for gethostbyname in -lnsl" >&5
+echo "configure:5283: 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 5311 "configure"
+#line 5288 "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
gethostbyname()
; return 0; }
EOF
-if { (eval echo configure:5322: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5299: \"$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
# -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:5352: checking for connect" >&5
+echo "configure:5329: checking for connect" >&5
cat > conftest.$ac_ext <<EOF
-#line 5355 "configure"
+#line 5332 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char connect(); below. */
; return 0; }
EOF
-if { (eval echo configure:5378: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5355: \"$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
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:5401: checking "$xe_msg_checking"" >&5
+echo "configure:5378: 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 5406 "configure"
+#line 5383 "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
connect()
; return 0; }
EOF
-if { (eval echo configure:5417: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5394: \"$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
# gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX.
echo $ac_n "checking for remove""... $ac_c" 1>&6
-echo "configure:5441: checking for remove" >&5
+echo "configure:5418: checking for remove" >&5
cat > conftest.$ac_ext <<EOF
-#line 5444 "configure"
+#line 5421 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char remove(); below. */
; return 0; }
EOF
-if { (eval echo configure:5467: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5444: \"$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
if test $ac_cv_func_remove = no; then
echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
-echo "configure:5488: checking for remove in -lposix" >&5
+echo "configure:5465: 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 5493 "configure"
+#line 5470 "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
remove()
; return 0; }
EOF
-if { (eval echo configure:5504: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5481: \"$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
# BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
echo $ac_n "checking for shmat""... $ac_c" 1>&6
-echo "configure:5528: checking for shmat" >&5
+echo "configure:5505: checking for shmat" >&5
cat > conftest.$ac_ext <<EOF
-#line 5531 "configure"
+#line 5508 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char shmat(); below. */
; return 0; }
EOF
-if { (eval echo configure:5554: \"$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_func_shmat=yes"
else
if test $ac_cv_func_shmat = no; then
echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
-echo "configure:5575: checking for shmat in -lipc" >&5
+echo "configure:5552: 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 5580 "configure"
+#line 5557 "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
shmat()
; return 0; }
EOF
-if { (eval echo configure:5591: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5568: \"$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
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:5627: checking "$xe_msg_checking"" >&5
+echo "configure:5604: 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 5632 "configure"
+#line 5609 "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
IceConnectionNumber()
; return 0; }
EOF
-if { (eval echo configure:5643: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5620: \"$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
echo "checking for X defines extracted by xmkmf" 1>&6
-echo "configure:5812: checking for X defines extracted by xmkmf" >&5
+echo "configure:5789: checking for X defines extracted by xmkmf" >&5
rm -fr conftestdir
if mkdir conftestdir; then
cd conftestdir
ac_safe=`echo "X11/Intrinsic.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for X11/Intrinsic.h""... $ac_c" 1>&6
-echo "configure:5844: checking for X11/Intrinsic.h" >&5
+echo "configure:5821: checking for X11/Intrinsic.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 5847 "configure"
+#line 5824 "configure"
#include "confdefs.h"
#include <X11/Intrinsic.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5852: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5829: \"$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*
echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6
-echo "configure:5876: checking for XOpenDisplay in -lX11" >&5
+echo "configure:5853: 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 5881 "configure"
+#line 5858 "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
XOpenDisplay()
; return 0; }
EOF
-if { (eval echo configure:5892: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5869: \"$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
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:5917: checking "$xe_msg_checking"" >&5
+echo "configure:5894: 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 5922 "configure"
+#line 5899 "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
XGetFontProperty()
; return 0; }
EOF
-if { (eval echo configure:5933: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5910: \"$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
echo $ac_n "checking for XShapeSelectInput in -lXext""... $ac_c" 1>&6
-echo "configure:5960: checking for XShapeSelectInput in -lXext" >&5
+echo "configure:5937: 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 5965 "configure"
+#line 5942 "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
XShapeSelectInput()
; return 0; }
EOF
-if { (eval echo configure:5976: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5953: \"$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
echo $ac_n "checking for XtOpenDisplay in -lXt""... $ac_c" 1>&6
-echo "configure:5999: checking for XtOpenDisplay in -lXt" >&5
+echo "configure:5976: 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 6004 "configure"
+#line 5981 "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
XtOpenDisplay()
; return 0; }
EOF
-if { (eval echo configure:6015: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5992: \"$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
echo $ac_n "checking the version of X11 being used""... $ac_c" 1>&6
-echo "configure:6038: checking the version of X11 being used" >&5
+echo "configure:6015: checking the version of X11 being used" >&5
cat > conftest.$ac_ext <<EOF
-#line 6040 "configure"
+#line 6017 "configure"
#include "confdefs.h"
#include <X11/Intrinsic.h>
int main(int c, char *v[]) { return c>1 ? XlibSpecificationRelease : 0; }
EOF
-if { (eval echo configure:6045: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:6022: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
./conftest foobar; x11_release=$?
else
for ac_func in XConvertCase
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6069: checking for $ac_func" >&5
+echo "configure:6046: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 6072 "configure"
+#line 6049 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:6095: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6072: \"$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
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:6127: checking for $ac_hdr" >&5
+echo "configure:6104: checking for $ac_hdr" >&5
cat > conftest.$ac_ext <<EOF
-#line 6130 "configure"
+#line 6107 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6135: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6112: \"$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*
echo $ac_n "checking for XFree86""... $ac_c" 1>&6
-echo "configure:6166: checking for XFree86" >&5
+echo "configure:6143: checking for XFree86" >&5
if test -d "/usr/X386/include" -o \
-f "/etc/XF86Config" -o \
-f "/etc/X11/XF86Config" -o \
test -z "$with_xmu" && {
echo $ac_n "checking for XmuReadBitmapDataFromFile in -lXmu""... $ac_c" 1>&6
-echo "configure:6186: checking for XmuReadBitmapDataFromFile in -lXmu" >&5
+echo "configure:6163: 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 6191 "configure"
+#line 6168 "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
XmuReadBitmapDataFromFile()
; return 0; }
EOF
-if { (eval echo configure:6202: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6179: \"$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
echo $ac_n "checking for main in -lXbsd""... $ac_c" 1>&6
-echo "configure:6241: checking for main in -lXbsd" >&5
+echo "configure:6218: 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 6246 "configure"
+#line 6223 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:6253: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6230: \"$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
fi
if test "$with_msw" != "no"; then
echo "checking for MS-Windows" 1>&6
-echo "configure:6290: checking for MS-Windows" >&5
+echo "configure:6267: checking for MS-Windows" >&5
echo $ac_n "checking for main in -lgdi32""... $ac_c" 1>&6
-echo "configure:6293: checking for main in -lgdi32" >&5
+echo "configure:6270: 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 6298 "configure"
+#line 6275 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:6305: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6282: \"$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
fi
fi
cat > conftest.$ac_ext <<EOF
-#line 6371 "configure"
+#line 6348 "configure"
#include "confdefs.h"
#include <fcntl.h>
int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; }
EOF
-if { (eval echo configure:6376: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:6353: \"$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
esac
echo "checking for WM_COMMAND option" 1>&6
-echo "configure:6451: checking for WM_COMMAND option" >&5;
+echo "configure:6428: checking for WM_COMMAND option" >&5;
if test "$with_wmcommand" != "no"; then
{ test "$extra_verbose" = "yes" && cat << \EOF
Defining HAVE_WMCOMMAND
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:6466: checking for X11/Xauth.h" >&5
+echo "configure:6443: checking for X11/Xauth.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 6469 "configure"
+#line 6446 "configure"
#include "confdefs.h"
#include <X11/Xauth.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6474: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6451: \"$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*
}
test -z "$with_xauth" && {
echo $ac_n "checking for XauGetAuthByAddr in -lXau""... $ac_c" 1>&6
-echo "configure:6497: checking for XauGetAuthByAddr in -lXau" >&5
+echo "configure:6474: 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 6502 "configure"
+#line 6479 "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
XauGetAuthByAddr()
; return 0; }
EOF
-if { (eval echo configure:6513: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6490: \"$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
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:6558: checking for ${dir}tt_c.h" >&5
+echo "configure:6535: checking for ${dir}tt_c.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 6561 "configure"
+#line 6538 "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:6566: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6543: \"$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*
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:6602: checking "$xe_msg_checking"" >&5
+echo "configure:6579: 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 6607 "configure"
+#line 6584 "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
tt_message_create()
; return 0; }
EOF
-if { (eval echo configure:6618: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6595: \"$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
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:6675: checking for Dt/Dt.h" >&5
+echo "configure:6652: checking for Dt/Dt.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 6678 "configure"
+#line 6655 "configure"
#include "confdefs.h"
#include <Dt/Dt.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6683: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6660: \"$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*
}
test -z "$with_cde" && {
echo $ac_n "checking for DtDndDragStart in -lDtSvc""... $ac_c" 1>&6
-echo "configure:6706: checking for DtDndDragStart in -lDtSvc" >&5
+echo "configure:6683: 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 6711 "configure"
+#line 6688 "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
DtDndDragStart()
; return 0; }
EOF
-if { (eval echo configure:6722: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6699: \"$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
fi
echo $ac_n "checking if drag and drop API is needed""... $ac_c" 1>&6
-echo "configure:6791: checking if drag and drop API is needed" >&5
+echo "configure:6768: checking if drag and drop API is needed" >&5
if test "$with_dragndrop" != "no" ; then
if test -n "$dragndrop_proto" ; then
with_dragndrop=yes
fi
echo "checking for LDAP" 1>&6
-echo "configure:6812: checking for LDAP" >&5
+echo "configure:6789: 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:6815: checking for ldap.h" >&5
+echo "configure:6792: checking for ldap.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 6818 "configure"
+#line 6795 "configure"
#include "confdefs.h"
#include <ldap.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6823: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6800: \"$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*
}
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:6846: checking for lber.h" >&5
+echo "configure:6823: checking for lber.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 6849 "configure"
+#line 6826 "configure"
#include "confdefs.h"
#include <lber.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6854: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6831: \"$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*
if test "$with_ldap" != "no"; then
echo $ac_n "checking for ldap_search in -lldap""... $ac_c" 1>&6
-echo "configure:6878: checking for ldap_search in -lldap" >&5
+echo "configure:6855: 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 6883 "configure"
+#line 6860 "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
ldap_search()
; return 0; }
EOF
-if { (eval echo configure:6894: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6871: \"$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
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:6919: checking "$xe_msg_checking"" >&5
+echo "configure:6896: 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 6924 "configure"
+#line 6901 "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
ldap_open()
; return 0; }
EOF
-if { (eval echo configure:6935: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6912: \"$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
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:6960: checking "$xe_msg_checking"" >&5
+echo "configure:6937: 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 6965 "configure"
+#line 6942 "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
ldap_open()
; return 0; }
EOF
-if { (eval echo configure:6976: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6953: \"$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
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:7001: checking "$xe_msg_checking"" >&5
+echo "configure:6978: 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 7006 "configure"
+#line 6983 "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
ldap_open()
; return 0; }
EOF
-if { (eval echo configure:7017: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6994: \"$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
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:7068: checking for $ac_func" >&5
+echo "configure:7045: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 7071 "configure"
+#line 7048 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:7094: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7071: \"$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
if test "$window_system" != "none"; then
echo "checking for graphics libraries" 1>&6
-echo "configure:7126: checking for graphics libraries" >&5
+echo "configure:7103: 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:7131: checking for Xpm - no older than 3.4f" >&5
+echo "configure:7108: checking for Xpm - no older than 3.4f" >&5
xe_check_libs=-lXpm
cat > conftest.$ac_ext <<EOF
-#line 7134 "configure"
+#line 7111 "configure"
#include "confdefs.h"
#define XPM_NUMBERS
#include <X11/xpm.h>
XpmIncludeVersion != XpmLibraryVersion() ? 1 :
XpmIncludeVersion < 30406 ? 2 : 0 ;}
EOF
-if { (eval echo configure:7143: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:7120: \"$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
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:7185: checking for \"FOR_MSW\" xpm" >&5
+echo "configure:7162: checking for \"FOR_MSW\" xpm" >&5
xe_check_libs=-lXpm
cat > conftest.$ac_ext <<EOF
-#line 7188 "configure"
+#line 7165 "configure"
#include "confdefs.h"
int main() {
XpmCreatePixmapFromData()
; return 0; }
EOF
-if { (eval echo configure:7195: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7172: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
xpm_for_msw=no
else
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:7221: checking for compface.h" >&5
+echo "configure:7198: checking for compface.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 7224 "configure"
+#line 7201 "configure"
#include "confdefs.h"
#include <compface.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7229: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7206: \"$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*
}
test -z "$with_xface" && {
echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6
-echo "configure:7252: checking for UnGenFace in -lcompface" >&5
+echo "configure:7229: 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 7257 "configure"
+#line 7234 "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
UnGenFace()
; return 0; }
EOF
-if { (eval echo configure:7268: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7245: \"$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
if test "$with_png $with_tiff" != "no no"; then
echo $ac_n "checking for inflate in -lc""... $ac_c" 1>&6
-echo "configure:7320: checking for inflate in -lc" >&5
+echo "configure:7297: 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 7325 "configure"
+#line 7302 "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
inflate()
; return 0; }
EOF
-if { (eval echo configure:7336: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7313: \"$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
echo "$ac_t""no" 1>&6
echo $ac_n "checking for inflate in -lz""... $ac_c" 1>&6
-echo "configure:7355: checking for inflate in -lz" >&5
+echo "configure:7332: 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 7360 "configure"
+#line 7337 "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
inflate()
; return 0; }
EOF
-if { (eval echo configure:7371: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7348: \"$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
echo "$ac_t""no" 1>&6
echo $ac_n "checking for inflate in -lgz""... $ac_c" 1>&6
-echo "configure:7390: checking for inflate in -lgz" >&5
+echo "configure:7367: 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 7395 "configure"
+#line 7372 "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
inflate()
; 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:7383: \"$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
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:7436: checking for jpeglib.h" >&5
+echo "configure:7413: checking for jpeglib.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 7439 "configure"
+#line 7416 "configure"
#include "confdefs.h"
#include <jpeglib.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7444: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7421: \"$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*
}
test -z "$with_jpeg" && {
echo $ac_n "checking for jpeg_destroy_decompress in -ljpeg""... $ac_c" 1>&6
-echo "configure:7467: checking for jpeg_destroy_decompress in -ljpeg" >&5
+echo "configure:7444: 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 7472 "configure"
+#line 7449 "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
jpeg_destroy_decompress()
; return 0; }
EOF
-if { (eval echo configure:7483: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7460: \"$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
png_problem=""
test -z "$with_png" && { echo $ac_n "checking for pow""... $ac_c" 1>&6
-echo "configure:7519: checking for pow" >&5
+echo "configure:7496: checking for pow" >&5
cat > conftest.$ac_ext <<EOF
-#line 7522 "configure"
+#line 7499 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char pow(); below. */
; return 0; }
EOF
-if { (eval echo configure:7545: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7522: \"$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
}
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:7566: checking for png.h" >&5
+echo "configure:7543: checking for png.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 7569 "configure"
+#line 7546 "configure"
#include "confdefs.h"
#include <png.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7574: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7551: \"$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*
}
test -z "$with_png" && {
echo $ac_n "checking for png_read_image in -lpng""... $ac_c" 1>&6
-echo "configure:7597: checking for png_read_image in -lpng" >&5
+echo "configure:7574: 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 7602 "configure"
+#line 7579 "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
png_read_image()
; return 0; }
EOF
-if { (eval echo configure:7613: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7590: \"$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
}
if test -z "$with_png"; then
echo $ac_n "checking for workable png version information""... $ac_c" 1>&6
-echo "configure:7636: checking for workable png version information" >&5
+echo "configure:7613: checking for workable png version information" >&5
xe_check_libs="-lpng -lz"
cat > conftest.$ac_ext <<EOF
-#line 7639 "configure"
+#line 7616 "configure"
#include "confdefs.h"
#include <png.h>
int main(int c, char **v) {
if (strcmp(png_libpng_ver, PNG_LIBPNG_VER_STRING) != 0) return 1;
return (PNG_LIBPNG_VER < 10002) ? 2 : 0 ;}
EOF
-if { (eval echo configure:7647: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:7624: \"$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
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:7690: checking for tiffio.h" >&5
+echo "configure:7667: checking for tiffio.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 7693 "configure"
+#line 7670 "configure"
#include "confdefs.h"
#include <tiffio.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7698: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7675: \"$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*
}
test -z "$with_tiff" && {
echo $ac_n "checking for TIFFClientOpen in -ltiff""... $ac_c" 1>&6
-echo "configure:7721: checking for TIFFClientOpen in -ltiff" >&5
+echo "configure:7698: 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 7726 "configure"
+#line 7703 "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
TIFFClientOpen()
; return 0; }
EOF
-if { (eval echo configure:7737: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7714: \"$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
if test "$with_x11" = "yes"; then
echo "checking for X11 graphics libraries" 1>&6
-echo "configure:7776: checking for X11 graphics libraries" >&5
+echo "configure:7753: checking for X11 graphics libraries" >&5
echo "checking for the Athena widgets" 1>&6
-echo "configure:7779: checking for the Athena widgets" >&5
+echo "configure:7756: checking for the Athena widgets" >&5
case "$with_athena" in
"xaw" | "") athena_variant=Xaw athena_3d=no ;;
if test "$athena_3d" = "no"; then
echo $ac_n "checking for XawScrollbarSetThumb in -l$athena_variant""... $ac_c" 1>&6
-echo "configure:7793: checking for XawScrollbarSetThumb in -l$athena_variant" >&5
+echo "configure:7770: 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 7798 "configure"
+#line 7775 "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
XawScrollbarSetThumb()
; return 0; }
EOF
-if { (eval echo configure:7809: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7786: \"$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
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for threeDClassRec in -l$athena_variant""... $ac_c" 1>&6
-echo "configure:7825: checking for threeDClassRec in -l$athena_variant" >&5
+echo "configure:7802: 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 7830 "configure"
+#line 7807 "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
threeDClassRec()
; return 0; }
EOF
-if { (eval echo configure:7841: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7818: \"$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
else
echo $ac_n "checking for threeDClassRec in -l$athena_variant""... $ac_c" 1>&6
-echo "configure:7872: checking for threeDClassRec in -l$athena_variant" >&5
+echo "configure:7849: 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 7877 "configure"
+#line 7854 "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
threeDClassRec()
; return 0; }
EOF
-if { (eval echo configure:7888: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7865: \"$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
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for threeDClassRec in -lXaw""... $ac_c" 1>&6
-echo "configure:7906: checking for threeDClassRec in -lXaw" >&5
+echo "configure:7883: 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 7911 "configure"
+#line 7888 "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
threeDClassRec()
; return 0; }
EOF
-if { (eval echo configure:7922: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7899: \"$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
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:7953: checking for X11/Xaw/ThreeD.h" >&5
+echo "configure:7930: checking for X11/Xaw/ThreeD.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 7956 "configure"
+#line 7933 "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:7961: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7938: \"$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*
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:7981: checking for X11/Xaw/XawInit.h" >&5
+echo "configure:7958: checking for X11/Xaw/XawInit.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 7984 "configure"
+#line 7961 "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:7989: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7966: \"$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*
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:8015: checking for X11/$athena_variant/XawInit.h" >&5
+echo "configure:7992: checking for X11/$athena_variant/XawInit.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 8018 "configure"
+#line 7995 "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:8023: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8000: \"$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*
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:8040: checking for X11/$athena_variant/ThreeD.h" >&5
+echo "configure:8017: checking for X11/$athena_variant/ThreeD.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 8043 "configure"
+#line 8020 "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:8048: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8025: \"$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*
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:8076: checking for $athena_variant/XawInit.h" >&5
+echo "configure:8053: checking for $athena_variant/XawInit.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 8079 "configure"
+#line 8056 "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:8084: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8061: \"$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*
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:8101: checking for $athena_variant/ThreeD.h" >&5
+echo "configure:8078: checking for $athena_variant/ThreeD.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 8104 "configure"
+#line 8081 "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:8109: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8086: \"$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*
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:8138: checking for X11/Xaw3d/XawInit.h" >&5
+echo "configure:8115: checking for X11/Xaw3d/XawInit.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 8141 "configure"
+#line 8118 "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:8146: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8123: \"$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*
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:8163: checking for X11/Xaw3d/ThreeD.h" >&5
+echo "configure:8140: checking for X11/Xaw3d/ThreeD.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 8166 "configure"
+#line 8143 "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:8171: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8148: \"$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*
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:8203: checking for Xaw3d/XawInit.h" >&5
+echo "configure:8180: checking for Xaw3d/XawInit.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 8206 "configure"
+#line 8183 "configure"
#include "confdefs.h"
#include <Xaw3d/XawInit.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8211: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8188: \"$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*
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:8228: checking for Xaw3d/ThreeD.h" >&5
+echo "configure:8205: checking for Xaw3d/ThreeD.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 8231 "configure"
+#line 8208 "configure"
#include "confdefs.h"
#include <Xaw3d/ThreeD.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8236: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8213: \"$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*
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:8268: checking for X11/Xaw/ThreeD.h" >&5
+echo "configure:8245: checking for X11/Xaw/ThreeD.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 8271 "configure"
+#line 8248 "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:8276: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8253: \"$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*
ac_safe=`echo "Xm/Xm.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for Xm/Xm.h""... $ac_c" 1>&6
-echo "configure:8311: checking for Xm/Xm.h" >&5
+echo "configure:8288: checking for Xm/Xm.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 8314 "configure"
+#line 8291 "configure"
#include "confdefs.h"
#include <Xm/Xm.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8319: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8296: \"$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*
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for XmStringFree in -lXm""... $ac_c" 1>&6
-echo "configure:8336: checking for XmStringFree in -lXm" >&5
+echo "configure:8313: 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 8341 "configure"
+#line 8318 "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
XmStringFree()
; return 0; }
EOF
-if { (eval echo configure:8352: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8329: \"$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
if test "$have_motif" = "yes"; then
echo $ac_n "checking for Lesstif""... $ac_c" 1>&6
-echo "configure:8381: checking for Lesstif" >&5
+echo "configure:8358: checking for Lesstif" >&5
cat > conftest.$ac_ext <<EOF
-#line 8383 "configure"
+#line 8360 "configure"
#include "confdefs.h"
#include <Xm/Xm.h>
#ifdef LESSTIF_VERSION
if test "$with_mule" = "yes" ; then
echo "checking for Mule-related features" 1>&6
-echo "configure:8716: checking for Mule-related features" >&5
+echo "configure:8693: checking for Mule-related features" >&5
{ test "$extra_verbose" = "yes" && cat << \EOF
Defining MULE
EOF
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:8741: checking for $ac_hdr" >&5
+echo "configure:8718: checking for $ac_hdr" >&5
cat > conftest.$ac_ext <<EOF
-#line 8744 "configure"
+#line 8721 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8749: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8726: \"$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*
echo $ac_n "checking for strerror in -lintl""... $ac_c" 1>&6
-echo "configure:8780: checking for strerror in -lintl" >&5
+echo "configure:8757: 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 8785 "configure"
+#line 8762 "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
strerror()
; return 0; }
EOF
-if { (eval echo configure:8796: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8773: \"$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
echo "checking for Mule input methods" 1>&6
-echo "configure:8829: checking for Mule input methods" >&5
+echo "configure:8806: checking for Mule input methods" >&5
case "$with_xim" in "" | "yes" )
echo "checking for XIM" 1>&6
-echo "configure:8832: checking for XIM" >&5
+echo "configure:8809: checking for XIM" >&5
echo $ac_n "checking for XOpenIM in -lX11""... $ac_c" 1>&6
-echo "configure:8835: checking for XOpenIM in -lX11" >&5
+echo "configure:8812: 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 8840 "configure"
+#line 8817 "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
XOpenIM()
; return 0; }
EOF
-if { (eval echo configure:8851: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8828: \"$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
if test "$have_motif $have_lesstif" = "yes no"; then
echo $ac_n "checking for XmImMbLookupString in -lXm""... $ac_c" 1>&6
-echo "configure:8875: checking for XmImMbLookupString in -lXm" >&5
+echo "configure:8852: 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 8880 "configure"
+#line 8857 "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
XmImMbLookupString()
; return 0; }
EOF
-if { (eval echo configure:8891: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8868: \"$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
if test "$with_xfs" = "yes" ; then
echo "checking for XFontSet" 1>&6
-echo "configure:8956: checking for XFontSet" >&5
+echo "configure:8933: checking for XFontSet" >&5
echo $ac_n "checking for XmbDrawString in -lX11""... $ac_c" 1>&6
-echo "configure:8959: checking for XmbDrawString in -lX11" >&5
+echo "configure:8936: 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 8964 "configure"
+#line 8941 "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
XmbDrawString()
; return 0; }
EOF
-if { (eval echo configure:8975: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8952: \"$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
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:9015: checking for wnn/jllib.h" >&5
+echo "configure:8992: checking for wnn/jllib.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 9018 "configure"
+#line 8995 "configure"
#include "confdefs.h"
#include <wnn/jllib.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9023: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9000: \"$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*
for ac_func in crypt
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:9048: checking for $ac_func" >&5
+echo "configure:9025: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 9051 "configure"
+#line 9028 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:9074: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9051: \"$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
test "$ac_cv_func_crypt" != "yes" && {
echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6
-echo "configure:9103: checking for crypt in -lcrypt" >&5
+echo "configure:9080: 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 9108 "configure"
+#line 9085 "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
crypt()
; return 0; }
EOF
-if { (eval echo configure:9119: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9096: \"$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
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:9154: checking for jl_dic_list_e in -lwnn" >&5
+echo "configure:9131: 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 9159 "configure"
+#line 9136 "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
jl_dic_list_e()
; return 0; }
EOF
-if { (eval echo configure:9170: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9147: \"$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
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for jl_dic_list_e in -lwnn4""... $ac_c" 1>&6
-echo "configure:9188: checking for jl_dic_list_e in -lwnn4" >&5
+echo "configure:9165: 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 9193 "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
jl_dic_list_e()
; return 0; }
EOF
-if { (eval echo configure:9204: \"$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
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for jl_dic_list_e in -lwnn6""... $ac_c" 1>&6
-echo "configure:9222: checking for jl_dic_list_e in -lwnn6" >&5
+echo "configure:9199: 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 9227 "configure"
+#line 9204 "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
jl_dic_list_e()
; return 0; }
EOF
-if { (eval echo configure:9238: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9215: \"$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
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for dic_list_e in -lwnn6_fromsrc""... $ac_c" 1>&6
-echo "configure:9256: checking for dic_list_e in -lwnn6_fromsrc" >&5
+echo "configure:9233: 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 9261 "configure"
+#line 9238 "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
dic_list_e()
; return 0; }
EOF
-if { (eval echo configure:9272: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9249: \"$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
if test "$with_wnn6" != "no"; then
echo $ac_n "checking for jl_fi_dic_list in -l$libwnn""... $ac_c" 1>&6
-echo "configure:9320: checking for jl_fi_dic_list in -l$libwnn" >&5
+echo "configure:9297: 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 9325 "configure"
+#line 9302 "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
jl_fi_dic_list()
; return 0; }
EOF
-if { (eval echo configure:9336: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9313: \"$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
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:9371: checking for canna/jrkanji.h" >&5
+echo "configure:9348: checking for canna/jrkanji.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 9374 "configure"
+#line 9351 "configure"
#include "confdefs.h"
#include <canna/jrkanji.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9379: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9356: \"$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*
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:9406: checking for canna/jrkanji.h" >&5
+echo "configure:9383: checking for canna/jrkanji.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 9409 "configure"
+#line 9386 "configure"
#include "confdefs.h"
#include <canna/jrkanji.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9414: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9391: \"$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*
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:9442: checking for canna/RK.h" >&5
+echo "configure:9419: checking for canna/RK.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 9445 "configure"
+#line 9422 "configure"
#include "confdefs.h"
#include <canna/RK.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9450: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9427: \"$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*
}
test -z "$with_canna" && {
echo $ac_n "checking for RkBgnBun in -lRKC""... $ac_c" 1>&6
-echo "configure:9473: checking for RkBgnBun in -lRKC" >&5
+echo "configure:9450: 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 9478 "configure"
+#line 9455 "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
RkBgnBun()
; return 0; }
EOF
-if { (eval echo configure:9489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9466: \"$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
}
test -z "$with_canna" && {
echo $ac_n "checking for jrKanjiControl in -lcanna""... $ac_c" 1>&6
-echo "configure:9512: checking for jrKanjiControl in -lcanna" >&5
+echo "configure:9489: 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 9517 "configure"
+#line 9494 "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
jrKanjiControl()
; return 0; }
EOF
-if { (eval echo configure:9528: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9505: \"$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
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:9577: checking for layout_object_getvalue in -li18n" >&5
+echo "configure:9554: 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 9582 "configure"
+#line 9559 "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
layout_object_getvalue()
; return 0; }
EOF
-if { (eval echo configure:9593: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9570: \"$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
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:9679: checking for $ac_func" >&5
+echo "configure:9656: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 9682 "configure"
+#line 9659 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:9705: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9682: \"$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
for ac_func in getloadavg
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:9740: checking for $ac_func" >&5
+echo "configure:9717: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 9743 "configure"
+#line 9720 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:9766: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9743: \"$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
echo $ac_n "checking for kstat_open in -lkstat""... $ac_c" 1>&6
-echo "configure:9802: checking for kstat_open in -lkstat" >&5
+echo "configure:9779: 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 9807 "configure"
+#line 9784 "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
kstat_open()
; return 0; }
EOF
-if { (eval echo configure:9818: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9795: \"$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
echo $ac_n "checking for kvm_read in -lkvm""... $ac_c" 1>&6
-echo "configure:9852: checking for kvm_read in -lkvm" >&5
+echo "configure:9829: 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 9857 "configure"
+#line 9834 "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
kvm_read()
; return 0; }
EOF
-if { (eval echo configure:9868: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9845: \"$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
fi
echo $ac_n "checking whether netdb declares h_errno""... $ac_c" 1>&6
-echo "configure:9902: checking whether netdb declares h_errno" >&5
+echo "configure:9879: checking whether netdb declares h_errno" >&5
cat > conftest.$ac_ext <<EOF
-#line 9904 "configure"
+#line 9881 "configure"
#include "confdefs.h"
#include <netdb.h>
int main() {
return h_errno;
; return 0; }
EOF
-if { (eval echo configure:9911: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9888: \"$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
rm -f conftest*
echo $ac_n "checking for sigsetjmp""... $ac_c" 1>&6
-echo "configure:9931: checking for sigsetjmp" >&5
+echo "configure:9908: checking for sigsetjmp" >&5
cat > conftest.$ac_ext <<EOF
-#line 9933 "configure"
+#line 9910 "configure"
#include "confdefs.h"
#include <setjmp.h>
int main() {
sigjmp_buf bar; sigsetjmp (bar, 0);
; return 0; }
EOF
-if { (eval echo configure:9940: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9917: \"$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
rm -f conftest*
echo $ac_n "checking whether localtime caches TZ""... $ac_c" 1>&6
-echo "configure:9960: checking whether localtime caches TZ" >&5
+echo "configure:9937: checking whether localtime caches TZ" >&5
if test "$ac_cv_func_tzset" = "yes"; then
cat > conftest.$ac_ext <<EOF
-#line 9964 "configure"
+#line 9941 "configure"
#include "confdefs.h"
#include <time.h>
#if STDC_HEADERS
exit (0);
}
EOF
-if { (eval echo configure:9999: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:9976: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
emacs_cv_localtime_cache=no
else
if test "$HAVE_TIMEVAL" = "yes"; then
echo $ac_n "checking whether gettimeofday accepts one or two arguments""... $ac_c" 1>&6
-echo "configure:10029: checking whether gettimeofday accepts one or two arguments" >&5
+echo "configure:10006: checking whether gettimeofday accepts one or two arguments" >&5
cat > conftest.$ac_ext <<EOF
-#line 10031 "configure"
+#line 10008 "configure"
#include "confdefs.h"
#ifdef TIME_WITH_SYS_TIME
; return 0; }
EOF
-if { (eval echo configure:10052: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10029: \"$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
echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:10074: checking for inline" >&5
+echo "configure:10051: checking for inline" >&5
ac_cv_c_inline=no
for ac_kw in inline __inline__ __inline; do
cat > conftest.$ac_ext <<EOF
-#line 10079 "configure"
+#line 10056 "configure"
#include "confdefs.h"
int main() {
} $ac_kw foo() {
; return 0; }
EOF
-if { (eval echo configure:10086: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10063: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_inline=$ac_kw; break
else
# 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:10136: checking for working alloca.h" >&5
+echo "configure:10113: checking for working alloca.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 10139 "configure"
+#line 10116 "configure"
#include "confdefs.h"
#include <alloca.h>
int main() {
char *p = alloca(2 * sizeof(int));
; return 0; }
EOF
-if { (eval echo configure:10146: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10123: \"$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
fi
echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:10170: checking for alloca" >&5
+echo "configure:10147: checking for alloca" >&5
cat > conftest.$ac_ext <<EOF
-#line 10173 "configure"
+#line 10150 "configure"
#include "confdefs.h"
#ifdef __GNUC__
char *p = (char *) alloca(1);
; return 0; }
EOF
-if { (eval echo configure:10201: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10178: \"$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
echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:10240: checking whether alloca needs Cray hooks" >&5
+echo "configure:10217: checking whether alloca needs Cray hooks" >&5
cat > conftest.$ac_ext <<EOF
-#line 10243 "configure"
+#line 10220 "configure"
#include "confdefs.h"
#if defined(CRAY) && ! defined(CRAY2)
webecray
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:10267: checking for $ac_func" >&5
+echo "configure:10244: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 10270 "configure"
+#line 10247 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:10293: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10270: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
fi
echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:10323: checking stack direction for C alloca" >&5
+echo "configure:10300: checking stack direction for C alloca" >&5
cat > conftest.$ac_ext <<EOF
-#line 10326 "configure"
+#line 10303 "configure"
#include "confdefs.h"
find_stack_direction ()
{
exit (find_stack_direction() < 0);
}
EOF
-if { (eval echo configure:10345: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:10322: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
ac_cv_c_stack_direction=1
else
ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for vfork.h""... $ac_c" 1>&6
-echo "configure:10374: checking for vfork.h" >&5
+echo "configure:10351: checking for vfork.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 10377 "configure"
+#line 10354 "configure"
#include "confdefs.h"
#include <vfork.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10382: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10359: \"$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*
fi
echo $ac_n "checking for working vfork""... $ac_c" 1>&6
-echo "configure:10410: checking for working vfork" >&5
+echo "configure:10387: checking for working vfork" >&5
cat > conftest.$ac_ext <<EOF
-#line 10413 "configure"
+#line 10390 "configure"
#include "confdefs.h"
/* Thanks to Paul Eggert for this test. */
#include <stdio.h>
}
}
EOF
-if { (eval echo configure:10508: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:10485: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
ac_cv_func_vfork_works=yes
else
echo $ac_n "checking for working strcoll""... $ac_c" 1>&6
-echo "configure:10534: checking for working strcoll" >&5
+echo "configure:10511: checking for working strcoll" >&5
cat > conftest.$ac_ext <<EOF
-#line 10537 "configure"
+#line 10514 "configure"
#include "confdefs.h"
#include <string.h>
main ()
strcoll ("123", "456") >= 0);
}
EOF
-if { (eval echo configure:10547: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:10524: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
ac_cv_func_strcoll_works=yes
else
for ac_func in getpgrp
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:10575: checking for $ac_func" >&5
+echo "configure:10552: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 10578 "configure"
+#line 10555 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:10601: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10578: \"$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
done
echo $ac_n "checking whether getpgrp takes no argument""... $ac_c" 1>&6
-echo "configure:10629: checking whether getpgrp takes no argument" >&5
+echo "configure:10606: checking whether getpgrp takes no argument" >&5
cat > conftest.$ac_ext <<EOF
-#line 10632 "configure"
+#line 10609 "configure"
#include "confdefs.h"
/*
}
EOF
-if { (eval echo configure:10687: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:10664: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
ac_cv_func_getpgrp_void=yes
else
echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:10714: checking for working mmap" >&5
+echo "configure:10691: checking for working mmap" >&5
case "$opsys" in ultrix* ) have_mmap=no ;; *)
cat > conftest.$ac_ext <<EOF
-#line 10717 "configure"
+#line 10694 "configure"
#include "confdefs.h"
#include <stdio.h>
#include <unistd.h>
return 1;
}
EOF
-if { (eval echo configure:10750: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:10727: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
have_mmap=yes
else
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:10776: checking for M_MMAP_THRESHOLD" >&5
+echo "configure:10753: checking for M_MMAP_THRESHOLD" >&5
cat > conftest.$ac_ext <<EOF
-#line 10778 "configure"
+#line 10755 "configure"
#include "confdefs.h"
#include <malloc.h>
int main() {
; return 0; }
EOF
-if { (eval echo configure:10790: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10767: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
rel_alloc=no; echo "$ac_t""yes" 1>&6;
else
ac_safe=`echo "termios.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for termios.h""... $ac_c" 1>&6
-echo "configure:10815: checking for termios.h" >&5
+echo "configure:10792: checking for termios.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 10818 "configure"
+#line 10795 "configure"
#include "confdefs.h"
#include <termios.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10823: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10800: \"$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*
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:10866: checking for termio.h" >&5
+echo "configure:10843: checking for termio.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 10869 "configure"
+#line 10846 "configure"
#include "confdefs.h"
#include <termio.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10874: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10851: \"$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*
echo $ac_n "checking for socket""... $ac_c" 1>&6
-echo "configure:10906: checking for socket" >&5
+echo "configure:10883: checking for socket" >&5
cat > conftest.$ac_ext <<EOF
-#line 10909 "configure"
+#line 10886 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char socket(); below. */
; return 0; }
EOF
-if { (eval echo configure:10932: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10909: \"$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
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:10947: checking for netinet/in.h" >&5
+echo "configure:10924: checking for netinet/in.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 10950 "configure"
+#line 10927 "configure"
#include "confdefs.h"
#include <netinet/in.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10955: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10932: \"$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*
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:10972: checking for arpa/inet.h" >&5
+echo "configure:10949: checking for arpa/inet.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 10975 "configure"
+#line 10952 "configure"
#include "confdefs.h"
#include <arpa/inet.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10980: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10957: \"$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*
}
echo $ac_n "checking "for sun_len member in struct sockaddr_un"""... $ac_c" 1>&6
-echo "configure:11005: checking "for sun_len member in struct sockaddr_un"" >&5
+echo "configure:10982: checking "for sun_len member in struct sockaddr_un"" >&5
cat > conftest.$ac_ext <<EOF
-#line 11007 "configure"
+#line 10984 "configure"
#include "confdefs.h"
#include <sys/types.h>
static struct sockaddr_un x; x.sun_len = 1;
; return 0; }
EOF
-if { (eval echo configure:11018: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10995: \"$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
fi
rm -f conftest*
echo $ac_n "checking "for ip_mreq struct in netinet/in.h"""... $ac_c" 1>&6
-echo "configure:11036: checking "for ip_mreq struct in netinet/in.h"" >&5
+echo "configure:11013: checking "for ip_mreq struct in netinet/in.h"" >&5
cat > conftest.$ac_ext <<EOF
-#line 11038 "configure"
+#line 11015 "configure"
#include "confdefs.h"
#include <sys/types.h>
static struct ip_mreq x;
; return 0; }
EOF
-if { (eval echo configure:11048: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11025: \"$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
echo $ac_n "checking for msgget""... $ac_c" 1>&6
-echo "configure:11079: checking for msgget" >&5
+echo "configure:11056: checking for msgget" >&5
cat > conftest.$ac_ext <<EOF
-#line 11082 "configure"
+#line 11059 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char msgget(); below. */
; return 0; }
EOF
-if { (eval echo configure:11105: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11082: \"$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
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:11120: checking for sys/ipc.h" >&5
+echo "configure:11097: checking for sys/ipc.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 11123 "configure"
+#line 11100 "configure"
#include "confdefs.h"
#include <sys/ipc.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11128: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11105: \"$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*
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:11145: checking for sys/msg.h" >&5
+echo "configure:11122: checking for sys/msg.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 11148 "configure"
+#line 11125 "configure"
#include "confdefs.h"
#include <sys/msg.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11153: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11130: \"$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*
ac_safe=`echo "dirent.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for dirent.h""... $ac_c" 1>&6
-echo "configure:11191: checking for dirent.h" >&5
+echo "configure:11168: checking for dirent.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 11194 "configure"
+#line 11171 "configure"
#include "confdefs.h"
#include <dirent.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11199: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11176: \"$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*
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:11226: checking for sys/dir.h" >&5
+echo "configure:11203: checking for sys/dir.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 11229 "configure"
+#line 11206 "configure"
#include "confdefs.h"
#include <sys/dir.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11234: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11211: \"$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*
ac_safe=`echo "nlist.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for nlist.h""... $ac_c" 1>&6
-echo "configure:11267: checking for nlist.h" >&5
+echo "configure:11244: checking for nlist.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 11270 "configure"
+#line 11247 "configure"
#include "confdefs.h"
#include <nlist.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11275: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11252: \"$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*
echo "checking "for sound support"" 1>&6
-echo "configure:11305: checking "for sound support"" >&5
+echo "configure:11282: 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:11312: checking for multimedia/audio_device.h" >&5
+echo "configure:11289: checking for multimedia/audio_device.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 11315 "configure"
+#line 11292 "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:11320: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11297: \"$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*
if test -z "$native_sound_lib"; then
echo $ac_n "checking for ALopenport in -laudio""... $ac_c" 1>&6
-echo "configure:11368: checking for ALopenport in -laudio" >&5
+echo "configure:11345: 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 11373 "configure"
+#line 11350 "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
ALopenport()
; return 0; }
EOF
-if { (eval echo configure:11384: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11361: \"$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
if test -z "$native_sound_lib"; then
echo $ac_n "checking for AOpenAudio in -lAlib""... $ac_c" 1>&6
-echo "configure:11415: checking for AOpenAudio in -lAlib" >&5
+echo "configure:11392: 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 11420 "configure"
+#line 11397 "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
AOpenAudio()
; return 0; }
EOF
-if { (eval echo configure:11431: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11408: \"$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
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:11469: checking for ${dir}/soundcard.h" >&5
+echo "configure:11446: checking for ${dir}/soundcard.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 11472 "configure"
+#line 11449 "configure"
#include "confdefs.h"
#include <${dir}/soundcard.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11477: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11454: \"$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*
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:11531: checking for audio/audiolib.h" >&5
+echo "configure:11508: checking for audio/audiolib.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 11534 "configure"
+#line 11511 "configure"
#include "confdefs.h"
#include <audio/audiolib.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11539: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11516: \"$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*
echo $ac_n "checking for AuOpenServer in -laudio""... $ac_c" 1>&6
-echo "configure:11557: checking for AuOpenServer in -laudio" >&5
+echo "configure:11534: 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 11562 "configure"
+#line 11539 "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
AuOpenServer()
; return 0; }
EOF
-if { (eval echo configure:11573: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11550: \"$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
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 11612 "configure"
+#line 11589 "configure"
#include "confdefs.h"
#include <audio/Xtutil.h>
EOF
# 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:11643: checking for $ac_word" >&5
+echo "configure:11620: 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.
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:11672: checking for esd_play_stream" >&5
+echo "configure:11649: checking for esd_play_stream" >&5
cat > conftest.$ac_ext <<EOF
-#line 11675 "configure"
+#line 11652 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char esd_play_stream(); below. */
; return 0; }
EOF
-if { (eval echo configure:11698: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11675: \"$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
if test "$with_tty" = "yes" ; then
echo "checking for TTY-related features" 1>&6
-echo "configure:11749: checking for TTY-related features" >&5
+echo "configure:11726: checking for TTY-related features" >&5
{ test "$extra_verbose" = "yes" && cat << \EOF
Defining HAVE_TTY
EOF
if test -z "$with_ncurses"; then
echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6
-echo "configure:11765: checking for tgetent in -lncurses" >&5
+echo "configure:11742: 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 11770 "configure"
+#line 11747 "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
tgetent()
; return 0; }
EOF
-if { (eval echo configure:11781: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11758: \"$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
ac_safe=`echo "ncurses/curses.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for ncurses/curses.h""... $ac_c" 1>&6
-echo "configure:11814: checking for ncurses/curses.h" >&5
+echo "configure:11791: checking for ncurses/curses.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 11817 "configure"
+#line 11794 "configure"
#include "confdefs.h"
#include <ncurses/curses.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11822: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11799: \"$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*
ac_safe=`echo "ncurses/term.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for ncurses/term.h""... $ac_c" 1>&6
-echo "configure:11844: checking for ncurses/term.h" >&5
+echo "configure:11821: checking for ncurses/term.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 11847 "configure"
+#line 11824 "configure"
#include "confdefs.h"
#include <ncurses/term.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11852: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11829: \"$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*
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:11882: checking for ncurses/curses.h" >&5
+echo "configure:11859: checking for ncurses/curses.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 11885 "configure"
+#line 11862 "configure"
#include "confdefs.h"
#include <ncurses/curses.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11890: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11867: \"$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*
for lib in curses termlib termcap; do
echo $ac_n "checking for tgetent in -l$lib""... $ac_c" 1>&6
-echo "configure:11925: checking for tgetent in -l$lib" >&5
+echo "configure:11902: 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 11930 "configure"
+#line 11907 "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
tgetent()
; return 0; }
EOF
-if { (eval echo configure:11941: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11918: \"$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
else
echo $ac_n "checking for tgetent in -lcurses""... $ac_c" 1>&6
-echo "configure:11972: checking for tgetent in -lcurses" >&5
+echo "configure:11949: 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 11977 "configure"
+#line 11954 "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
tgetent()
; return 0; }
EOF
-if { (eval echo configure:11988: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11965: \"$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
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6
-echo "configure:12006: checking for tgetent in -ltermcap" >&5
+echo "configure:11983: 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 12011 "configure"
+#line 11988 "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
tgetent()
; return 0; }
EOF
-if { (eval echo configure:12022: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11999: \"$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
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:12070: checking for gpm.h" >&5
+echo "configure:12047: checking for gpm.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 12073 "configure"
+#line 12050 "configure"
#include "confdefs.h"
#include <gpm.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12078: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12055: \"$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*
}
test -z "$with_gpm" && {
echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6
-echo "configure:12101: checking for Gpm_Open in -lgpm" >&5
+echo "configure:12078: 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 12106 "configure"
+#line 12083 "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
Gpm_Open()
; return 0; }
EOF
-if { (eval echo configure:12117: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12094: \"$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
test "$with_database_gdbm $with_database_dbm $with_database_berkdb" \
!= "no no no" && echo "checking for database support" 1>&6
-echo "configure:12167: checking for database support" >&5
+echo "configure:12144: 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:12172: checking for ndbm.h" >&5
+echo "configure:12149: checking for ndbm.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 12175 "configure"
+#line 12152 "configure"
#include "confdefs.h"
#include <ndbm.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12180: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12157: \"$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*
if test "$with_database_gdbm" != "no"; then
echo $ac_n "checking for dbm_open in -lgdbm""... $ac_c" 1>&6
-echo "configure:12210: checking for dbm_open in -lgdbm" >&5
+echo "configure:12187: 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 12215 "configure"
+#line 12192 "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
dbm_open()
; return 0; }
EOF
-if { (eval echo configure:12226: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12203: \"$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
if test "$with_database_dbm" != "no"; then
echo $ac_n "checking for dbm_open""... $ac_c" 1>&6
-echo "configure:12254: checking for dbm_open" >&5
+echo "configure:12231: checking for dbm_open" >&5
cat > conftest.$ac_ext <<EOF
-#line 12257 "configure"
+#line 12234 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char dbm_open(); below. */
; return 0; }
EOF
-if { (eval echo configure:12280: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12257: \"$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
echo $ac_n "checking for dbm_open in -ldbm""... $ac_c" 1>&6
-echo "configure:12299: checking for dbm_open in -ldbm" >&5
+echo "configure:12276: 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 12304 "configure"
+#line 12281 "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
dbm_open()
; return 0; }
EOF
-if { (eval echo configure:12315: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12292: \"$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
if test "$with_database_berkdb" != "no"; then
echo $ac_n "checking for Berkeley db.h""... $ac_c" 1>&6
-echo "configure:12356: checking for Berkeley db.h" >&5
+echo "configure:12333: checking for Berkeley db.h" >&5
for path in "db/db.h" "db.h"; do
cat > conftest.$ac_ext <<EOF
-#line 12359 "configure"
+#line 12336 "configure"
#include "confdefs.h"
#include <stdlib.h>
; return 0; }
EOF
-if { (eval echo configure:12381: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12358: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
db_h_path="$path"; break
else
if test "$with_database_berkdb" != "no"; then
echo $ac_n "checking for Berkeley DB version""... $ac_c" 1>&6
-echo "configure:12397: checking for Berkeley DB version" >&5
+echo "configure:12374: checking for Berkeley DB version" >&5
cat > conftest.$ac_ext <<EOF
-#line 12399 "configure"
+#line 12376 "configure"
#include "confdefs.h"
#include <$db_h_path>
#if DB_VERSION_MAJOR > 1
rm -f conftest*
echo $ac_n "checking for $dbfunc""... $ac_c" 1>&6
-echo "configure:12418: checking for $dbfunc" >&5
+echo "configure:12395: checking for $dbfunc" >&5
cat > conftest.$ac_ext <<EOF
-#line 12421 "configure"
+#line 12398 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $dbfunc(); below. */
; return 0; }
EOF
-if { (eval echo configure:12444: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12421: \"$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
echo $ac_n "checking for $dbfunc in -ldb""... $ac_c" 1>&6
-echo "configure:12463: checking for $dbfunc in -ldb" >&5
+echo "configure:12440: 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 12468 "configure"
+#line 12445 "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
$dbfunc()
; return 0; }
EOF
-if { (eval echo configure:12479: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12456: \"$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
if test "$with_socks" = "yes"; then
echo $ac_n "checking for SOCKSinit in -lsocks""... $ac_c" 1>&6
-echo "configure:12543: checking for SOCKSinit in -lsocks" >&5
+echo "configure:12520: 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 12548 "configure"
+#line 12525 "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
SOCKSinit()
; return 0; }
EOF
-if { (eval echo configure:12559: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12536: \"$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
if test "$with_modules" != "no"; then
echo "checking for module support" 1>&6
-echo "configure:12614: checking for module support" >&5
+echo "configure:12591: 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:12618: checking for dlfcn.h" >&5
+echo "configure:12595: checking for dlfcn.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 12621 "configure"
+#line 12598 "configure"
#include "confdefs.h"
#include <dlfcn.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12626: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12603: \"$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*
echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:12644: checking for dlopen in -ldl" >&5
+echo "configure:12621: 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 12649 "configure"
+#line 12626 "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
dlopen()
; return 0; }
EOF
-if { (eval echo configure:12660: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12637: \"$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
echo "$ac_t""no" 1>&6
echo $ac_n "checking for dlopen in -lc""... $ac_c" 1>&6
-echo "configure:12679: checking for dlopen in -lc" >&5
+echo "configure:12656: 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 12684 "configure"
+#line 12661 "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
dlopen()
; return 0; }
EOF
-if { (eval echo configure:12695: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12672: \"$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
else
echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
-echo "configure:12734: checking for shl_load in -ldld" >&5
+echo "configure:12711: 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 12739 "configure"
+#line 12716 "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
shl_load()
; return 0; }
EOF
-if { (eval echo configure:12750: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12727: \"$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
echo "$ac_t""no" 1>&6
echo $ac_n "checking for dld_init in -ldld""... $ac_c" 1>&6
-echo "configure:12777: checking for dld_init in -ldld" >&5
+echo "configure:12754: 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 12782 "configure"
+#line 12759 "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
dld_init()
; return 0; }
EOF
-if { (eval echo configure:12793: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12770: \"$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
xealias=$internal_configuration
echo "checking how to build dynamic libraries for ${xehost}" 1>&6
-echo "configure:12838: checking how to build dynamic libraries for ${xehost}" >&5
+echo "configure:12815: checking how to build dynamic libraries for ${xehost}" >&5
# Transform *-*-linux* to *-*-linux-gnu*, to support old configure scripts.
case "$xehost" in
*-*-linux-gnu*) ;;
XEGCC=yes
else
echo $ac_n "checking checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:12866: checking checking whether we are using GNU C" >&5
+echo "configure:12843: checking checking whether we are using GNU C" >&5
cat > conftest.$ac_ext <<EOF
-#line 12868 "configure"
+#line 12845 "configure"
#include "confdefs.h"
#ifdef __GNUC__
fi
echo $ac_n "checking how to produce PIC code""... $ac_c" 1>&6
-echo "configure:12890: checking how to produce PIC code" >&5
+echo "configure:12867: checking how to produce PIC code" >&5
wl=
can_build_shared=yes
# 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:12983: checking if PIC flag ${dll_cflags} really works" >&5
+echo "configure:12960: checking if PIC flag ${dll_cflags} really works" >&5
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $dll_cflags -DPIC"
cat > conftest.$ac_ext <<EOF
-#line 12987 "configure"
+#line 12964 "configure"
#include "confdefs.h"
int main() {
int x=0;
; return 0; }
EOF
-if { (eval echo configure:12994: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12971: \"$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
xldf=
xcldf=
echo $ac_n "checking if C compiler can produce shared libraries""... $ac_c" 1>&6
-echo "configure:13025: checking if C compiler can produce shared libraries" >&5
+echo "configure:13002: checking if C compiler can produce shared libraries" >&5
if test "$XEGCC" = yes; then
xcldf="-shared"
xldf="-shared"
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 13076 "configure"
+#line 13053 "configure"
#include "confdefs.h"
int main() {
int x=0;
; return 0; }
EOF
-if { (eval echo configure:13083: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13060: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
cc_produces_so=yes
else
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:13108: checking for ld used by GCC" >&5
+echo "configure:13085: checking for ld used by GCC" >&5
ac_prog=`($CC -print-prog-name=ld) 2>&5`
case "$ac_prog" in
# Accept absolute paths.
esac
else
echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
-echo "configure:13133: checking for GNU ld" >&5
+echo "configure:13110: checking for GNU ld" >&5
fi
if test -z "$LTLD"; then
# 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:13171: checking if the linker is GNU ld" >&5
+echo "configure:13148: 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
# 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:13198: checking whether the linker supports shared libraries" >&5
+echo "configure:13175: checking whether the linker supports shared libraries" >&5
dll_ld=$CC
dll_ldflags=$LDFLAGS
ld_shlibs=yes
for ac_func in dlerror _dlerror
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:13413: checking for $ac_func" >&5
+echo "configure:13390: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 13416 "configure"
+#line 13393 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:13439: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13416: \"$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
fi
cat > conftest.$ac_ext <<EOF
-#line 13478 "configure"
+#line 13455 "configure"
#include "confdefs.h"
int main(int c,char *v[]){return 0;}
EOF
-if { (eval echo configure:13482: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:13459: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
:
else
### from the file `./configure.in'.
### To rebuild it, execute the command
### autoconf
-### in the this directory. You must have autoconf version 2.12 or later.
+### in the this directory. You must have autoconf version 2.13 or later.
### This file is part of XEmacs.
dnl We use the m4 quoting characters [ ] (as established by the
dnl autoconf system), so quote them like this: [[foo]]
-AC_PREREQ(2.12)dnl
+AC_PREREQ(2.13)dnl
dnl Redefine some standard autoconf macros
dnl here is how XEmacs is different:
dnl - no cache file
m68*-sony-* ) machine=news ;;
mips-sony-* ) machine=news-risc ;;
clipper-* ) machine=clipper ;;
- arm-* ) machine=arm ;;
- armv[34][lb]-* ) machine=arm ;;
+ arm* ) machine=arm ;;
ns32k-* ) machine=ns32000 ;;
esac
fi
fi
+dnl Search for GCC specific build problems we know about
+if test "$GCC" = "yes"; then
+AC_MSG_CHECKING(for buggy gcc versions)
+GCC_VERSION=`$CC --version`
+case `uname -s`:`uname -m`:$GCC_VERSION in
+ dnl egcs 2.90.21 (egcs-1.00 release)
+ dnl egcs 2.90.29 (egcs-1.0.3 release)
+ *:sun4*:2.8.1|*:sun4*:egcs-2.90.*)
+ dnl Don't use -O2 with gcc 2.8.1 and egcs 1.0 under SPARC architectures
+ dnl without also using `-fno-schedule-insns'.
+ case "$CFLAGS" in
+ *-O2*|*-O3*)
+ case "$CFLAGS" in
+ *-fno-schedule-insns*) ;;
+ *)
+ AC_MSG_RESULT(Yes)
+ AC_MSG_WARN(Don't use -O2 with gcc 2.8.1 and egcs 1.0 under SPARC architectures)
+ AC_MSG_WARN(without also using -fno-schedule-insns.)
+ AC_MSG_ERROR(Aborting due to known problem)
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ dnl egcs-2.91.57 (egcs-1.1 release)
+ dnl egcs-2.91.66 (egcs-1.1.2 release)
+ Linux:alpha:egcs-2.91.*)
+ AC_MSG_RESULT(Yes)
+ AC_MSG_WARN(There have been reports of egcs-1.1 not compiling XEmacs correctly on)
+ AC_MSG_WARN(Alpha Linux. There have also been reports that egcs-1.0.3a is O.K.)
+ AC_MSG_ERROR(Aborting due to known problem)
+ ;;
+ *:i*86*:2.7.2*)
+ case "$GCC_VERSION" in
+ 2.7.2)
+ case "$CFLAGS" in
+ *-O2*|*-O3*)
+ case "$CFLAGS" in
+ *-fno-strength-reduce*) ;;
+ *)
+ AC_MSG_RESULT(Yes)
+ AC_MSG_WARN(Don't use -O2 with gcc 2.7.2 under Intel/XXX without also using)
+ AC_MSG_WARN(-fno-strength-reduce.)
+ AC_MSG_ERROR(Aborting due to known problem)
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+ case "$CFLAGS" in
+ *-fno-caller-saves*) ;;
+ *)
+ AC_MSG_RESULT(Yes)
+ AC_MSG_WARN(Don't use -O2 with gcc 2.7.2 under Intel/XXX without also using)
+ AC_MSG_WARN(-fno-caller-saves.)
+ AC_MSG_ERROR(Aborting due to known problem)
+ ;;
+ esac
+ ;;
+esac
+fi
+AC_MSG_RESULT(No)
+
dnl Inform compiler that certain flags are meant for the linker
dnl XE_PROTECT_LINKER_FLAGS(shell_var)
define([XE_PROTECT_LINKER_FLAGS], [
AC_PROG_YACC
dnl checks for header files
-AC_CHECK_HEADERS(mach/mach.h sys/stropts.h sys/timeb.h sys/time.h unistd.h)
-AC_CHECK_HEADERS(utime.h locale.h libgen.h fcntl.h ulimit.h cygwin/version.h)
-AC_CHECK_HEADERS(kstat.h sys/pstat.h inttypes.h sys/un.h a.out.h)
+AC_CHECK_HEADERS(dnl
+ a.out.h dnl
+ cygwin/version.h dnl
+ fcntl.h dnl
+ inttypes.h dnl
+ libgen.h dnl
+ locale.h dnl
+ mach/mach.h dnl
+ sys/param.h dnl
+ sys/pstat.h dnl
+ sys/stropts.h dnl
+ sys/time.h dnl
+ sys/timeb.h dnl
+ sys/un.h dnl
+ kstat.h dnl
+ ulimit.h dnl
+ unistd.h dnl
+ utime.h dnl
+)
AC_HEADER_SYS_WAIT
AC_HEADER_STDC
AC_HEADER_TIME
fi
dnl Link with "-z ignore" on Solaris if supported
-if test "$opsys" = "sol2" -a "$os_release" -ge 56; then
- AC_MSG_CHECKING(for \"-z ignore\" linker flag)
- case "`ld -h 2>&1`" in
- *-z\ ignore\|record* ) AC_MSG_RESULT(yes)
- XE_PREPEND(-z ignore, ld_switch_site) ;;
- *) AC_MSG_RESULT(no) ;;
- esac
+if test "$opsys" = "sol2"; then
+ if test "$os_release" -ge 56; then
+ AC_MSG_CHECKING(for \"-z ignore\" linker flag)
+ case "`ld -h 2>&1`" in
+ *-z\ ignore\|record* ) AC_MSG_RESULT(yes)
+ XE_PREPEND(-z ignore, ld_switch_site) ;;
+ *) AC_MSG_RESULT(no) ;;
+ esac
+ fi
fi
dnl ----------------------
- ==============================
- \e$BF|K\8l\e(B GNUEMACS(Mule) \e$BF~LgJT\e(B
- ==============================
+Copyright (c) 1985, 1996 Free Software Foundation, Inc.
+\e$B;HMQ>r7o$O%U%!%$%k:G8e$r;2>H$N$3$H\e(B
+ \e$B$"$J$?$,8=:_8+$F$$$k$N$O\e(B XEmacs \e$BF~Lg%,%$%I$G$9!#\e(B
-\e$BCm0U!'\e(B \e$B$3$NF~LgJT$O!"!V=,$&$h$j47$l$m!W$r%b%C%H!<$K:n@.$5$l$F$$$^\e(B
- \e$B$9!#\e(B">>" \e$B$+$i;O$^$k9T$O!"$=$N;~2?$r$9$Y$-$+$r;X<($7$F$$$^$9!#\e(B
+XEmacs \e$B$N%3%^%s%I$rF~NO$9$k$K$O!"0lHL$K%3%s%H%m!<%k%-!<!J%-!<%H%C%W$K\e(B
+CTRL \e$B$H$+\e(B CTL \e$B$H=q$$$F$"$k!K$d%a%?%-!<$r;H$$$^$9!#%-!<%\!<%I$K$h$C$F$O!"\e(B
+META \e$B%-!<$O\e(B ALT \e$B$d\e(B EDIT \e$B$H=q$+$l$F$$$?$j!"B>$N$b$N$G$"$C$?$j$7$^$9\e(B
+\e$B!JNc$($P!"\e(BSun \e$B$N%-!<%\!<%I$G$O!"%9%Z!<%9%P!<$N:8$N%@%$%"%b%s%I%-!<$,\e(B
+META \e$B$G$9!K!#\e(BMETA \e$B%-!<$,L5$$>l9g$O!"\e(BESC \e$B$rBe$o$j$K;H$&$3$H$,$G$-$^$9!#\e(B
+\e$B$=$3$G!"\e(BMETA \e$B$H$+\e(B CONTROL \e$B$H$+$r=q$/Be$o$j$K!"<!$N$h$&$J5-9f$r;H$&$3$H\e(B
+\e$B$K$7$^$9!#\e(B
+ C-<\e$BJ8;z\e(B> \e$B%3%s%H%m!<%k%-!<$r2!$7$?$^$^!"\e(B<\e$BJ8;z\e(B>\e$B%-!<$r2!$7$^$9!#Nc$($P!"\e(B
+ C-f \e$B$O%3%s%H%m!<%k%-!<$r2!$7$J$,$i\e(B f \e$B$N%-!<$r2!$9$3$H$G$9!#\e(B
- Mule \e$B$N%3%^%s%I$rF~NO$9$k$H$-$K$O!"0lHLE*$K%3%s%H%m!<%k!&%-!<!J%-!<!&\e(B
-\e$B%H%C%W$K!"\e(BCTRL \e$B$"$k$$$O!"\e(BCTL \e$B$H=q$$$F$"$k!K$d%a%?!&%-!<!JIaDL!"%(%9%1!<%W!&\e(B
-\e$B%-!<$r;H$&!K$,;H$o$l$^$9!#$=$3$G!"\e(BCONTROL \e$B$H$+\e(B META \e$B$H$+=q$/Be$o$j$K!"<!$N\e(B
-\e$B$h$&$J5-9f$r;H$&$3$H$K$7$^$9!#\e(B
+ M-<\e$BJ8;z\e(B> \e$B%a%?%-!<$r2!$7$?$^$^!"\e(B<\e$BJ8;z\e(B>\e$B%-!<$r2!$7$^$9!#$b$7%a%?%-!<$,$J\e(B
+ \e$B$$>l9g$O!"%(%9%1!<%W%-!<$r2!$7$F$+$iN%$7!"$=$l$+$i\e(B<\e$BJ8;z\e(B>\e$B%-!<\e(B
+ \e$B$r2!$7$^$9!#0J9_%(%9%1!<%W%-!<$N$3$H$r\e(B <ESC> \e$B$H=q$-$^$9!#\e(B
-C-<\e$BJ8;z\e(B> \e$B%3%s%H%m!<%k!&%-!<$r2!$7$?$^$^!"\e(B<\e$BJ8;z\e(B>\e$B%-!<$r2!$7$^$9!#Nc$($P!"\e(B
- C-f \e$B$O!"%3%s%H%m!<%k!&%-!<$r2!$7$J$,$i\e(B f \e$B$N%-!<$r2!$9$3$H$r\e(B
- \e$B0UL#$7$^$9!#\e(B
-<<Blank lines inserted here by startup of help-with-tutorial>>
- >> \e$B$=$l$G$O!"\e(BC-v\e$B!J\e(BView Next Screen; \e$B<!$N2hLL$r8+$k!K$r%?%$%W$7$F\e(B
- \e$B$_$F2<$5$$!#<!$N2hLL$K?J$`$3$H$,$G$-$^$9!#\e(B
- \e$B0J9_!"0l2hLL$rFI$_=*$($k$?$S$KF1MM$K$7$F<!$N2hLL$KFI$_?J$s$G\e(B
- \e$B2<$5$$!#\e(B
+\e$B!*=EMW!*\e(B: XEmacs\e$B$r=*N;$9$k$K$O!"\e(BC-x C-c \e$B$r%?%$%W$7$^$9!#\e(B
-ESC <\e$BJ8;z\e(B> \e$B%(%9%1!<%W!&%-!<$r2!$7$F$+$iN%$7!"$=$l$+$i\e(B<\e$BJ8;z\e(B>\e$B%-!<$r2!$7$^\e(B
- \e$B$9!#\e(B
+">>" \e$B$G;O$^$k9T$O!"$=$N;~2?$r$9$Y$-$+$r;X<($7$F$$$^$9!#Nc$($P!"\e(B
+<<Middle of page left blank for didactic purposes. Text continues below.>>
+>> \e$B$G$O\e(B C-v \e$B!J<!$N2hLL$r8+$k!K$r%?%$%W$7$F<!$N2hLL$K?J$s$G2<$5$$!#\e(B
+ \e$B!J$5$"!"$d$C$F$_$^$7$g$&!#%3%s%H%m!<%k%-!<$r2!$7$J$,$i\e(B v \e$B$G$9!K\e(B
+ \e$B0J9_!"0l2hLL$rFI$_=*$($k$?$S$KF1MM$K$7$F<!$N2hLL$KFI$_?J$s$G2<$5$$!#\e(B
-\e$BCm0U!'\e(B <\e$BJ8;z\e(B>\e$B$O!"BgJ8;z$G$b>.J8;z$G$b%3%^%s%I$H$7$F$OF1$80UL#$K$J$j\e(B
- \e$B$^$9!#%a%?%-!<$,;H$($k$J$i$P\e(B ESC <\e$BJ8;z\e(B> \e$B$NBe$o$j$K\e(B M-<\e$BJ8;z\e(B>
- (\e$B%a%?%-!<$r2!$7$?$^$^\e(B<\e$BJ8;z\e(B>\e$B%-!<$r2!$9\e(B) \e$B$,;H$($^$9!#\e(B
+\e$BA0$N2hLL$H<!$N2hLL$H$G$O!"I=<($5$l$kFbMF$K2?9T$+$N=E$J$j$,$"$j$^$9!#$3\e(B
+\e$B$l$O!"I=<($5$l$F$$$kFbMF$,O"B3$7$F$$$k$3$H$,$9$0H=$k$h$&$K$9$k$?$a$G$9!#\e(B
-\e$B=EMW$G$9!'\e(B Emacs\e$B$r=*N;$5$;$?$$;~$O!"\e(BC-x C-c \e$B$r%?%$%W$7$^$9!#\e(BEmacs\e$B$r\e(Bcsh
- \e$B$+$i5/F0$7$F$$$k>l9g!"%5%9%Z%s%I$9$k!J0l;~E*$K;_$a$k\e(B)\e$B$3$H$,\e(B
- \e$B=PMh$^$9!#\e(BEmacs\e$B$r%5%9%Z%s%I$9$k$K$O!"\e(BC-z\e$B$r%?%$%W$7$^$9!#\e(B
+\e$B$^$:$O!"%U%!%$%k$NCf$r0\F0$7$F9T$/J}K!$rCN$kI,MW$,$"$j$^$9!#\e(BC-v \e$B$K$h$C\e(B
+\e$B$F@h$K?J$`$3$H$O$b$&H=$j$^$7$?!#85$KLa$k$K$O!"\e(BM-v \e$B!J%a%?%-!<$r2!$7$J$,\e(B
+\e$B$i\e(B v\e$B!"$b$7$/$O\e(B <ESC> \e$B$r2!$7$FN%$7$F\e(B v\e$B!K$G$9!#\e(B
+>> M-v \e$B$H\e(B C-v \e$B$r;H$C$F!"A08e$K0\F0$9$k$3$H$r2?2s$+;n$7$F2<$5$$!#\e(B
- \e$B$5$F!"$3$l$+$i$O!"0l2hLLJ,FI$_=*$($?$i!"\e(BC-v \e$B$rF~NO$7$F9T$C$F2<$5$$!#\e(B
- \e$BA0$N2hLL$H<!$N2hLL$H$G$O!"I=<($5$l$kFbMF$K2?9TJ8$+$N=E$J$j$,$"$j$^$9!#\e(B
-\e$B$3$l$O!"I=<($5$l$F$$$kFbMF$,O"B3$7$F$$$k$3$H$,$9$0H=$k$h$&$K$9$k$?$a$G$9!#\e(B
+\e$B!v$3$3$^$G$NMWLs\e(B
+================
-
- \e$B$^$:$O!"%U%!%$%k$NCf$r0\F0$7$F9T$/J}K!$rCN$kI,MW$,$"$j$^$9!#\e(BC-v \e$B$K$h\e(B
-\e$B$C$F@h$K?J$`$3$H$O$b$&H=$j$^$7$?!#85$KLa$k$K$O!"\e(BESC v \e$B$r%?%$%W$7$^$9!#\e(B
-
- >> ESC v \e$B$H\e(B C-v \e$B$r;H$C$F!"A08e$K0\F0$9$k$3$H$r2?2s$+;n$7$F$_$J$5$$!#\e(B
-
-\e$BMWLs\e(B
-====
\e$B%U%!%$%k$r2hLLKh$K8+$F9T$/$K$O!"<!$N%3%^%s%I$r;H$$$^$9!#\e(B
- C-v \e$BA0$K0l2hLLJ,?J$`\e(B
- ESC v \e$B8e$m$K0l2hLLJ,La$k\e(B
- C-l \e$B2hLL$r=q$-D>$9!#$3$N$H$-!"85%+!<%=%k$N$"$C$?9T$,\e(B
- \e$B2hLL$NCf1{$K$/$k$h$&$K$9$k\e(B
+ C-v \e$B<!$N2hLL$K?J$`\e(B
+ M-v \e$BA0$N2hLL$KLa$k\e(B
+ C-l \e$B2hLL$r=q$-D>$9!#$3$N$H$-!"%+!<%=%k$N$"$k9T$,2hLL$NCf1{$K\e(B
+ \e$B$/$k$h$&$K$9$k!#!J\e(BC-1 \e$B$8$c$J$/$C$F\e(B C-L \e$B$G$9$h!*!K\e(B
- >> \e$B:#%+!<%=%k$,$I$3$K$"$k$+!"$=$N6a$/$K$I$s$J%F%-%9%H$,=q$+$l$F$$$k\e(B
- \e$B$+$r3P$($J$5$$!#\e(BC-l \e$B$r%?%$%W$7!"%+!<%=%k$,$I$3$K0\F0$7$?$+!"$=$N\e(B
- \e$B6a$/$N%F%-%9%H$O$I$&$J$C$?$+$rD4$Y$F$_$J$5$$!#\e(B
+>> \e$B%+!<%=%k$r8+$D$1!"$=$N6a$/$K$I$s$JJ8>O$,=q$+$l$F$$$k$+$r3P$(!"\e(B
+ \e$B$=$l$+$i\e(B C-l \e$B$r%?%$%W$7$F2<$5$$!#\e(B
+ \e$B%+!<%=%k$,$I$3$K0\F0$7$?$+!"$=$N6a$/$N%F%-%9%H$O$I$&$J$C$?$+$rD4$Y\e(B
+ \e$B$F$_$^$7$g$&!#\e(B
-\e$B4pK\E*$J%+!<%=%k$N@)8f\e(B
-======================
- \e$B2hLLKh$N0\F0$O$G$-$k$h$&$K$J$j$^$7$?!#:#EY$O!"2hLL$NCf$G!"FCDj$N>l=j$K\e(B
-\e$B0\F0$9$k$?$a$NJ}K!$r21$($^$7$g$&!#$3$l$K$O$$$/$D$+$N$d$jJ}$,$"$j$^$9!#0l$D\e(B
-\e$B$NJ}K!$O!"A0\e(B(previous)\e$B<!\e(B(next)\e$B@h\e(B(forward)\e$B8e\e(B(backward)\e$B$K0\F0$9$k%3%^%s%I$r;H\e(B
-\e$B$&$3$H$G$9!#$3$l$i$N%3%^%s%I$O$=$l$>$l!"\e(BC-p, C-n, C-f,C-b \e$B$K3d$jEv$F$i$l$F\e(B
-\e$B$*$j!"8=:_$N>l=j$+$i?7$7$$>l=j$K%+!<%=%k$r0\F0$5$;$^$9!#?^$G=q$1$P!"\e(B
+\e$B!v4pK\E*$J%+!<%=%k$N@)8f\e(B
+========================
+\e$B2hLLKh$N0\F0$O$G$-$k$h$&$K$J$j$^$7$?!#:#EY$O!"2hLL$NCf$G!"FCDj$N>l=j$K\e(B
+\e$B0\F0$9$k$?$a$NJ}K!$r21$($^$7$g$&!#\e(B
+
+\e$B$3$l$K$O$$$/$D$+$N$d$jJ}$,$"$j$^$9!#0lHV4pK\E*$JJ}K!$O\e(B C-p, C-b, C-f,
+C-n \e$B$r;H$&$3$H$G$9!#$3$l$i$O$=$l$>$l%+!<%=%k$rA0$N9T!"A0$NJ8;z!"<!$NJ8\e(B
+\e$B;z!"<!$N9T$K0\F0$5$;$^$9!#?^$G=q$1$P!"\e(B
\e$BA0$N9T!$\e(BC-p
:
:
- \e$B8e$NJ8;z!$\e(BC-b .... \e$B8=:_$N%+!<%=%k0LCV\e(B .... \e$B@h$NJ8;z!$\e(BC-f
+ \e$BA0$NJ8;z!$\e(BC-b .... \e$B8=:_$N%+!<%=%k0LCV\e(B .... \e$B<!$NJ8;z!$\e(BC-f
:
:
\e$B<!$N9T!$\e(BC-n
+>> C-n \e$B$H\e(B C-p \e$B$G%+!<%=%k$r>e?^$N??Cf$N9T$KF0$+$7$F2<$5$$!#$=$l$+$i\e(B C-l
+ \e$B$r%?%$%W$7$F?^$NA4BN$,2hLLCf1{$K$/$k$h$&$K$7$F$_$^$7$g$&!#\e(B
- \e$B$3$l$i$O!"$=$l$>$l!"\e(BPrevious, Next, Backward, Forward \e$B$NF,J8;z$K$J$C$F\e(B
-\e$B$$$k$N$G!"21$($d$9$$$G$7$g$&!#$3$l$i$O!"4pK\E*$J%+!<%=%k0\F0%3%^%s%I$G$"$j!"\e(B
-\e$B$$$D$G$b;H$&$b$N$G$9!#\e(B
- >> C-n \e$B$r2?2s$+%?%$%W$7!"!J:#!"$"$J$?$,FI$s$G$$$k!K$3$N9T$^$G%+!<%=\e(B
- \e$B%k$r0\F0$5$;$J$5$$!#\e(B
+\e$B$3$l$i$O$N%3%^%s%I$O$=$l$>$l!"\e(BPrevious, Next, Backward, Forward \e$B$NF,J8\e(B
+\e$B;z$K$J$C$F$$$k$N$G!"21$($d$9$$$G$7$g$&!#$3$l$i$O!"4pK\E*$J%+!<%=%k0\F0\e(B
+\e$B%3%^%s%I$G$"$j!"$$$D$G$b;H$&$b$N$G$9!#:#$3$3$G3P$($F2<$5$$!#\e(B
- >> C-f \e$B$r;H$C$F9T$NCf$[$I$K0\F0$7!"\e(BC-p \e$B$G2?9T$+>e$K0\F0$7$F$_$J$5\e(B
- \e$B$$!#%+!<%=%k$N0LCV$NJQ2=$KCm0U$7$J$5$$!#\e(B
+>> C-n \e$B$r2?2s$+%?%$%W$7!"!J:#!"$"$J$?$,FI$s$G$$$k!K$3$N9T$^$G%+!<%=%k\e(B
+ \e$B$r0\F0$5$;$^$7$g$&!#\e(B
- >> \e$B9T$N@hF,$G\e(B C-b \e$B$r%?%$%W$7$F$_$J$5$$!#%+!<%=%k$O$I$3$K0\F0$7$^$9$+\e(B
- \e$B!)$5$i$K$b$&>/$7\e(B C-b \e$B$r%?%$%W$7!":#EY$O\e(B C-f \e$B$G9TKv$NJ}$KLa$j$J$5\e(B
- \e$B$$!#%+!<%=%k$,9TKv$r1[$($k$H$I$&$J$j$^$9$+!)\e(B
+>> C-f \e$B$r;H$C$F9T$NCf$[$I$K0\F0$7!"\e(BC-p \e$B$G2?9T$+>e$K0\F0$5$;$^$7$g$&!#\e(B
+ \e$B%+!<%=%k$N0LCV$NJQ2=$KCm0U$7$F2<$5$$!#\e(B
+\e$B3F9T$N:G8e$K$O!JL\$K$O8+$($J$$!K\e(B Newline \e$BJ8;z$,$"$j$^$9!#$3$l$O<!$N9T\e(B
+\e$B$H$N6h@Z$j$r<($9$?$a$G$9!#%U%!%$%k$N:G8e$b\e(B Newline \e$B$rIU$1$k$Y$-$G$9\e(B
+\e$B!J$b$C$H$b\e(B XEmacs \e$B$O$=$l$r6/@)$O$7$^$;$s$,!K!#\e(B
- \e$B2hLL$N@hF,$dKvHx$r1[$($F%+!<%=%k$r0\F0$5$;$h$&$H$9$k$H!"$=$NJ}8~$K$"$k\e(B
-\e$B%F%-%9%H$,0\F0$7$FMh$F!"%+!<%=%k$O>o$K2hLLFb$K$"$k$h$&$K$5$l$^$9!#\e(B
+>> \e$B9T$N@hF,$G\e(B C-b \e$B$r%?%$%W$7$F$_$^$7$g$&!#%+!<%=%k$OA0$N9T$NKvHx$K0\F0\e(B
+ \e$B$9$k$O$:$G$9!#$3$l$O\e(B C-b \e$B$,A0$N\e(B Newline \e$BJ8;z$r1[$($FLa$C$?$+$i$G$9!#\e(B
- >> C-n \e$B$r;H$C$F!"%+!<%=%k$r2hLL$N2<C<$h$j2<$K0\F0$5$;$F$_$J$5$$!#2?\e(B
- \e$B$,5/$3$j$^$7$?$+!)%+!<%=%k$N0LCV$O$I$&JQ$j$^$7$?$+!)\e(B
+\e$BF1MM$K\e(B C-f \e$B$O%+!<%=%k$r\e(B Newline \e$BJ8;z$r1[$($F<!$K?J$a$k$3$H$,$G$-$^$9!#\e(B
- \e$B0lJ8;zC10L$N0\F0$G$O$^$I$m$C$3$7$$$H;W$&$J$i!"C18lC10L$G0\F0$9$k$3$H$b\e(B
-\e$B$G$-$^$9!#\e(BESC f \e$B$G0lC18lJ,@h$K?J$_!"\e(BESC b \e$B$G0lC18lJ,A0$KLa$j$^$9!#\e(B
+>> \e$B$5$i$K$b$&>/$7\e(B C-b \e$B$r%?%$%W$7$F%+!<%=%k0\F0$N46$8$rGD$s$G2<$5$$!#\e(B
+ \e$B:#EY$O\e(B C-f \e$B$G9TKv$^$G?J$s$G2<$5$$!#\e(B
+ \e$B$5$i$K$b$&0lEY\e(B C-f \e$B$r%?%$%W$7$F<!$N9T$K?J$s$G2<$5$$!#\e(B
-\e$BCm0U!'\e(B \e$BF|K\8l$K$D$$$F$O!"C18l$N@Z$lL\$rG'<1$9$k$3$H$O$G$-$^$;$s$,!"\e(B
- \e$B5?;wE*$JJ8@a$rC18l$N@Z$lL\$H$7$F$$$^$9!#\e(B
+\e$B2hLL$N@hF,$dKvHx$r1[$($F%+!<%=%k$r0\F0$5$;$h$&$H$9$k$H!"$=$NJ}8~$K$"$k\e(B
+\e$BJ8>O$,2hLL$NCf$K0\F0$7$FMh$F$^$9!#$3$l$r!V%9%/%m!<%k!W$H8F$S$^$9!#2hLL\e(B
+\e$B$,%9%/%m!<%k$9$k$3$H$K$h$C$F!"%+!<%=%k$r0\F0$5$;$F$b!"%+!<%=%k$O>o$K2h\e(B
+\e$BLLFb$K$"$k$h$&$K$5$l$^$9!#\e(B
- >> ESC f \e$B$d\e(B ESC b \e$B$r2?2s$+%?%$%W$7$F$_$J$5$$!#\e(BC-f \e$B$d\e(B C-b \e$B$HJ;MQ$7$F\e(B
- \e$B$_$J$5$$!#\e(B
+>> C-n \e$B$r;H$C$F!"%+!<%=%k$r2hLL$N2<C<$h$j2<$K0\F0$5$;$F$_$J$5$$!#2?\e(B
+ \e$B$,5/$3$j$^$7$?$+!)\e(B
- C-f \e$B$d\e(B C-b \e$B$KBP$9$k!"\e(BESC f \e$B$d\e(B ESC b \e$B$NN`;w@-$KCmL\$7$^$7$g$&!#B?$/$N\e(B
-\e$B>l9g!"\e(BESC <\e$BJ8;z\e(B>\e$B$OJ8=q4X78$N=hM}$K;H$o$l!"0lJ}\e(BC-<\e$BJ8;z\e(B>\e$B$O$=$l$h$j$b$b$C$H4p\e(B
-\e$BK\E*$JBP>]!JJ8;z$H$+9T$H$+!K$KBP$9$kA`:n$K;H$o$l$^$9!#\e(B
+\e$B0lJ8;zC10L$N0\F0$G$O$^$I$m$C$3$7$$$J$i!"C18lC10L$G0\F0$9$k$3$H$b$G$-$^\e(B
+\e$B$9!#\e(BM-f (<ESC> f) \e$B$G0lC18l@h$X!"\e(BM-b (<ESC> b) \e$B$G0lC18lA0$X0\F0$7$^$9!#\e(B
- C-a \e$B$H\e(B C-e \e$B$bCN$C$F$$$FJXMx$J%3%^%s%I$G$9!#\e(BC-a \e$B$O%+!<%=%k$r9T$N@hF,$K\e(B
-\e$B0\F0$5$;!"\e(BC-e \e$B$O9T$NKvHx$K0\F0$5$;$^$9!#\e(B
+\e$BCm0U!'\e(B \e$BF|K\8l$K$D$$$F$O!"C18l$N@Z$lL\$rG'<1$9$k$3$H$O$G$-$^$;$s$,!"5?\e(B
+ \e$B;wE*$JJ8@a$rC18l$N@Z$lL\$H$7$F$$$^$9!#\e(B
+>> M-f \e$B$d\e(B M-b \e$B$r2?2s$+;n$7$F$_$^$7$g$&!#\e(B
- >> C-a \e$B$r#22s!"$=$l$+$i\e(B C-e \e$B$r#22sF~NO$7$F$_$J$5$$!#$3$l$i$N%3%^%s%I\e(B
- \e$B$r#22s0J>e7+JV$7$F$b!"%+!<%=%k$O$=$l0J>e0\F0$7$J$$$3$H$KCm0U!#\e(B
+\e$BC18l$NCfDx$K$$$k;~$O!"\e(BM-f \e$B$O$=$NC18l$N=*$o$j$^$G?J$_$^$9!#$b$76uGrJ8;z\e(B
+\e$B$K$$$k;~$K$O\e(B M-f \e$B$O<!$NC18l$N=*$o$j$^$G?J$_$^$9!#\e(BM-b \e$B$bF1MM$G$9!"J}8~\e(B
+\e$B$O5U$G$9$,!#\e(B
- \e$B$"$HFs$D!"4JC1$J%+!<%=%k0\F0%3%^%s%I$,$"$j$^$9!#%U%!%$%k$N@hF,$K0\F0$9\e(B
-\e$B$k\e(B ESC < \e$B$H!"%U%!%$%k$NKvHx$K0\F0$9$k\e(B ESC > \e$B$G$9!#\e(B
+>> M-f \e$B$H\e(B M-b \e$B$r\e(B C-f \e$B$H\e(B C-b \e$B$r8r$($J$,$i?t2s;n$7!"C18l$NCf$KF~$k;~$H!"\e(B
+ \e$BC18l$HC18l$N4V$K$$$k;~$NF0$-$rD4$Y$F2<$5$$!#\e(B
- \e$B%F%-%9%HCf$G%+!<%=%k$NB8:_$9$k0LCV$r!V%]%$%s%H!W$H8F$S$^$9!#8@$$$+$($l\e(B
-\e$B$P!"%+!<%=%k$O!"%F%-%9%H$N$I$3$K%]%$%s%H$,$"$k$+$r2hLL>e$G<($7$F$$$k$N$G$9!#\e(B
+C-f \e$B$H\e(B C-b \e$B$KBP$9$k!"\e(BM-f \e$B$H\e(B M-b \e$B$NN`;w@-$KCmL\$7$^$7$g$&!#B?$/$N>l9g!"\e(B
+\e$B%a%?%-!<$OJ8=q$r9=@.$9$k%f%K%C%H!JC18l!"J8!"CJMn!K$KBP$9$kA`:n$K;H$$!"\e(B
+\e$B%3%s%H%m!<%k%-!<$O$=$l$h$j$b$b$C$H4pK\E*$JBP>]!JJ8;z$H$+9TEy!K$KBP$9$k\e(B
+\e$BA`:n$K;H$$$^$9!#\e(B
- \e$B0J2<$KC1=c$J0\F0A`:n$K$D$$$FMWLs$7$^$9!#$3$N$J$+$K$O!"C18l$d9TC10L$G$N\e(B
-\e$B0\F0%3%^%s%I$b4^$^$l$F$$$^$9!#\e(B
+\e$B$3$NN`;w@-$O9T$HJ8$N4X78$K$b$"$j$^$9!#\e(BC-a \e$B$H\e(B C-e \e$B$O$=$l$>$l9TF,$H9TKv\e(B
+\e$B$K0\F0$7!"\e(BM-a \e$B$H\e(B M-e \e$B$O$=$l$>$lJ8F,$HJ8Kv$K0\F0$7$^$9!#\e(B
- C-f \e$B0lJ8;z@h$K?J$`\e(B
- C-b \e$B0lJ8;z8e$KLa$k\e(B
+>> C-a \e$B$r#22s!"$=$l$+$i\e(B C-e \e$B$r#22s;n$7$^$7$g$&!#\e(B
+ M-a \e$B$r#22s!"$=$l$+$i\e(B M-e \e$B$r#22s;n$7$^$7$g$&!#\e(B
- ESC f \e$B0lC18l@h$K?J$`\e(B
- ESC b \e$B0lC18l8e$KLa$k\e(B
+C-a \e$B$d\e(B C-e \e$B$O7+JV$7$F$b$=$l0J>e0\F0$7$^$;$s$,!"\e(BM-a \e$B$r7+$jJV$9$H$I$s$I\e(B
+\e$B$sA0$NJ8F,$KLa$C$F$$$-$^$9!#$3$NItJ,$G$ON`;w@-$,GK$l$F$$$^$9$,!"$^$"$3\e(B
+\e$B$l$,<+A3$JF0:n$G$O$J$$$G$7$g$&$+!#\e(B
- C-n \e$B<!$N9T$K0\F0\e(B
- C-p \e$BA0$N9T$K0\F0\e(B
+\e$BJ8>OCf$G%+!<%=%k$,$"$k0LCV$r!V%]%$%s%H!W$H8F$S$^$9!#8@$$$+$($l$P!"%+!<\e(B
+\e$B%=%k$O!"J8>O$N$I$3$K%]%$%s%H$,$"$k$+$r2hLL>e$G<($7$F$$$k$N$G$9!#\e(B
- ESC ] \e$BCJMn$N=*$o$j$K0\F0\e(B
- ESC [ \e$BCJMn$N@hF,$K0\F0\e(B
+\e$B0J2<$KC1=c$J%+!<%=%k0\F0A`:n$K$D$$$FMWLs$7$^$9!#$3$N$J$+$K$O!"C18l$d9T\e(B
+\e$BC10L$G$N0\F0%3%^%s%I$b4^$^$l$F$$$^$9!#\e(B
- C-a \e$B9T$N:G=i$K0\F0\e(B
- C-e \e$B9T$N:G8e$K0\F0\e(B
+ C-f \e$B0lJ8;z<!$K?J$`\e(B
+ C-b \e$B0lJ8;zA0$KLa$k\e(B
- ESC < \e$B%U%!%$%k$N:G=i$K0\F0\e(B
- ESC > \e$B%U%!%$%k$N:G8e$K0\F0\e(B
+ M-f \e$B0lC18l<!$K?J$`\e(B
+ M-b \e$B0lC18lA0$KLa$k\e(B
- >> \e$B3F!9$N%3%^%s%I$r;n$7$F$_$J$5$$!#$3$l$i$N%3%^%s%I$O!":G$b$7$P$7$P\e(B
- \e$B;H$o$l$k$b$N$G$9!#:G8e$NFs$D$G$O!"$3$N>l=j$H$ON%$l$?$H$3$m$K0\F0\e(B
- \e$B$9$k$N$G!"\e(B C-v \e$B$d\e(B ESC v \e$B$r;H$C$F$3$3$KLa$C$FMh$k$h$&$K$7$J$5$$!#\e(B
+ C-n \e$B<!$N9T$K0\F0\e(B
+ C-p \e$BA0$N9T$K0\F0\e(B
- Emacs\e$B$NB>$N%3%^%s%I$HF1MM$K!"$3$l$i$N%3%^%s%I$K$O!"7+$jJV$7$N2s?t$r;X\e(B
-\e$BDj$9$k0z?t\e(B \e$B$rM?$($k$3$H$,$G$-$^$9!#$=$N$?$a$K$O!"%3%^%s%I$rF~NO$9$kA0$K!"\e(B
-C-u\e$B$KB3$$$F7+$jJV$92s?t$rF~NO$7$^$9!#\e(B
+ C-a \e$B9TF,$K0\F0\e(B
+ C-e \e$B9TKv$K0\F0\e(B
- \e$BNc$($P!"\e(BC-u 8 C-f \e$B$H$9$k$H!"#8J8;zJ,@h$K0\F0$7$^$9!#\e(B
+>> \e$B$3$l$iA4It$r2?EY$+;n$7$FN}=,$7$^$7$g$&!#\e(B
+ \e$B$I$l$bIQHK$K;H$&%3%^%s%I$G$9!#\e(B
- >> C-n \e$B$"$k$$$O\e(B C-p \e$B$KE,Ev$J0z?t$r;XDj$7$F!"0l2s$N0\F0$G$J$k$Y$/$3\e(B
- \e$B$N9T$N6a$/$KMh$k$h$&$K$7$F$_$J$5$$!#\e(B
+\e$B$"$HFs$D!"=EMW$J%+!<%=%k0\F0%3%^%s%I$,$"$j$^$9!#%U%!%$%k$N@hF,$K0\F0$9\e(B
+\e$B$k\e(B M-< \e$B$H!"%U%!%$%k$NKvHx$K0\F0$9$k\e(B M-> \e$B$G$9!#\e(B
- C-v \e$B$d\e(B ESC v \e$B$K$D$$$F$O>/$70c$$$^$9!#$3$N>l9g!";XDj$5$l$??t$N9T$@$12h\e(B
-\e$BLL$r0\F0$9$k$3$H$K$J$j$^$9!#\e(B
+\e$BBgDq$NC<Kv$G$O\e(B "<" \e$B%-!<$O\e(B ","\e$B%-!<!J%3%s%^!K$N>e$K$"$j!"$=$l$r%?%$%W$9\e(B
+\e$B$k$K$O%7%U%H%-!<$r;H$&I,MW$,$"$j$^$9!#$7$?$,$C$F\e(B M-< \e$B$r%?%$%W$9$k$K$O!"\e(B
+\e$B%a%?%-!<$H%7%U%H%-!<$H%3%s%^%-!<$rF1;~$K2!$5$M$P$J$j$^$;$s!#\e(B
- >> C-u 3 C-v \e$B$HF~NO$7$F$_$J$5$$!#\e(B
+>> M-< \e$B$r;n$7$F!"$3$NF~Lg%,%$%I$N@hF,$K0\F0$7$^$7$g$&!#\e(B
+ \e$B$=$l$+$i!"\e(BC-v \e$B$r2?EY$+;H$C$F$3$3$^$G5"$C$F$-$F$/$@$5$$!#\e(B
- \e$B85$KLa$k$K$O!"\e(BC-u 3 ESC v \e$B$r;H$($P$h$$$N$G$9!#\e(B
+>> M-> \e$B$r;n$7$F!"$3$NF~Lg%,%$%I$NKvHx$K0\F0$7$^$7$g$&!#\e(B
+ \e$B$=$l$+$i!"\e(BM-v \e$B$r2?EY$+;H$C$F$3$3$^$G5"$C$F$-$F$/$@$5$$!#\e(B
-\e$BCf;_%3%^%s%I\e(B
-============
+\e$B$b$7C<Kv$KLp0u%-!<$,$"$l$P!"$=$l$r;H$C$F%+!<%=%k$rF0$+$9$3$H$b$G$-$^$9!#\e(B
+\e$B$1$l$I!"<!$N#3$D$NM}M3$+$i\e(B C-b, C-f, C-n, C-p \e$B$r3P$($k$3$H$r4+$a$^$9!#\e(B
+\e$BBh0l$K!"$3$l$i$O$I$s$JC<Kv$G$b;H$($^$9!#BhFs$K!"\e(BXEmacs\e$B$r;H$&$N$,>eC#$7\e(B
+\e$B$F$/$l$P!"$3$l$i$N%3%s%H%m!<%kJ8;z$rBG$DJ}$,!"Lp0u%-!<$rBG$D$h$j$:$C$H\e(B
+\e$BB.$$$3$H$,J,$k$G$7$g$&!J<j$rDL>o$N0LCV$+$iBg$-$/F0$+$5$J$$$G$h$$$N$G!K!#\e(B
+\e$B:G8e$K!"0lEY$3$l$i$N%3%s%H%m!<%kJ8;z$rBG$D=,47$rIU$1$?$i!"$b$C$H?J$s$@\e(B
+\e$B%+!<%=%k0\F0%3%^%s%I$b4JC1$K3P$($k$3$H$,$G$-$^$9!#\e(B
- C-g \e$B$H$$$&%3%^%s%I$G!"F~NO$rI,MW$H$9$k$h$&$J%3%^%s%I$rCf;_$9$k$3$H$,\e(B
-\e$B$G$-$^$9!#Nc$($P!"0z?t$rF~NO$7$F$$$kESCf$d!"#2$D0J>e$N%-!<F~NO$rI,MW$H$9$k\e(B
-\e$B%3%^%s%I$rF~NO$7$F$$$k:GCf$K!"$=$l$r$d$a$?$/$J$C$?$i!"\e(BC-g \e$B$r;H$($PNI$$$N$G\e(B
-\e$B$9!#\e(B
+XEmacs\e$B$NBgDq$N%3%^%s%I$K$O?tCM0z?t$rM?$($k$3$H$,$G$-$^$9!#BgDq$N>l9g$3\e(B
+\e$B$N?tCM$G7+$jJV$72s?t$r;X<($9$k$3$H$K$J$j$^$9!#?tCM0z?t$rM?$($k$K$O!"%3\e(B
+\e$B%^%s%I$rF~NO$9$kA0$K\e(B C-u \e$B$KB3$$$F?t;z2?7e$+%?%$%W$7$^$9!#$b$7%a%?%-!<\e(B
+\e$B$,;H$($k$J$i!"%a%?%-!<$r2!$7$J$,$i?t;z$r%?%$%W$9$k$3$H$b$G$-$^$9!#$G$b\e(B
+\e$B$d$O$j\e(B C-u \e$B$r3P$($k$3$H$r4+$a$^$9!#$=$l$O$I$s$JC<Kv$G$b;H$($k$+$i$G$9!#\e(B
- >> C-u 100 \e$B$r%?%$%W$7$F0z?t$r#1#0#0$K@_Dj$7!"\e(BC-g \e$B$r%?%$%W$7$J$5$$!#\e(B
- \e$B$=$N$"$H$G\e(B C-f \e$B$r%?%$%W$7$F$_$J$5$$!#2?J8;z0\F0$7$^$7$?$+!)$b$7\e(B
- \e$B4V0c$C$F\e(B ESC \e$B$rF~NO$7$F$7$^$C$?;~$b!"\e(BC-g \e$B$rF~NO$9$l$P<h$j>C$;$^\e(B
- \e$B$9!#\e(B
+\e$BNc$($P\e(B C-u 8 C-f \e$B$H%?%$%W$9$k$H#8J8;zJ,@h$K0\F0$7$^$9!#\e(B
-\e$B%(%i!<\e(B
-======
+>> \e$BE,Ev$J?tCM0z?t$r\e(B C-n \e$B$"$k$$$O\e(B C-p \e$B$KM?$(!"0l2s$N%3%^%s%I$G$J$k$Y$/\e(B
+ \e$B$3$N9T$N6a$/$KMh$k$h$&$K$7$F$_$^$7$g$&!#\e(B
- \e$B;~$K$O!"\e(BEmacs\e$B$G5v$5$l$F$$$J$$A`:n$r$7$F$7$^$&$3$H$,$"$j$^$9!#Nc$($P!"\e(B
-\e$B%3%^%s%I$NDj5A$5$l$F$$$J$$%3%s%H%m!<%k!&%-!<$rF~NO$7$F$7$^$C$?;~$K$O!"\e(BEmacs
-\e$B$O%Y%k$rLD$i$7!"$5$i$K!"2hLL$N0lHV2<$K!"2?$,0-$+$C$?$+$rI=<($7$^$9!#\e(B
+\e$BBgDq$N%3%^%s%I$O?tCM0z?t$r7+$jJV$72s?t$H2r<a$7$^$9$,!"Cf$K$ONc30$b$"$j\e(B
+\e$B$^$9!#\e(BC-v \e$B$d\e(B M-v \e$B$,$=$&$G$9!#$3$N>l9g!";XDj$5$l$??t$N9T$@$12hLL$r%9%/\e(B
+\e$B%m!<%k$5$;$k$3$H$K$J$j$^$9!#Nc$($P\e(B C-u 4 C-v \e$B$O2hLL$r#49TJ,>e$K%9%/%m!<\e(B
+\e$B%k$5$;$^$9!#\e(B
- Emacs\e$B$N%P!<%8%g%s$K$h$C$F$O!"$3$NF~LgJT$K=q$+$l$F$$$k$3$H$r<B9T$G$-$J\e(B
-\e$B$$>l9g$,$"$jF@$^$9!#$=$NMM$J>l9g$K$O!"%(%i!<%a%C%;!<%8$,I=<($5$l$^$9$+$i!"\e(B
-\e$B2?$+%+!<%=%k0\F0%-!<$r2!$7$F!"$=$N<!$NItJ,$K?J$s$G2<$5$$!#\e(B
+>> C-u 8 C-v \e$B$r;n$7$F$_$^$7$g$&!#\e(B
-\e$B%&%#%s%I%&\e(B
-==========
+\e$B2hLL$,>e$K#89T%9%/%m!<%k$7$?$O$:$G$9!#$^$?2hLL$r2<$K%9%/%m!<%k$5$;$k$K$O\e(B
+M-v \e$B$K0z?t$rM?$($l$P$h$$$N$G$9!#\e(B
- Emacs\e$B$O4v$D$b$N%&%#%s%I%&$r;}$D$3$H$H!"$=$N$=$l$>$l$KBP$7$F%F%-%9%H$r\e(B
-\e$BI=<($9$k$3$H$,$G$-$^$9!#%X%k%W$d!"4v$D$+$N%3%^%s%I$+$i$N=PNO$rI=<($9$k$?$a\e(B
-\e$B$K8=$l$?M>J,$J%&%#%s%I%&$r>C$9$?$a$K!"<!$N%3%^%s%I$rCN$kI,MW$,$"$j$^$9!#\e(B
+\e$B$b$7\e(B X \e$B%&%#%s%I%&$r;H$C$F$$$k$N$J$i!"%9%/%m!<%k%P!<$H8F$P$l$k=DD9$N;M\e(B
+\e$B3Q$$%(%j%"$,\e(B XEmacs \e$B$N%&%#%s%I%&$N1&C<$K$"$k$O$:$G$9!#$=$3$r%^%&%9$GA`\e(B
+\e$B:n$7$F2hLL$r%9%/%m!<%k$5$;$k$3$H$b$G$-$^$9!#\e(B
- C-x 1 \e$B%&%#%s%I%&$r#1$D$K$9$k!#\e(B
+>> \e$B%9%/%m!<%k%P!<$NCf$G%^%&%9$N??Cf$N%\%?%s$r2!$7$F$_$^$7$g$&!#%\%?%s\e(B
+ \e$B$r2!$7$?0LCV$G7h$^$kJ8>O$N0LCV$^$G2hLL$,%9%/%m!<%k$7$^$9!#\e(B
- C-x 1 \e$B$O!"B>$N%&%#%s%I%&$r>C$7$F!"%+!<%=%k$N$"$k%&%#%s%I%&$r!"2hLLA4BN\e(B
-\e$B$K9-$2$^$9!#\e(B
+>> \e$B%9%/%m!<%k%P!<$N0lHV>e$+$i#39TL\$[$I$N$H$3$m$K%^%&%9$r0\F0$7$F!":8\e(B
+ \e$B$N%\%?%s$r2?EY$+2!$7$F$_$^$7$g$&!#\e(B
- >> \e$B%+!<%=%k$r$3$N9T$K;}$C$F$-$F!"\e(BC-u 0 C-l \e$B$H%?%$%W$7$^$9!#\e(B
+* X \e$BC<Kv$G$N%+!<%=%k$N%3%s%H%m!<%k\e(B
+----------------------------------
- >> C-h k C-f \e$B$H%?%$%W$7$J$5$$!#?7$7$$%&%#%s%I%&$,\e(B C-f \e$B%3%^%s%I$N%I%-\e(B
- \e$B%e%a%s%H$rI=<($9$k$?$a$K8=$l$k$HF1;~$K!"$3$N%&%#%s%I%&$,$I$N$h$&\e(B
- \e$B$K=L$`$+$r4Q;!$7$J$5$$!#\e(B
+X \e$BC<Kv$,$"$k$H!"$*$=$i$/%-!<%Q%C%I$G%+!<%=%k$rA`:n$9$kJ}$,4JC1$@$H46$8\e(B
+\e$B$k$G$7$g$&!#\e(Bleft, right, up, down \e$B$NLp0u%-!<$OM=A[DL$j$NJ}8~$K0\F0$7$"\e(B
+\e$B$9!#$=$l$i!"\e(BC-b, C-f, C-p, C-n \e$B$HA4$/F1$8$h$&$KF0:n$7$^$9$,!"$h$j%?%$\e(B
+\e$B%W$,4JC1$G!"3P$($k$N$b4JC1$G$9!#C18l$4$H$G$N0\F0$K\e(B C-left \e$B$H\e(B C-right
+\e$B$r;H$&$3$H$b$G$-!"2t\e(B \e$B!JNc$($P!"%F%-%9%HJT=8Cf$K$OCJMn!K\e(B \e$B$G0\F0$9$k$?$a\e(B
+\e$B$K\e(BC-up \e$B$H\e(B C-down \e$B$r;H$&$3$H$b$G$-$^$9!#\e(BHOME \e$B!J$b$7$/$O\e(B BEGIN\e$B!K\e(B \e$B$H\e(B END
+\e$B$H=q$+$l$?%-!<$,$"$l$P!"$=$l$>$l9T$N:G=i$H:G8e$K0\F0$7!"\e(BC_home \e$B$H\e(B
+C-end \e$B$O%U%!%$%k$N:G=i$H:G8e$K0\F0$7$^$9!#%-!<%\!<%I$K\e(B PgUp \e$B$H\e(B PgDn \e$B%-!<\e(B
+\e$B$,$"$l$P!"\e(BM-v \e$B$H\e(B C-v \e$B$N$h$&$K!"0lEY$K0l2hLLKh!">e2<$K0\F0$9$k$?$a$K;H\e(B
+\e$B$&$3$H$,$G$-$^$9!#\e(B
- >> C-x 1\e$B$H%?%$%W$7$F!"%I%-%e%a%s%H$N8=$o$l$F$$$?%&%#%s%I%&$r>C$7$J$5\e(B
- \e$B$$!#\e(B
+\e$B$3$l$iA4$F$N%3%^%s%I$O>e$G@bL@$5$l$F$$$k$h$&$K?tCM0z?t$r<h$k$3$H$,$G$-\e(B
+\e$B$^$9!#$3$l$i$N0z?t$NF~NO$KC;=LO)$r<h$k$3$H$,$G$-$^$9!#\e(BCONTROL \e$B$+\e(B META
+\e$B%-!<$r2!$7$?$^$^?t;z$r%?%$%W$9$k$@$1$G$9!#Nc$($P!"1&$K#1#28l0\F0$9$k$?\e(B
+\e$B$a$K$O!"\e(BC-1 C-2 C-right \e$B$H%?%$%W$7$^$9!#BG80$N4V$K\e(B CONTROL \e$B%-!<$rN%$5\e(B
+\e$B$J$/$F$h$$$N$G!"%?%$%W$OHs>o$K4JC1$G$9!#\e(B
-\e$BA^F~$H:o=|\e(B
-==========
- \e$B%F%-%9%H$r%?%$%W$7$?$1$l$P!"C1$K$=$l$r%?%$%W$9$k$@$1$G9=$$$^$;$s!#L\$K\e(B
-\e$B8+$($kJ8;z!J\e(B'A','7','*','\e$B$"\e(B'\e$B$J$I!K$O\e(BEmacs\e$B$K$h$C$F%F%-%9%H$G$"$k$H$_$J$5$l!"\e(B
-\e$B$=$N$^$^A^F~$5$l$^$9!#9T$N=*$o$j$O2~9TJ8;z$GI=$5$l!"$3$l$rF~NO$9$k$K$O\e(B
-<Return> \e$B$r%?%$%W$7$^$9!#\e(B
+\e$B!v\e(B XEmacs \e$B$,%O%s%0$7$?;~!JF0$+$J$/$J$C$?;~!K\e(B
+==========================================
+
+\e$B$b$7\e(B XEmacs \e$B$,%3%^%s%I$KH?1~$7$J$/$J$C$?$i!"\e(BC-g \e$B$r%?%$%W$9$k$3$H$G\e(B
+XEmacs \e$B$r0BA4$K;_$a$k$3$H$,$G$-$^$9!#\e(BC-g \e$B$G$H$F$b;~4V$N$+$+$k%3%^%s%I\e(B
+\e$B$r;_$a$k$3$H$,$G$-$^$9!#\e(B
- \e$BD>A0$KF~NO$7$?J8;z$r:o=|$9$k$K$O!"\e(B<Delete> \e$B$rF~NO$7$^$9!#\e(B<Delete> \e$B$O!"\e(B
-\e$B%-!<%\!<%I$G!V\e(BDelete\e$B!W$H=q$$$F$"$k%-!<$r2!$7$FF~NO$7$^$9!#!V\e(BDelete\e$B!W$N$+$o\e(B
-\e$B$j$K!V\e(BRubout\e$B!W$H=q$$$F$"$k$+$bCN$l$^$;$s!#$h$j0lHLE*$K$O!"\e(B<Delete> \e$B$O!"8=:_\e(B
-\e$B%+!<%=%k$N$"$k0LCV$ND>A0$NJ8;z$r:o=|$7$^$9!#\e(B
+C-g \e$B$O$^$?!"?tCM0z?t$r<h$j;_$a$?$j!"#2$D0J>e$N%-!<F~NO$rI,MW$H$9$k\e(B
+\e$B%3%^%s%I$rF~NO$7$F$$$k:GCf$K$=$l$r<h$j;_$a$?$j$9$k$N$K$b;H$($^$9!#\e(B
- >> \e$BJ8;z$r$$$/$D$+%?%$%W$7!"$=$l$+$i$=$l$i$r\e(B <Delete> \e$B$r;H$C$F:o=|$7\e(B
- \e$B$J$5$$!#\e(B
+>> C-u 100 \e$B$H%?%$%W$7$F0z?t#1#0#0$r@_Dj$7$F$+$i\e(B C-g \e$B$rBG$C$F$_$^$7$g$&!#\e(B
+ \e$B$=$l$+$i\e(B C-f \e$B$rBG$C$F2<$5$$!#0lJ8;z$7$+?J$^$J$$$O$:$G$9!#$J$<$J$i!"\e(B
+ C-g \e$B$G?tCM0z?t$,%-%c%s%;%k$5$l$?$+$i$G$9!#\e(B
- >> \e$B1&%^!<%8%s$r1[$($k$^$G%F%-%9%H$r%?%$%W$7$J$5$$!#%F%-%9%H$,0l9T$N\e(B
- \e$BI}0J>e$KD9$/$J$k$H!"$=$N9T$O2hLL$+$i$O$_=P$7$F!V7QB3!W$5$l$^$9!#\e(B
- \e$B1&C<$K$"$k\e(B'\'\e$B5-9f$O!"$=$N9T$,7QB3$5$l$F$$$k$3$H$rI=$7$F$$$^$9!#\e(B
- Emacs\e$B$O!"8=:_JT=8Cf$N0LCV$,8+$($k$h$&$K9T$r%9%/%m!<%k$7$^$9!#2hLL\e(B
- \e$B$N1&$"$k$$$O:8$NC<$K$"$k\e(B'\'\e$B5-9f$O!"$=$NJ}8~$K9T$,$^$@B3$$$F$$$k$3\e(B
- \e$B$H$rI=$7$F$$$^$9!#\e(B
+\e$B4V0c$C$F\e(B <ESC> \e$B$r%?%$%W$7$F$7$^$C$?;~$b!"\e(BC-g \e$B$G$=$l$r<h$j>C$;$^$9!#\e(B
- \e$B$3$l$O!"J8>O$G@bL@$9$k$h$j<B:]$K$d$C$?J}$,$h$/H=$k$G$7$g$&!#\e(B
- >> \e$B@h$[$IF~NO$7$?!"7QB3$5$l$?9T$N>e$K%+!<%=%k$r$b$C$F$$$-!"\e(BC-d \e$B$G%F\e(B
- \e$B%-%9%H$r:o=|$7$F!"%F%-%9%H$,0l9T$K<}$^$k$h$&$K$7$F$_$J$5$$!#7QB3\e(B
- \e$B$rI=$9\e(B'\'\e$B5-9f$O>C$($^$7$?$M!#\e(B
+\e$B!v;HMQIT2D\e(B (disabled) \e$B%3%^%s%I\e(B
+==================================
- >> \e$B%+!<%=%k$r9T$N@hF,$K0\F0$7!"\e(B<Delete> \e$B$rF~NO$7$J$5$$!#$3$l$O$=$N9T\e(B
- \e$B$ND>A0$N9T6g@Z$j$r:o=|$9$k$N$G!"$=$N9T$,A0$N9T$H$D$J$,$C$F$7$^$$\e(B
- \e$B$^$9!#$D$J$,$C$?9T$,2hLL$NI}$h$jD9$/$J$k$H!"7QB3$NI=<($,$5$l$k$G\e(B
- \e$B$7$g$&!#\e(B
+\e$B$$$/$D$+$N%3%^%s%I$O=i?4<T$,4V0c$C$F;H$o$J$$$h$&;HMQIT2D$K$J$C$F$$$^$9!#\e(B
- >> <Return> \e$B$r2!$7$F!"$b$&0lEY9T6g@Z$j$rA^F~$7$J$5$$!#\e(B
+\e$B$b$72?$l$+$N;HMQIT2D%3%^%s%I$r%?%$%W$7$?$i!"$=$l$O$I$&$$$&%3%^%s%I$+$,\e(B
+\e$BI=<($5$l!"K\Ev$K$=$l$r<B9T$7$?$$$N$+$I$&$+?V$M$i$l$^$9!#\e(B
- Emacs\e$B$N$[$H$s$I$N%3%^%s%I$O!"7+$jJV$7$N2s?t$rM?$($k$3$H$,$G$-$^$9!#$3\e(B
-\e$B$N$3$H$O!"J8;z$NA^F~$K$D$$$F$bEv$F$O$^$j$^$9!#\e(B
+\e$B$b$7K\Ev$K<B9T$7$?$$$N$J$i%9%Z!<%9%-!<$r%?%$%W$7$F2<$5$$!#$b$7<B9T$7$?\e(B
+\e$B$/$J$1$l$P\e(B "n" \e$B$H%?%$%W$7$F2<$5$$!#\e(B
- >> C-u 8 * \e$B$HF~NO$7$F$_$J$5$$!#$I$&$J$j$^$7$?$+!#\e(B
+>> `C-x n p' : \e$B$H%?%$%W$7$F$_$^$7$g$&!J$3$l$O;HMQIT2D%3%^%s%I$G$9!K!#\e(B
+ \e$B$=$l$+$i\e(B n \e$B$H%?%$%W$7$^$7$g$&!#\e(B
- \e$BFs$D$N9T$N4V$K6uGr9T$r:n$j$?$$>l9g$K$O!"FsHVL\$N9T$N@hF,$K9T$-!"\e(BC-o \e$B$r\e(B
-\e$BF~NO$7$^$9!#\e(B
- >> \e$BE,Ev$J9T$N@hF,$K9T$-!"$=$3$G\e(B C-o \e$B$rF~NO$7$F$_$J$5$$!#\e(B
+\e$B!v%&%#%s%I%&\e(B
+============
- \e$B$3$l$G!"\e(BEmacs\e$B$G!"%F%-%9%H$rF~NO$7!"$^$?4V0c$$$r=$@5$9$k$b$C$H$b4pK\E*\e(B
-\e$B$JJ}K!$r3X$s$@$3$H$K$J$j$^$9!#J8;z$HF1$8MM$K!"C18l$d9T$b:o=|$9$k$3$H$,$G$-\e(B
-\e$B$^$9!#:o=|A`:n$K$D$$$FMWLs$9$k$H<!$N$h$&$K$J$j$^$9!#\e(B
+XEmacs \e$B$O4v$D$b$N%&%#%s%I%&$K!"$=$l$>$l8DJL$NJ8>O$rI=<($9$k$3$H$,$G$-\e(B
+\e$B$^$9!#\e(BXEmacs \e$B$G;H$o$l$F$$$k!V%&%#%s%I%&!W$O%&%#%s%I%&%7%9%F%`$G$N=E$J$C\e(B
+\e$B$F$$$kJL$N%&%#%s%I%&$K8@5Z$7$F$$$k$N$G$O$J$/!"C10l$N\e(B X \e$B%&%#%s%I%&2<$G\e(B
+\e$B$NJL$NAk$N$3$H$r8@$C$F$$$k$3$H$KCm0U$7$F$/$@$5$$!#!J\e(BXEmacs \e$B$OJ#?t$N\e(B X
+\e$B$N%&%#%s%I%&!"\e(BXEmacs \e$B$NMQ8l$G$O!V%U%l!<%`!W$r;}$D$3$H$b$G$-$^$9!#$3$l\e(B
+\e$B$O8e$[$I@bL@$7$^$9!#!K\e(B
- <Delete> \e$B%+!<%=%k$ND>A0$NJ8;z$r:o=|\e(B
- C-d \e$B%+!<%=%k$N$"$kJ8;z$r:o=|\e(B
+\e$B$3$3$G$O!"J#?t$N%&%#%s%I%&$r;H$&5;=Q$K$O?($i$J$$$[$&$,8-L@$G$7$g$&!#$G\e(B
+\e$B$b!"%X%k%W$dFCDj$N%3%^%s%I$N=PNO$G8=$l$k$+$b$7$l$J$$M>J,$J%&%#%s%I%&$r\e(B
+\e$B>C$7$F!"$I$&$d$C$F85$N0l$D$N%&%#%s%I%&$N>uBV$KLa$k$+$r@bL@$9$k$3$H$OI,\e(B
+\e$BMW$G$7$g$&!#$=$l$O4JC1$G$9!#\e(B
- ESC <Delete> \e$B%+!<%=%k$ND>A0$NC18l$r:o=|\e(B
- ESC d \e$B%+!<%=%k0LCV0J9_$K$"$kC18l$r:o=|\e(B
+ C-x 1 \e$B%&%#%s%I%&$r#1$D$K$9$k!J$D$^$jB>$N%&%#%s%I%&$rA4It>C$9!K\e(B
- C-k \e$B%+!<%=%k0LCV$+$i9TKv$^$G$r:o=|\e(B
+\e$B$D$^$j\e(B C-x \e$B$rBG$C$F$+$i$5$i$K\e(B 1 \e$B$rBG$D$N$G$9!#$3$N%3%^%s%I$O%+!<%=%k$N\e(B
+\e$B$"$k%&%#%s%I%&$r2hLLA4BN$K9-$2$^$9!#B>$N%&%#%s%I%&$OA4It>C$($^$9!#\e(B
- \e$B2?$+$r:o=|$7$?8e$G!"$=$l$r85$KLa$7$?$/$J$k$3$H$,$"$j$^$9!#\e(BEmacs\e$B$O!"0l\e(B
-\e$BJ8;z$h$j$bBg$-$$C10L$G:o=|$r9T$C$?;~$K$O!":o=|$7$?FbMF$rJ]B8$7$F$*$-$^$9!#\e(B
-\e$B85$KLa$9$K$O!"\e(BC-y \e$B$r;H$$$^$9!#Cm0U$7$?$$$N$O!"\e(BC-y \e$B$r:o=|$r9T$C$?>l=j$@$1$G\e(B
-\e$B$O$J$/!"$I$3$K$G$b=PMh$k$3$H$G$9!#\e(BC-y \e$B$O!"J]B8$5$l$?%F%-%9%H$r8=:_%+!<%=%k\e(B
-\e$B$N$"$k>l=j$KA^F~$9$k$?$a$N%3%^%s%I$G$9$+$i!"$3$l$r;H$C$F%F%-%9%H$N0\F0$r9T\e(B
-\e$B$&$3$H$,$G$-$^$9!#\e(B
+>> \e$B%+!<%=%k$r$3$N9T$K;}$C$F$-$F!"\e(BC-u 0 C-l \e$B$H%?%$%W$7$F$_$F2<$5$$!#\e(B
- \e$B:o=|$r9T$&%3%^%s%I$K$O!"\e(B"Delete" \e$B%3%^%s%I$H!"\e(B"Kill" \e$B%3%^%s%I$H$,$"$j$^\e(B
-\e$B$9!#\e(B"Kill" \e$B%3%^%s%I$G$O:o=|$5$l$?$b$N$OJ]B8$5$l$^$9$,!"\e(B"Delete" \e$B%3%^%s%I$G\e(B
-\e$B$OJ]B8$5$l$^$;$s!#$?$@$7!"7+$jJV$72s?t$,M?$($i$l$k$H!"J]B8$5$l$^$9!#\e(B
+\e$B!J\e(BC-l \e$B$,2hLL$r:FIA2h$9$k$3$H$r;W$$=P$7$F$/$@$5$$!#$=$l$K?tCM0z?t$rM?$(\e(B
+\e$B$k$H!"!V2hLL$r:FIA2h$7$F8=:_$N9T$r2hLL$N:G>eIt$+$i$=$N?t$@$1N%$l$?$H$3\e(B
+\e$B$m$K0\F0$7$J$5$$!W$H$$$&0UL#$K$J$j$^$9!#$G$9$+$i!"\e(BC-u 0 C-l \e$B$O!V2hLL$r\e(B
+\e$B:FIA2h$7$F!"8=:_$N9T$r:G>eIt$K$9$k!W$H$$$&0UL#$K$J$j$^$9!#!K\e(B
- >> C-n \e$B$r#22s$[$I%?%$%W$7$F!"2hLL$NE,Ev$J>l=j$K0\F0$7$J$5$$!#$=$7$F!"\e(B
- C-k \e$B$G!"$=$N9T$r:o=|$7$J$5$$!#\e(B
+>> \e$BB3$$$F\e(B Control-x 2 \e$B$H%?%$%W$7$F2<$5$$!#\e(B
+ \e$B?7$7$$%&%#%s%I%&$,$3$N%P%C%U%!$NFbMF$rI=<($9$k$?$a$K8=$l$k$H$H$b$K!"\e(B
+ \e$B$3$N%&%#%s%I%&$,$I$N$h$&$K=L$`$+$r8+$F2<$5$$!#\e(B
- \e$B0l2sL\$N\e(B C-k \e$B$G$=$N9T$NFbMF$,:o=|$5$l!"$b$&0lEY\e(B C-k \e$B$rF~NO$9$k$H!"$=$N\e(B
-\e$B9T<+?H$,:o=|$5$l$^$9!#$b$7!"\e(BC-k \e$B$K7+$jJV$72s?t$r;XDj$7$?>l9g$K$O!"$=$N2s?t\e(B
-\e$B$@$1$N9T$,!JFbMF$H9T<+?H$H$,F1;~$K!K:o=|$5$l$^$9!#\e(B
+>> C-x 1 \e$B$H%?%$%W$7$F!"?7$7$$%&%#%s%I%&$,>C$($k$N$r8+$F2<$5$$!#\e(B
- \e$B:#:o=|$5$l$?%F%-%9%H$O!"J]B8$5$l$F$$$k$N$G!"$=$l$r<h$j=P$9$3$H$,$G$-$^\e(B
-\e$B$9!#$=$N$?$a$K$O!"\e(BC-y \e$B$r%?%$%W$7$^$9!#\e(B
- >> C-y \e$B$r;n$7$F$_$J$5$$!#\e(B
+\e$B!vA^F~$H:o=|\e(B
+============
+
+\e$B%F%-%9%H$rF~NO$7$?$1$l$P!"C1$K$=$l$r%?%$%W$7$F2<$5$$!#\e(BXEmacs \e$B$O!"L\$K\e(B
+\e$B8+$($kJ8;z!J\e(BA, 7, * \e$BEy!K$r%F%-%9%H$G$"$k$H$_$J$9$N$G!"$=$l$i$O$=$N$^$^\e(B
+\e$BA^F~$5$l$^$9!#\e(B<Return>\e$B!J2~9T%-!<!K$r%?%$%W$9$l$P2~9TJ8;z$,A^F~$5$l$^$9!#\e(B
- C-k \e$B$r2?EY$bB3$1$F9T$&$H!":o=|$5$l$k%F%-%9%H$O!"$^$H$a$FJ]B8$5$l!"\e(BC-y
-\e$B$G!"$=$NA4$F$,<h$j=P$5$l$^$9!#\e(B
+\e$BD>A0$KF~NO$7$?J8;z$r:o=|$9$k$K$O!"\e(B<Delete> \e$B$r%?%$%W$7$^$9!#\e(B<Delete> \e$B$O!"\e(B
+\e$B%-!<%\!<%I>e$K!V\e(BDel\e$B!W$H=q$$$F$"$k%-!<$G$9!#;~$K$O\e(B <Backspace> \e$B%-!<$b\e(B
+<Delete> \e$B$H$7$FF0:n$7$^$9$,!"$$$D$b$G$O$"$j$^$;$s!#\e(B
- >> C-k \e$B$r2?EY$b%?%$%W$7$F$_$J$5$$!#\e(B
+\e$B$h$j0lHLE*$K$O!"\e(B<Delete> \e$B$O8=:_%+!<%=%k$N$"$k0LCV$ND>A0$NJ8;z$r:o=|$7\e(B
+\e$B$^$9!#\e(B
- >> \e$B%F%-%9%H$r<h$j=P$9$K$O!"\e(BC-y \e$B$G$9!#%+!<%=%k$r?t9T2<$K0\F0$5$;!"$b\e(B
- \e$B$&0lEY\e(B C-y \e$B$r%?%$%W$7$F$_$J$5$$!#$3$l$G%F%-%9%H$N%3%T!<$,$G$-$k$o\e(B
- \e$B$1$G$9!#\e(B
+>> \e$BJ8;z$r$$$/$D$+%?%$%W$7!"$=$l$+$i$=$l$i$r\e(B <Delete> \e$B$r;H$C$F:o=|$7\e(B
+ \e$B$F2<$5$$!#$3$N%U%!%$%k$rJQ99$9$k$3$H$r5$$K$9$kI,MW$O$"$j$^$;$s!#%*\e(B
+ \e$B%j%8%J%k$NF~Lg%,%$%I%U%!%$%k$OJQ99$5$l$^$;$s$+$i!#:#8+$F$$$k%U%!%$\e(B
+ \e$B%k$O$"$J$?$N$?$a$N%3%T!<$G$9!#\e(B
- \e$B8=:_2?$+$N%F%-%9%H$,J]B8$5$l$F$$$F!"$5$i$KB>$N%F%-%9%H$r:o=|$9$k$H$I$&\e(B
-\e$B$J$k$G$7$g$&$+!#\e(BC-y \e$B$O!"$b$C$H$b:G6a:o=|$5$l$?$b$N$r<h$j=P$7$^$9!#\e(B
+\e$BJ8>O$N0l9T$,2hLL$K<}$^$i$J$$DxD9$/$J$C$?>l9g!"$=$N9T$O2hLL>e$N<!$N9T$X\e(B
+\e$B$H7QB3!J\e(Bcontinued\e$B!K$5$l$^$9!#2hLL$N1&C<$N\e(B backslash \e$BJ8;z\e(B ("\") \e$B$O!"$=\e(B
+\e$B$N9T$,7QB3$5$l$F$$$k$3$H$rI=$7$F$$$^$9!#\e(B
+>> \e$B2hLL$N1&C<$^$GJ8>O$rF~NO$7!"$5$i$KF~NO$rB3$1$F2<$5$$!#\e(B
+ \e$B7QB39T$,$G$-$k$N$,J,$k$G$7$g$&!#\e(B
- >> \e$B9T$r:o=|$7!"%+!<%=%k$r0\F0$5$;!"JL$N9T$r:o=|$7$J$5$$!#\e(BC-y \e$B$r9T$&\e(B
- \e$B$H!"#2HVL\$N9T$,F@$i$l$^$9!#\e(B
+>> <Delete> \e$B$r;H$C$F2hLL$K<}$^$k$H$3$m$^$G8=:_$N9T$rC;$/$7$F$_$F$/$@$5\e(B
+ \e$B$$!#7QB39T$O>C$($^$9!#\e(B
-\e$B<h$j>C$7\e(B(UNDO)
-==============
+\e$B2~9TJ8;z$bB>$NJ8;z$HF1$8$h$&$K:o=|$G$-$^$9!##2$D$N9T$N4V$N2~9TJ8;z$r>C\e(B
+\e$B$9$H$=$l$i$N9T$,9g$o$5$j#1$D$N9T$K$J$j$^$9!#$b$7$=$N9g$o$5$C$?9T$,2hLL\e(B
+\e$B$NI}$h$j$bD9$$>l9g$O!"7QB39T$H$J$C$FI=<($5$l$^$9!#\e(B
+
+>> \e$B%+!<%=%k$r9T$N@hF,$K0\F0$7!"\e(B<Delete> \e$B$r%?%$%W$7$F2<$5$$!#8=:_$N9T$,\e(B
+ \e$B$=$NA0$N9T$H$D$J$,$j$^$9!#\e(B
+
+>> <Return> \e$B$r%?%$%W$7$F!":#:o=|$7$?2~9TJ8;z$r$^$?A^F~$7$F2<$5$$!#\e(B
+
+XEmacs \e$B$N$[$H$s$I$N%3%^%s%I$O!"7+$jJV$7$N2s?t;XDj$G$-$k$3$H$r;W$$=P$7\e(B
+\e$B$F2<$5$$!#$3$l$O!"J8;z$NA^F~$K$D$$$F$bEv$F$O$^$j$^$9!#\e(B
+
+>> C-u 8 * \e$B$H%?%$%W$9$k$H\e(B ******** \e$B$,A^F~$5$l$^$9!#;n$7$F$_$^$7$g$&!#\e(B
+
+\e$B$3$l$G!"\e(BXEmacs \e$B$G%F%-%9%H$rF~NO$7!"$^$?4V0c$$$r=$@5$9$k$b$C$H$b4pK\E*\e(B
+\e$B$JJ}K!$r3X$s$@$3$H$K$J$j$^$9!#J8;z$HF1$8MM$K!"C18l$d9T$b:o=|$9$k$3$H$,\e(B
+\e$B$G$-$^$9!#:o=|A`:n$K$D$$$FMWLs$9$k$H<!$N$h$&$K$J$j$^$9!#\e(B
+
+ <Delete> \e$B%+!<%=%k$ND>A0$NJ8;z$r:o=|!J\e(Bdelete\e$B!K\e(B
+ C-d \e$B%+!<%=%k$N$"$kJ8;z$r:o=|!J\e(Bdelete\e$B!K\e(B
+
+ M-<Delete> \e$B%+!<%=%k$ND>A0$NC18l$r>C5n!J\e(Bkill\e$B!K\e(B
+ M-d \e$B%+!<%=%k0LCV0J9_$K$"$kC18l$r>C5n!J\e(Bkill\e$B!K\e(B
+
+ C-k \e$B%+!<%=%k0LCV$+$i9TKv$^$G$r>C5n!J\e(Bkill\e$B!K\e(B
+ M-k \e$B%+!<%=%k0LCV$+$iJ8Kv$^$G$r>C5n!J\e(Bkill\e$B!K\e(B
+
+<Delete> \e$B$H\e(B C-d \e$B$KBP$9$k\e(B M-<Delete> \e$B$H\e(B M-d \e$B$O!"\e(BC-f \e$B$H\e(B M-f \e$B$G;O$^$C$?N`\e(B
+\e$B;w@-$r$^$?3HD%$7$^$9!#$3$3$G\e(B <Delete> \e$B$O%3%s%H%m!<%kJ8;z$G$O$"$j$^$;$s\e(B
+\e$B$,!"$^$"!"$=$l$O5$$K$7$J$$$G2<$5$$!#\e(BC-k \e$B$H\e(B M-k \e$B$N4X78$O\e(B C-e \e$B$H\e(B M-e \e$B$N\e(B
+\e$B4X78!J9T$HJ8$NBPHf!K$HF1$8$G$9!#\e(B
+
+\e$B0lEY$K#2J8;z0J>e>C$7$?>l9g!"\e(BXEmacs \e$B$O$=$N>C$7$?%F%-%9%H$rJ]B8$7$F$*$$\e(B
+\e$B$F!"$^$?85$KLa$9$3$H$,$G$-$k$h$&$K$7$F$$$^$9!#$3$N!V85$KLa$9!W$H$$$&F0\e(B
+\e$B:n$r:FF~!J\e(Byanking\e$B!K$H8F$S$^$9!#>C$7$?%F%-%9%H$O!"85$HF1$8>l=j$K$G$b85\e(B
+\e$B$H$O0c$&>l=j$K$G$b:FF~$G$-$^$9!#$^$?!"2?EY$b:FF~$7$F%F%-%9%H$N%3%T!<$r\e(B
+\e$BJ#?t:n$k$3$H$b$G$-$^$9!#:FF~$N$?$a$N%3%^%s%I$O\e(B C-y \e$B$G$9!#\e(B
+
+\e$B!V>C5n!J\e(Bkill\e$B!K!W$H!V:o=|!J\e(Bdelete\e$B!K!W$N0c$$$K5$$r$D$1$F2<$5$$!#>C5n$7$?\e(B
+\e$B%F%-%9%H$O:FF~$G$-$^$9$,!":o=|$7$?$b$N$O:FF~$G$-$^$;$s!#0lHL$K!"BgNL$N\e(B
+\e$B%F%-%9%H$r>C$9%3%^%s%I$O$=$N%F%-%9%H$rJ]B8$7$F$*$-$^$9$,!"0lJ8;z$H$+6u\e(B
+\e$BGr9T$d6uGrJ8;z$r:o=|$9$k%3%^%s%I$O:o=|$7$?$b$N$rJ]B8$7$-$^$;$s!#\e(B
+
+>> \e$B6u9T$G$J$$9T$N@hF,$K%+!<%=%k$r0\F0$5$;$F2<$5$$!#\e(B
+ \e$B$=$l$+$i\e(B C-k \e$B$G$=$N9T$N%F%-%9%H$r>C5n$7$F2<$5$$!#\e(B
+>> \e$B$b$&0lEY\e(B C-k \e$B$r%?%$%W$7$F$/$@$5$$!#$=$N9T$KB3$/2~9TJ8;z$,>C$5$l$k$N\e(B
+ \e$B$,J,$j$^$7$?$+!#\e(B
+
+\e$B0l2sL\$N\e(B C-k \e$B$O$=$N9T$N%F%-%9%H$r>C$7!"#22sL\$N\e(B C-k \e$B$O$=$N9T<+?H$r>C$7\e(B
+\e$B$F$=$N@h$N9T$r>e$2$F$-$^$9!#\e(BC-k \e$B$N?tCM0z?t$N07$$$OFC<l$G$9!#0z?tJ,$N9T\e(B
+\e$B!J9T$NFbMF$H9T<+?H!K$r>C$7$^$9!#$3$l$OC1$J$k7+$jJV$7$G$O$"$j$^$;$s!#\e(B
+C-u 2 C-k \e$B$O#2$D$N9T$H$=$l$>$l$KB3$/2~9TJ8;z$r>C$7$^$9$,!"\e(BC-k \e$B$r#2EY%?\e(B
+\e$B%$%W$7$F$b$=$&$O$J$j$^$;$s!#\e(B
+
+\e$B:G8e$K>C5n$7$?%F%-%9%H$r8=:_%+!<%=%k$,$"$k0LCV$K:FF~$9$k$K$O\e(B C-y \e$B$r%?\e(B
+\e$B%$%W$7$^$9!#\e(B
+
+>> \e$B;n$7$F2<$5$$!#\e(BC-y \e$B$r%?%$%W$7$F:G8e$K>C5n$7$?%F%-%9%H$r:FF~$7$^$7$g$&!#\e(B
+
+C-y \e$B$O!"$"$J$?$,L5$/$7$?$b$N$r<h$jLa$9$b$N$@$H9M$($^$7$g$&!#\e(BC-k \e$B$rB3$1\e(B
+\e$B$F<B9T$9$k$H!">C5n$7$?3F9T$OA4It$^$H$a$FJ]B8$5$l$k$N$G!"0l2s$N\e(B C-y \e$B$G\e(B
+\e$B$=$l$i$N9T$,A4It:FF~$5$l$^$9!#\e(B
+
+>> C-k \e$B$r2?EY$+B3$1$F%?%$%W$7$F$_$F2<$5$$!#\e(B
- \e$B$$$D$G$b!"%F%-%9%H$rJQ99$7$?$1$l$I$b!"$=$l$r$b$H$KLa$7$?$$$H$-$O\e(BC-x u
-\e$B$GD>$j$^$9!#IaDL$O4V0c$($?%3%^%s%I$rL58z$K$9$kF/$-$r$7$^$9!#7+$jJV$7$F\e(BUNDO
-\e$B$r9T$J$*$&$H$9$k;~$O!"2?EY$b$=$N%3%^%s%I$r9T$J$($P=PMh$k$h$&$K$J$C$F$$$^$9!#\e(B
+\e$B$5$"!">C5n$7$?%F%-%9%H$r:FF~$7$^$7$g$&!#\e(B
- >> \e$B$3$N9T$r\e(BC-k\e$B$G>C$7$F2<$5$$!#$=$7$F!"\e(BC-x u\e$B$GLa$7$F2<$5$$!#\e(B
+>> C-y \e$B$r%?%$%W$7$F2<$5$$!#<!$K%+!<%=%k$r?t9T2<$K0\F0$5$;!"$^$?\e(B C-y \e$B$r\e(B
+ \e$B%?%$%W$7$F2<$5$$!#$I$&$d$C$F%F%-%9%H$r%3%T!<$9$k$+J,$j$^$7$?$M!#\e(B
- C-_\e$B$O!"\e(BUNDO\e$B$r9T$J$&!"$b$&0l$D$N%3%^%s%I$G$9!#5!G=$O!"\e(BC-x u\e$B$HF1$8$G$9!#\e(B
+\e$B2a5n$K>C5n$7$?%F%-%9%H$r:FF~$7$?$$$N$K!"JL$N%F%-%9%H$r$=$N8e>C5n$7$?;~\e(B
+\e$B$O$I$&$9$l$P$h$$$G$7$g$&!)\e(B C-y \e$B$O:G8e$K>C5n$7$?$b$N$r:FF~$7$^$9!#$G$b\e(B
+\e$B$=$l$G$h$j0JA0$K>C5n$7$?%F%-%9%H$,$J$/$J$k$o$1$G$O$"$j$^$;$s!#$=$&$$$&\e(B
+\e$B%F%-%9%H$O\e(B M-y \e$B$G:FF~$G$-$^$9!#\e(BC-y \e$B$G:G8e$K>C5n$7$?%F%-%9%H$r:FF~$7$?\e(B
+\e$BD>8e$K\e(BM-y \e$B$r%?%$%W$9$k$H!"$=$N:FF~$5$l$?%F%-%9%H$O$=$l0JA0$K>C5n$7$?$b\e(B
+\e$B$N$KJQ99$5$l$^$9!#2?EY$bB3$1$F\e(B M-y \e$B$r%?%$%W$9$k$H!"$5$i$KA0$K>C5n$7$?\e(B
+\e$B%F%-%9%H$r8F$SLa$;$^$9!#K>$_$N%F%-%9%H$K9T$-Ev$C$?$i!"$=$l$O$=$N$^$^$K\e(B
+\e$B$7$FJT=8:n6H$rB3$1$l$P$h$$$N$G$9!#\e(B
- C-_\e$B$d\e(BC-x u\e$B$K\e(BUNDO\e$B$N2s?t$r!"M?$($k$3$H$,=PMh$^$9!#\e(B
+\e$B$"$k2s?t$@$1\e(B M-y \e$B$r7+$jJV$7$?$i!"$^$?:G=i!J$D$^$j:G8e$K>C5n$7$?%F%-%9\e(B
+\e$B%H!K$KLa$j$^$9!#\e(B
+>> \e$B0l9T>C5n$7!"JL$N9T$K9T$C$F$=$N9T$r>C5n$7$F2<$5$$!#\e(B
+ \e$B$=$l$+$i\e(B C-y \e$B$G#2HVL\!J:G8e!K$K>C5n$7$?9T$r:FF~$7$F2<$5$$!#\e(B
+ \e$BB3$$$F\e(B M-y \e$B$G$=$N9T$r:G=i$K>C5n$7$?9T$KJQ$($F2<$5$$!#\e(B
+ M-y \e$B$rB3$1$I$&$J$k$+8+$F$_$^$7$g$&!##2HVL\$K>C5n$7$?9T$,La$C$FMh$k\e(B
+ \e$B$^$G\e(B M-y \e$B$r7+$jJV$7!"$5$i$K$b$&2?EY$+\e(B M-y \e$B$r$7$^$7$g$&!#\e(B
+ \e$B$b$7K>$_$J$i\e(B M-y \e$B$K@5$b$7$/$OIi$N?tCM0z?t$rM?$($F$bNI$$$G$7$g$&!#\e(B
-\e$B%U%!%$%k\e(B
-========
- \e$B%F%-%9%H$X$NJQ99$r1J5WE*$K$9$k$?$a$K$O!"$=$l$r%U%!%$%k$KJ]B8$7$J$1$l$P\e(B
-\e$B$J$j$^$;$s!#J]B8$5$l$J$$$H!"$[$I$3$7$?JQ99$O!"\e(BEmacs\e$B$r=*N;$9$k$HF1;~$K<:$o$l\e(B
-\e$B$F$7$^$$$^$9!#\e(B
+\e$B!v<h$j>C$7\e(B(UNDO)
+================
- \e$B$$$^8+$F$$$k%U%!%$%k$KBP$7$F!"$"$J$?$NJT=8$r9T$C$?$b$N$r=q$-9~$_$^$9!#\e(B
-\e$B$$$^8+$F$$$k%U%!%$%k$H$O!"4JC1$K$$$($PJT=8$7$F$$$k%U%!%$%k<+BN$N$3$H$G$9!#\e(B
+\e$B$b$7!"J8>O$rJQ99$7$?8e$G$=$NJQ99$O4V0c$$$@$C$?$H;W$C$?$i!"<h$j>C$7\e(B
+\e$B!J\e(Bundo\e$B!K%3%^%s%I\e(B C-x u \e$B$G$=$NJQ99$r<h$j>C$9$3$H$,$G$-$^$9!#\e(B
- \e$B$"$J$?$,%U%!%$%k$r%;!<%V!JJ]B8$9$k!K$9$k$^$G!":#$^$G$NJQ99$OJT=8$7$F$$\e(B
-\e$B$k%U%!%$%k$K=q$-9~$^$l$k;v$O$"$j$^$;$s!#$=$l$O!"$"$J$?$,$=$N$h$&$K9T$$$?$/\e(B
-\e$B$J$$$N$K!"ESCf$^$GJQ99$r2C$($?$b$N$,>!<j$K=q$-9~$^$l$k$h$&$J;v$,$J$$$h$&$K\e(B
+\e$BDL>o!"\e(BC-x u \e$B$O0l$D$N%3%^%s%I$K$h$kJQ99$r<h$j>C$7$^$9!#B3$1$F2?EY$b\e(B C-x
+u \e$B$r9T$($P$=$N$?$S$K0l$DA0$N%3%^%s%I$,<h$j>C$7$K$J$j$^$9!#\e(B
+
+\e$B$?$@$7$3$l$K$ONc30$,Fs$D$"$j$^$9!#$^$:!"J8>O$rJQ99$7$J$$%3%^%s%I$O<h$j\e(B
+\e$B>C$7$K$J$j$^$;$s!#%+!<%=%k0\F0$d%9%/%m!<%k$N%3%^%s%I$,$=$l$KEv$?$j$^$9!#\e(B
+\e$B$=$l$+$i!"%F%-%9%HJ8;z$NA^F~!J<+8JA^F~%3%^%s%I!K$O\e(B 20 \e$B8D0l$^$H$a$G07$o\e(B
+\e$B$l$^$9!#$3$l$O%F%-%9%H$NA^F~$r<h$j>C$9$?$a$N\e(B C-x u \e$B$N2s?t$r8:$i$9$?$a\e(B
\e$B$G$9!#\e(B
- \e$B%;!<%V$r9T$C$?8e$G$5$(JQ99$7$?$b$N$,4V0c$C$F$$$?;~$N$?$a$K\e(BEmacs\e$B$OL>A0\e(B
-\e$B$rJQ$($F%*%j%8%J%k$N%U%!%$%k$r;D$7$^$9!#\e(B
+>> \e$B$3$N9T$r\e(BC-k\e$B$G>C$7$F2<$5$$!#$=$7$F!"\e(BC-x u \e$B$GLa$7$F2<$5$$!#\e(B
-\e$BHw9M\e(B: \e$B$^$?!"\e(BEmacs\e$B$OITB,$N;vBV$KBP$7!"0lDj$N%?%$%_%s%0$4$H$K<+F0E*\e(B
- \e$B$KJT=8$7$F$$$k%U%!%$%k$NFbMF$rL>A0$rJQ$($?%U%!%$%k$K%;!<%V$7\e(B
- \e$B$^$9!#$3$l$K$h$C$F!"K|0l$N>l9g$O9T$C$?$NJQ99$KBP$7:G>.8B$NHo\e(B
- \e$B32$G:Q$`$h$&$K$J$C$F$$$^$9!#\e(B
+C-_ \e$B$b<h$j>C$7!J\e(Bundo\e$B!K$r9T$J$&%3%^%s%I$G$9!#5!G=$O!"\e(BC-x u \e$B$HF1$8$G$9$,!"\e(B
+\e$BB3$1$F2?EY$b%?%$%W$9$k>l9g$O$h$jJXMx$G$9!#\e(BC-_ \e$B$NLdBj$O!"%-!<%\!<%I$K$h$C\e(B
+\e$B$F$O$I$&$d$C$F%?%$%W$9$k$N$+J,$j$E$i$$;v$G$9!#$@$+$i\e(B C-x u \e$B$,$"$k$N$G\e(B
+\e$B$9!#C<Kv$K$h$C$F$O!"%3%s%H%m!<%k%-!<$r2!$7$?$^$^\e(B / \e$B$r%?%$%W$9$k$H\e(B C-_
+\e$B$r%?%$%W$7$?$3$H$K$J$j$^$9!#\e(B
- \e$B2hLL$N2<$NJ}$r8+$k$H!"$3$N$h$&$J46$8$G%b!<%I%i%$%s$,I=<($5$l$F$$$k$H;W\e(B
-\e$B$$$^$9!#\e(B
+C-_ \e$B$d\e(B C-x u \e$B$O?tCM0z?t$r7+$jJV$72s?t$H2r<a$7$^$9!#\e(B
-(\e$BNc\e(B) [--]J:--**-Mule: MULE.tut (Fundamental) ---55%--------------
+\e$B!v%U%!%$%k\e(B
+==========
+\e$BJT=8$7$F$$$kJ8>O$r915WE*$JJ*$K$9$k$K$O!"$=$l$r%U%!%$%k$KJ]B8$7$J$1$l$P\e(B
+\e$B$J$j$^$;$s!#$5$b$J$$$H!"\e(BXEmacs \e$B$N=*N;$HF1;~$K$=$l$O$J$/$J$C$F$7$^$$$^\e(B
+\e$B$9!#JT=8$7$?J*$r%U%!%$%k$KF~$l$k$K$O%U%!%$%k$r3+$$$F$+$i$7$^$9!#!J%U%!\e(B
+\e$B%$%k$r\e(B "visit" \e$B$9$k$H$b8@$$$^$9!K!#\e(B
- \e$B$3$N\e(BEmacs\e$B%A%e!<%H%j%"%k$N%3%T!<$O\e(BMULE.tut\e$B$H8F$P$l$F$$$^$9!#%U%!%$%k$r\e(B
-\e$B%U%!%$%s%I!J%U%!%$%k$r8+$D$1$F%P%C%U%!$KFI$_9~$`$3$H!K$9$k$H!"\e(BMULE.tut\e$B$NIt\e(B
-\e$BJ,$KI=<($5$l$^$9!#Nc$($P!"\e(Bnew-file\e$B$H$$$&L>A0$N%U%!%$%k$r%U%!%$%s%I$7$?$J$i\e(B
-\e$B$P!"\e(B"Mule: new-file"\e$B$H$$$&%b!<%I%i%$%s$K$J$k$G$7$g$&!#\e(B
+\e$B%U%!%$%k$r3+$/$H$O!"$=$N%U%!%$%k$NCf?H$r\e(B XEmacs \e$B$G8+$k$3$H$r0UL#$7$^$9!#\e(B
+\e$B?'!9$J0UL#$G!"$=$l$O$"$J$?$,%U%!%$%k<+?H$rJT=8$7$F$$$k$+$NMM$G$9!#$7$+\e(B
+\e$B$7!"\e(BXEmacs \e$B$G9T$&JQ99$O%U%!%$%k$r%;!<%V$9$kKx$O915WE*$J$b$N$H$J$j$^$;\e(B
+\e$B$s!#$3$l$O!"$=$l$rK>$^$J$$$N$K!"ESCf$^$GJQ99$7$?%U%!%$%k$,;D$k$N$rHr$1\e(B
+\e$B$k$?$a$G$9!#%;!<%V$7$?8e$G$5$(!"JQ99$7$?$b$N$,4V0c$C$F$$$?;~$N$?$a$K!"\e(B
+\e$B85$N%U%!%$%k$OL>A0$rJQ$($F;D$5$l$^$9!#\e(B
-\e$BCm0U!'\e(B \e$B%b!<%I%i%$%s$K$D$$$F$O8e$[$I@bL@$7$^$9!#>/$7$*BT$A$r!#\e(B
+\e$B2hLL$N0lHV2<6a$/$K!"\e(B"ISO7--%%-XEmacs: TUTORIAL.ja" \e$B$NMM$JJ8;zNs$G;O$^\e(B
+\e$B$j\e(B "----" \e$B$G=*$C$F$$$k9T$,$"$k$O$:$G$9!#2hLL$N$3$NItJ,$O>o$K8=:_3+$$$F\e(B
+\e$B$$$k%U%!%$%k$NL>A0$,I=<($5$l$F$$$^$9!#:#$O\e(B "TUTORIAL.ja" \e$B$H$$$&L>$N%U%!\e(B
+\e$B%$%k!J$3$l$O\e(B XEmacs \e$BF~Lg%,%$%I$N$"$J$?MQ$N%3%T!<$G$9!K$r3+$$$F$$$^$9!#\e(B
+XEmacs \e$B$G%U%!%$%k$r3+$/$H$=$N%U%!%$%k$NL>A0$,$3$NItJ,$K8=$l$^$9!#\e(B
- \e$B%U%!%$%k$r%U%!%$%s%I$7$?$j!"%;!<%V$7$?$j$9$k%3%^%s%I$O!"$3$l$^$G$N$b$N\e(B
-\e$B$H$O0c$$!"#2$D$NJ8;z$+$i$J$C$F$$$^$9!#\e(BC-x \e$B$KB3$$$FF~NO$9$kJ8;z$,!"%U%!%$%k\e(B
-\e$B$KBP$7$F9T$&A`:n$rI=$7$^$9!#\e(B
+\e$B%U%!%$%k$r3+$$$?$jJ]B8$7$?$j$9$k%3%^%s%I$O!"#2$D$NJ8;z$+$i@.$k$H$$$&E@\e(B
+\e$B$G:#$^$G3X$s$@B>$N%3%^%s%I$H$O0c$$$^$9!#N>J}$H$b!"\e(BControl-x \e$B$H$$$&J8;z\e(B
+\e$B$G;O$^$j$^$9!#\e(BControl-x \e$B$G;O$^$k%3%^%s%I$O$?$/$5$s$"$j$^$9!#B?$/$O%U%!\e(B
+\e$B%$%k!"%P%C%U%!$d$=$l$i$K4XO"$7$?$b$N$K4X78$7$?$3$H$r$7$^$9!#$3$l$i$N%3\e(B
+\e$B%^%s%I$O#2!"#3!"#4J8;z$G$9!#\e(B
- \e$B$b$&0l$D$3$l$^$G$N$b$N$H0c$&E@$O!"%U%!%$%s%I$N;~!"%U%!%$%kL>$r\e(BEmacs\e$B$K\e(B
-\e$BLd$o$l$^$9!#$3$N$3$H$r!"C<Kv$+$i0z?t$rFI$_9~$s$G$/$k%3%^%s%I$H8@$C$F$$$^$9!#\e(B
+\e$B%U%!%$%k$r3+$/$?$a$N%3%^%s%I$O$3$l$^$G3X$s$@$b$N$H$O0c$$!"%U%!%$%k$NL>\e(B
+\e$BA0$r;XDj$7$J$1$l$P$J$j$^$;$s!#$3$l$r!"%3%^%s%I$,!VC<Kv$+$i0z?t$rFI$_9~\e(B
+\e$B$`!W$H8@$$$^$9!#:#$N>l9g$O0z?t$O%U%!%$%kL>$G$9!#<!$N%3%^%s%I\e(B
-\e$BCm0U!'\e(B \e$B$3$N>l9g$O%U%!%$%kL>$G$9!#\e(B
+ C-x C-f Find a file
- C-x C-f \e$B%U%!%$%k$r8+$D$1$k!J%U%!%$%s%I$9$k!K\e(B
+\e$B$r%?%$%W$9$k$H!"\e(BXEmacs \e$B$O%U%!%$%kL>$rJ9$$$F$-$^$9!#%?%$%W$7$?%U%!%$%k\e(B
+\e$BL>$O2hLL$N:G2<9T$KI=<($5$l$^$9!#$3$N:G2<9T$O!"$3$&$$$&F~NO$N$?$a$K;H$C\e(B
+\e$B$F$$$k;~$O!"%_%K%P%C%U%!$H8F$S$^$9!#DL>o$NJT=8%3%^%s%I$G%U%!%$%kL>$rJT\e(B
+\e$B=8$9$k$3$H$b$G$-$^$9!#\e(B
- Emacs\e$B$O%U%!%$%kL>$rJ9$$$F$-$^$9!#$=$l$O!"2hLL$N2<$N9T$K8=$l$^$9!#%U%!\e(B
-\e$B%$%kL>$r;XDj$7$F$$$kItJ,$O!"%_%K%P%C%U%!$H8F$P$l$k$b$N$G$9!#%_%K%P%C%U%!$O\e(B
-\e$B$3$NMM$J;H$o$lJ}$r$7$^$9!#%U%!%$%kL>$KB3$$$F!"%j%?!<%s%-!<$r2!$9$H!"%_%K%P\e(B
-\e$B%C%U%!$KI=<($5$l$F$$$?FbMF$O$b$&I,MW$G$O$J$/$J$k$N$G>C$($F$7$^$$$^$9!#\e(B
+\e$B%U%!%$%kL>$NF~NOCf!J$"$k$$$O$=$NB>$N%_%K%P%C%U%!F~NOCf!K$K\e(B C-g \e$B$K$h$C\e(B
+\e$B$F%3%^%s%I$r%-%c%s%;%k$G$-$^$9!#\e(B
- >> C-x C-f\e$B$H%?%$%W$7$?8e$K\e(BC-g\e$B$H%?%$%W$7$F2<$5$$!#%_%K%P%C%U%!$NFbMF\e(B
- \e$B$r<h$j>C$7!"$^$?!"\e(BC-x C-f\e$B%3%^%s%I$b<h$j>C$7$^$9!#$H8@$&Lu$G!"2?$b\e(B
- \e$B%U%!%$%k$r8+$D$1$k$h$&$J$3$H$O$7$^$;$s!#\e(B
+>> C-x C-f \e$B$r%?%$%W$7$F$+$i\e(B C-g \e$B$r%?%$%W$7$F$_$^$7$g$&!#%_%K%P%C%U%!$,\e(B
+ \e$B<h$j>C$5$l!"$=$l$r;H$C$F$$$?%3%^%s%I\e(B C-x C-f \e$B<+BN$b<h$j>C$5$l$^$9!#\e(B
+ \e$B$@$+$i!"%U%!%$%k$O2?$b3+$+$l$^$;$s!#\e(B
- \e$B:#EY$O%U%!%$%k$r%;!<%V$7$F$_$^$7$g$&!#:#$^$G$NJQ99$rJ]B8$9$k$?$a$K$O<!\e(B
-\e$B$N$h$&$J%3%^%s%I$r;H$$$^$9!#\e(B
+\e$B%U%!%$%kL>$rF~NO$7$?$i!"\e(B<Return>\e$B%-!<$r%?%$%W$7F~NO$r40N;$5$;$^$9!#$=$&\e(B
+\e$B$9$k$H!"\e(BC-x C-f \e$B%3%^%s%I$,Av$j;O$a;XDj$7$?%U%!%$%k$r3+$-$^$9!#%_%K%P%C\e(B
+\e$B%U%!$O\e(B C-x C-f \e$B%3%^%s%I$N=*N;$H$H$b$K>C$($^$9!#\e(B
- C-x C-s \e$B%U%!%$%k$r%;!<%V$9$k\e(B
+\e$B%U%!%$%k$NFbMF$,2hLL$KI=<($5$l$k$H!"$=$NFbMF$rJQ99$9$k$3$H$,$G$-$^$9!#\e(B
+\e$B2C$($?JQ99$r915WE*$J$b$N$K$7$?$1$l$P!"<!$N%3%^%s%I$r%?%$%W$7$^$9!#\e(B
- Emacs\e$B$NFbMF$O%U%!%$%k$K=q$-=P$5$l$^$9!#%;!<%V$9$k;~!"%*%j%8%J%k$N\e(B
-\e$B%U%!%$%k$O?7$7$$L>A0$r$D$1$i$l$F;D$5$l$F$$$k$N$GFbMF$O<:$o$l$^$;$s!#$=\e(B
-\e$B$N?7$7$$L>A0$O%*%j%8%J%k$N%U%!%$%k$NL>A0$K\e(B'~'\e$B$r$D$1$?$b$N$G$9!#\e(B
+ C-x C-s Save the file
- \e$B%;!<%V$,=*$o$k$H!"\e(BEmacs\e$B$O%;!<%V$7$?%U%!%$%k$NL>A0$rI=<($7$^$9!#\e(B
+\e$B$3$l$O\e(B XEmacs \e$B$,J];}$7$F$$$kJ8>O$r%U%!%$%k$K%3%T!<$7$^$9!#=i$a$F$3$l$r\e(B
+\e$B<B9T$9$k$H$-$O!"85$N%U%!%$%k$r?7$7$$L>A0$KIU$1BX$($k$N$G!"$=$NFbMF$O<:\e(B
+\e$B$o$l$^$;$s!#$=$N?7$7$$L>A0$O85$N%U%!%$%k$NL>A0$N:G8e$K\e(B'~'\e$B$r$D$1$?$b$N\e(B
+\e$B$G$9!#\e(B
- >> C-x C-s\e$B$H%?%$%W$7$F%A%e!<%H%j%"%k$N%3%T!<$r%;!<%V$7$F2<$5$$!#$=$N\e(B
- \e$B;~!"2hLL$N2<$NJ}$K\e(B"Wrote ...../MULE.tut"\e$B$HI=<($5$l$^$9!#\e(B
+\e$B%;!<%V$,=*$o$k$H!"%;!<%V$7$?%U%!%$%k$NL>A0$,I=<($5$l$^$9!#3d$HIQHK$K%;!<\e(B
+\e$B%V$7$?J}$,NI$$$G$7$g$&!#%7%9%F%`$,Mn$A$F$b$;$C$+$/$N:n6H$,%Q%"$K$J$i$J\e(B
+\e$B$$$h$&$K!#\e(B
- \e$B?7$7$$%U%!%$%k$r:n$k;~!"$"$?$+$b0JA0$+$i$"$C$?%U%!%$%k$r%U%!%$%s%I$9$k\e(B
-\e$B$h$&$J%U%j$r$7$^$9!#$=$&$7$F!"$=$N%U%!%$%s%I$7$?%U%!%$%k$K%?%$%W$7$F$$$-$^\e(B
-\e$B$9!#\e(B
+>> C-x C-s \e$B$H%?%$%W$7$F$3$NF~Lg%,%$%I$N%3%T!<$r%;!<%V$7$F2<$5$$!#\e(B
+ \e$B2hLL:G2<CJ$K\e(B "Wrote ...TUTORIAL.ja" \e$B$HI=<($5$l$^$9!#\e(B
- \e$B%U%!%$%k$r%;!<%V$7$h$&$H$7$?;~$K=i$a$F!"\e(BEmacs\e$B$O:#$^$GJT=8$7$F$$$?FbMF\e(B
-\e$B$r%U%!%$%k$NCf$K=q$-9~$_$^$9!#\e(B
+\e$BCm0U!'%7%9%F%`$K$h$C$F$O\e(B C-x C-s \e$B$H%?%$%W$9$k$H2hLL$,F0$+$J$/$J$j\e(B
+XEmacs \e$B$,I=<($7$h$&$H$9$k$b$N$,2?$b2hLL$K=P$J$/$J$j$^$9!#$3$l$O!"%U%m!<\e(B
+\e$B%3%s%H%m!<%k$H8F$P$l$k#O#S$N5!G=$,\e(B C-s \e$B$rB*$(!"\e(BXEmacs \e$B$KEO$5$J$$$h$&$K\e(B
+\e$B$7$F$$$k$N$G$9!#$3$l$r2r=|$9$k$K$O\e(B C-q \e$B$r%?%$%W$7$^$9!#$=$l$+$i\e(B XEmacs
+\e$B%^%K%e%"%k$N\e(B "Spontaneous Entry to Incremental Search (\e$BCN$i$L4V$K%$%s\e(B
+\e$B%/%j%a%s%?%k%5!<%A$K$J$k\e(B)" \e$B$N@a$rFI$s$G$/$@$5$$!#$3$N$d$C$+$$$J#O#S$N\e(B
+\e$B5!G=$K$I$&BP=h$9$l$PNI$$$+$,:\$C$F$$$^$9!#\e(B
+\e$B4{B8$N%U%!%$%k$r3+$-!"FbMF$r8+!"JT=8$9$k$3$H$,$G$-$^$9!#B8:_$7$J$$%U%!\e(B
+\e$B%$%k$r3+$/$3$H$b$G$-$^$9!#\e(BXEmacs \e$B$G?7$7$$%U%!%$%k$r:n$k$K$O<!$N$h$&$K\e(B
+\e$B$7$^$9!#%U%!%$%k$r3+$-$^$9!#:G=i$O6u$C$]$G$9$M!#J8>O$rF~NO$7$F$$$-$^$9!#\e(B
+\e$B%U%!%$%k$r%;!<%V$7$h$&$H$7$?;~$K=i$a$F?7$7$$%U%!%$%k$,:n$i$l!":#$^$GF~\e(B
+\e$BNO$7$?FbMF$,$=$l$K=q$-9~$^$l$^$9!#$=$l0J9_$O!"$"$J$?$O4{B8$N%U%!%$%k\e(B
+\e$B!J$?$C$?:#:n$i$l$?%U%!%$%k!K$rJT=8$7$F$$$k$H;W$C$F2<$5$$!#\e(B
-\e$B%P%C%U%!\e(B
-========
- \e$B$b$7!"#2HVL\$N%U%!%$%k$r\e(B C-x C-f \e$B$G<h$j=P$9$H!"#1HVL\$N%U%!%$%k$O\e(BEmacs
-\e$BFbIt$K;D$j$^$9!#\e(BEmacs\e$BFbIt$K$"$k%U%!%$%k$+$i%F%-%9%H$rFI$_9~$s$GJ]B8$7$F$$$k\e(B
-\e$B$b$N$O%P%C%U%!$H8F$P$l$^$9!#%U%!%$%k$N<h$j=P$7$O!"\e(BEmacs\e$BFbIt$K?7$7$$%P%C%U%!\e(B
-\e$B$r:n$j$^$9!#\e(B
+\e$B!v%P%C%U%!\e(B
+==========
- Emacs\e$B$NCf$KJ]B8$7$F$$$k%P%C%U%!$N%j%9%H$r8+$k$K$O!"<!$N$h$&$K%?%$%W$7\e(B
-\e$B$^$9!#\e(B
+\e$B#2$DL\$N%U%!%$%k$r\e(B C-x C-f \e$B$G3+$$$F$b!":G=i$N%U%!%$%k$O\e(B XEmacs \e$BFbIt$K\e(B
+\e$B;D$C$?$^$^$G$9!#$=$C$A$N%U%!%$%k$KLa$k$K$O$b$&0lEY\e(B C-x C-f \e$B$G$=$N%U%!\e(B
+\e$B%$%k$r3+$1$P$h$$$N$G$9!#$3$&$d$C$F!"4v$D$b$N%U%!%$%k$r\e(B XEmacs \e$B$G3+$/$3\e(B
+\e$B$H$,$G$-$^$9!#\e(B
- C-x C-b
+>> "foo" \e$B$H$$$&L>$N%U%!%$%k$r:n$j$^$7$g$&!#\e(BC-x C-f foo <Return> \e$B$G$9!#\e(B
+ \e$B2?$+J8>O$rF~$l!"JT=8$7!"\e(BC-x C-s \e$B$G\e(B "foo" \e$B$r%;!<%V$7$F2<$5$$!#\e(B
+ \e$B:G8e$K\e(B C-x C-f TUTORIAL.ja <Retrun> \e$B$H%?%$%W$7\e(B
+ \e$BF~Lg%,%$%I$KLa$j$^$7$g$&!#\e(B
+
+XEmacs \e$B$O%U%!%$%k$NFbMF$r%P%C%U%!!J\e(Bbuffer\e$B!K$H8F$P$l$k$b$N$NCf$K3JG<$7\e(B
+\e$B$F$$$^$9!#%U%!%$%k$r3+$/$H?7$7$$%P%C%U%!$,$G$-$^$9!#\e(BXEmacs \e$B$,8=:_;}$C\e(B
+\e$B$F$$$k%P%C%U%!$N%j%9%H$r8+$k$K$O!"<!$N$h$&$K%?%$%W$7$^$9!#\e(B
- >> C-x C-b \e$B$H%?%$%W$7$J$5$$!#$=$l$>$l$N%P%C%U%!$,$I$N$h$&$KL>A0$r;}\e(B
- \e$B$C$F$$$k$+!"$=$7$F!"$I$N$h$&$J%U%!%$%kL>$r$D$1$F$$$k$N$+4Q;!$7$J\e(B
- \e$B$5$$!#\e(B
+ C-x C-b List buffers
- \e$B%P%C%U%!$K$O%U%!%$%k$H0lCW$J$$$b$N$b$"$j$^$9!#$?$H$($P!"\e(B
-"*Buffer List*" \e$B$H$$$&%U%!%$%k$O$"$j$^$;$s!#$3$l$O\e(B C-x C-b \e$B$K$h$C$F:n$i$l\e(B
-\e$B$?%P%C%U%!%j%9%H$KBP$7$F$N%P%C%U%!$G$9!#\e(B
+>> C-x C-b \e$B$r;n$7$F$_$^$7$g$&!#\e(B
- \e$B$"$J$?$,8+$F$$$k\e(BEmacs\e$B%&%#%s%I%&Fb$K$"$k!"$I$s$J%F%-%9%H$G$b!"$$$:$l$+\e(B
-\e$B$N%P%C%U%!Fb$K$"$j$^$9!#\e(B
+\e$B3F%P%C%U%!$,$I$s$JIw$KL>A0$d$=$l$,3+$$$F$$$k%U%!%$%k$KBP$9$k%U%!%$%kL>\e(B
+\e$B$r;}$C$F$$$k$+8+$F2<$5$$!#%U%!%$%k$r3+$$$F$$$J$$%P%C%U%!$b$"$j$^$9!#$?\e(B
+\e$B$H$($P!"\e(B"*Buffer List*" \e$B$H$$$&L>$N%P%C%U%!$O$I$s$J%U%!%$%k$b3+$$$F$$$^\e(B
+\e$B$;$s!#$3$l$O%P%C%U%!$N%j%9%H$rFbMF$H$9$k%P%C%U%!$G!"\e(BC-x C-b \e$B$G:n$i$l$?\e(B
+\e$B$b$N$G$9!#\e(BXEmacs \e$B$N%&%#%s%I%&Fb$K$"$k%F%-%9%H$O$I$l$b!"$$$:$l$+$N%P%C\e(B
+\e$B%U%!$N0lIt$G$9!#\e(B
- >> \e$B%P%C%U%!%j%9%H$r>C$9$?$a\e(B C-x 1 \e$B$H%?%$%W$7$J$5$$!#\e(B
+>> C-x 1 \e$B$H%?%$%W$7$F%P%C%U%!%j%9%H$r>C$7$^$7$g$&!#\e(B
- \e$B$b$7!"$"$k%U%!%$%k$N%F%-%9%H$KJQ99$r9T$J$C$F$+$i!"B>$N%U%!%$%k$r<h$j=P\e(B
-\e$B$7$?$H$7$?$i!":G=i$N%U%!%$%k$O%;!<%V$5$l$F$$$^$;$s!#$=$NJQ99$O\e(BEmacs\e$BFbIt$N%U\e(B
-\e$B%!%$%k$HBP1~$9$k%P%C%U%!$NCf$@$1$K9T$J$o$l$F$$$^$9!#\e(B
+\e$B$"$k%U%!%$%k$NFbMF$K$J$s$i$+$NJQ99$r2C$(!"$=$l$+$iB>$N%U%!%$%k$r3+$$$F\e(B
+\e$B$b!":G=i$N%U%!%$%k$O$^$@%;!<%V$5$l$^$;$s!#JQ99$O\e(B XEmacs \e$B$NFbIt!"$=$N%U%!\e(B
+\e$B%$%k$KBP1~$9$k%P%C%U%!$NCf$K;D$C$?$^$^$G$9!##2HVL\$N%U%!%$%k$N%P%C%U%!\e(B
+\e$B$r:n$C$?$j!"JT=8$7$?$j$7$F$b!":G=i$N%U%!%$%k$N%P%C%U%!$K$O2?$N1F6A$b$"\e(B
+\e$B$j$^$;$s!#$3$l$O$H$F$bLr$KN)$A$^$9$,!":G=i$N%U%!%$%k$N%P%C%U%!$r%;!<%V\e(B
+\e$B$9$k2?$+JXMx$JJ}K!$,I,MW$@$H$$$&$3$H$G$b$"$j$^$9!#\e(B C-x C-s \e$B$G%;!<%V$9\e(B
+\e$B$k$?$a$K\e(B C-x C-f \e$B$G85$N%P%C%U%!$KLa$k$N$O$OLq2p$G$9!#$=$3$G<!$N%3%^%s\e(B
+\e$B%I$r;H$$$^$9!#\e(B
- \e$B#2HVL\$N%U%!%$%k$KBP1~$9$k%P%C%U%!$r:n$C$?$j!"%(%G%#%C%H$7$?$j$7$F$b!"\e(B
-\e$B#1HVL\$N%U%!%$%k$KBP1~$9$k%P%C%U%!$K$O2?$b1F6A$rM?$($^$;$s!#$3$l$O$H$F$b;H\e(B
-\e$B$$0W$/!"$^$?!"#1HVL\$N%U%!%$%k$KBP1~$9$k%P%C%U%!$r<h$C$F$*$/$?$a$KLr$KN)$D\e(B
-\e$BJ}K!$G$9!#\e(B
+ C-x s \e$B2?$l$+$N%P%C%U%!$r%;!<%V$9$k\e(B
- C-x C-s \e$B$G%P%C%U%!$r%;!<%V$9$k$?$a$K\e(B C-x C-f \e$B$G%P%C%U%!$r@Z$jBX$($k$N\e(B
-\e$B$OLq2p$G$9!#$=$3$G<!$N%3%^%s%I$r;H$$$^$9!#\e(B
+C-x s \e$B$O!"$^$@%;!<%V$7$F$$$J$$JQ99$,$"$k%P%C%U%!$=$l$>$l$K$D$$$F!"$=$l\e(B
+\e$B$r%;!<%V$9$k$+$I$&$+$rJ9$$$F$-$^$9!#\e(B
- C-x s \e$B8=:_$"$k%P%C%U%!$r%;!<%V$9$k!#\e(B
+>> \e$B0l9T%F%-%9%H$rF~NO$7$F$+$i\e(B C-x s \e$B$H%?%$%W$7$F2<$5$$!#\e(B
+ TUTORIAL.ja \e$B$H$$$&%P%C%U%!$r%;!<%V$9$k$+$I$&$+J9$$$F$/$k$O$:$G$9!#\e(B
+ \e$B!V$O$$!W$HEz$($k$?$a$K\e(B "y" \e$B$H%?%$%W$7$F2<$5$$!#\e(B
- C-x s \e$B$OFbMF$rJQ$($?%P%C%U%!A4$F$r%U%!%$%k$K%;!<%V$7$^$9!#$3$N;~!"$R$H\e(B
-\e$B$D$R$H$D$N\e(B(\e$B%;!<%V$5$l$k$Y$-\e(B)\e$B%P%C%U%!$KBP$7$F!"%;!<%V$9$k$+!"$7$J$$$+$r\e(By\e$B$+\e(Bn
-\e$B$GLd$o$l$^$9!#$3$NI=<($O2hLL$N2<$N9T$KI=<($5$l$^$9!#Nc$($P!"$3$N$h$&$K$G$9!#\e(B
+\e$B!v%a%K%e!<$r;H$&\e(B
+----------------
- Save file /usr/private/yours/MULE.tut? (y or n)
+\e$B$b$7\e(B X \e$BC<Kv$r;H$C$F$$$l$P!"\e(BXEmacs \e$B$N2hLL$N:G>eIt$K%a%K%e!<%P!<$,$"$k$3\e(B
+\e$B$H$K5$IU$/$G$7$g$&!#$3$N%a%K%e!<%P!<$r;H$C$F!V%U%!%$%k$r3+$/!W$H$$$&$h\e(B
+\e$B$&$J$[$H$s$I$N$h$/;H$&\e(B XEmacs \e$B$N%3%^%s%I$r;HMQ$9$k$3$H$,$G$-$^$9!#FCDj\e(B
+\e$B$N%3%^%s%I$r;HMQ$9$k$?$a$NBG80$r3P$($J$/$F$h$$$N$G!":G=i$O$3$NJ}$,4JC1\e(B
+\e$B$K;W$($k$G$7$g$&!#\e(BXEmacs \e$B$K47$l$F$/$k$K$7$?$,$C$F!"%-!<%\!<%I$N%3%^%s\e(B
+\e$B%I$r;H$&$3$H$,4JC1$K$J$C$F$/$k$G$7$g$&!#BP1~$9$k%-!<%\!<%I%3%^%s%I$,%3\e(B
+\e$B%^%s%I$N<!$K=q$+$l$F$$$k$+$i$G$9!#\e(B
+\e$B%a%K%e!<%P!<$K$O%-!<%\!<%I$G40A4$KF1Ey$KBP1~$9$k$b$N$,L5$$9`L\$,B?$/$"\e(B
+\e$B$j$^$9!#Nc$($P!"\e(BBuffers \e$B%a%K%e!<$O:G6a;H$o$l$?=g$KA*Br2DG=$J%P%C%U%!$N\e(B
+\e$B0lMw$rI=<($7$^$9!#C1$K\e(B Buffers \e$B%a%K%e!<$GL>A0$r8+$D$1$FA*Br$9$k$@$1$G\e(B
+\e$B$I$N%P%C%U%!$K$G$b0\F0$G$-$^$9!#\e(B
-\e$B%3%^%s%I$N3HD%\e(B
-==============
+\e$B!v%^%&%9$r;H$&\e(B
+--------------
+
+X \e$B$N2<$G<B9T$5$l$F$$$k$H$-$O!"\e(BXEmacs \e$B$O40A4$K%^%&%95!G=$H0lBN2=$7$F$$\e(B
+\e$B$^$9!#K>$_$N>l=j$G:8%\%?%s$r%/%j%C%/$9$k$3$H$G%F%-%9%H$N%+!<%=%k$r0\F0\e(B
+\e$B$9$k$3$H$,$G$-!"A*Br$7$?$$%F%-%9%H$r:8%^%&%9%\%?%s$G%I%i%C%0$9$k$3$H$G\e(B
+\e$B%F%-%9%H$rA*Br$9$k$3$H$,$G$-$^$9!#!J$b$7$/$O!"$=$NBe$o$j$K%F%-%9%H$rA*\e(B
+\e$BBr$9$k$?$a$K0lJ}$NC<$G:8%^%&%9%\%?%s$r%/%j%C%/$7!"B>$NC<$K0\F0$7$F\e(B
+Shift \e$B$r2!$7$J$,$i%/%j%C%/$9$k$3$H$,$G$-$^$9!#!K\e(B
+
+\e$BA*Br$7$?%F%-%9%H$r>C5n\e(B \e$B!J\e(Bkill\e$B!K\e(B \e$B$9$k$?$a$K$O!"\e(BC-w \e$B$+!"\e(BEdit \e$B%a%K%e!<$N\e(B
+Cut \e$B9`L\$r;H$($^$9!#$3$l$i$OEy2A$G$O\e(B*\e$BL5$$\e(B*\e$B$3$H$KCm0U$7$F$/$@$5$$\e(B: C-w
+\e$B$O\e(BXEmacs \e$B$NFbIt$N$_$K%F%-%9%H$rJ]B8$7$^$9$,!J>e$G@bL@$7$?\e(B C-k \e$B$H;w$F$$\e(B
+\e$B$^$9!K!"\e(BCut \e$B$O$3$l$H$H$b$K%F%-%9%H$rB>$N%"%W%j%1!<%7%g%s$,;HMQ2DG=$J\e(B X
+\e$B$N%/%j%C%W%\!<%I$K$bF~$l$^$9!#\e(B
- \e$B%(%G%#%?$K$O!"%3%s%H%m!<%k!&%-!<$d%a%?!&%-!<$GF~NO$G$-$k$b$N$h$j$b$:$C\e(B
-\e$B$HB?$/$N%3%^%s%I$,$"$j$^$9!#$3$l$i$r07$&$?$a$K!"3HD%!J\e(BeXtend\e$B!K%3%^%s%I$r\e(B
+X \e$B$N%/%j%C%W%\!<%I$+$i%F%-%9%H$r<hF@$9$k$K$O!"\e(BEdit \e$B%a%K%e!<$N\e(B Paste \e$B9`\e(B
+\e$BL\$r;H$C$F$/$@$5$$!#\e(B
+
+\e$B??Cf$N%^%&%9$N%\%?%s$OIaDL$O2hLL$G8+$($F$$$k$b$N$rA*Br$9$k$?$a$K;H$o$l\e(B
+\e$B$^$9!#Nc$($P!"\e(BInfo\e$B!J%*%s%i%$%s\e(B XEmacs \e$B@bL@J8=q!K$K\e(B C-h i \e$B$+\e(B Help \e$B%a%K%e!<\e(B
+\e$B$r;H$C$FF~$l$P!"%O%$%i%$%H$5$l$?%j%s%/$r??Cf$N%\%?%s$r2!$9$3$H$GDI$&$3\e(B
+\e$B$H$,$G$-$^$9!#F1MM$K!"%U%!%$%kL>$rF~NO$7$F$$$k$H$-$K!JNc$($P!"!V%U%!%$\e(B
+\e$B%k$r3+$/!W$GF~NO$rB%$5$l$?$H$-!K\e(B TAB \e$B$GJd408uJd$rI=<($5$;$k$H!"8uJd$N\e(B
+\e$B0l$D$rA*Br$9$k$?$a$K??Cf$N%\%?%s$G%/%j%C%/$9$k$3$H$,$G$-$^$9!#\e(B
+
+\e$B1&$N%^%&%9$N%\%?%s$O%]%C%W%"%C%W%a%K%e!<$rI=<($7$^$9$3$N%a%K%e!<$NFbMF\e(B
+\e$B$O:#$N%b!<%I$K0MB8$7!"IaDL$O;HMQ$70W$$$h$&$K#2!"#3$NNI$/;H$o$l$k%3%^%s\e(B
+\e$B%I$r4^$s$G$-$^$9!#\e(B
+
+>> \e$B1&%^%&%9%\%?%s$r2!$7$F$/$@$5$$!#\e(B
+
+\e$B%a%K%e!<$rI=<($5$;B3$1$k$?$a$K$O%\%?%s$r2!$7B3$1$kI,MW$,$"$j$^$9!#\e(B
+
+
+\e$B!v%3%^%s%I$N3HD%\e(B
+================
+
+XEmacs \e$B$K$O!"%3%s%H%m!<%kJ8;z$d%a%?J8;z$K3dEv$i$l$k$h$j$b$:$C$H$:$C$H\e(B
+\e$BB?$/$N%3%^%s%I$,$"$j$^$9!#$3$l$i$r07$&$?$a$K!"3HD%!J\e(BeXtend\e$B!K%3%^%s%I$r\e(B
\e$B;H$$$^$9!#$=$l$K$O!"0J2<$N#2$D$N<oN`$,$"$j$^$9!#\e(B
C-x \e$BJ8;z$K$h$k3HD%!#B3$1$F0lJ8;z$rF~NO$7$^$9!#\e(B
ESC x \e$BL>A0$K$h$k3HD%!#B3$1$F%3%^%s%I$NL>A0$rF~NO$7$^$9!#\e(B
- \e$B$3$l$i$O0lHL$K!"JXMx$@$1$l$I$b!"$3$l$^$G8+$F$-$?$b$N$[$IIQHK$K$OMQ$$$i\e(B
-\e$B$l$J$$%3%^%s%I$N$?$a$N$b$N$G$9!#\e(BC-x C-f \e$B!J%U%!%$%s%I!K$d\e(B C-x C-s\e$B!J%;!<%V!K\e(B
-\e$B$O$3$NCg4V$G$9!#B>$K!"\e(BC-x C-c\e$B!J%(%G%#%?$N=*N;!K$b$=$&$G$9!#\e(B
+\e$B$3$l$i$O!"0lHLE*$K$OJXMx$@$1$l$I$b!"$3$l$^$G8+$F$-$?$b$N$[$I$OIQHK$KMQ\e(B
+\e$B$$$i$l$J$$%3%^%s%I$G$9!#\e(BC-x C-f \e$B!J%U%!%$%k$r3+$/!K$d\e(B C-x C-s\e$B!J%U%!%$%k\e(B
+\e$B$r%;!<%V!K$O$3$NCg4V$G$9!#B>$K!"\e(BC-x C-c\e$B!J\e(BXEmacs \e$B$r=*N;!K$b$=$&$G$9!#\e(B
+C-x C-c \e$B$K4X$7$F$O!"$=$l$^$G$K2C$($?JQ99$,L5$/$J$k$N$r?4G[$9$kI,MW$O$"\e(B
+\e$B$j$^$;$s!#\e(BXEmacs \e$B$r=*N;$5$;$kA0$KJQ99$5$l$?3F%U%!%$%k$r%;!<%V$9$k$+$I\e(B
+\e$B$&$+J9$$$F$-$^$9$+$i!#\e(B
- C-z\e$B$O\e(BEmacs\e$B$rH4$1$k$N$KNI$/;H$o$l$kJ}K!$G$9!#\e(BEmacs\e$B$r=*N;$9$k$3$H$J$/!"\e(B
-\e$B0lC6!"\e(Bcsh\e$B$N%l%Y%k$KLa$k$K$O0lHVNI$$J}K!$H8@$($k$G$7$g$&!#\e(BC-z\e$B$r9T$J$o$l$F$b\e(B
-Emacs\e$B$O%9%H%C%W$7$F$$$k$@$1$G!"FbMF$,GK2u$5$l$k$H$$$&$3$H$O$"$j$^$;$s!#\e(B
+C-z \e$B$O!V0l;~E*$K!W\e(B XEmacs \e$B$rH4$1$k%3%^%s%I$G$9!#$^$?F1$8\e(B XEmacs \e$B%;%C%7%g\e(B
+\e$B%s$KLa$k$3$H$,$G$-$^$9!#\e(B
-\e$BCm0U\e(B: \e$B$?$@$7\e(BX-window\e$B$G9T$J$C$F$$$k>l9g!"$b$7$/$O;HMQ$7$F$$$k%7%'%k\e(B
- \e$B$,\e(Bsh\e$B$N;~$O!"$3$N8B$j$G$O$"$j$^$;$s!#\e(B
+\e$B$=$l$,$G$-$k%7%9%F%`>e$J$i!"\e(BC-z \e$B$O\e(B XEmacs \e$B$r!VCfCG!W$5$;$^$9!#$D$^$j\e(B
+XEmacs \e$B$r=*N;$9$k$3$H$J$/!"%3%^%s%I%7%'%k$KLa$k$3$H$,$G$-$^$9!#BgJ}$N\e(B
+\e$BI8=`E*$J%7%'%k$J$i!"\e(B`fg' \e$B%3%^%s%I$b$7$/$O\e(B `%emacs' \e$B$K$h$C$F\e(B XEmacs \e$B$r\e(B
+\e$B:F3+$G$-$^$9!#\e(B
+\e$B!VCfCG!W5!G=$r<BAu$7$F$$$J$$%7%9%F%`$G$O!"\e(BC-z \e$B$O\e(B XEmacs \e$B$N2<$GAv$k%5%V\e(B
+\e$B%7%'%k$r:n$j!"B>$N%W%m%0%i%`$rAv$i$;$F$+$i$^$?\e(B XEmacs \e$B$KLa$k$3$H$,$G$-\e(B
+\e$B$k$h$&$K$7$^$9!#$3$N>l9gK\Ev$K\e(B XEmacs \e$B$+$iH4$1=P$k$o$1$G$O$"$j$^$;$s$N\e(B
+\e$B$G!"%7%'%k%3%^%s%I$N\e(B `exit' \e$B$,$=$N%5%V%7%'%k$+$i\e(B XEmacs \e$B$KLa$kIaDL$N$d\e(B
+\e$B$jJ}$G$9!#\e(B
- C-x \e$B%3%^%s%I$O!"$?$/$5$s$"$j$^$9!#$9$G$K3X$s$@$b$N$O0J2<$N$b$N$G$9!#\e(B
+C-x C-c \e$B$O%m%0%"%&%H$7$h$&$H;W$&;~$K;H$&$b$N$G$9!#%a!<%k%D!<%k!J\e(Bmail
+\e$B%3%^%s%IEy!K$d$=$NB>$NMM!9$J%"%W%j%1!<%7%g%s%W%m%0%i%`$,5/F0$7$?\e(B
+XEmacs \e$B$+$iH4$1=P$k>l9g$K;H$&$N$b@5$7$$;H$$J}$G$9!#$3$l$i$N%W%m%0%i%`\e(B
+\e$B$O\e(B XEmacs \e$B$NCfCG$K$I$&BP=h$7$FNI$$$+CN$i$J$$$G$7$g$&$+$i!#$7$+$7$J$,$i!"\e(B
+\e$BIaDL$N>l9g$O!"%m%0%"%&%H$7$h$&$7$J$$8B$j$O\e(B XEmacs \e$B$r=*N;$5$;$k$h$j$O\e(B
+C-z \e$B$GCfCG$5$;$kJ}$,NI$$$G$7$g$&!#\e(B
- C-x C-f \e$B%U%!%$%k$NJT=8!J\e(BFind\e$B!K\e(B
- C-x C-s \e$B%U%!%$%k$NJ]B8!J\e(BSave\e$B!K\e(B
- C-x C-b \e$B%P%C%U%!%j%9%H$NI=<(\e(B
- C-x C-c \e$B%(%G%#%?$r=*N;$9$k!#%U%!%$%k$NJ]B8$O!"<+F0E*$K$O9T$o$l$^$;\e(B
- \e$B$s!#$7$+$7!"$b$7%U%!%$%k$,JQ99$5$l$F$$$l$P!"%U%!%$%k$NJ]B8\e(B
- \e$B$r$9$k$N$+$I$&$+$rJ9$$$F$-$^$9!#J]B8$7$F=*N;$9$kIaDL$NJ}K!\e(B
- \e$B$O!"\e(BC-x C-s C-x C-c \e$B$H$9$k$3$H$G$9!#\e(B
+C-x \e$B%3%^%s%I$O$?$/$5$s$"$j$^$9!#$3$l$^$G$K!"0J2<$r3X$S$^$7$?!#\e(B
- \e$BL>A0$K$h$k3HD%%3%^%s%I$K$O!"$"$^$j;H$o$l$J$$$b$N$d!"FCDj$N%b!<%I$G$7$+\e(B
-\e$B;H$o$J$$$b$N$J$I$,$"$j$^$9!#Nc$H$7$F!"\e(B"command-apropos" \e$B$r$H$j$"$2$^$9!#$3\e(B
-\e$B$N%3%^%s%I$O%-!<%o!<%I$rF~NO$5$;!"$=$l$K%^%C%A$9$kA4$F$N%3%^%s%I$NL>A0$rI=\e(B
-\e$B<($7$^$9!#\e(BESC x \e$B$H%?%$%W$9$k$H!"%9%/%j!<%s$N2<$K\e(B "M-x" \e$B$,I=<($5$l$^$9!#$3$l\e(B
-\e$B$KBP$7$F!"<B9T$9$k%3%^%s%I$NL>A0!J:#$N>l9g!"\e(B"command-apropos"\e$B!K$rF~NO$7$^$9!#\e(B
-"command-a" \e$B$^$GF~NO$7$?8e%9%Z!<%9$rF~$l$l$P!"8e$NItJ,$O<+F0E*$KJd$o$l$^$9!#\e(B
-\e$B$3$N8e!"%-!<%o!<%I$rJ9$+$l$^$9$+$i!"CN$j$?$$J8;zNs$r%?%$%W$7$^$9!#$J$*!"%-!<\e(B
-\e$B%o!<%I$rF~$l$J$$$H!"A4$F$N%3%^%s%I$,I=<($5$l$^$9!#\e(B
+ C-x C-f \e$B%U%!%$%k$r3+$/!J\e(BFind\e$B!K\e(B
+ C-x C-s \e$B%U%!%$%k$N%;!<%V!J\e(BSave\e$B!K\e(B
+ C-x C-b \e$B%P%C%U%!$N%j%9%H%"%C%W\e(B
+ C-x C-c XEmacs \e$B$r=*N;\e(B
+ C-x u \e$B<h$j>C$7\e(B
- >> ESC x \e$B$r%?%$%W$7!"B3$1$F!"\e(B"command-apropos<Return>" \e$B$"$k$$$O\e(B
- "command-a<Space><Return>" \e$B$H%?%$%W$7$^$9!#<!$K!"\e(B"kanji<Return>"
- \e$B$H%?%$%W$7$^$9!#\e(B
+\e$BL>A0$K$h$k3HD%%3%^%s%I$K$O!"$"$^$j;H$o$J$$$b$N$d!"FCDj$N%b!<%I$G$7$+;H\e(B
+\e$B$o$J$$$b$N$,$"$j$^$9!#$?$H$($P\e(B replace-string \e$B$G$9$,!"$3$l$OJ8;zNs$rCV\e(B
+\e$B49$9$k$b$N$G$9!#\e(BM-x \e$B$r%?%$%W$9$k$H!"\e(BXEmacs \e$B$O2hLL$N:G2<9T$K\e(B M-x \e$B$HI=<(\e(B
+\e$B$7F~NO$rB%$9$N$G!"$=$3$K%3%^%s%I$NL>A0!J$3$N>l9g\e(B "replace-string"\e$B!K$r\e(B
+\e$BF~$l$J$1$l$P$J$j$^$;$s!#\e(B"repl s<TAB>" \e$B$H$@$1%?%$%W$9$k$H\e(B XEmacs \e$B$,%3%^\e(B
+\e$B%s%IL>$rJd40$7$F$/$l$^$9!#%3%^%s%IL>$rF~$l$?$i\e(B <Return> \e$B$rBG$C$F2<$5$$!#\e(B
- \e$B8=$l$?!V%&%#%s%I%&!W$r>C$9$K$O!"\e(BC-x 1 \e$B$H%?%$%W$7$^$9!#\e(B
+"Replace string" \e$B%3%^%s%I$K$O0z?t$,Fs$DI,MW$G$9!#$I$NJ8;zNs$r$I$&CV49\e(B
+\e$B$9$k$+$G$9!#3F0z?t$rF~NO$9$k$?$S$K\e(B <Return> \e$B$rBG$C$F2<$5$$!#\e(B
-\e$B%b!<%I%i%$%s\e(B
-============
- \e$B$b$7$f$C$/$j$H%3%^%s%I$rBG$C$?$J$i$P!"2hLL$N2<Dl$N%(%3!<%(%j%"$H8F$P$l\e(B
-\e$B$k>l=j$KBG$C$?$b$N$,I=<($5$l$^$9!#%(%3!<%(%j%"$O2hLL$N\e(B1\e$B$P$s2<$N9T$G$9!#$=$N\e(B
-\e$B$9$0>e$N9T$O!"%b!<%I%i%$%s$H8F$P$l$F$$$^$9!#%b!<%I%i%$%s$O$3$s$JIw$KI=<($5\e(B
-\e$B$l$F$$$k$G$7$g$&!#\e(B
+>> \e$B%+!<%=%k$r$3$3$+$i#29T2<$N6u9T$K0\F0$5$;$F2<$5$$!#\e(B
+ M-x repl s<Return>changed<Return>Altered<Return> \e$B$H%?%$%W$7$^$7$g$&!#\e(B
- [--]J:--**-Mule: MULE.tut (Fundamental) ---NN%--------------
+ \e$B$3$N9T$,$I$&JQ$o$k$+\e(B(changed)\e$B8+$^$7$g$&!#$"$J$?$O%+!<%=%k0J9_A4It$N\e(B
+ c-h-a-n-g-e-d \e$B$H$$$&8l$r\e(B "altered" \e$B$KJQ$($?$N$G$9!#\e(B
-\e$BCm0U\e(B: NN%\e$B$N\e(BNN\e$B$O?t;z$,F~$C$F$$$^$9!#$"$J$?$,;H$C$F$$$k\e(BEmacs\e$B$N%b!<\e(B
- \e$B%I%i%$%s$H0c$&$+$bCN$l$J$$$1$I!"92$F$J$$$h$&$K!#Nc$($P!";~4V\e(B
- \e$B$d\e(Buptime\e$B$,I=<($5$l$F$$$k$N$O!"\e(Bdisplay-time\e$B$H$$$&5!G=$,F0$$$F\e(B
- \e$B$$$k$+$i$G$9!#\e(B
+\e$B!v<+F0%;!<%V\e(B
+============
- \e$B$3$N9T$K$h$C$FB?$/$NM-MQ$J>pJs$,F@$i$l$^$9!#\e(B
+\e$B%U%!%$%k$KJQ99$r2C$($F$^$@%;!<%V$7$F$$$J$$>l9g!"$=$l$i$NJQ99$O7W;;5!$,\e(B
+\e$B%/%i%C%7%e$9$k$H<:$o$l$F$7$^$&2DG=@-$,$"$j$^$9!#$=$&$$$&;vBV$rHr$1$k$?\e(B
+\e$B$a!"JT=8Cf$N3F%U%!%$%k$K$D$$$F<+F0%;!<%V%U%!%$%k$,Dj4|E*$K=q$+$l$^$9!#\e(B
+\e$B<+F0%;!<%V%U%!%$%k$OF,$H$*?,$K\e(B # \e$B$,IU$$$F$$$^$9!#Nc$($P\e(B "hello.c" \e$B$H$$\e(B
+\e$B$&%U%!%$%k$N<+F0%;!<%V%U%!%$%k$O\e(B "#hello.c#" \e$B$G$9!#DL>o$NJ}K!$G%U%!%$\e(B
+\e$B%k$r%;!<%V$7$?$H$-$K!"$=$&$$$&<+F0%;!<%V%U%!%$%k$O>C$5$l$^$9!#\e(B
+\e$B7W;;5!$,%/%i%C%7%e$7$?>l9g!"<+F0%;!<%V$5$l$?JT=8$r2sI|$5$;$k$3$H$,$G$-\e(B
+\e$B$^$9!#IaDL$K%U%!%$%k!JJT=8$7$F$$$?$b$N$G!"<+F0%;!<%V%U%!%$%k$8$c$"$j$^\e(B
+\e$B$;$s!K$r3+$-!"$=$l$+$i\e(B M-x recover file<Return> \e$B$H%?%$%W$9$k$N$G$9!#3N\e(B
+\e$BG'$r5a$a$F$-$^$9$N$G!"\e(Byes<Return> \e$B$H%?%$%W$7<+F0%;!<%V$5$l$?%G!<%?$r2s\e(B
+\e$BI|$7$^$9!#\e(B
- \e$B:#!"$"$J$?$,8+$F$$$k%U%!%$%kL>$rI=<($7$F$$$^$9!#\e(BNN%\e$B$O8=:_%9%/%j!<%s>e\e(B
-\e$B$K%U%!%$%k$N0lHV>e$+$i2?%Q!<%;%s%HL\$,I=<($5$l$F$$$k$+$r<($7$F$$$^$9!#%U%!\e(B
-\e$B%$%k$N0lHV:G=i$rI=<($7$F$$$k$J$i$P!"\e(B--Top--\e$B$HI=<($5$l$F$^$9!#%U%!%$%k$N0lHV\e(B
-\e$B:G8e$rI=<($7$F$$$k$J$i$P!"\e(B--Bot--\e$B$HI=<($5$l$^$9!#2hLL$NCf$K%U%!%$%k$NA4$F$,\e(B
-\e$BI=<($5$l$F$$$k$J$i$P!"\e(B--All--\e$B$HI=<($5$l$^$9!#\e(B
- \e$B%b!<%I%i%$%s$N>.3g8L$NCf$O!":#$I$s$J%b!<%I$KF~$C$F$$$k$+$r<($7$F$$$^$9!#\e(B
-\e$B8=:_$O!"%G%U%)%k%H$N\e(BFundamental\e$B$KF~$C$F$$$^$9!#$3$l$b%a%8%c!<%b!<%I$N0lNc$G\e(B
-\e$B$9!#\e(B
+\e$B!v%(%3!<%(%j%"\e(B
+==============
- Emacs\e$B$O\e(BLisp mode\e$B$d\e(BText mode\e$B$N$h$&$J$3$H$J$k%W%m%0%i%`8@8l$d%F%-%9%H$K\e(B
-\e$BBP$7$F%(%G%#%C%H$r9T$&$?$a$N4v$D$+$N%a%8%c!<%b!<%I$r;}$C$F$$$^$9!#$I$s$J;~\e(B
-\e$B$G$bI,$:$$$:$l$+$N%a%8%c!<%b!<%I$N>uBV$K$J$C$F$$$^$9!#\e(B
+\e$B$b$7$f$C$/$j$H%3%^%s%I$rBG$C$?$J$i$P!"2hLL$N2<$N%(%3!<%(%j%"$H8F$P$l\e(B
+\e$B$k>l=j$KBG$C$?$b$N$,I=<($5$l$^$9!#%(%3!<%(%j%"$O2hLL$N:G2<9T$G$9!#\e(B
- \e$B$=$l$>$l$N%a%8%c!<%b!<%I$O4v$D$+$N%3%^%s%I$rA4$/0c$&?6$kIq$$$K$7$F$7$^\e(B
-\e$B$$$^$9!#Nc$r>e$2$F$_$^$7$g$&!#%W%m%0%i%`$NCf$K%3%a%s%H$r:n$k%3%^%s%I$,$"$j\e(B
-\e$B$^$9!#%3%a%s%H$r$I$NMM$J7A<0$K$9$k$+$O!"3F%W%m%0%i%`8@8l$K$h$C$F0c$$$^$9$,!"\e(B
-\e$B$=$l$>$l$N%a%8%c!<%b!<%I$O!"$-$A$s$HF~$l$F$/$l$^$9!#\e(B
- \e$B$=$l$>$l$N%a%8%c!<%b!<%I$KF~$k$?$a$N%3%^%s%I$O%b!<%IL>$N3HD%$5$l$?$b$N\e(B
-\e$B$K$J$C$F$$$^$9!#Nc$($P!"\e(BM-x fundamental-mode\e$B$O\e(BFundamental\e$B$KF~$k$?$a$N$b$N$G\e(B
-\e$B$9!#\e(B
+\e$B!v%b!<%I%i%$%s\e(B
+==============
- \e$B$b$7!"1Q8l$r%(%G%#%C%H$9$k$J$i$P!"\e(BText mode\e$B$KF~$j$^$9!#\e(B
+\e$B%(%3!<%(%j%"$N$9$0>e$N9T$O!"%b!<%I%i%$%s$H8F$S$^$9!#%b!<%I%i%$%s$O$3$s$JIw$K8+$($k$G$7$g$&!#\e(B
- >> M-x text-mode <Retuen>\e$B$H%?%$%W$7$J$5$$!#\e(B
+ISO7-----XEmacs: TUTORIAL.ja (Fundamental)--L670--58%----------------
- \e$B8=:_$N%a%8%c!<%b!<%I$K$D$$$F$N%I%-%e%a%s%H$r8+$?$$;~$O!"\e(BC-h m\e$B$H%?%$%W\e(B
-\e$B$7$^$9!#\e(B
+\e$B$3$N9T$O\e(B XEmacs \e$B$N>uBV5Z$SJT=8Cf$NJ8>O$K$D$$$FM-1W$J>pJs$rM?$($F$/$l$^\e(B
+\e$B$9!#\e(B
- >> C-h m \e$B$r;H$C$F\e(BText mode\e$B$H\e(BFundamental mode\e$B$N0c$$$rD4$Y$J$5$$!#\e(B
+\e$B%U%!%$%kL>$K$D$$$F$O$b$&J,$C$F$$$^$9$M!#$=$l$O$"$J$?$,3+$$$?%U%!%$%k$G\e(B
+\e$B$9!#\e(B-NN%-- \e$B$OJ8>OCf$N8=:_0LCV$r<($7$F$$$^$9!#J8>O$N\e(B NN% \e$B$,2hLL:G>eCJ$h\e(B
+\e$B$jA0$K$"$k$H$$$&$3$H$G$9!#$b$7J8>O$N:G=i$N9T$,2hLL$K$"$k;~$K$O\e(B --00%--
+\e$B$NBe$j$K\e(B --Top-- \e$B$HI=<($7$^$9!#$b$7J8>O$N:G8e$N9T$,2hLL$K$"$k;~$K$O\e(B
+--Bot-- \e$B$HI=<($7$^$9!#$b$72hLL$KA4It<}$^$C$F$7$^$&$h$&$JC;$$J8>O$r8+$F\e(B
+\e$B$$$k$H$-$K$O\e(B --All-- \e$B$HI=<($7$^$9!#\e(B
+
+\e$B3g8L$K0O$^$l$?ItJ,$O$I$&$JJT=8%b!<%I$K$$$k$+$r<($7$^$9!#%G%U%)%k%H$O\e(B
+"Fundamental" \e$B$H$$$&%b!<%I!"$3$l$,8=:_$N%b!<%I$G$9!#$3$l$O!V%a%8%c!<%b!<\e(B
+\e$B%I!J\e(Bmajor mode\e$B!K!W$N0lNc$G$9!#\e(B
+
+XEmacs \e$B$K$OB?$/$N<oN`$N%a%8%c!<%b!<%I$,$"$j$^$9!#\e(BLisp mode \e$B$d\e(BText mode
+\e$B$N$h$&$K!"$I$s$J%W%m%0%i%`8@8l$d$I$s$J<oN`$NJ8>O$rJT=8Cf$+$r0UL#$9$k$b\e(B
+\e$B$N$b$"$j$^$9!#$$$D$G$bI,$:$$$:$l$+$N%a%8%c!<%b!<%I$N>uBV$K$J$C$F$$$^$9!#\e(B
+\e$B$I$N%a%8%c!<%b!<%I$K$$$k$N$+$O!"%b!<%I%i%$%s$N8=:_$O\e(B "Fundamental" \e$B$H\e(B
+\e$BI=<($7$F$$$kItJ,$r8+$l$PJ,$j$^$9!#\e(B
+
+\e$B3F%a%8%c!<%b!<%I$O4v$D$+$N%3%^%s%I$K0[$J$k?6$kIq$$$r$5$;$^$9!#Nc$($P!"\e(B
+\e$B%W%m%0%i%`%j%9%HCf$K%3%a%s%H$rF~$l$k$?$a$N%3%^%s%I$,$"$j$^$9!#%3%a%s%H\e(B
+\e$B$N7A<0!J%7%s%?%C%/%9!K$O!"%W%m%0%i%`8@8l$K$h$C$F0[$J$j!"%a%8%c!<%b!<%I\e(B
+\e$B$O!"$=$l$KBP1~$9$k8@8l$K9g$C$?7A<0$G%3%a%s%H$rA^F~$7$^$9!#3F%a%8%c!<%b!<\e(B
+\e$B%I$O3HD%%3%^%s%I$NL>A0$K$J$C$F$$$^$9!#$D$^$j$=$N3HD%%3%^%s%I$r;H$C$F%a\e(B
+\e$B%8%c!<%b!<%I$r@Z$j49$($k$N$G$9!#Nc$($P!"\e(BM-x fundamental-mode \e$B$H$$$&$N\e(B
+\e$B$O\e(B Fundamental \e$B%b!<%I$K@Z$j49$($k$?$a$N%3%^%s%I$G$9!#\e(B
+
+\e$B$b$7!"DL>o$N1Q8l$dF|K\8l$NJ8>O!J$3$N%U%!%$%k$N$h$&$J!K$rJT=8$9$k$N$J$i\e(B
+\e$B$P!"\e(BText mode \e$B$r;H$$$^$7$g$&!#\e(B
+
+>> M-x text-mode <Retuen> \e$B$H%?%$%W$7$F$_$F2<$5$$!#\e(B
+
+\e$B?4G[$7$J$$$G!#$3$l$^$G3X$s$@%3%^%s%I$O$?$$$7$FJQ$o$j$^$;$s$+$i!#$@$1$I!"\e(B
+M-f \e$B$d\e(B M-b \e$B$,%"%]%9%H%m%U%#\e(B "'" \e$B$rC18l$N0lIt$@$H2r<a$9$k$h$&$K$J$C$?$N\e(B
+\e$B$,J,$k$G$7$g$&!#0JA0$N\e(B Fundamental \e$B%b!<%I$G$O\e(B M-f \e$B$d\e(B M-b \e$B$O\e(B "'" \e$B$rC18l\e(B
+\e$B$N6h@Z$j$H8+$J$7$F$$$^$7$?!#\e(B
+
+\e$B%a%8%c!<%b!<%I$O$3$N$h$&$K:3:Y$J0c$$$r@8$_$^$9!#Bg35$N%3%^%s%I$O$I$N%a\e(B
+\e$B%8%c!<%b!<%I$G$bF1$8F/$-$r$7$^$9$,!"<B:]$NF0$-$O>/$7$@$1$3$H$J$k$N$G$9!#\e(B
+
+\e$B8=:_$N%a%8%c!<%b!<%I$K$D$$$F$N@bL@J8$r8+$k$K$O\e(B C-h m \e$B$H%?%$%W$7$^$9!#\e(B
+
+>> C-u C-v \e$B$r0lFsEY$d$C$F$3$N9T$r2hLL$N>e$NJ}$K;}$C$F$$$-$^$7$g$&!#\e(B
+>> C-h m \e$B$H%?%$%W$7!"\e(BText mode \e$B$H\e(B Fundamental mode \e$B$N0c$$$r$_$^$7$g$&!#\e(B
+>> q \e$B$G\e(B Text mode \e$B$N@bL@J8$r2hLL$+$i>C$7$^$7$g$&!#\e(B
+
+\e$B%a%8%c!<%b!<%I$,!V%a%8%c!<!W$H$$$&$+$i$K$O!V%^%$%J!<%b!<%I!W$b$"$j$^$9!#\e(B
+\e$B%^%$%J!<%b!<%I$O%a%8%c!<%b!<%I$NBe$o$j$K$J$k$b$N$G$O$J$/!"$=$l$r$A$g$C\e(B
+\e$B$H$@$1=$@5$9$k$b$N$G$9!#3F%^%$%J!<%b!<%I$O!"%a%8%c!<%b!<%I$dB>$N%^%$%J!<\e(B
+\e$B%b!<%I$K1F6A$rM?$($:$K!"$=$l$@$1$r%*%s%*%U$G$-$^$9!#$D$^$j!"%^%$%J!<%b!<\e(B
+\e$B%I$rA4$/;H$o$J$+$C$?$j!"0l8D$@$1;H$C$?$j!"$$$/$D$+$rF1;~$K;H$C$?$j$G$-\e(B
+\e$B$k$N$G$9!#\e(B
+
+\e$BDL>o$NJ8>O$rJT=8$7$F$$$k;~$K$H$F$bJXMx$J%^%$%J!<%b!<%I$N0l$D$K%*!<%H%U%#\e(B
+\e$B%k!J\e(BAuto Fill\e$B!K%b!<%I$H$$$&$N$,$"$j$^$9!#$3$N%b!<%I$,%*%s$N;~$KJ8>O$r\e(B
+\e$BF~NO$7$F$$$C$F9T$rD9$/$7$9$.$?>l9g!"<+F0E*$KC18l$HC18l$N4V$G9T$,J,3d$5\e(B
+\e$B$l$^$9!JF|K\8l$N>l9g$O$I$NJ8;z$N4V$G$b!K!#\e(B
+
+Auto Fill \e$B%b!<%I$O\e(B M-x auto-fill-mode<Return> \e$B$H$d$l$P%*%s$K$G$-$^$9!#\e(B
+\e$B$=$l$,%*%s$N>uBV$G\e(B M-x auto-fill-mode<Return> \e$B$H$d$l$,%*%U$K$G$-$^$9!#\e(B
+\e$B$3$N%3%^%s%I$O!"%b!<%I$,%*%U$J$i%*%s$K!"%*%s$J$i%*%U$K$9$k$N$G$9!#$3$&\e(B
+\e$B$$$&$N$r!V%b!<%I$r%H%0%k$9$k!W$H8@$$$^$9!#\e(B
+
+>> M-x auto-fill-mode<Return> \e$B$H%?%$%W$7$F!"\e(B "asdf " \e$B$G;O$^$k9T$rF~NO\e(B
+ \e$B$7$F2<$5$$!#9T$,J,3d$5$l$k$^$G2?EY$b\e(B "asdf " \e$B$H%?%$%W$7$^$7$g$&!#%9\e(B
+ \e$B%Z!<%9$rK:$l$:$K!#\e(BAuto Fill \e$B$O%9%Z!<%9$,F~NO$5$l$?;~$N$_F/$-$^$9!#\e(B
+
+\e$B1&%^!<%8%s$ODL>o\e(B 70 \e$BJ8;z!J%+%i%`!K$G$9$,!"\e(BC-x f \e$B%3%^%s%I$G$3$l$rJQ99$9\e(B
+\e$B$k$3$H$,$G$-$^$9!#;XDj$NJ8;z?t$r?tCM0z?t$H$7$FM?$($^$9!#\e(B
+
+>> \e$B?tCM0z?t\e(B 20 \e$B$G\e(B C-x f \e$B$r$d$j$^$7$g$&!#\e(B (C-u 2 0 C-x f)\e$B!#\e(B
+ \e$B$=$l$+$iE,Ev$JJ8>O!J1Q8l!K$rF~NO$7!"\e(B20 \e$BJ8;z$G9T$,J,3d$5$l$k$N$r8+$F\e(B
+ \e$B$_$^$7$g$&!#$=$l$+$i\e(B C-x f \e$B%3%^%s%I$G$^$?%^!<%8%s$r\e(B 70 \e$BJ8;z$KLa$7$F\e(B
+ \e$B2<$5$$!#\e(B
+
+\e$B%Q%i%0%i%U$NESCf$rJQ99$7$F$b\e(B Auto Fill \e$B%b!<%I$O$=$l$r<+F0E*$K%U%#%k$7\e(B
+\e$BD>$7$O$7$^$;$s!#\e(B
+\e$B%Q%i%0%i%U$r%U%#%k$7D>$9$K$O%+!<%=%k$r$=$N%Q%i%0%i%U$NCf$KCV$$$F$+$i\e(B
+M-q \e$B$r%?%$%W$7$^$9!#\e(B
+
+>> \e$B%+!<%=%k$r$3$N9TD>A0$N%Q%i%0%i%U$K0\F0$5$;\e(B M-q \e$B$H%?%$%W$7$F2<$5$$!#\e(B
+
+\e$B!v8!:w\e(B
+======
- >> C-x 1\e$B$G%I%-%e%a%s%H$r2hLL$+$i>C$7$J$5$$!#\e(B
+\e$BJ8>OCf$NFCDj$NJ8;zNs$r!"A08~$-$K$b8e8~$-$K$bC5$9;v$,$G$-$^$9!#J8;zNs$r\e(B
+\e$BC5$9$H$$$&$N$O%+!<%=%k0\F0%3%^%s%I$G$9!#$D$^$j!"<!$K$=$NJ8;zNs$,8=$l$k\e(B
+\e$B>l=j$^$G%+!<%=%k$r0\F0$5$;$k$N$G$9!#\e(B
- \e$B:8C<$N\e(B '[--]' \e$B$O8=:_$N%-!<F~NO$N%b!<%I$r<($7$F$$$^$9!#\e(B[--] \e$B$N;~$K$O\e(B
-\e$B1Q8l%"%k%U%!%Y%C%H$,$=$N$^$^F~NO$G$-$^$9!#F~NO%b!<%I$K$D$$$F$N>\$7$$@bL@$O\e(B
-\e$B!V$?$^$4!W$N%^%K%e%"%k$rD4$Y$F2<$5$$!#\e(B
+XEmacs \e$B$N8!:w%3%^%s%I$OB>$NBg35$N%(%G%#%?$N8!:w%3%^%s%I$H$O0[$j!V%$%s\e(B
+\e$B%/%j%a%s%?%k!W$G$9!#8!:w$9$kJ8;zNs$r%?%$%W$7$F$$$k$=$P$+$i8!:w$,5/$k$N\e(B
+\e$B$G$9!#\e(B
- \e$B$=$N$9$01&$K$O%3!<%IBN7O\e(B (coding-system) \e$B$K4X$9$k%U%i%0$N>uBV$,I=\e(B
-\e$B<($5$l$F$$$^$9!#\e(BMule \e$B$O!"%U%!%$%kF~=PNO!"F~NO!"2hLL=PNO$K$D$$$F!"$=$l$>$lFH\e(B
-\e$BN)$K%3!<%IBN7O$r;XDj$5$;$k$3$H$,=PMh$^$9$,!"DL>o$O%U%!%$%kMQ$N%3!<%IBN7O$N\e(B
-\e$B%K!<%b%K%C%/$N$_I=<($7$F$$$^$9!#\e(B
+\e$B8!:w$r;O$a$k$?$a$N%3%^%s%I$O!"A08~$-$K8!:w$9$k$J$i$P\e(B C-s\e$B!"8e8~$-$J$i\e(B
+C-r \e$B$G$9!#$^$@$G$9!*!*:#$O$^$@;n$5$J$$$G2<$5$$!#\e(B
- >> \e$B%b!<%I%i%$%s>e$K\e(B"J:","S:",\e$B$b$7$/$O\e(B "E:"\e$B$,I=<($5$l$F$$$k$+$I$&$+3N\e(B
- \e$BG'$7$J$5$$!#\e(B
+C-s \e$B$rBG$D$H\e(B "I-search" \e$B$H$$$&J8;zNs$,%(%3!<%(%j%"$KI=<($5$l$k$N$,8+$(\e(B
+\e$B$k$G$7$g$&!#$3$l$O\e(B XEmacs \e$B$,%$%s%/%j%a%s%?%k8!:w$H$$$&>uBV$K$$$F!"$"$J\e(B
+\e$B$?$,C5$7$?$$J8;zNs$rF~NO$9$k$N$rBT$C$F$$$k$N$G$9!#\e(B<Return> \e$B$rBG$F$P8!\e(B
+\e$B:w$r=*$o$l$^$9!#\e(B
- \e$B:G=i$N0lJ8;z$,%3!<%IBN7O$N%K!<%b%K%C%/!"<!$N\e(B ':' \e$B$,8=:_1Q8l0J30$NJ8;z\e(B
-\e$B!JF|K\8l!"Cf9q8l$J$I!K$b$A$c$s$HI=<($9$k$H$$$&$3$H$r<($7$F$$$^$9!#\e(BJ\e$B$O\e(BJUNET
-\e$B$G;H$o$l$F$$$k\e(B JIS \e$B%3!<%I!"\e(BS \e$B$O\e(B Shift-JIS\e$B!"\e(BE \e$B$OF|K\8l\e(BEUC \e$B$r<($7$F$$$^$9!#\e(B
-\e$BB?9q8l$NI=<($NM-L5$O\e(B C-x C-k t \e$B$G\e(B ON/OFF\e$B$N%H%0%k$,$G$-$^$9!#\e(B
+>> \e$B$5$F\e(B C-s \e$B$H%?%$%W$7$F8!:w$r;O$a$^$7$g$&!#$f$C$/$j$H#1J8;z$:$D\e(B
+ "cursor" \e$B$H$$$&C18l$rF~NO$7$^$9!##1J8;zBG$DKh$K%+!<%=%k$,$I$&F0$/$+\e(B
+ \e$B8+$^$7$g$&!#\e(B
+ \e$B$5$"!"\e(B"cursor" \e$B$,#12s8+$D$+$j$^$7$?!#\e(B
+>> \e$B$b$&0lEY\e(B C-s \e$B$HBG$C$F<!$N\e(B "cursor" \e$B$r8+$D$1$^$7$g$&!#\e(B
+>> \e$B:#EY$O\e(B <Delete> \e$B$r#42sBG$C$F!"%+!<%=%k$NF0$-$r8+$F2<$5$$!#\e(B
+>> <Return> \e$B$HBG$C$F8!:w$r=*N;$7$^$7$g$&!#\e(B
- \e$B<!$NNc$O!"0lEYB?9q8lI=<($r\e(BOFF\e$B$7$F$+$i!"$b$&0lEY\e(BON\e$B$r9T$C$F$_$^$9!#\e(B
+\e$B2?$,5/$C$?$+J,$j$^$9$+!)%$%s%/%j%a%s%?%k8!:w$G$O!"JXMx$J$?$a$K%O%$%i%$\e(B
+\e$B%H$r$7!"$"$J$?$,$=$l$^$G$KBG$C$?J8;zNs$,8=$l$k$H$3$m$K9T$3$&$H$7$^$9!#\e(B
+\e$B<!$N\e(B "cursor" \e$B$K9T$/$K$O$b$&0lEY\e(B C-s \e$B$HBG$A$^$9!#$b$7$b$&$=$&$$$&J8;z\e(B
+\e$BNs$,L5$+$C$?$i!"%Y%k$r$J$i$7$F8!:w$,8=:_$O<:GT$7$F$$$k$3$H$rCN$i$;$^$9!#\e(B
+C-g \e$B$rBG$F$P8!:w$r=*$o$l$^$9!#\e(B
- >> C-x C-k t\e$B$r\e(B2\e$BEY9T$$$J$5$$!#\e(B
+\e$BCm0U!'%7%9%F%`$K$h$C$F$O\e(B C-s \e$B$H%?%$%W$9$k$H2hLL$,F0$+$J$/$J$j\e(B XEmacs
+\e$B$,I=<($7$h$&$H$9$k$b$N$,2?$b2hLL$K=P$J$/$J$j$^$9!#$3$l$O!"%U%m!<%3%s%H\e(B
+\e$B%m!<%k$H8F$P$l$k#O#S$N5!G=$,\e(B C-s \e$B$rB*$(!"\e(BXEmacs \e$B$KEO$5$J$$$h$&$K$7$F$$\e(B
+\e$B$k$N$G$9!#$3$l$r2r=|$9$k$K$O\e(B C-q \e$B$r%?%$%W$7$^$9!#$=$l$+$i\e(B XEmacs \e$B%^%K%e\e(B
+\e$B%"%k$N\e(B "Spontaneous Entry to Incremental Search (\e$BCN$i$L4V$K%$%s%/%j%a\e(B
+\e$B%s%?%k%5!<%A$K$J$k\e(B)" \e$B$N@a$rFI$s$G$/$@$5$$!#$3$N$d$C$+$$$J#O#S$N5!G=$K\e(B
+\e$B$I$&BP=h$9$l$PNI$$$+$,:\$C$F$$$^$9!#\e(B
- \e$BF~NO%b!<%I$,\e(BJIS\e$B%3!<%I$N@_Dj$H$J$C$F$$$k;~!"$b$7$"$J$?$N;H$C$F$$$kC<Kv\e(B
-\e$B$K%a%?!&%-!<$,IU$$$F$$$k$J$i!"%(%9%1!<%W!&%-!<$NBe$o$j$K$=$l$r;H$&$3$H$,=P\e(B
-\e$BMh$^$9!#$=$N;~!"%a%?!&%-!<$N;H$$J}$O%3%s%H%m!<%k!&%-!<$HF1MM$K2!$7$J$,$iJ8\e(B
-\e$B;z$r%?%$%W$7$^$9!#\e(BESC <\e$BJ8;z\e(B>\e$B$b\e(BM-<\e$BJ8;z\e(B>\e$B$bF1$8F/$-$r$7$^$9!#:#$^$G$N@bL@$G\e(BESC
-<\e$BJ8;z\e(B>\e$B$H9T$J$C$F$$$?$H$3$m$,!"\e(BM-<\e$BJ8;z\e(B>\e$B$H$J$j$^$9!#Cm0U$7$J$1$l$P$J$i$J$$$N\e(B
-\e$B$O!"%7%U%H\e(BJIS\e$B$d\e(BEUC\e$B%3!<%I$N;~$O;HMQ$G$-$^$;$s!#\e(B
+\e$B%$%s%/%j%a%s%?%k8!:w$NESCf$G\e(B <Delete> \e$B$rBG$D$H8!:wJ8;zNsCf$N#1HV8e$m$N\e(B
+\e$BJ8;z$,>C$($^$9!#$=$7$F!"%+!<%=%k$O!"A02s$N0LCV$KLa$j$^$9!#$?$H$($P!"\e(B
+"c" \e$B$H%?%$%W$7$F:G=i$N\e(B "c" \e$B$rC5$7$^$9!#$=$l$+$i\e(B "u" \e$B$rBG$D$H:G=i$N\e(B
+"cu" \e$B$N>l=j$K%+!<%=%k$,F0$-$^$9!#$=$3$G\e(B <Delete> \e$B$rBG$D$H\e(B "u" \e$B$r8!:wJ8\e(B
+\e$B;zNs$+$i>C$7$F!"%+!<%9%k$O:G=i$K\e(B "c" \e$B$,8=$l$?>l=j$KLa$j$^$9!#\e(B
- \e$B%3!<%IBN7O$N$N@Z$jBX$($O!"3F!9$N%P%C%U%!$KBP$7$F$N$_M-8z$G$9!#$=$l$>$l\e(B
-\e$B$N!"%3!<%IBN7O;XDj$K$D$$$F$O!"\e(BC-h a coding-system <Return>\e$B$G8+$k$3$H\e(B
-\e$B$,=PMh$^$9!#\e(B
- >> C-h a coding-system <Return>\e$B$G=P$F$/$k%I%-%e%a%s%HCf$N!"\e(B
- set-display-coding-system, set-file-coding-system,
- set-process-coding-system \e$B$N@bL@$rFI$_$J$5$$!#\e(B
+C-s \e$B$O!"8=:_$N%+!<%=%k0LCV0J9_$K=P$F$/$k8!:wJ8;zNs$rC5$7;O$a$^$9!#$b$7!"\e(B
+\e$BJ8>O$NA0$NJ}$rC5$7$?$+$C$?$i!"\e(BC-r \e$B$r%?%$%W$7$^$9!#$3$l$^$G$N\e(B C-s \e$B$K$D\e(B
+\e$B$$$F$N@bL@$O$9$Y$F\e(B C-r \e$B$K$bEv$F$O$^$j$^$9!#8!:w$NJ}8~$,H?BP$J$@$1$G$9!#\e(B
-\e$B8!:w\e(B
-=====
+\e$B!vJ#?t$N%&%#%s%I%&\e(B
+==================
- \e$BJ8;zNs$r!"%U%!%$%kFb$G!"A0J}Kt$O8eJ}$K!"C5$9;v$,$G$-$^$9!#8!:w$r;O$a$k\e(B
-\e$B%3%^%s%I$O!"%+!<%=%k0LCV0J9_$r8!:w$9$k$J$i$P\e(B C-s\e$B!"%+!<%=%k0LCV0JA0$J$i$P\e(B
-C-r \e$B$G$9!#\e(BC-s \e$B$r%?%$%W$9$k$H!"%(%3!<%(%j%"$K\e(B "I-search:"\e$B$H$$$&J8;zNs$,%W%m\e(B
-\e$B%s%W%H$H$7$FI=<($5$l$^$9!#\e(BESC\e$B$r2!$9$H!"=*N;$G$-$^$9!#\e(B
+XEmacs \e$B$NAGE($J5!G=$N0l$D$H$7$F!"0l$D$N2hLL$KF1;~$K$$$/$D$b$N%&%#%s%I\e(B
+\e$B%&$rI=<($9$k$3$H$,$G$-$^$9!#\e(B
+>> \e$B%+!<%=%k$r$3$N9T$K;}$C$F$-$F\e(B C-u 0 C-l \e$B$H%?%$%W$7$F2<$5$$!#\e(B
- >> C-s\e$B$G8!:w$,;O$^$j$^$9!#$=$l$+$i!"$f$C$/$j$H#1J8;z$:$D\e(B"cursor"\e$B$H$$\e(B
- \e$B$&C18l$rF~NO$7$^$9!##1J8;zF~NO$9$k$4$H$K!"%+!<%=%k$O!"$I$s$JF0$-\e(B
- \e$B$r$7$^$9$+\e(B?
+>> \e$B$=$l$+$i\e(B C-x 2 \e$B$H%?%$%W$72hLL$r#2$D$N%&%#%s%I%&$KJ,3d$7$^$7$g$&!#\e(B
+ \e$B$I$A$i$N%&%#%s%I%&$b$3$NF~Lg%,%$%I$rI=<($7$F$$$^$9!#%+!<%=%k$O>e$N\e(B
+ \e$B%&%#%s%I%&$K$"$j$^$9!#\e(B
- >> \e$B$b$EY\e(B C-s \e$B$r%?%$%W$9$k$H!"<!$N\e(B"cursor"\e$B$r8+$D$1$i$l$^$9!#\e(B
+>> C-M-v \e$B$H%?%$%W$72<$N%&%#%s%I%&$r%9%/%m!<%k$5$;$^$7$g$&!#\e(B
+ \e$B!J%a%?%-!<$,$J$$>l9g$O\e(B ESC C-v \e$B$H%?%$%W$7$^$9!#!K\e(B
- >> <Delete>\e$B$r#42sF~NO$7$F!"%+!<%=%k$NF0$-$r8+$J$5$$!#\e(B
+>> C-x o \e$B!J\e(B"o" \e$B$O\e(B "other\e$B!JB>J}!K\e(B" \e$B$r0UL#$7$^$9!K$r%?%$%W$72<$N%&%#%s%I\e(B
+ \e$B%&$K%+!<%=%k$r0\$7$F2<$5$$!#\e(B
+>> \e$B2<$N%&%#%s%I%&$G\e(B C-v \e$B$d\e(B M-v \e$B$r;H$C$F%9%/%m!<%k$5$;$^$7$g$&!#\e(B
+ \e$B$3$3$K=q$$$F$"$k;X<($O>e$N%&%#%s%I%&$GFI$_?J$s$G$/$@$5$$!#\e(B
- >> ESC\e$B$r2!$7$F!"=*N;$7$^$9!#\e(B
+>> \e$B$b$&0lEY\e(B C-x o \e$B$H%?%$%W$7!"%+!<%=%k$r>e$N%&%#%s%I%&$KLa$7$^$9!#\e(B
+ \e$B%+!<%=%k$O>e$N%&%#%s%I%&$N85$"$C$?0LCV$KLa$j$^$9!#\e(B
- \e$BC5$7$?$$J8;zNs$r%?%$%WCf$G$b!"%?%$%W$7$?J8;zItJ,$@$1$G!"8!:w$r;O$a$^$9!#\e(B
-\e$B<!$NJ8;z$rC5$9$K$O!":F$S\e(BC-s\e$B$r%?%$%W$7$^$9!#$b$7!"J8;zNs$,B8:_$7$J$+$C$?$i!"\e(B
-\e$B%a%C%;!<%8$,I=<($5$l$^$9!#\e(BC-g \e$B$G$b=*N;$G$-$^$9!#\e(B
+C-x o \e$B$r;H$C$F%&%#%s%I%&4V$r9T$C$?$jMh$?$j$G$-$^$9!#3F%&%#%s%I%&$O$=$l\e(B
+\e$B<+?H$N%+!<%=%k0LCV$rJ];}$7$F$$$^$9$,!"0lEY$K$O0l$D$N%&%#%s%I%&$@$1$,%+!<\e(B
+\e$B%=%k$rI=<($7$^$9!#DL>o$NJT=8%3%^%s%I$O3'%+!<%=%k$,$"$k%&%#%s%I%&$KBP$7\e(B
+\e$B$FF/$-$^$9!#$=$N%&%#%s%I%&$r\e(B "selected window (\e$BA*BrCf$N%&%#%s%I%&\e(B)" \e$B$H\e(B
+\e$B8F$S$^$9!#\e(B
- \e$B8!:w<B9TCf$K\e(B<Delete>\e$B$rF~NO$9$k$H!"8!:wJ8;zNs$N#1HV8e$m$NJ8;z$,>C$($^$9!#\e(B
-\e$B$=$7$F!"%+!<%=%k$O!"A02s$N0LCV$KLa$j$^$9!#$?$H$($P!"\e(B"cu"\e$B$H%?%$%W$7$F!":G=i\e(B
-\e$B$N\e(B"cu"\e$B$N0LCV$K%+!<%=%k$,F0$$$?$H$7$^$9!#$3$3$G\e(B<Delete>\e$B$rF~NO$9$k$H!"%5!<%A\e(B
-\e$B%i%$%s$N\e(B'u'\e$B$,>C$(!"%+!<%=%k$O!"\e(B'u'\e$B$r%?%$%W$9$kA0$K!"%+!<%=%k$,$"$C$?\e(B'c'\e$B$N0L\e(B
-\e$BCV$K!"0\F0$7$^$9!#\e(B
+C-M-v \e$B%3%^%s%I$O!"0l$D$N%&%#%s%I%&$GJ8>O$rJT=8Cf$KB>$N%&%#%s%I%&$r;2>H\e(B
+\e$B$7$F$$$k;~$KLrN)$A$^$9!#JT=8Cf$N>l=j$K%+!<%=%k$rJ]$C$?$^$^!"\e(BC-M-v \e$B$GB>\e(B
+\e$B$N%&%#%s%I%&$rFI$_?J$a$F9T$/$3$H$,$G$-$^$9!#\e(B
- \e$B8!:w<B9TCf$K!"\e(BC-s \e$B$d\e(B C-r \e$B0J30$N%3%s%H%m!<%kJ8;z$r%?%$%W$9$k$H!"8!:w$O\e(B
-\e$B=*N;$7$^$9!#\e(B
+C-M-v \e$B$O%3%s%H%m!<%k%a%?J8;z$N0lNc$G$9!#%a%?%-!<$,$"$k>l9g$O!"%3%s%H%m!<\e(B
+\e$B%k%-!<$H%a%?%-!<$r2!$7$J$,$i\e(B v \e$B$r%?%$%W$7$^$9!#%3%s%H%m!<%k%-!<$H%a%?\e(B
+\e$B%-!<$O$I$A$i$r@h$K2!$7$F$b9=$$$^$;$s!#$I$A$i$b$=$N8e$K%?%$%W$5$l$kJ8;z\e(B
+\e$B$KBP$9$k=$>~%-!<\e(B (modifier key) \e$B$H$7$FF/$/$+$i$G$9!#\e(B
- C-s \e$B$O!"8=:_$N%+!<%=%k0LCV0J9_$K=P$F$/$k8!:wJ8;zNs$rC5$7$^$9!#$b$7!"A0\e(B
-\e$B$NJ}$rC5$7$?$+$C$?$i!"\e(BC-r \e$B$r%?%$%W$9$k$3$H$G!"5UJ}8~8!:w$,$G$-$^$9!#\e(BC-s \e$B$H\e(B
-C-r \e$B$O!"8!:w$NJ}8~$,H?BP$J$@$1$G!"A4$FF1$8F/$-$r$7$^$9!#\e(B
+\e$B%a%?%-!<$,L5$$>l9g!"\e(BESC \e$B%-!<$r;H$$$^$9$,!"$3$N>l9g=gHV$,Bg;v$G$9!#$^$:\e(B
+ESC \e$B$r2!$7$F$+$iN%$7$F\e(B CTRL-v \e$B$rBG$A$^$9!#\e(BCTRL-ESC v \e$B$G$OBLL\$G$9!#$3\e(B
+\e$B$l$O\e(BESC \e$B$O$=$l<+BN$,0l$D$NJ8;z$G=$>~%-!<$G$O$J$$$+$i$G$9!#\e(B
-\e$B%j%+!<%7%V\e(B \e$B%(%G%#%F%#%s%0\e(B \e$B%l%Y%k\e(B
+>> \e$B>e$N%&%#%s%I%&$G\e(B C-x 1 \e$B$H%?%$%W$72<$N%&%#%s%I%&$r>C$7$^$7$g$&\e(B
- \e$B$H$-$I$-!"!JITK\0U$K!K%j%+!<%7%V\e(B \e$B%(%G%#%F%#%s%0\e(B \e$B%l%Y%k$H8F$P$l$k>uBV$K\e(B
-\e$BF~$k$3$H$,$"$j$^$9!#%a%8%c!<%b!<%I$N>.3g8L\e(B'()'\e$B$N2s$j$rCf3g8L\e(B'[]'\e$B$G0O$s$@$b\e(B
-\e$B$N$,%b!<%I%i%$%s>e$KI=<($5$l$^$9!#Nc$($P!"\e(B(Fundamental)\e$B$HI=<($5$l$kBe$o$j$K\e(B
-[(Fundamental)]\e$B$N$h$&$K$J$j$^$9!#\e(B
+\e$B!J$b$72<$N%&%#%s%I%&$G\e(B C-x 1 \e$B$H%?%$%W$9$k$H>e$N%&%#%s%I%&$,>C$($^$9!#\e(B
+\e$B$3$N%3%^%s%I$O!V8=:_<+J,$,$$$k%&%#%s%I%&$@$1$K$7$J$5$$!W$H$$$&$b$N$@$H\e(B
+\e$B;W$C$F2<$5$$!#!K\e(B
-\e$BCm0U\e(B: \e$B$3$3$G$O%j%+!<%7%V\e(B \e$B%(%G%#%F%#%s%0\e(B \e$B%l%Y%k<+BN$K$D$$$F$O@bL@$7\e(B
- \e$B$^$;$s!#\e(B
+\e$BF1$8%P%C%U%!$rN>J}$N%&%#%s%I%&$KI=<($9$kI,MW$O$"$j$^$;$s!#0lJ}$N%&%#%s\e(B
+\e$B%I%&$G\e(B C-x C-f \e$B$G%U%!%$%k$r3+$$$F$bB>J}$N%&%#%s%I%&$OJQ2=$7$^$;$s!#3F\e(B
+\e$B%&%#%s%I%&$K$*$$$FJL!9$N%U%!%$%k$r3+$/$3$H$,$G$-$k$N$G$9!#\e(B
- \e$B%j%+!<%7%V\e(B \e$B%(%G%#%F%#%s%0\e(B \e$B%l%Y%k$+$iH4$1$G$k$?$a$K$O!"\e(BM-x top-level
-<Return>\e$B$H%?%$%W$7$^$9!#\e(B
+>> C-x 4 C-f \e$B$H%?%$%W$7B3$1$F2?$+<+J,$N%U%!%$%kL>$rF~NO$7$F2<$5$$!#\e(B
+ <Return> \e$B$GF~NO$r=*$o$i$;$F2<$5$$!#:#;XDj$7$?%U%!%$%k$,2<$N%&%#%s%I\e(B
+ \e$B%&$K8=$l$^$9!#%+!<%=%k$b$=$C$A$K0\$j$^$9!#\e(B
- >> \e$B;n$7$F$_$F2<$5$$!#%9%/%j!<%s$NDl$K\e(B"Back to top level"\e$B$HI=<($5$l$^\e(B
- \e$B$9!#\e(B
+>> C-x o \e$B$H%?%$%W$7>e$N%&%#%s%I%&$KLa$C$F2<$5$$!#$=$l$+$i\e(B C-x 1 \e$B$G2<$N\e(B
+ \e$B%&%#%s%I%&$r>C$7$^$7$g$&!#\e(B
- \e$BK\Ev$O!"$3$N;n$_$,9T$o$l$?;~$O!"$9$G$K%H%C%W%l%Y%k$K$$$?$N$G$9!#\e(BM-x
-top-level\e$B$O!"2?$b1F6A$rM?$($F$$$^$;$s!#\e(B
- \e$B%j%+!<%7%V\e(B \e$B%(%G%#%F%#%s%0\e(B \e$B%l%Y%k$+$iH4$1=P$k$N$KBP$7$F$O\e(BC-g\e$B$O8z$-$^$;\e(B
-\e$B$s!#\e(B
+\e$B!v:F5"JT=8%l%Y%k\e(B (RECURSIVE EDITING LEVELS)
+\e$B;~!9!JITK\0U$K!K:F5"JT=8%l%Y%k$H8F$P$l$k>uBV$KF~$k$3$H$,$"$j$^$9!#%b!<\e(B
+\e$B%I%i%$%s$N%a%8%c!<%b!<%IL>$r0O$`4]3g8L\e(B "()" \e$B$,$5$i$Knl3g8L\e(B "[]" \e$B$G0O$^\e(B
+\e$B$l$^$9!#Nc$($P!"\e(B(Fundamental) \e$B$HI=<($5$l$kBe$o$j$K\e(B [(Fundamental)] \e$B$N\e(B
+\e$B$h$&$K$J$j$^$9!#\e(B
-\e$B%X%k%W\e(B
-======
+\e$B:F5"JT=8%l%Y%k$+$iH4$1=P$9$K$O\e(B ESC ESC ESC \e$B$H%?%$%W$7$^$9!#$3$l$OHFMQ\e(B
+\e$B!VH4$1=P$7!W%3%^%s%I$G$9!#M>J,$J%&%#%s%I%&$r>C$7$?$j!"%_%K%P%C%U%!$+$i\e(B
+\e$BH4$1$?$j$9$k$N$K$b;H$($^$9!#\e(B
- Emacs\e$B$K$O!"$?$/$5$s$NLr$KN)$D5!G=$,$"$j!"$3$3$G!"$9$Y$F$r@bL@$9$k$3$H\e(B
-\e$B$O!"IT2DG=$G$9!#$7$+$7!"$^$@CN$i$J$$B?$/$N5!G=$r3X$V$?$a$K$O!"\e(B<HELP>\e$B$H8F$P\e(B
-\e$B$l$k\e(B C-h \e$B$r%?%$%W$9$k$3$H$G!"$?$/$5$s$N>pJs$r<j$KF~$l$k$3$H$,$G$-$^$9!#\e(B
- \e$B;H$$J}$O!"\e(BC-h \e$B$r%?%$%W$7!"B3$$$FI,MW$J%*%W%7%g%s$r#1J8;z%?%$%W$7$^$9!#\e(B
-\e$B$o$+$i$J$1$l$P!"\e(BC-h ? \e$B$H%?%$%W$9$k$H!"$I$s$J%*%W%7%g%s$,$"$k$N$+I=<($5$l$^\e(B
-\e$B$9!#$b$7!"\e(BC-h \e$B$r%?%$%W$7$F$+$i5$$,JQ$o$C$?$i!"\e(BC-g \e$B$r%?%$%W$9$l$P!"<h$j>C$9\e(B
-\e$B$3$H$,$G$-$^$9!#\e(B
+>> M-x \e$B$H%?%$%W$7%_%K%P%C%U%!$KF~$C$F2<$5$$!#$=$l$+$i\e(B ESC ESC ESC \e$B$H%?\e(B
+ \e$B%$%W$7H4$1=P$7$F$_$^$7$g$&!#\e(B
- \e$B:G$b4pK\E*$J$b$N$O!"\e(BC-h c \e$B$G$9!#$3$l$KB3$$$F%-!<$rF~NO$9$k$H!"$=$N%3%^\e(B
-\e$B%s%I$K$D$$$F$NC;$$@bL@$rI=<($7$^$9!#\e(B
+C-g \e$B$G$O:F5"JT=8%l%Y%k$+$i$OH4$1=P$;$^$;$s!#$3$l$O!"\e(BC-g \e$B$,:F5"JT=8%l%Y\e(B
+\e$B%kFb$G$N%3%^%s%I$d0z?t$r<h$j>C$9$N$K;H$o$l$F$$$k$+$i$G$9!#\e(B
- >> C-h c C-p \e$B$H%?%$%W$7$F$_$J$5$$!#\e(B"C-p runs the command previous-
- line"\e$B$N$h$&$J%a%C%;!<%8$,I=<($5$l$k$O$:$G$9!#\e(B
- \e$B8+$?$3$H$O$"$k$,!"3P$($F$O$$$J$$%3%^%s%I$b;W$$=P$;$k$N$G$9!#\e(BC-x C-s \e$B$N\e(B
-\e$B$h$&$JJ#?t$G#1$D$N%3%^%s%I$b\e(BC-h c \e$B$N8e$m$KB3$1$i$l$^$9!#\e(B
+\e$B!v$b$C$H$b$C$H%X%k%W\e(B
+====================
- \e$B$b$C$H>\$7$/CN$j$?$+$C$?$i!"\e(Bc \e$B$NBe$o$j$K\e(B k \e$B$r;XDj$7$^$9!#\e(B
+\e$B$3$NF~Lg%,%$%I$G$O\e(B XEmacs \e$B$r;H$$;O$a$k$N$K==J,$J>pJs$rDs6!$7$?$D$b$j$G\e(B
+\e$B$9!#\e(BXEmacs \e$B$K$O$"$^$j$K$bB?$/$N5!G=$,$"$k$N$G!"$3$3$G$9$Y$F$r@bL@$9$k\e(B
+\e$B$N$OL5M}$G$9!#$=$l$G$bLr$KN)$D5!G=$r$b$C$HB?$/3X$S$?$$$H;W$&?M$N$?$a$K\e(B
+\e$B$O!"\e(BXEmacs \e$B$N%3%^%s%I$N@bL@$rFI$`$?$a$N%3%^%s%I$,$"$j$^$9!#$3$l$i$N\e(B
+\e$B!V%X%k%W!W%3%^%s%I$O3'\e(B Control-h \e$BJ8;z!J%X%k%WJ8;z$H8F$S$^$9!K$G;O$^$j\e(B
+\e$B$^$9!#\e(B
+
+\e$B%X%k%W5!G=$r;H$&$K$O!"\e(BC-h \e$B$KB3$$$F$I$s$J<oN`$N%X%k%W$,I,MW$+$r<($9#1J8\e(B
+\e$B;z$r%?%$%W$7$^$9!#$b$7$=$l$9$iJ,$i$J$$>l9g$O\e(B C-h ? \e$B$H%?%$%W$7$^$7$g$&!#\e(B
+\e$B$I$s$J<oN`$N%X%k%W$rDs6!$G$-$k$+$,<($5$l$^$9!#$b$7!"\e(BC-h \e$B$r%?%$%W$7$F$+\e(B
+\e$B$i5$$,JQ$o$C$?$i!"\e(BC-g \e$B$r%?%$%W$7$F<h$j>C$9$3$H$,$G$-$^$9!#\e(B
- >> C-h k C-p \e$B$H%?%$%W$7$F$_$J$5$$!#\e(B
+\e$B!J%5%$%H$K$h$C$F$O\e(B C-h \e$BJ8;z$r:FB+G{$7$^$9!#Am3gE*$J<jCJ$H$7$F$=$s$J$3\e(B
+\e$B$H$r$9$k$Y$-$G$O$"$j$^$;$s!#$=$&$$$&>l9g$O%7%9%F%`4IM}<T$KJ86g$r8@$$$^\e(B
+\e$B$7$g$&!#$^!"$H$b$+$/!"$b$7\e(B C-h \e$B$,2hLL$N2<$NJ}$K%X%k%W$N%a%C%;!<%8$r=P\e(B
+\e$B$5$J$1$l$P!"\e(BM-x help RET \e$B$r;n$7$F$_$F2<$5$$!#!K\e(B
- Emacs\e$B$N%&%#%s%I%&$K!"%3%^%s%I$NL>A0$H5!G=$,I=<($5$l$^$9!#FI$_=*$($?$i!"\e(B
-C-x 1 \e$B$H%?%$%W$9$k$H!"H4$1$i$l$^$9!#\e(B
+\e$B:G$b4pK\E*$J%X%k%W5!G=$O\e(B C-h c \e$B$G$9!#\e(BC-h\e$B!"$=$l$+$i\e(B c\e$B!"$=$7$F%3%^%s%I$N\e(B
+\e$BJ8;z<c$7$/$O$=$N%7!<%1%s%9$r%?%$%W$9$k$H!"$=$N%3%^%s%I$K$D$$$F$NC;$$@b\e(B
+\e$BL@$rI=<($7$^$9!#\e(B
- \e$BB>$K$bLr$KN)$D%*%W%7%g%s$,$"$j$^$9!#\e(B
+>> C-h c Control-p \e$B$H%?%$%W$7$F$_$^$7$g$&!#\e(B
+ \e$B0J2<$N$h$&$J%a%C%;!<%8$,I=<($5$l$k$O$:$G$9!#\e(B
- C-h f \e$B%U%!%s%/%7%g%sL>$rF~NO$9$k$H!"%U%!%s%/%7%g%s$rI=<($7$^$9!#\e(B
+ C-p runs the command previous-line
- >> C-h f previous-line \e$B$r%?%$%W$7!"\e(B<Return> \e$B$r2!$7$J$5$$!#\e(BC-p \e$B%3%^%s\e(B
- \e$B%I$r<B9T$9$k%U%!%s%/%7%g%s$K$D$$$F$N>pJs$rI=<($7$^$9!#\e(B
+\e$B$3$l$O!V%U%!%s%/%7%g%s$NL>A0!W$rI=<($7$?$N$G$9!#%U%!%s%/%7%g%sL>$O<g$K\e(B
+XEmacs \e$B$r%+%9%?%^%$%:$7$?$j3HD%$7$?$j$9$k$N$K;H$o$l$^$9!#$7$+$7!"%U%!\e(B
+\e$B%s%/%7%g%sL>$O$=$N%3%^%s%I$,2?$r$9$k$b$N$J$N$+$,J,$k$h$&$KIU$1$i$l$^$9\e(B
+\e$B$N$G!"4JC1$J@bL@$H$7$F$b$=$N$^$^Lr$KN)$A$^$9!#0lEY3X$s$@%3%^%s%I$K$D$$\e(B
+\e$B$F;W$$=P$9$K$O==J,$G$9!#\e(B
- C-h a \e$B%-!<%o!<%I$rF~NO$9$k$H!"L>A0$K$=$N%-!<%o!<%I$r4^$`!"A4$F$N%3\e(B
- \e$B%^%s%I$rI=<($7$^$9!#$3$l$i$N%3%^%s%I$O$9$Y$F\e(BESC x \e$B$G<B9T$G$-\e(B
- \e$B$^$9!#\e(B
+C-x C-s \e$B$d!J%a%?%-!<$d%"%k%H%-!<$,$J$$>l9g$N!K\e(B <ESC> v \e$B$J$I$NJ#?tJ8;z\e(B
+\e$B$N%3%^%s%I$r\e(B C-h c \e$B$N8e$K%?%$%W$9$k$3$H$b$G$-$^$9!#\e(B
- >> C-h a file \e$B$H%?%$%W$7!"\e(B<Return>\e$B$r2!$7$J$5$$!#L>A0$K\e(B"file"\e$B$H$$$&J8\e(B
- \e$B;z$r;}$DA4$F$N%3%^%s%I$rI=<($7$^$9!#$^$?!"\e(Bfind-file \e$B$d\e(B write-file
- \e$B$H$$$&L>$N\e(B C-x C-f \e$B$d\e(B C-x C-w \e$B$N$h$&$J%3%^%s%I$bI=<($5$l$^$9!#\e(B
+\e$B%3%^%s%I$K$D$$$F$b$C$HB?$/$N>pJs$,M_$7$1$l$P\e(B C-h c \e$B$NBe$o$j$K\e(B C-h k \e$B$r\e(B
+\e$B;H$$$^$9!#\e(B
-\e$B$*$o$j$K\e(B
-========
+>> C-h k Control-p \e$B$H%?%$%W$7$F$_$^$7$g$&!#\e(B
-\e$BK:$l$:$K!'\e(B \e$B=*N;$9$k$K$O!"\e(BC-x C-c \e$B$H$7$^$9!#\e(B
+XEmacs\e$B$N%&%#%s%I%&$K!"%3%^%s%I$NL>A0$HF1;~$K$=$N5!G=$N@bL@$,I=<($5$l$^\e(B
+\e$B$9!#FI$_=*$($?$i!"\e(Bq \e$B$H%?%$%W$7$F%X%k%W$N%F%-%9%H$r>C$7$^$7$g$&!#\e(B
+C-h \e$B$K$OB>$K$bLr$KN)$D%*%W%7%g%s$,$"$j$^$9!#\e(B
- \e$B$3$NF~LgJT$O!"$^$C$?$/$N=i?4<T$K$b$o$+$j$d$9$$$h$&$K$H0U?^$7$F$$$^$9!#\e(B
-\e$B$G$9$+$i!"$b$72?$+$o$+$j$K$/$$E@$,$"$C$?$J$i!"0l?M$G6rCT$r8@$&$N$G$O$J$/!"\e(B
-\e$BJ86g$r$D$1$F2<$5$$!#\e(B
+ C-h f \e$B%U%!%s%/%7%g%s$N@bL@!#%U%!%s%/%7%g%sL>$rF~NO$7$^$9!#\e(B
+>> C-h f previous-line<Return> \e$B$H%?%$%W$7$F$_$^$7$g$&!#\e(B
+ C-p \e$B%3%^%s%I$r<B9T$9$k%U%!%s%/%7%g%s$K$D$$$F$N$9$Y$F$N>pJs$rI=<($7\e(B
+ \e$B$^$9!#\e(B
- \e$B$b$7!"\e(BEMACS \e$B$r2?F|$+$G$b;H$C$F$_$l$P!"$=$l$r$d$a$F$7$^$&$3$H$J$I$G$-$J\e(B
-\e$B$/$J$k$G$7$g$&!#:G=i$O8MOG$&$+$bCN$l$^$;$s!#$7$+$7!"$=$l$O$I$s$J%(%G%#%?$G\e(B
-\e$B$bF1MM$G$9!#\e(BEMACS \e$B$N$h$&$K!"Hs>o$KB?$/$N$3$H$,$G$-$k>l9g$K$OFC$K$=$&$G$7$g\e(B
-\e$B$&!#$=$7$F!"\e(BEMACS \e$B$G$O!"<B:]!"2?$G$b$G$-$k$N$G$9$+$i!#\e(B
+ C-h a \e$B%O%$%Q!<%"%W%m%]%9!#%-!<%o!<%I$rF~NO$9$k$H!"$=$N%-!<%o!<\e(B
+ \e$B%I$rL>A0$K4^$`A4$F$N4X?t$HJQ?t$r%j%9%H%"%C%W$7$^$9!#\e(B
+ Meta-x \e$B$G5/F0$G$-$k%3%^%s%I$K$O:8B&$K%"%9%?%j%9%/$,IU\e(B
+ \e$B$-$^$9!#\e(B
+>> C-h a newline<Return> \e$B$H%?%$%W$7$F$_$F2<$5$$!#\e(B
+"newline"\e$B$H$$$&J8;zNs$rL>A0$N0lIt$K;}$DA4$F$N4X?t$HJQ?t$rI=<($7$^$9!#\e(B
+\e$B4X?t$dJQ?t$r$h$j>\$7$/CN$k$?$a$K\e(B <Return> \e$B$+??Cf$N%^%&%9%\%?%s$r2!$7$F\e(B
+\e$B$/$@$5$$!#\e(Bhyper-apropos \e$B$r=*N;$9$k$?$a$K$O\e(B `q' \e$B$rF~NO$7$^$9!#\e(B
-\e$B<U<-\e(B
-=====
- \e$B$3$NJ8=q$O!"\e(BJUNET\e$B$GN.$5$l$?\e(B"\e$BF|K\8l\e(B MicroEMACS (kemacs) \e$BF~LgJT\e(B" \e$B$r\e(BGNUE-
-macs (Nemacs)\e$B$N\e(BTutorial\e$BMQ$K=q$-49$($?$b$N$G$9!#\e(B
- Jonathan Payne \e$B$K$h$k\e(B "JOVE Tutorial" (19 January 86) \e$B$rJQ99$7$?$b$N$G\e(B
- \e$B$"$j!"$=$l$O$b$H$b$H$O!"\e(BCCA-UNIX\e$B$N\e(BSteve Zimmerman \e$B$K$h$C$FJQ99$5$l$?!"\e(B
- MIT \e$B$N\e(B "Teach-Emacs" \e$BF~LgJT\e(B (31 October 85) \e$B$r!J$5$i$K!KJQ99$7$?$b$N$G\e(B
- \e$B$7$?!#\e(B
+\e$B!v$*$o$j$K\e(B
+==========
- Update - February 1986 by Dana Hoggatt.
+\e$BK:$l$J$$$G!*\e(BXEmacs \e$B$r=*N;$9$k$K$O!"\e(BC-x C-c \e$B$G$9!#$^$?\e(B XEmacs \e$B$KLa$C$F\e(B
+\e$BMh$i$l$k$h$&$K0l;~E*$K%7%'%k$KLa$k$@$1$J$i\e(B C-z \e$B$G$9!#!J\e(BX \e$B$G$O!"$3$l$O\e(B
+\e$B8=:_$N\e(B XEmacs \e$B$N%U%l!<%`$r%"%$%3%s2=$7$^$9!#!K\e(B
- Update - December 1986 by Kim Leburg.
+\e$B$3$NF~Lg%,%$%I$O!"$^$C$?$/$N=i?4<T$K$b$o$+$j$d$9$$$h$&$K$H0U?^$7$F$$$^\e(B
+\e$B$9!#$G$9$+$i!"$b$72?$+$o$+$j$K$/$$E@$,$"$C$?$J$i!"<+J,$r@U$a$J$$$GJ86g\e(B
+\e$B$r$D$1$F2<$5$$!#\e(B
- Update/Translate - July 1987 by SANETO Takanori
-\e$BFCJL$J<U<-\e(B
-==========
+\e$B!v$3$NK]LuHG$K$D$$$F$N<U<-\e(B
+==========================
+
+\e$B$3$NJ8=q$O\e(B XEmacs Ver.21.2 \e$BIUB0$N1Q8lHG$NF~Lg%,%$%I$rF|K\8l$KK]Lu$7$?\e(B
+\e$B$b$N$G$9!#$=$N:]!"\e(BEmacs \e$BIUB0$NF|K\8l%,%$%I$r85$K=$@5$7$^$7$?!#$=$NF|K\\e(B
+\e$B8l%,%$%I$O!"85$O\e(B SANETO Takanori \e$B;a$,F|K\8l\e(B MicroXEmacs(kemacs) \e$BF~LgJT\e(B
+\e$B$H$7$FK]Lu$5$l!"$=$l$rNkLZM5?.;a\e(B <hironobu@sra.co.jp> \e$B$,\e(BNemacs/Mule \e$BMQ\e(B
+\e$B$KJQ99!"$5$i$K5HEDLP<y;a$,=$@5$5$l$?$b$N$G$9!#$3$l$i$NJ}!9$K?<$/46<U$7\e(B
+\e$B$^$9!#\e(B
- \e$B:G=i$K$3$l$NF|K\8lLu$r:n$i$l$?!"\e(BSANETO Takanori\e$B$5$s!#$3$NJ8>O$O\e(BGMW +
-Wnn + Nemacs\e$B$r;H$C$F=q$-$^$7$?!#$=$N$h$&$JAG@2$i$7$$%W%m%0%i%`$r:n$C$?J}!9\e(B
-\e$B$X46<U$N0U$rI=$7$?$$$H;W$$$^$9!#K]Lu$H$+!"F~NO$H$+$r?'!9$H<jEA$C$F$/$l$?!"\e(B
-\e$BF#86>M;R$5$s!"$I$&$b$"$j$,$H$&!#\e(B
+\e$B!vCx:n8"I=<(\e(B
+============
+\e$B$3$3$K85$N1Q8lHG$NCx:n8"I=<($r$=$N$^$^IU$1$^$9!#$3$NK]LuHG$b$3$l$K=>$$\e(B
+\e$B$^$9!#\e(B
+This tutorial descends from a long line of Emacs tutorials
+starting with the one written by Stuart Cracraft for the original Emacs.
+Ben Wing updated the tutorial for X Windows. Martin Buchholz and
+Hrvoje Niksic added more corrections for XEmacs.
+This version of the tutorial, like XEmacs, is copyrighted, and comes
+with permission to distribute copies on certain conditions:
-\e$B8mLu!"13!"$=$NB>!"$NJ8@U$O!"0J2<$N<T$K$"$j$^$9!#\e(B
+Copyright (c) 1985, 1996 Free Software Foundation
- \e$BNkLZM5?.\e(B hironobu@sra.co.jp
+ Permission is granted to anyone to make or distribute verbatim copies
+ of this document as received, in any medium, provided that the
+ copyright notice and permission notice are preserved,
+ and that the distributor grants the recipient permission
+ for further redistribution as permitted by this notice.
+ Permission is granted to distribute modified versions
+ of this document, or of portions of it,
+ under the above conditions, provided also that they
+ carry prominent notices stating who last altered them.
-Update/Add - December 1987 by Hironobu Suzuki
-Update/Add - November 1989 by Ken'ichi Handa
-Update/Add - January 1990 by Shigeki Yoshida
-Update/Add - March 1992 by Kenichi HANDA
+The conditions for copying XEmacs itself are more complex, but in the
+same spirit. Please read the file COPYING and then do give copies of
+XEmacs to your friends. Help stamp out software obstructionism
+("ownership") by using, writing, and sharing free software!
cl.info-1: 1164
cl.info-2: 46306
cl.info-3: 89087
-cl.info-4: 137816
-cl.info-5: 175812
-cl.info-6: 218417
+cl.info-4: 137810
+cl.info-5: 175806
+cl.info-6: 218409
\1f
Tag Table:
(Indirect)
Node: Multiple Values\7f111218
Node: Macros\7f113111
Node: Declarations\7f116329
-Node: Symbols\7f124821
-Node: Property Lists\7f125102
-Node: Creating Symbols\7f127293
-Node: Numbers\7f129371
-Node: Predicates on Numbers\7f129851
-Node: Numerical Functions\7f130880
-Node: Random Numbers\7f135107
-Node: Implementation Parameters\7f137816
-Node: Sequences\7f141388
-Node: Sequence Basics\7f142061
-Node: Mapping over Sequences\7f145639
-Node: Sequence Functions\7f151493
-Node: Searching Sequences\7f157668
-Node: Sorting Sequences\7f160705
-Node: Lists\7f163253
-Node: List Functions\7f163678
-Node: Substitution of Expressions\7f167941
-Node: Lists as Sets\7f169827
-Node: Association Lists\7f173889
-Node: Hash Tables\7f175592
-Node: Structures\7f175812
-Node: Assertions\7f190595
-Node: Efficiency Concerns\7f193538
-Node: Common Lisp Compatibility\7f199865
-Node: Old CL Compatibility\7f203021
-Node: Porting Common Lisp\7f207404
-Node: Function Index\7f218417
-Node: Variable Index\7f229566
+Node: Symbols\7f124815
+Node: Property Lists\7f125096
+Node: Creating Symbols\7f127287
+Node: Numbers\7f129365
+Node: Predicates on Numbers\7f129845
+Node: Numerical Functions\7f130874
+Node: Random Numbers\7f135101
+Node: Implementation Parameters\7f137810
+Node: Sequences\7f141382
+Node: Sequence Basics\7f142055
+Node: Mapping over Sequences\7f145633
+Node: Sequence Functions\7f151487
+Node: Searching Sequences\7f157662
+Node: Sorting Sequences\7f160699
+Node: Lists\7f163247
+Node: List Functions\7f163672
+Node: Substitution of Expressions\7f167935
+Node: Lists as Sets\7f169821
+Node: Association Lists\7f173883
+Node: Hash Tables\7f175586
+Node: Structures\7f175806
+Node: Assertions\7f190589
+Node: Efficiency Concerns\7f193532
+Node: Common Lisp Compatibility\7f199859
+Node: Old CL Compatibility\7f203015
+Node: Porting Common Lisp\7f207398
+Node: Function Index\7f218409
+Node: Variable Index\7f229558
\1f
End Tag Table
\1f
Indirect:
internals.info-1: 1776
-internals.info-2: 46607
-internals.info-3: 94313
-internals.info-4: 142724
-internals.info-5: 184821
-internals.info-6: 234636
-internals.info-7: 281302
-internals.info-8: 328518
-internals.info-9: 374004
+internals.info-2: 46628
+internals.info-3: 94270
+internals.info-4: 143272
+internals.info-5: 189524
+internals.info-6: 239216
+internals.info-7: 282833
+internals.info-8: 331699
\1f
Tag Table:
(Indirect)
Node: Top\7f1776
-Node: A History of Emacs\7f7010
-Node: Through Version 18\7f8535
-Node: Lucid Emacs\7f11983
-Node: GNU Emacs 19\7f15001
-Node: GNU Emacs 20\7f17184
-Node: XEmacs\7f17611
-Node: XEmacs From the Outside\7f20790
-Node: The Lisp Language\7f22557
-Node: XEmacs From the Perspective of Building\7f32099
-Node: XEmacs From the Inside\7f38224
-Node: The XEmacs Object System (Abstractly Speaking)\7f46607
-Node: How Lisp Objects Are Represented in C\7f60693
-Node: Rules When Writing New C Code\7f69251
-Node: General Coding Rules\7f70055
-Node: Writing Lisp Primitives\7f75830
-Node: Adding Global Lisp Variables\7f86999
-Node: Coding for Mule\7f90637
-Node: Character-Related Data Types\7f91616
-Node: Working With Character and Byte Positions\7f94313
-Node: Conversion to and from External Data\7f98063
-Node: General Guidelines for Writing Mule-Aware Code\7f102944
-Node: An Example of Mule-Aware Code\7f104975
-Node: Techniques for XEmacs Developers\7f106962
-Node: A Summary of the Various XEmacs Modules\7f110729
-Node: Low-Level Modules\7f111549
-Node: Basic Lisp Modules\7f119119
-Node: Modules for Standard Editing Operations\7f127440
-Node: Editor-Level Control Flow Modules\7f133328
-Node: Modules for the Basic Displayable Lisp Objects\7f136774
-Node: Modules for other Display-Related Lisp Objects\7f139296
-Node: Modules for the Redisplay Mechanism\7f140373
-Node: Modules for Interfacing with the File System\7f142724
-Node: Modules for Other Aspects of the Lisp Interpreter and Object System\7f146422
-Node: Modules for Interfacing with the Operating System\7f151875
-Node: Modules for Interfacing with X Windows\7f159536
-Node: Modules for Internationalization\7f162972
-Node: Allocation of Objects in XEmacs Lisp\7f165609
-Node: Introduction to Allocation\7f166145
-Node: Garbage Collection\7f171652
-Node: GCPROing\7f174605
-Node: Garbage Collection - Step by Step\7f181415
-Node: Invocation\7f181807
-Node: garbage_collect_1\7f184821
-Node: mark_object\7f194301
-Node: gc_sweep\7f196113
-Node: sweep_lcrecords_1\7f201176
-Node: compact_string_chars\7f202171
-Node: sweep_strings\7f204351
-Node: sweep_bit_vectors_1\7f205316
-Node: Integers and Characters\7f205992
-Node: Allocation from Frob Blocks\7f206744
-Node: lrecords\7f208348
-Node: Low-level allocation\7f220810
-Node: Pure Space\7f224978
-Node: Cons\7f225153
-Node: Vector\7f225869
-Node: Bit Vector\7f226446
-Node: Symbol\7f226939
-Node: Marker\7f227508
-Node: String\7f228063
-Node: Compiled Function\7f231676
-Node: Dumping\7f231845
-Node: Overview\7f234066
-Node: Data descriptions\7f234636
-Node: Dumping phase\7f236641
-Node: Object inventory\7f237043
-Node: Address allocation\7f239897
-Node: The header\7f241284
-Node: Data dumping\7f241792
-Node: Pointers dumping\7f242453
-Node: Reloading phase\7f243671
-Node: Remaining issues\7f245432
-Node: Events and the Event Loop\7f246393
-Node: Introduction to Events\7f246843
-Node: Main Loop\7f248792
-Node: Specifics of the Event Gathering Mechanism\7f252367
-Node: Specifics About the Emacs Event\7f264820
-Node: The Event Stream Callback Routines\7f265075
-Node: Other Event Loop Functions\7f265320
-Node: Converting Events\7f266460
-Node: Dispatching Events; The Command Builder\7f267069
-Node: Evaluation; Stack Frames; Bindings\7f267304
-Node: Evaluation\7f267646
-Node: Dynamic Binding; The specbinding Stack; Unwind-Protects\7f274229
-Node: Simple Special Forms\7f276613
-Node: Catch and Throw\7f277395
-Node: Symbols and Variables\7f279970
-Node: Introduction to Symbols\7f280234
-Node: Obarrays\7f281302
-Node: Symbol Values\7f284835
-Node: Buffers and Textual Representation\7f287123
-Node: Introduction to Buffers\7f287781
-Node: The Text in a Buffer\7f290487
-Node: Buffer Lists\7f297637
-Node: Markers and Extents\7f299588
-Node: Bufbytes and Emchars\7f301853
-Node: The Buffer Object\7f302068
-Node: MULE Character Sets and Encodings\7f305548
-Node: Character Sets\7f306610
-Node: Encodings\7f310095
-Node: Japanese EUC (Extended Unix Code)\7f311162
-Node: JIS7\7f311994
-Node: Internal Mule Encodings\7f313344
-Node: Internal String Encoding\7f315174
-Node: Internal Character Encoding\7f317319
-Node: CCL\7f319043
-Node: The Lisp Reader and Compiler\7f325795
-Node: Lstreams\7f326008
-Node: Creating an Lstream\7f327039
-Node: Lstream Types\7f328266
-Node: Lstream Functions\7f328518
-Node: Lstream Methods\7f332084
-Node: Consoles; Devices; Frames; Windows\7f335226
-Node: Introduction to Consoles; Devices; Frames; Windows\7f335541
-Node: Point\7f338076
-Node: Window Hierarchy\7f339355
-Node: The Window Object\7f343803
-Node: The Redisplay Mechanism\7f347240
-Node: Critical Redisplay Sections\7f348032
-Node: Line Start Cache\7f349019
-Node: Redisplay Piece by Piece\7f352255
-Node: Extents\7f354291
-Node: Introduction to Extents\7f354825
-Node: Extent Ordering\7f355967
-Node: Format of the Extent Info\7f357208
-Node: Zero-Length Extents\7f359095
-Node: Mathematics of Extent Ordering\7f360493
-Node: Extent Fragments\7f365250
-Node: Faces\7f366336
-Node: Glyphs\7f366452
-Node: Specifiers\7f369470
-Node: Menus\7f369599
-Node: Subprocesses\7f371857
-Node: Interface to X Windows\7f373833
-Node: Index\7f374004
+Node: A History of Emacs\7f7030
+Node: Through Version 18\7f8555
+Node: Lucid Emacs\7f12003
+Node: GNU Emacs 19\7f15021
+Node: GNU Emacs 20\7f17204
+Node: XEmacs\7f17631
+Node: XEmacs From the Outside\7f20810
+Node: The Lisp Language\7f22577
+Node: XEmacs From the Perspective of Building\7f32120
+Node: XEmacs From the Inside\7f38245
+Node: The XEmacs Object System (Abstractly Speaking)\7f46628
+Node: How Lisp Objects Are Represented in C\7f60714
+Node: Rules When Writing New C Code\7f65207
+Node: General Coding Rules\7f66011
+Node: Writing Lisp Primitives\7f71722
+Node: Adding Global Lisp Variables\7f82891
+Node: Coding for Mule\7f86529
+Node: Character-Related Data Types\7f87508
+Node: Working With Character and Byte Positions\7f90505
+Node: Conversion to and from External Data\7f94270
+Node: General Guidelines for Writing Mule-Aware Code\7f100411
+Node: An Example of Mule-Aware Code\7f103099
+Node: Techniques for XEmacs Developers\7f105080
+Node: A Summary of the Various XEmacs Modules\7f109290
+Node: Low-Level Modules\7f110110
+Node: Basic Lisp Modules\7f117680
+Node: Modules for Standard Editing Operations\7f124290
+Node: Editor-Level Control Flow Modules\7f130178
+Node: Modules for the Basic Displayable Lisp Objects\7f133624
+Node: Modules for other Display-Related Lisp Objects\7f136146
+Node: Modules for the Redisplay Mechanism\7f137223
+Node: Modules for Interfacing with the File System\7f139574
+Node: Modules for Other Aspects of the Lisp Interpreter and Object System\7f143272
+Node: Modules for Interfacing with the Operating System\7f148725
+Node: Modules for Interfacing with X Windows\7f156386
+Node: Modules for Internationalization\7f159822
+Node: Allocation of Objects in XEmacs Lisp\7f162459
+Node: Introduction to Allocation\7f162980
+Node: Garbage Collection\7f166666
+Node: GCPROing\7f167822
+Node: Garbage Collection - Step by Step\7f174826
+Node: Invocation\7f175218
+Node: garbage_collect_1\7f178232
+Node: mark_object\7f187712
+Node: gc_sweep\7f189524
+Node: sweep_lcrecords_1\7f194587
+Node: compact_string_chars\7f195582
+Node: sweep_strings\7f197762
+Node: sweep_bit_vectors_1\7f198727
+Node: Integers and Characters\7f199403
+Node: Allocation from Frob Blocks\7f200155
+Node: lrecords\7f201759
+Node: Low-level allocation\7f213569
+Node: Cons\7f217731
+Node: Vector\7f218457
+Node: Bit Vector\7f219034
+Node: Symbol\7f219527
+Node: Marker\7f219881
+Node: String\7f220436
+Node: Compiled Function\7f224049
+Node: Dumping\7f224218
+Node: Overview\7f226439
+Node: Data descriptions\7f227009
+Node: Dumping phase\7f229014
+Node: Object inventory\7f229416
+Node: Address allocation\7f232270
+Node: The header\7f233657
+Node: Data dumping\7f234165
+Node: Pointers dumping\7f234826
+Node: Reloading phase\7f236044
+Node: Remaining issues\7f237805
+Node: Events and the Event Loop\7f238766
+Node: Introduction to Events\7f239216
+Node: Main Loop\7f241165
+Node: Specifics of the Event Gathering Mechanism\7f244740
+Node: Specifics About the Emacs Event\7f257193
+Node: The Event Stream Callback Routines\7f257448
+Node: Other Event Loop Functions\7f257693
+Node: Converting Events\7f258833
+Node: Dispatching Events; The Command Builder\7f259442
+Node: Evaluation; Stack Frames; Bindings\7f259677
+Node: Evaluation\7f260019
+Node: Dynamic Binding; The specbinding Stack; Unwind-Protects\7f266574
+Node: Simple Special Forms\7f268958
+Node: Catch and Throw\7f269741
+Node: Symbols and Variables\7f272316
+Node: Introduction to Symbols\7f272580
+Node: Obarrays\7f273648
+Node: Symbol Values\7f277181
+Node: Buffers and Textual Representation\7f279469
+Node: Introduction to Buffers\7f280127
+Node: The Text in a Buffer\7f282833
+Node: Buffer Lists\7f289983
+Node: Markers and Extents\7f291934
+Node: Bufbytes and Emchars\7f294199
+Node: The Buffer Object\7f294414
+Node: MULE Character Sets and Encodings\7f297894
+Node: Character Sets\7f298956
+Node: Encodings\7f302441
+Node: Japanese EUC (Extended Unix Code)\7f303508
+Node: JIS7\7f304340
+Node: Internal Mule Encodings\7f305690
+Node: Internal String Encoding\7f307520
+Node: Internal Character Encoding\7f309665
+Node: CCL\7f311389
+Node: The Lisp Reader and Compiler\7f318141
+Node: Lstreams\7f318354
+Node: Creating an Lstream\7f319385
+Node: Lstream Types\7f320612
+Node: Lstream Functions\7f320864
+Node: Lstream Methods\7f324430
+Node: Consoles; Devices; Frames; Windows\7f327572
+Node: Introduction to Consoles; Devices; Frames; Windows\7f327887
+Node: Point\7f330420
+Node: Window Hierarchy\7f331699
+Node: The Window Object\7f336147
+Node: The Redisplay Mechanism\7f339584
+Node: Critical Redisplay Sections\7f340376
+Node: Line Start Cache\7f341363
+Node: Redisplay Piece by Piece\7f344599
+Node: Extents\7f346636
+Node: Introduction to Extents\7f347170
+Node: Extent Ordering\7f348312
+Node: Format of the Extent Info\7f349553
+Node: Zero-Length Extents\7f351440
+Node: Mathematics of Extent Ordering\7f352838
+Node: Extent Fragments\7f357595
+Node: Faces\7f358681
+Node: Glyphs\7f358797
+Node: Specifiers\7f361814
+Node: Menus\7f361943
+Node: Subprocesses\7f364201
+Node: Interface to X Windows\7f366177
+Node: Index\7f366348
\1f
End Tag Table
* Index::
+--- The Detailed Node Listing ---
+
A History of Emacs
* Through Version 18:: Unification prevails.
* Allocation from Frob Blocks::
* lrecords::
* Low-level allocation::
-* Pure Space::
* Cons::
* Vector::
* Bit Vector::
Unfortunately, there is no perfect language. Static typing allows a
compiler to catch programmer errors and produce more efficient code, but
-makes programming more tedious and less fun. For the forseeable future,
-an Ideal Editing and Programming Environment (and that is what XEmacs
-aspires to) will be programmable in multiple languages: high level ones
-like Lisp for user customization and prototyping, and lower level ones
-for infrastructure and industrial strength applications. If I had my
-way, XEmacs would be friendly towards the Python, Scheme, C++, ML,
-etc... communities. But there are serious technical difficulties to
+makes programming more tedious and less fun. For the foreseeable
+future, an Ideal Editing and Programming Environment (and that is what
+XEmacs aspires to) will be programmable in multiple languages: high
+level ones like Lisp for user customization and prototyping, and lower
+level ones for infrastructure and industrial strength applications. If
+I had my way, XEmacs would be friendly towards the Python, Scheme, C++,
+ML, etc... communities. But there are serious technical difficulties to
achieving that goal.
The word "application" in the previous paragraph was used
[ 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 ]
[ 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 ]
- <---> ^ <------------------------------------------------------>
- tag | a pointer to a structure, or an integer
- |
- mark bit
-
- The tag describes the type of the Lisp object. For integers and
-chars, the lower 28 bits contain the value of the integer or char; for
-all others, the lower 28 bits contain a pointer. The mark bit is used
-during garbage-collection, and is always 0 when garbage collection is
-not happening. (The way that garbage collection works, basically, is
-that it loops over all places where Lisp objects could exist--this
-includes all global variables in C that contain Lisp objects [including
-`Vobarray', the C equivalent of `obarray'; through this, all Lisp
-variables will get marked], plus various other places--and recursively
-scans through the Lisp objects, marking each object it finds by setting
-the mark bit. Then it goes through the lists of all objects allocated,
-freeing the ones that are not marked and turning off the mark bit of
-the ones that are marked.)
+ <---------------------------------------------------------> <->
+ a pointer to a structure, or an integer tag
+
+ A tag of 00 is used for all pointer object types, a tag of 10 is used
+for characters, and the other two tags 01 and 11 are joined together to
+form the integer object type. This representation gives us 31 bits
+integers, 30 bits characters and pointers are represented directly
+without any bit masking. This representation, though, assumes that
+pointers to structs are always aligned to multiples of 4, so the lower 2
+bits are always zero.
Lisp objects use the typedef `Lisp_Object', but the actual C type
used for the Lisp object can vary. It can be either a simple type
determined by the preprocessor constant `USE_UNION_TYPE' which is
defined via the `--use-union-type' option to `configure'.
- Note that there are only eight types that the tag can represent, but
-many more actual types than this. This is handled by having one of the
-tag types specify a meta-type called a "record"; for all such objects,
-the first four bytes of the pointed-to structure indicate what the
-actual type is.
-
- Note also that having 28 bits for pointers and integers restricts a
-lot of things to 256 megabytes of memory. (Basically, enough pointers
-and indices and whatnot get stuffed into Lisp objects that the total
-amount of memory used by XEmacs can't grow above 256 megabytes. In
-older versions of XEmacs and GNU Emacs, the tag was 5 bits wide,
-allowing for 32 types, which was more than the actual number of types
-that existed at the time, and no "record" type was necessary. However,
-this limited the editor to 64 megabytes total, which some users who
-edited large files might conceivably exceed.)
-
- Also, note that there is an implicit assumption here that all
-pointers are low enough that the top bits are all zero and can just be
-chopped off. On standard machines that allocate memory from the bottom
-up (and give each process its own address space), this works fine. Some
-machines, however, put the data space somewhere else in memory (e.g.
-beginning at 0x80000000). Those machines cope by defining
-`DATA_SEG_BITS' in the corresponding `m/' or `s/' file to the proper
-mask. Then, pointers retrieved from Lisp objects are automatically
-OR'ed with this value prior to being used.
-
- A corollary of the previous paragraph is that *(pointers to)
-stack-allocated structures cannot be put into Lisp objects*. The stack
-is generally located near the top of memory; if you put such a pointer
-into a Lisp object, it will get its top bits chopped off, and you will
-lose.
-
- Actually, there's an alternative representation of a `Lisp_Object',
-invented by Kyle Jones, that is used when the `--use-minimal-tagbits'
-option to `configure' is used. In this case the 2 lower bits are used
-for the tag bits. This representation assumes that pointers to structs
-are always aligned to multiples of 4, so the lower 2 bits are always
-zero.
-
- [ 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 ]
- [ 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 ]
-
- <---------------------------------------------------------> <->
- a pointer to a structure, or an integer tag
-
- A tag of 00 is used for all pointer object types, a tag of 10 is used
-for characters, and the other two tags 01 and 11 are joined together to
-form the integer object type. The markbit is moved to part of the
-structure being pointed at (integers and chars do not need to be marked,
-since no memory is allocated). This representation has these
-advantages:
-
- 1. 31 bits can be used for Lisp Integers.
-
- 2. _Any_ pointer can be represented directly, and no bit masking
- operations are necessary.
-
- The disadvantages are:
-
- 1. An extra level of indirection is needed when accessing the object
- types that were not record types. So checking whether a Lisp
- object is a cons cell becomes a slower operation.
-
- 2. Mark bits can no longer be stored directly in Lisp objects, so
- another place for them must be found. This means that a cons cell
- requires more memory than merely room for 2 lisp objects, leading
- to extra memory use.
-
Various macros are used to construct Lisp objects and extract the
components. Macros of the form `XINT()', `XCHAR()', `XSTRING()',
-`XSYMBOL()', etc. mask out the pointer/integer field and cast it to the
-appropriate type. All of the macros that construct pointers will `OR'
-with `DATA_SEG_BITS' if necessary. `XINT()' needs to be a bit tricky
-so that negative numbers are properly sign-extended: Usually it does
-this by shifting the number four bits to the left and then four bits to
-the right. This assumes that the right-shift operator does an
-arithmetic shift (i.e. it leaves the most-significant bit as-is rather
-than shifting in a zero, so that it mimics a divide-by-two even for
-negative numbers). Not all machines/compilers do this, and on the ones
-that don't, a more complicated definition is selected by defining
-`EXPLICIT_SIGN_EXTEND'.
+`XSYMBOL()', etc. shift out the tag field if needed cast it to the
+appropriate type. `XINT()' needs to be a bit tricky so that negative
+numbers are properly sign-extended. Since integers are stored
+left-shifted, if the right-shift operator does an arithmetic shift
+(i.e. it leaves the most-significant bit as-is rather than shifting in
+a zero, so that it mimics a divide-by-two even for negative numbers)
+the shift to remove the tag bit is enough. This is the case on all the
+systems we support.
Note that when `ERROR_CHECK_TYPECHECK' is defined, the extractor
macros become more complicated--they check the tag bits and/or the type
so that it becomes part of the (unmodifiable) code segment in the
dumped executable. This allows this memory to be shared among multiple
running XEmacs processes. XEmacs is careful to place as much constant
-data as possible into initialized variables (in particular, into what's
-called the "pure space"--see below) during the `temacs' phase.
+data as possible into initialized variables during the `temacs' phase.
*Please note:* This kludge only works on a few systems nowadays, and
is rapidly becoming irrelevant because most modern operating systems
The data representing the text in a buffer or string is logically
a set of `Bufbyte's.
- XEmacs does not work with character formats all the time; when
- reading characters from the outside, it decodes them to an
+ XEmacs does not work with the same character formats all the time;
+ when reading characters from the outside, it decodes them to an
internal format, and likewise encodes them when writing.
`Bufbyte' (in fact `unsigned char') is the basic unit of XEmacs
- internal buffers and strings format.
+ internal buffers and strings format. A `Bufbyte *' is the type
+ that points at text encoded in the variable-width internal
+ encoding.
One character can correspond to one or more `Bufbyte's. In the
- current implementation, an ASCII character is represented by the
- same `Bufbyte', and extended characters are represented by a
- sequence of `Bufbyte's.
+ current Mule implementation, an ASCII character is represented by
+ the same `Bufbyte', and other characters are represented by a
+ sequence of two or more `Bufbyte's.
- Without Mule support, a `Bufbyte' is equivalent to an `Emchar'.
+ Without Mule support, there are exactly 256 characters, implicitly
+ Latin-1, and each character is represented using one `Bufbyte', and
+ there is a one-to-one correspondence between `Bufbyte's and
+ `Emchar's.
`Bufpos'
`Charcount'
A `Bufpos' represents a character position in a buffer or string.
A `Charcount' represents a number (count) of characters.
Logically, subtracting two `Bufpos' values yields a `Charcount'
- value. Although all of these are `typedef'ed to `int', we use
- them in preference to `int' to make it clear what sort of position
- is being used.
+ value. Although all of these are `typedef'ed to `EMACS_INT', we
+ use them in preference to `EMACS_INT' to make it clear what sort
+ of position is being used.
`Bufpos' and `Charcount' values are the only ones that are ever
visible to Lisp.
`Bytind'
`Bytecount'
A `Bytind' represents a byte position in a buffer or string. A
- `Bytecount' represents the distance between two positions in bytes.
- The relationship between `Bytind' and `Bytecount' is the same as
- the relationship between `Bufpos' and `Charcount'.
+ `Bytecount' represents the distance between two positions, in
+ bytes. The relationship between `Bytind' and `Bytecount' is the
+ same as the relationship between `Bufpos' and `Charcount'.
`Extbyte'
`Extcount'
is the distance between two `Extbyte's. Extbytes and Extcounts
are not all that frequent in XEmacs code.
+\1f
+File: internals.info, Node: Working With Character and Byte Positions, Next: Conversion to and from External Data, Prev: Character-Related Data Types, Up: Coding for Mule
+
+Working With Character and Byte Positions
+-----------------------------------------
+
+ Now that we have defined the basic character-related types, we can
+look at the macros and functions designed for work with them and for
+conversion between them. Most of these macros are defined in
+`buffer.h', and we don't discuss all of them here, but only the most
+important ones. Examining the existing code is the best way to learn
+about them.
+
+`MAX_EMCHAR_LEN'
+ This preprocessor constant is the maximum number of buffer bytes to
+ represent an Emacs character in the variable width internal
+ encoding. It is useful when allocating temporary strings to keep
+ a known number of characters. For instance:
+
+ {
+ Charcount cclen;
+ ...
+ {
+ /* Allocate place for CCLEN characters. */
+ Bufbyte *buf = (Bufbyte *)alloca (cclen * MAX_EMCHAR_LEN);
+ ...
+
+ If you followed the previous section, you can guess that,
+ logically, multiplying a `Charcount' value with `MAX_EMCHAR_LEN'
+ produces a `Bytecount' value.
+
+ In the current Mule implementation, `MAX_EMCHAR_LEN' equals 4.
+ Without Mule, it is 1.
+
+`charptr_emchar'
+`set_charptr_emchar'
+ The `charptr_emchar' macro takes a `Bufbyte' pointer and returns
+ the `Emchar' stored at that position. If it were a function, its
+ prototype would be:
+
+ Emchar charptr_emchar (Bufbyte *p);
+
+ `set_charptr_emchar' stores an `Emchar' to the specified byte
+ position. It returns the number of bytes stored:
+
+ Bytecount set_charptr_emchar (Bufbyte *p, Emchar c);
+
+ It is important to note that `set_charptr_emchar' is safe only for
+ appending a character at the end of a buffer, not for overwriting a
+ character in the middle. This is because the width of characters
+ varies, and `set_charptr_emchar' cannot resize the string if it
+ writes, say, a two-byte character where a single-byte character
+ used to reside.
+
+ A typical use of `set_charptr_emchar' can be demonstrated by this
+ example, which copies characters from buffer BUF to a temporary
+ string of Bufbytes.
+
+ {
+ Bufpos pos;
+ for (pos = beg; pos < end; pos++)
+ {
+ Emchar c = BUF_FETCH_CHAR (buf, pos);
+ p += set_charptr_emchar (buf, c);
+ }
+ }
+
+ Note how `set_charptr_emchar' is used to store the `Emchar' and
+ increment the counter, at the same time.
+
+`INC_CHARPTR'
+`DEC_CHARPTR'
+ These two macros increment and decrement a `Bufbyte' pointer,
+ respectively. They will adjust the pointer by the appropriate
+ number of bytes according to the byte length of the character
+ stored there. Both macros assume that the memory address is
+ located at the beginning of a valid character.
+
+ Without Mule support, `INC_CHARPTR (p)' and `DEC_CHARPTR (p)'
+ simply expand to `p++' and `p--', respectively.
+
+`bytecount_to_charcount'
+ Given a pointer to a text string and a length in bytes, return the
+ equivalent length in characters.
+
+ Charcount bytecount_to_charcount (Bufbyte *p, Bytecount bc);
+
+`charcount_to_bytecount'
+ Given a pointer to a text string and a length in characters,
+ return the equivalent length in bytes.
+
+ Bytecount charcount_to_bytecount (Bufbyte *p, Charcount cc);
+
+`charptr_n_addr'
+ Return a pointer to the beginning of the character offset CC (in
+ characters) from P.
+
+ Bufbyte *charptr_n_addr (Bufbyte *p, Charcount cc);
+
lispref.info-22: 1018476
lispref.info-23: 1065503
lispref.info-24: 1114902
-lispref.info-25: 1164584
-lispref.info-26: 1214494
-lispref.info-27: 1263717
-lispref.info-28: 1312483
-lispref.info-29: 1361919
-lispref.info-30: 1403254
-lispref.info-31: 1452397
-lispref.info-32: 1501610
-lispref.info-33: 1551184
-lispref.info-34: 1599663
-lispref.info-35: 1645345
-lispref.info-36: 1687344
-lispref.info-37: 1732284
-lispref.info-38: 1781971
-lispref.info-39: 1831075
-lispref.info-40: 1880479
-lispref.info-41: 1929805
-lispref.info-42: 1978506
-lispref.info-43: 2023933
-lispref.info-44: 2062269
+lispref.info-25: 1164575
+lispref.info-26: 1214485
+lispref.info-27: 1263708
+lispref.info-28: 1312474
+lispref.info-29: 1361910
+lispref.info-30: 1403245
+lispref.info-31: 1452388
+lispref.info-32: 1501601
+lispref.info-33: 1551175
+lispref.info-34: 1599654
+lispref.info-35: 1645336
+lispref.info-36: 1687335
+lispref.info-37: 1732275
+lispref.info-38: 1781962
+lispref.info-39: 1831066
+lispref.info-40: 1880470
+lispref.info-41: 1929796
+lispref.info-42: 1978497
+lispref.info-43: 2023924
+lispref.info-44: 2062260
\1f
Tag Table:
(Indirect)
Node: Making Backups\7f1119038
Node: Rename or Copy\7f1121787
Node: Numbered Backups\7f1124280
-Node: Backup Names\7f1126524
-Node: Auto-Saving\7f1129816
-Node: Reverting\7f1137958
-Node: Buffers\7f1141116
-Node: Buffer Basics\7f1142533
-Node: Current Buffer\7f1144586
-Node: Buffer Names\7f1149274
-Node: Buffer File Name\7f1152479
-Node: Buffer Modification\7f1156598
-Node: Modification Time\7f1158791
-Node: Read Only Buffers\7f1162166
-Node: The Buffer List\7f1164584
-Node: Creating Buffers\7f1169414
-Node: Killing Buffers\7f1171560
-Node: Indirect Buffers\7f1175291
-Node: Windows\7f1177863
-Node: Basic Windows\7f1179341
-Node: Splitting Windows\7f1182439
-Node: Deleting Windows\7f1189328
-Node: Selecting Windows\7f1192008
-Node: Cyclic Window Ordering\7f1195137
-Node: Buffers and Windows\7f1199761
-Node: Displaying Buffers\7f1201602
-Node: Choosing Window\7f1206778
-Node: Window Point\7f1214494
-Node: Window Start\7f1216540
-Node: Vertical Scrolling\7f1221030
-Node: Horizontal Scrolling\7f1227167
-Node: Size of Window\7f1230676
-Node: Position of Window\7f1235394
-Node: Resizing Windows\7f1237634
-Node: Window Configurations\7f1243063
-Node: Frames\7f1246488
-Node: Creating Frames\7f1248257
-Node: Frame Properties\7f1249598
-Node: Property Access\7f1250414
-Node: Initial Properties\7f1251263
-Node: X Frame Properties\7f1253749
-Node: Size and Position\7f1258383
-Node: Frame Name\7f1260379
-Node: Frame Titles\7f1261293
-Node: Deleting Frames\7f1263117
-Node: Finding All Frames\7f1263717
-Node: Frames and Windows\7f1265711
-Node: Minibuffers and Frames\7f1267416
-Node: Input Focus\7f1268334
-Node: Visibility of Frames\7f1271411
-Node: Raising and Lowering\7f1273330
-Node: Frame Configurations\7f1275706
-Node: Frame Hooks\7f1276300
-Node: Consoles and Devices\7f1278105
-Node: Basic Console Functions\7f1280848
-Node: Basic Device Functions\7f1281271
-Node: Console Types and Device Classes\7f1281987
-Node: Connecting to a Console or Device\7f1284184
-Node: The Selected Console and Device\7f1286347
-Node: Console and Device I/O\7f1287373
-Node: Positions\7f1288137
-Node: Point\7f1289106
-Node: Motion\7f1292196
-Node: Character Motion\7f1292963
-Node: Word Motion\7f1295200
-Node: Buffer End Motion\7f1296701
-Node: Text Lines\7f1298198
-Node: Screen Lines\7f1302793
-Node: List Motion\7f1306856
-Node: Skipping Characters\7f1310264
-Node: Excursions\7f1312483
-Node: Narrowing\7f1315515
-Node: Markers\7f1320840
-Node: Overview of Markers\7f1321746
-Node: Predicates on Markers\7f1326438
-Node: Creating Markers\7f1327684
-Node: Information from Markers\7f1331721
-Node: Changing Markers\7f1332819
-Node: The Mark\7f1334197
-Node: The Region\7f1342691
-Node: Text\7f1348377
-Node: Near Point\7f1351076
-Node: Buffer Contents\7f1355263
-Node: Comparing Text\7f1356669
-Node: Insertion\7f1358077
-Node: Commands for Insertion\7f1361919
-Node: Deletion\7f1364875
-Node: User-Level Deletion\7f1368470
-Node: The Kill Ring\7f1372631
-Node: Kill Ring Concepts\7f1374805
-Node: Kill Functions\7f1375859
-Node: Yank Commands\7f1377764
-Node: Low-Level Kill Ring\7f1379635
-Node: Internals of Kill Ring\7f1382421
-Node: Undo\7f1385201
-Node: Maintaining Undo\7f1389530
-Node: Filling\7f1392150
-Node: Margins\7f1398144
-Node: Auto Filling\7f1402073
-Node: Sorting\7f1403254
-Node: Columns\7f1412554
-Node: Indentation\7f1415070
-Node: Primitive Indent\7f1415849
-Node: Mode-Specific Indent\7f1417093
-Node: Region Indent\7f1419604
-Node: Relative Indent\7f1422552
-Node: Indent Tabs\7f1424934
-Node: Motion by Indent\7f1426255
-Node: Case Changes\7f1427034
-Node: Text Properties\7f1430285
-Node: Examining Properties\7f1432098
-Node: Changing Properties\7f1433965
-Node: Property Search\7f1437556
-Node: Special Properties\7f1442267
-Node: Saving Properties\7f1442548
-Node: Substitution\7f1445690
-Node: Registers\7f1448960
-Node: Transposition\7f1451503
-Node: Change Hooks\7f1452397
-Node: Transformations\7f1454437
-Node: Searching and Matching\7f1458822
-Node: String Search\7f1459953
-Node: Regular Expressions\7f1464677
-Node: Syntax of Regexps\7f1466044
-Node: Regexp Example\7f1480423
-Node: Regexp Search\7f1482593
-Node: POSIX Regexps\7f1488681
-Node: Search and Replace\7f1490516
-Node: Match Data\7f1493881
-Node: Simple Match Data\7f1495011
-Node: Replacing Match\7f1499276
-Node: Entire Match Data\7f1501610
-Node: Saving Match Data\7f1503601
-Node: Searching and Case\7f1504982
-Node: Standard Regexps\7f1507016
-Node: Syntax Tables\7f1509214
-Node: Syntax Basics\7f1510328
-Node: Syntax Descriptors\7f1513300
-Node: Syntax Class Table\7f1515150
-Node: Syntax Flags\7f1521188
-Node: Syntax Table Functions\7f1524405
-Node: Motion and Syntax\7f1528269
-Node: Parsing Expressions\7f1529721
-Node: Standard Syntax Tables\7f1535790
-Node: Syntax Table Internals\7f1536634
-Node: Abbrevs\7f1537660
-Node: Abbrev Mode\7f1539463
-Node: Abbrev Tables\7f1540183
-Node: Defining Abbrevs\7f1541716
-Node: Abbrev Files\7f1543621
-Node: Abbrev Expansion\7f1545394
-Node: Standard Abbrev Tables\7f1550025
-Node: Extents\7f1551184
-Node: Intro to Extents\7f1552427
-Node: Creating and Modifying Extents\7f1556421
-Node: Extent Endpoints\7f1557928
-Node: Finding Extents\7f1561191
-Node: Mapping Over Extents\7f1564939
-Node: Extent Properties\7f1571056
-Node: Detached Extents\7f1581200
-Node: Extent Parents\7f1583059
-Node: Duplicable Extents\7f1584753
-Node: Extents and Events\7f1587974
-Node: Atomic Extents\7f1589881
-Node: Specifiers\7f1590328
-Node: Introduction to Specifiers\7f1592441
-Node: Specifiers In-Depth\7f1594751
-Node: Specifier Instancing\7f1599663
-Node: Specifier Types\7f1602925
-Node: Adding Specifications\7f1607999
-Node: Retrieving Specifications\7f1617361
-Node: Specifier Tag Functions\7f1621096
-Node: Specifier Instancing Functions\7f1624330
-Node: Specifier Example\7f1627737
-Node: Creating Specifiers\7f1630893
-Node: Specifier Validation Functions\7f1633142
-Node: Other Specification Functions\7f1635526
-Node: Faces and Window-System Objects\7f1639345
-Node: Faces\7f1639669
-Node: Merging Faces\7f1641286
-Node: Basic Face Functions\7f1643247
-Node: Face Properties\7f1645345
-Node: Face Convenience Functions\7f1655587
-Node: Other Face Display Functions\7f1658717
-Node: Fonts\7f1659530
-Node: Font Specifiers\7f1660231
-Node: Font Instances\7f1660472
-Node: Font Instance Names\7f1661439
-Node: Font Instance Size\7f1662280
-Node: Font Instance Characteristics\7f1663566
-Node: Font Convenience Functions\7f1664735
-Node: Colors\7f1666025
-Node: Color Specifiers\7f1666465
-Node: Color Instances\7f1666692
-Node: Color Instance Properties\7f1667436
-Node: Color Convenience Functions\7f1668062
-Node: Glyphs\7f1669115
-Node: Glyph Functions\7f1670707
-Node: Creating Glyphs\7f1671114
-Node: Glyph Properties\7f1672701
-Node: Glyph Convenience Functions\7f1681868
-Node: Glyph Dimensions\7f1685815
-Node: Images\7f1686895
-Node: Image Specifiers\7f1687344
-Node: Image Instantiator Conversion\7f1698765
-Node: Image Instances\7f1700130
-Node: Image Instance Types\7f1700881
-Node: Image Instance Functions\7f1703536
-Node: Glyph Types\7f1708105
-Node: Mouse Pointer\7f1709877
-Node: Redisplay Glyphs\7f1712880
-Node: Subwindows\7f1713913
-Node: Annotations\7f1714156
-Node: Annotation Basics\7f1715172
-Node: Annotation Primitives\7f1719110
-Node: Annotation Properties\7f1720439
-Node: Locating Annotations\7f1723479
-Node: Margin Primitives\7f1724316
-Node: Annotation Hooks\7f1726210
-Node: Display\7f1726870
-Node: Refresh Screen\7f1727848
-Node: Truncation\7f1729759
-Node: The Echo Area\7f1732284
-Node: Warnings\7f1738719
-Node: Invisible Text\7f1743155
-Node: Selective Display\7f1745734
-Node: Overlay Arrow\7f1749860
-Node: Temporary Displays\7f1751213
-Node: Blinking\7f1755334
-Node: Usual Display\7f1757519
-Node: Display Tables\7f1760068
-Node: Display Table Format\7f1760872
-Node: Active Display Table\7f1762314
-Node: Character Descriptors\7f1763506
-Node: Beeping\7f1764263
-Node: Hash Tables\7f1769029
-Node: Introduction to Hash Tables\7f1769637
-Node: Working With Hash Tables\7f1775660
-Node: Weak Hash Tables\7f1776777
-Node: Range Tables\7f1778576
-Node: Introduction to Range Tables\7f1779265
-Node: Working With Range Tables\7f1779696
-Node: Databases\7f1780581
-Node: Connecting to a Database\7f1780880
-Node: Working With a Database\7f1781971
-Node: Other Database Functions\7f1782829
-Node: Processes\7f1783403
-Node: Subprocess Creation\7f1785627
-Node: Synchronous Processes\7f1788916
-Node: MS-DOS Subprocesses\7f1795634
-Node: Asynchronous Processes\7f1796708
-Node: Deleting Processes\7f1800421
-Node: Process Information\7f1802292
-Node: Input to Processes\7f1806218
-Node: Signals to Processes\7f1808508
-Node: Output from Processes\7f1812928
-Node: Process Buffers\7f1813740
-Node: Filter Functions\7f1816607
-Node: Accepting Output\7f1822177
-Node: Sentinels\7f1823704
-Node: Process Window Size\7f1827194
-Node: Transaction Queues\7f1827543
-Node: Network\7f1829241
-Node: System Interface\7f1831075
-Node: Starting Up\7f1832345
-Node: Start-up Summary\7f1832939
-Node: Init File\7f1836493
-Node: Terminal-Specific\7f1838874
-Node: Command Line Arguments\7f1842033
-Node: Getting Out\7f1845522
-Node: Killing XEmacs\7f1846091
-Node: Suspending XEmacs\7f1847760
-Node: System Environment\7f1851102
-Node: User Identification\7f1857769
-Node: Time of Day\7f1861298
-Node: Time Conversion\7f1864085
-Node: Timers\7f1869125
-Node: Terminal Input\7f1871298
-Node: Input Modes\7f1871801
-Node: Translating Input\7f1874214
-Node: Recording Input\7f1878379
-Node: Terminal Output\7f1880479
-Node: Flow Control\7f1884102
-Node: Batch Mode\7f1887894
-Node: X-Windows\7f1889276
-Node: X Selections\7f1890147
-Node: X Server\7f1892357
-Node: Resources\7f1892808
-Node: Server Data\7f1898117
-Node: Grabs\7f1899324
-Node: X Miscellaneous\7f1900904
-Node: ToolTalk Support\7f1903289
-Node: XEmacs ToolTalk API Summary\7f1903506
-Node: Sending Messages\7f1904806
-Node: Example of Sending Messages\7f1905057
-Node: Elisp Interface for Sending Messages\7f1906119
-Node: Receiving Messages\7f1912511
-Node: Example of Receiving Messages\7f1912734
-Node: Elisp Interface for Receiving Messages\7f1913570
-Node: LDAP Support\7f1917395
-Node: Building XEmacs with LDAP support\7f1917891
-Node: XEmacs LDAP API\7f1918869
-Node: LDAP Variables\7f1919599
-Node: The High-Level LDAP API\7f1922075
-Node: The Low-Level LDAP API\7f1923180
-Node: The LDAP Lisp Object\7f1923454
-Node: Opening and Closing a LDAP Connection\7f1924007
-Node: Searching on a LDAP Server (Low-level)\7f1925790
-Node: Syntax of Search Filters\7f1927183
-Node: Internationalization\7f1928481
-Node: I18N Levels 1 and 2\7f1928818
-Node: I18N Level 3\7f1929524
-Node: Level 3 Basics\7f1929805
-Node: Level 3 Primitives\7f1930638
-Node: Dynamic Messaging\7f1932244
-Node: Domain Specification\7f1932707
-Node: Documentation String Extraction\7f1934610
-Node: I18N Level 4\7f1935528
-Node: MULE\7f1935720
-Node: Internationalization Terminology\7f1936831
-Node: Charsets\7f1945365
-Node: Charset Properties\7f1946061
-Node: Basic Charset Functions\7f1950747
-Node: Charset Property Functions\7f1952928
-Node: Predefined Charsets\7f1954970
-Node: MULE Characters\7f1957890
-Node: Composite Characters\7f1958737
-Node: ISO 2022\7f1959991
-Node: Coding Systems\7f1966133
-Node: Coding System Types\7f1968054
-Node: EOL Conversion\7f1969873
-Node: Coding System Properties\7f1971056
-Node: Basic Coding System Functions\7f1974908
-Node: Coding System Property Functions\7f1976812
-Node: Encoding and Decoding Text\7f1977370
-Node: Detection of Textual Encoding\7f1978506
-Node: Big5 and Shift-JIS Functions\7f1980042
-Node: CCL\7f1981130
-Node: CCL Syntax\7f1984234
-Node: CCL Statements\7f1985822
-Node: CCL Expressions\7f1990470
-Node: Calling CCL\7f1993009
-Node: CCL Examples\7f1995998
-Node: Category Tables\7f1996135
-Node: Tips\7f1998493
-Node: Style Tips\7f1999134
-Node: Compilation Tips\7f2008653
-Node: Documentation Tips\7f2010567
-Node: Comment Tips\7f2016076
-Node: Library Headers\7f2019078
-Node: Building XEmacs and Object Allocation\7f2023050
-Node: Building XEmacs\7f2023933
-Node: Pure Storage\7f2030268
-Node: Garbage Collection\7f2033056
-Node: Standard Errors\7f2044195
-Node: Standard Buffer-Local Variables\7f2048404
-Node: Standard Keymaps\7f2051037
-Node: Standard Hooks\7f2054769
-Node: Index\7f2062269
+Node: Backup Names\7f1126515
+Node: Auto-Saving\7f1129807
+Node: Reverting\7f1137949
+Node: Buffers\7f1141107
+Node: Buffer Basics\7f1142524
+Node: Current Buffer\7f1144577
+Node: Buffer Names\7f1149265
+Node: Buffer File Name\7f1152470
+Node: Buffer Modification\7f1156589
+Node: Modification Time\7f1158782
+Node: Read Only Buffers\7f1162157
+Node: The Buffer List\7f1164575
+Node: Creating Buffers\7f1169405
+Node: Killing Buffers\7f1171551
+Node: Indirect Buffers\7f1175282
+Node: Windows\7f1177854
+Node: Basic Windows\7f1179332
+Node: Splitting Windows\7f1182430
+Node: Deleting Windows\7f1189319
+Node: Selecting Windows\7f1191999
+Node: Cyclic Window Ordering\7f1195128
+Node: Buffers and Windows\7f1199752
+Node: Displaying Buffers\7f1201593
+Node: Choosing Window\7f1206769
+Node: Window Point\7f1214485
+Node: Window Start\7f1216531
+Node: Vertical Scrolling\7f1221021
+Node: Horizontal Scrolling\7f1227158
+Node: Size of Window\7f1230667
+Node: Position of Window\7f1235385
+Node: Resizing Windows\7f1237625
+Node: Window Configurations\7f1243054
+Node: Frames\7f1246479
+Node: Creating Frames\7f1248248
+Node: Frame Properties\7f1249589
+Node: Property Access\7f1250405
+Node: Initial Properties\7f1251254
+Node: X Frame Properties\7f1253740
+Node: Size and Position\7f1258374
+Node: Frame Name\7f1260370
+Node: Frame Titles\7f1261284
+Node: Deleting Frames\7f1263108
+Node: Finding All Frames\7f1263708
+Node: Frames and Windows\7f1265702
+Node: Minibuffers and Frames\7f1267407
+Node: Input Focus\7f1268325
+Node: Visibility of Frames\7f1271402
+Node: Raising and Lowering\7f1273321
+Node: Frame Configurations\7f1275697
+Node: Frame Hooks\7f1276291
+Node: Consoles and Devices\7f1278096
+Node: Basic Console Functions\7f1280839
+Node: Basic Device Functions\7f1281262
+Node: Console Types and Device Classes\7f1281978
+Node: Connecting to a Console or Device\7f1284175
+Node: The Selected Console and Device\7f1286338
+Node: Console and Device I/O\7f1287364
+Node: Positions\7f1288128
+Node: Point\7f1289097
+Node: Motion\7f1292187
+Node: Character Motion\7f1292954
+Node: Word Motion\7f1295191
+Node: Buffer End Motion\7f1296692
+Node: Text Lines\7f1298189
+Node: Screen Lines\7f1302784
+Node: List Motion\7f1306847
+Node: Skipping Characters\7f1310255
+Node: Excursions\7f1312474
+Node: Narrowing\7f1315506
+Node: Markers\7f1320831
+Node: Overview of Markers\7f1321737
+Node: Predicates on Markers\7f1326429
+Node: Creating Markers\7f1327675
+Node: Information from Markers\7f1331712
+Node: Changing Markers\7f1332810
+Node: The Mark\7f1334188
+Node: The Region\7f1342682
+Node: Text\7f1348368
+Node: Near Point\7f1351067
+Node: Buffer Contents\7f1355254
+Node: Comparing Text\7f1356660
+Node: Insertion\7f1358068
+Node: Commands for Insertion\7f1361910
+Node: Deletion\7f1364866
+Node: User-Level Deletion\7f1368461
+Node: The Kill Ring\7f1372622
+Node: Kill Ring Concepts\7f1374796
+Node: Kill Functions\7f1375850
+Node: Yank Commands\7f1377755
+Node: Low-Level Kill Ring\7f1379626
+Node: Internals of Kill Ring\7f1382412
+Node: Undo\7f1385192
+Node: Maintaining Undo\7f1389521
+Node: Filling\7f1392141
+Node: Margins\7f1398135
+Node: Auto Filling\7f1402064
+Node: Sorting\7f1403245
+Node: Columns\7f1412545
+Node: Indentation\7f1415061
+Node: Primitive Indent\7f1415840
+Node: Mode-Specific Indent\7f1417084
+Node: Region Indent\7f1419595
+Node: Relative Indent\7f1422543
+Node: Indent Tabs\7f1424925
+Node: Motion by Indent\7f1426246
+Node: Case Changes\7f1427025
+Node: Text Properties\7f1430276
+Node: Examining Properties\7f1432089
+Node: Changing Properties\7f1433956
+Node: Property Search\7f1437547
+Node: Special Properties\7f1442258
+Node: Saving Properties\7f1442539
+Node: Substitution\7f1445681
+Node: Registers\7f1448951
+Node: Transposition\7f1451494
+Node: Change Hooks\7f1452388
+Node: Transformations\7f1454428
+Node: Searching and Matching\7f1458813
+Node: String Search\7f1459944
+Node: Regular Expressions\7f1464668
+Node: Syntax of Regexps\7f1466035
+Node: Regexp Example\7f1480414
+Node: Regexp Search\7f1482584
+Node: POSIX Regexps\7f1488672
+Node: Search and Replace\7f1490507
+Node: Match Data\7f1493872
+Node: Simple Match Data\7f1495002
+Node: Replacing Match\7f1499267
+Node: Entire Match Data\7f1501601
+Node: Saving Match Data\7f1503592
+Node: Searching and Case\7f1504973
+Node: Standard Regexps\7f1507007
+Node: Syntax Tables\7f1509205
+Node: Syntax Basics\7f1510319
+Node: Syntax Descriptors\7f1513291
+Node: Syntax Class Table\7f1515141
+Node: Syntax Flags\7f1521179
+Node: Syntax Table Functions\7f1524396
+Node: Motion and Syntax\7f1528260
+Node: Parsing Expressions\7f1529712
+Node: Standard Syntax Tables\7f1535781
+Node: Syntax Table Internals\7f1536625
+Node: Abbrevs\7f1537651
+Node: Abbrev Mode\7f1539454
+Node: Abbrev Tables\7f1540174
+Node: Defining Abbrevs\7f1541707
+Node: Abbrev Files\7f1543612
+Node: Abbrev Expansion\7f1545385
+Node: Standard Abbrev Tables\7f1550016
+Node: Extents\7f1551175
+Node: Intro to Extents\7f1552418
+Node: Creating and Modifying Extents\7f1556412
+Node: Extent Endpoints\7f1557919
+Node: Finding Extents\7f1561182
+Node: Mapping Over Extents\7f1564930
+Node: Extent Properties\7f1571047
+Node: Detached Extents\7f1581191
+Node: Extent Parents\7f1583050
+Node: Duplicable Extents\7f1584744
+Node: Extents and Events\7f1587965
+Node: Atomic Extents\7f1589872
+Node: Specifiers\7f1590319
+Node: Introduction to Specifiers\7f1592432
+Node: Specifiers In-Depth\7f1594742
+Node: Specifier Instancing\7f1599654
+Node: Specifier Types\7f1602916
+Node: Adding Specifications\7f1607990
+Node: Retrieving Specifications\7f1617352
+Node: Specifier Tag Functions\7f1621087
+Node: Specifier Instancing Functions\7f1624321
+Node: Specifier Example\7f1627728
+Node: Creating Specifiers\7f1630884
+Node: Specifier Validation Functions\7f1633133
+Node: Other Specification Functions\7f1635517
+Node: Faces and Window-System Objects\7f1639336
+Node: Faces\7f1639660
+Node: Merging Faces\7f1641277
+Node: Basic Face Functions\7f1643238
+Node: Face Properties\7f1645336
+Node: Face Convenience Functions\7f1655578
+Node: Other Face Display Functions\7f1658708
+Node: Fonts\7f1659521
+Node: Font Specifiers\7f1660222
+Node: Font Instances\7f1660463
+Node: Font Instance Names\7f1661430
+Node: Font Instance Size\7f1662271
+Node: Font Instance Characteristics\7f1663557
+Node: Font Convenience Functions\7f1664726
+Node: Colors\7f1666016
+Node: Color Specifiers\7f1666456
+Node: Color Instances\7f1666683
+Node: Color Instance Properties\7f1667427
+Node: Color Convenience Functions\7f1668053
+Node: Glyphs\7f1669106
+Node: Glyph Functions\7f1670698
+Node: Creating Glyphs\7f1671105
+Node: Glyph Properties\7f1672692
+Node: Glyph Convenience Functions\7f1681859
+Node: Glyph Dimensions\7f1685806
+Node: Images\7f1686886
+Node: Image Specifiers\7f1687335
+Node: Image Instantiator Conversion\7f1698756
+Node: Image Instances\7f1700121
+Node: Image Instance Types\7f1700872
+Node: Image Instance Functions\7f1703527
+Node: Glyph Types\7f1708096
+Node: Mouse Pointer\7f1709868
+Node: Redisplay Glyphs\7f1712871
+Node: Subwindows\7f1713904
+Node: Annotations\7f1714147
+Node: Annotation Basics\7f1715163
+Node: Annotation Primitives\7f1719101
+Node: Annotation Properties\7f1720430
+Node: Locating Annotations\7f1723470
+Node: Margin Primitives\7f1724307
+Node: Annotation Hooks\7f1726201
+Node: Display\7f1726861
+Node: Refresh Screen\7f1727839
+Node: Truncation\7f1729750
+Node: The Echo Area\7f1732275
+Node: Warnings\7f1738710
+Node: Invisible Text\7f1743146
+Node: Selective Display\7f1745725
+Node: Overlay Arrow\7f1749851
+Node: Temporary Displays\7f1751204
+Node: Blinking\7f1755325
+Node: Usual Display\7f1757510
+Node: Display Tables\7f1760059
+Node: Display Table Format\7f1760863
+Node: Active Display Table\7f1762305
+Node: Character Descriptors\7f1763497
+Node: Beeping\7f1764254
+Node: Hash Tables\7f1769020
+Node: Introduction to Hash Tables\7f1769628
+Node: Working With Hash Tables\7f1775651
+Node: Weak Hash Tables\7f1776768
+Node: Range Tables\7f1778567
+Node: Introduction to Range Tables\7f1779256
+Node: Working With Range Tables\7f1779687
+Node: Databases\7f1780572
+Node: Connecting to a Database\7f1780871
+Node: Working With a Database\7f1781962
+Node: Other Database Functions\7f1782820
+Node: Processes\7f1783394
+Node: Subprocess Creation\7f1785618
+Node: Synchronous Processes\7f1788907
+Node: MS-DOS Subprocesses\7f1795625
+Node: Asynchronous Processes\7f1796699
+Node: Deleting Processes\7f1800412
+Node: Process Information\7f1802283
+Node: Input to Processes\7f1806209
+Node: Signals to Processes\7f1808499
+Node: Output from Processes\7f1812919
+Node: Process Buffers\7f1813731
+Node: Filter Functions\7f1816598
+Node: Accepting Output\7f1822168
+Node: Sentinels\7f1823695
+Node: Process Window Size\7f1827185
+Node: Transaction Queues\7f1827534
+Node: Network\7f1829232
+Node: System Interface\7f1831066
+Node: Starting Up\7f1832336
+Node: Start-up Summary\7f1832930
+Node: Init File\7f1836484
+Node: Terminal-Specific\7f1838865
+Node: Command Line Arguments\7f1842024
+Node: Getting Out\7f1845513
+Node: Killing XEmacs\7f1846082
+Node: Suspending XEmacs\7f1847751
+Node: System Environment\7f1851093
+Node: User Identification\7f1857760
+Node: Time of Day\7f1861289
+Node: Time Conversion\7f1864076
+Node: Timers\7f1869116
+Node: Terminal Input\7f1871289
+Node: Input Modes\7f1871792
+Node: Translating Input\7f1874205
+Node: Recording Input\7f1878370
+Node: Terminal Output\7f1880470
+Node: Flow Control\7f1884093
+Node: Batch Mode\7f1887885
+Node: X-Windows\7f1889267
+Node: X Selections\7f1890138
+Node: X Server\7f1892348
+Node: Resources\7f1892799
+Node: Server Data\7f1898108
+Node: Grabs\7f1899315
+Node: X Miscellaneous\7f1900895
+Node: ToolTalk Support\7f1903280
+Node: XEmacs ToolTalk API Summary\7f1903497
+Node: Sending Messages\7f1904797
+Node: Example of Sending Messages\7f1905048
+Node: Elisp Interface for Sending Messages\7f1906110
+Node: Receiving Messages\7f1912502
+Node: Example of Receiving Messages\7f1912725
+Node: Elisp Interface for Receiving Messages\7f1913561
+Node: LDAP Support\7f1917386
+Node: Building XEmacs with LDAP support\7f1917882
+Node: XEmacs LDAP API\7f1918860
+Node: LDAP Variables\7f1919590
+Node: The High-Level LDAP API\7f1922066
+Node: The Low-Level LDAP API\7f1923171
+Node: The LDAP Lisp Object\7f1923445
+Node: Opening and Closing a LDAP Connection\7f1923998
+Node: Searching on a LDAP Server (Low-level)\7f1925781
+Node: Syntax of Search Filters\7f1927174
+Node: Internationalization\7f1928472
+Node: I18N Levels 1 and 2\7f1928809
+Node: I18N Level 3\7f1929515
+Node: Level 3 Basics\7f1929796
+Node: Level 3 Primitives\7f1930629
+Node: Dynamic Messaging\7f1932235
+Node: Domain Specification\7f1932698
+Node: Documentation String Extraction\7f1934601
+Node: I18N Level 4\7f1935519
+Node: MULE\7f1935711
+Node: Internationalization Terminology\7f1936822
+Node: Charsets\7f1945356
+Node: Charset Properties\7f1946052
+Node: Basic Charset Functions\7f1950738
+Node: Charset Property Functions\7f1952919
+Node: Predefined Charsets\7f1954961
+Node: MULE Characters\7f1957881
+Node: Composite Characters\7f1958728
+Node: ISO 2022\7f1959982
+Node: Coding Systems\7f1966124
+Node: Coding System Types\7f1968045
+Node: EOL Conversion\7f1969864
+Node: Coding System Properties\7f1971047
+Node: Basic Coding System Functions\7f1974899
+Node: Coding System Property Functions\7f1976803
+Node: Encoding and Decoding Text\7f1977361
+Node: Detection of Textual Encoding\7f1978497
+Node: Big5 and Shift-JIS Functions\7f1980033
+Node: CCL\7f1981121
+Node: CCL Syntax\7f1984225
+Node: CCL Statements\7f1985813
+Node: CCL Expressions\7f1990461
+Node: Calling CCL\7f1993000
+Node: CCL Examples\7f1995989
+Node: Category Tables\7f1996126
+Node: Tips\7f1998484
+Node: Style Tips\7f1999125
+Node: Compilation Tips\7f2008644
+Node: Documentation Tips\7f2010558
+Node: Comment Tips\7f2016067
+Node: Library Headers\7f2019069
+Node: Building XEmacs and Object Allocation\7f2023041
+Node: Building XEmacs\7f2023924
+Node: Pure Storage\7f2030259
+Node: Garbage Collection\7f2033047
+Node: Standard Errors\7f2044186
+Node: Standard Buffer-Local Variables\7f2048395
+Node: Standard Keymaps\7f2051028
+Node: Standard Hooks\7f2054760
+Node: Index\7f2062260
\1f
End Tag Table
xemacs.info-5: 189703
xemacs.info-6: 237773
xemacs.info-7: 286800
-xemacs.info-8: 336141
-xemacs.info-9: 383895
-xemacs.info-10: 433201
-xemacs.info-11: 483034
-xemacs.info-12: 532929
-xemacs.info-13: 582109
-xemacs.info-14: 631472
-xemacs.info-15: 681291
-xemacs.info-16: 729785
-xemacs.info-17: 778484
-xemacs.info-18: 828140
-xemacs.info-19: 872498
-xemacs.info-20: 921169
-xemacs.info-21: 963076
+xemacs.info-8: 336132
+xemacs.info-9: 383886
+xemacs.info-10: 433192
+xemacs.info-11: 483025
+xemacs.info-12: 532920
+xemacs.info-13: 582100
+xemacs.info-14: 631463
+xemacs.info-15: 681282
+xemacs.info-16: 729776
+xemacs.info-17: 778475
+xemacs.info-18: 828131
+xemacs.info-19: 872489
+xemacs.info-20: 921160
+xemacs.info-21: 963067
\1f
Tag Table:
(Indirect)
Node: Backup\7f298409
Node: Backup Names\7f299805
Node: Backup Deletion\7f301288
-Node: Backup Copying\7f302447
-Node: Interlocking\7f304153
-Node: Reverting\7f308281
-Node: Auto Save\7f310193
-Node: Auto Save Files\7f311160
-Node: Auto Save Control\7f313001
-Node: Recover\7f314839
-Node: Version Control\7f315994
-Node: Concepts of VC\7f318032
-Node: Editing with VC\7f319642
-Node: Variables for Check-in/out\7f324898
-Node: Log Entries\7f326797
-Node: Change Logs and VC\7f327977
-Node: Old Versions\7f331244
-Node: VC Status\7f333247
-Node: Renaming and VC\7f334961
-Node: Snapshots\7f335640
-Node: Making Snapshots\7f336141
-Node: Snapshot Caveats\7f337434
-Node: Version Headers\7f339243
-Node: ListDir\7f341942
-Node: Comparing Files\7f343991
-Node: Dired\7f345524
-Node: Dired Enter\7f346195
-Node: Dired Edit\7f347020
-Node: Dired Deletion\7f348767
-Node: Dired Immed\7f351990
-Node: Misc File Ops\7f353266
-Node: Buffers\7f355754
-Node: Select Buffer\7f357912
-Node: List Buffers\7f359707
-Node: Misc Buffer\7f361465
-Node: Kill Buffer\7f363108
-Node: Several Buffers\7f364238
-Node: Windows\7f368104
-Node: Basic Window\7f368815
-Node: Split Window\7f370534
-Node: Other Window\7f372667
-Node: Pop Up Window\7f375096
-Node: Change Window\7f376601
-Node: Mule\7f379509
-Node: Mule Intro\7f380772
-Node: Language Environments\7f381788
-Node: Input Methods\7f383895
-Node: Select Input Method\7f387615
-Node: Coding Systems\7f389770
-Node: Recognize Coding\7f393956
-Node: Specify Coding\7f397282
-Node: Major Modes\7f402213
-Node: Choosing Modes\7f404432
-Node: Indentation\7f406822
-Node: Indentation Commands\7f408917
-Node: Tab Stops\7f411646
-Node: Just Spaces\7f413495
-Node: Text\7f414310
-Node: Text Mode\7f416293
-Node: Nroff Mode\7f418372
-Node: TeX Mode\7f420015
-Node: TeX Editing\7f422267
-Node: TeX Print\7f425701
-Node: Outline Mode\7f428920
-Node: Outline Format\7f430401
-Node: Outline Motion\7f433201
-Node: Outline Visibility\7f434754
-Node: Words\7f437675
-Node: Sentences\7f440622
-Node: Paragraphs\7f442818
-Node: Pages\7f445106
-Node: Filling\7f447706
-Node: Auto Fill\7f448277
-Node: Fill Commands\7f450424
-Node: Fill Prefix\7f452589
-Node: Case\7f454777
-Node: Programs\7f456805
-Node: Program Modes\7f459354
-Node: Lists\7f461586
-Node: Defuns\7f467426
-Node: Grinding\7f470079
-Node: Basic Indent\7f470707
-Node: Multi-line Indent\7f472728
-Node: Lisp Indent\7f474344
-Node: C Indent\7f477794
-Node: Matching\7f483034
-Node: Comments\7f484556
-Node: Balanced Editing\7f491008
-Node: Lisp Completion\7f492022
-Node: Documentation\7f493037
-Node: Change Log\7f494276
-Node: Tags\7f496854
-Node: Tag Syntax\7f498503
-Node: Create Tags Table\7f502447
-Node: Etags Regexps\7f506507
-Node: Select Tags Table\7f511165
-Node: Find Tag\7f514938
-Node: Tags Search\7f517902
-Node: List Tags\7f521358
-Node: Fortran\7f522387
-Node: Fortran Motion\7f523463
-Node: Fortran Indent\7f524283
-Node: ForIndent Commands\7f524968
-Node: ForIndent Num\7f526113
-Node: ForIndent Conv\7f527387
-Node: ForIndent Vars\7f528163
-Node: Fortran Comments\7f529331
-Node: Fortran Columns\7f532929
-Node: Fortran Abbrev\7f534352
-Node: Asm Mode\7f535261
-Node: Running\7f535813
-Node: Compilation\7f536783
-Node: Lisp Modes\7f541633
-Node: Lisp Libraries\7f542906
-Node: Loading\7f543460
-Node: Compiling Libraries\7f547920
-Node: Mocklisp\7f550811
-Node: Lisp Eval\7f551488
-Node: Lisp Debug\7f555128
-Node: Lisp Interaction\7f560553
-Node: External Lisp\7f561908
-Node: Packages\7f563982
-Node: Package Terminology\7f564723
-Node: Using Packages\7f566081
-Node: Building Packages\7f574940
-Node: Abbrevs\7f577462
-Node: Defining Abbrevs\7f579662
-Node: Expanding Abbrevs\7f582109
-Node: Editing Abbrevs\7f584811
-Node: Saving Abbrevs\7f586684
-Node: Dynamic Abbrevs\7f588624
-Node: Picture\7f589926
-Node: Basic Picture\7f592359
-Node: Insert in Picture\7f594644
-Node: Tabs in Picture\7f596066
-Node: Rectangles in Picture\7f597587
-Node: Sending Mail\7f599495
-Node: Mail Format\7f601206
-Node: Mail Headers\7f602556
-Node: Mail Mode\7f608964
-Node: Reading Mail\7f612577
-Node: Calendar/Diary\7f614152
-Node: Calendar Motion\7f615824
-Node: Calendar Unit Motion\7f616707
-Node: Move to Beginning or End\7f619030
-Node: Specified Dates\7f620163
-Node: Scroll Calendar\7f621051
-Node: Mark and Region\7f622842
-Node: General Calendar\7f624748
-Node: LaTeX Calendar\7f626356
-Node: Holidays\7f628370
-Node: Sunrise/Sunset\7f631472
-Node: Lunar Phases\7f634515
-Node: Other Calendars\7f635900
-Node: Calendar Systems\7f637387
-Node: To Other Calendar\7f640498
-Node: From Other Calendar\7f642489
-Node: Mayan Calendar\7f644794
-Node: Diary\7f647989
-Node: Diary Commands\7f649738
-Node: Format of Diary File\7f653044
-Node: Date Formats\7f655914
-Node: Adding to Diary\7f658488
-Node: Special Diary Entries\7f660119
-Node: Calendar Customization\7f665458
-Node: Calendar Customizing\7f666320
-Node: Holiday Customizing\7f669539
-Node: Date Display Format\7f676007
-Node: Time Display Format\7f676965
-Node: Daylight Savings\7f678103
-Node: Diary Customizing\7f681291
-Node: Hebrew/Islamic Entries\7f685912
-Node: Fancy Diary Display\7f689252
-Node: Included Diary Files\7f691149
-Node: Sexp Diary Entries\7f692130
-Node: Appt Customizing\7f697220
-Node: Sorting\7f698266
-Node: Shell\7f703072
-Node: Single Shell\7f704365
-Node: Interactive Shell\7f705964
-Node: Shell Mode\7f709729
-Node: Terminal emulator\7f712220
-Node: Term Mode\7f714529
-Node: Paging in Term\7f715443
-Node: Narrowing\7f716241
-Node: Hardcopy\7f718191
-Node: Recursive Edit\7f719163
-Node: Dissociated Press\7f722150
-Node: CONX\7f724713
-Node: Amusements\7f725737
-Node: Emulation\7f726217
-Node: Customization\7f728061
-Node: Minor Modes\7f729785
-Node: Variables\7f731417
-Node: Examining\7f733373
-Node: Easy Customization\7f734834
-Node: Customization Groups\7f735848
-Node: Changing an Option\7f738777
-Node: Face Customization\7f745033
-Node: Specific Customization\7f746797
-Node: Edit Options\7f749404
-Node: Locals\7f750988
-Node: File Variables\7f754167
-Node: Keyboard Macros\7f758721
-Node: Basic Kbd Macro\7f760892
-Node: Save Kbd Macro\7f762824
-Node: Kbd Macro Query\7f764493
-Node: Key Bindings\7f766435
-Node: Keymaps\7f767309
-Node: Rebinding\7f771159
-Node: Interactive Rebinding\7f771858
-Node: Programmatic Rebinding\7f774050
-Node: Key Bindings Using Strings\7f776857
-Node: Disabling\7f778484
-Node: Syntax\7f780256
-Node: Syntax Entry\7f781137
-Node: Syntax Change\7f785221
-Node: Init File\7f787390
-Node: Init Syntax\7f788895
-Node: Init Examples\7f791247
-Node: Terminal Init\7f795437
-Node: Audible Bell\7f797147
-Node: Faces\7f800578
-Node: X Resources\7f805415
-Node: Geometry Resources\7f807063
-Node: Iconic Resources\7f809511
-Node: Resource List\7f809983
-Node: Face Resources\7f816490
-Node: Widgets\7f820167
-Node: Menubar Resources\7f821106
-Node: Quitting\7f822039
-Node: Lossage\7f825017
-Node: Stuck Recursive\7f825661
-Node: Screen Garbled\7f826367
-Node: Text Garbled\7f827501
-Node: Unasked-for Search\7f828140
-Node: Emergency Escape\7f828925
-Node: Total Frustration\7f830704
-Node: Bugs\7f831335
-Node: Glossary\7f840869
-Node: Manifesto\7f872498
-Node: Key Index\7f895974
-Node: Command Index\7f921169
-Node: Variable Index\7f963076
-Node: Concept Index\7f979213
+Node: Backup Copying\7f302438
+Node: Interlocking\7f304144
+Node: Reverting\7f308272
+Node: Auto Save\7f310184
+Node: Auto Save Files\7f311151
+Node: Auto Save Control\7f312992
+Node: Recover\7f314830
+Node: Version Control\7f315985
+Node: Concepts of VC\7f318023
+Node: Editing with VC\7f319633
+Node: Variables for Check-in/out\7f324889
+Node: Log Entries\7f326788
+Node: Change Logs and VC\7f327968
+Node: Old Versions\7f331235
+Node: VC Status\7f333238
+Node: Renaming and VC\7f334952
+Node: Snapshots\7f335631
+Node: Making Snapshots\7f336132
+Node: Snapshot Caveats\7f337425
+Node: Version Headers\7f339234
+Node: ListDir\7f341933
+Node: Comparing Files\7f343982
+Node: Dired\7f345515
+Node: Dired Enter\7f346186
+Node: Dired Edit\7f347011
+Node: Dired Deletion\7f348758
+Node: Dired Immed\7f351981
+Node: Misc File Ops\7f353257
+Node: Buffers\7f355745
+Node: Select Buffer\7f357903
+Node: List Buffers\7f359698
+Node: Misc Buffer\7f361456
+Node: Kill Buffer\7f363099
+Node: Several Buffers\7f364229
+Node: Windows\7f368095
+Node: Basic Window\7f368806
+Node: Split Window\7f370525
+Node: Other Window\7f372658
+Node: Pop Up Window\7f375087
+Node: Change Window\7f376592
+Node: Mule\7f379500
+Node: Mule Intro\7f380763
+Node: Language Environments\7f381779
+Node: Input Methods\7f383886
+Node: Select Input Method\7f387606
+Node: Coding Systems\7f389761
+Node: Recognize Coding\7f393947
+Node: Specify Coding\7f397273
+Node: Major Modes\7f402204
+Node: Choosing Modes\7f404423
+Node: Indentation\7f406813
+Node: Indentation Commands\7f408908
+Node: Tab Stops\7f411637
+Node: Just Spaces\7f413486
+Node: Text\7f414301
+Node: Text Mode\7f416284
+Node: Nroff Mode\7f418363
+Node: TeX Mode\7f420006
+Node: TeX Editing\7f422258
+Node: TeX Print\7f425692
+Node: Outline Mode\7f428911
+Node: Outline Format\7f430392
+Node: Outline Motion\7f433192
+Node: Outline Visibility\7f434745
+Node: Words\7f437666
+Node: Sentences\7f440613
+Node: Paragraphs\7f442809
+Node: Pages\7f445097
+Node: Filling\7f447697
+Node: Auto Fill\7f448268
+Node: Fill Commands\7f450415
+Node: Fill Prefix\7f452580
+Node: Case\7f454768
+Node: Programs\7f456796
+Node: Program Modes\7f459345
+Node: Lists\7f461577
+Node: Defuns\7f467417
+Node: Grinding\7f470070
+Node: Basic Indent\7f470698
+Node: Multi-line Indent\7f472719
+Node: Lisp Indent\7f474335
+Node: C Indent\7f477785
+Node: Matching\7f483025
+Node: Comments\7f484547
+Node: Balanced Editing\7f490999
+Node: Lisp Completion\7f492013
+Node: Documentation\7f493028
+Node: Change Log\7f494267
+Node: Tags\7f496845
+Node: Tag Syntax\7f498494
+Node: Create Tags Table\7f502438
+Node: Etags Regexps\7f506498
+Node: Select Tags Table\7f511156
+Node: Find Tag\7f514929
+Node: Tags Search\7f517893
+Node: List Tags\7f521349
+Node: Fortran\7f522378
+Node: Fortran Motion\7f523454
+Node: Fortran Indent\7f524274
+Node: ForIndent Commands\7f524959
+Node: ForIndent Num\7f526104
+Node: ForIndent Conv\7f527378
+Node: ForIndent Vars\7f528154
+Node: Fortran Comments\7f529322
+Node: Fortran Columns\7f532920
+Node: Fortran Abbrev\7f534343
+Node: Asm Mode\7f535252
+Node: Running\7f535804
+Node: Compilation\7f536774
+Node: Lisp Modes\7f541624
+Node: Lisp Libraries\7f542897
+Node: Loading\7f543451
+Node: Compiling Libraries\7f547911
+Node: Mocklisp\7f550802
+Node: Lisp Eval\7f551479
+Node: Lisp Debug\7f555119
+Node: Lisp Interaction\7f560544
+Node: External Lisp\7f561899
+Node: Packages\7f563973
+Node: Package Terminology\7f564714
+Node: Using Packages\7f566072
+Node: Building Packages\7f574931
+Node: Abbrevs\7f577453
+Node: Defining Abbrevs\7f579653
+Node: Expanding Abbrevs\7f582100
+Node: Editing Abbrevs\7f584802
+Node: Saving Abbrevs\7f586675
+Node: Dynamic Abbrevs\7f588615
+Node: Picture\7f589917
+Node: Basic Picture\7f592350
+Node: Insert in Picture\7f594635
+Node: Tabs in Picture\7f596057
+Node: Rectangles in Picture\7f597578
+Node: Sending Mail\7f599486
+Node: Mail Format\7f601197
+Node: Mail Headers\7f602547
+Node: Mail Mode\7f608955
+Node: Reading Mail\7f612568
+Node: Calendar/Diary\7f614143
+Node: Calendar Motion\7f615815
+Node: Calendar Unit Motion\7f616698
+Node: Move to Beginning or End\7f619021
+Node: Specified Dates\7f620154
+Node: Scroll Calendar\7f621042
+Node: Mark and Region\7f622833
+Node: General Calendar\7f624739
+Node: LaTeX Calendar\7f626347
+Node: Holidays\7f628361
+Node: Sunrise/Sunset\7f631463
+Node: Lunar Phases\7f634506
+Node: Other Calendars\7f635891
+Node: Calendar Systems\7f637378
+Node: To Other Calendar\7f640489
+Node: From Other Calendar\7f642480
+Node: Mayan Calendar\7f644785
+Node: Diary\7f647980
+Node: Diary Commands\7f649729
+Node: Format of Diary File\7f653035
+Node: Date Formats\7f655905
+Node: Adding to Diary\7f658479
+Node: Special Diary Entries\7f660110
+Node: Calendar Customization\7f665449
+Node: Calendar Customizing\7f666311
+Node: Holiday Customizing\7f669530
+Node: Date Display Format\7f675998
+Node: Time Display Format\7f676956
+Node: Daylight Savings\7f678094
+Node: Diary Customizing\7f681282
+Node: Hebrew/Islamic Entries\7f685903
+Node: Fancy Diary Display\7f689243
+Node: Included Diary Files\7f691140
+Node: Sexp Diary Entries\7f692121
+Node: Appt Customizing\7f697211
+Node: Sorting\7f698257
+Node: Shell\7f703063
+Node: Single Shell\7f704356
+Node: Interactive Shell\7f705955
+Node: Shell Mode\7f709720
+Node: Terminal emulator\7f712211
+Node: Term Mode\7f714520
+Node: Paging in Term\7f715434
+Node: Narrowing\7f716232
+Node: Hardcopy\7f718182
+Node: Recursive Edit\7f719154
+Node: Dissociated Press\7f722141
+Node: CONX\7f724704
+Node: Amusements\7f725728
+Node: Emulation\7f726208
+Node: Customization\7f728052
+Node: Minor Modes\7f729776
+Node: Variables\7f731408
+Node: Examining\7f733364
+Node: Easy Customization\7f734825
+Node: Customization Groups\7f735839
+Node: Changing an Option\7f738768
+Node: Face Customization\7f745024
+Node: Specific Customization\7f746788
+Node: Edit Options\7f749395
+Node: Locals\7f750979
+Node: File Variables\7f754158
+Node: Keyboard Macros\7f758712
+Node: Basic Kbd Macro\7f760883
+Node: Save Kbd Macro\7f762815
+Node: Kbd Macro Query\7f764484
+Node: Key Bindings\7f766426
+Node: Keymaps\7f767300
+Node: Rebinding\7f771150
+Node: Interactive Rebinding\7f771849
+Node: Programmatic Rebinding\7f774041
+Node: Key Bindings Using Strings\7f776848
+Node: Disabling\7f778475
+Node: Syntax\7f780247
+Node: Syntax Entry\7f781128
+Node: Syntax Change\7f785212
+Node: Init File\7f787381
+Node: Init Syntax\7f788886
+Node: Init Examples\7f791238
+Node: Terminal Init\7f795428
+Node: Audible Bell\7f797138
+Node: Faces\7f800569
+Node: X Resources\7f805406
+Node: Geometry Resources\7f807054
+Node: Iconic Resources\7f809502
+Node: Resource List\7f809974
+Node: Face Resources\7f816481
+Node: Widgets\7f820158
+Node: Menubar Resources\7f821097
+Node: Quitting\7f822030
+Node: Lossage\7f825008
+Node: Stuck Recursive\7f825652
+Node: Screen Garbled\7f826358
+Node: Text Garbled\7f827492
+Node: Unasked-for Search\7f828131
+Node: Emergency Escape\7f828916
+Node: Total Frustration\7f830695
+Node: Bugs\7f831326
+Node: Glossary\7f840860
+Node: Manifesto\7f872489
+Node: Key Index\7f895965
+Node: Command Index\7f921160
+Node: Variable Index\7f963067
+Node: Concept Index\7f979204
\1f
End Tag Table
+2000-02-21 Martin Buchholz <martin@xemacs.org>
+
+ * XEmacs 21.2.30 is released.
+
2000-02-16 Martin Buchholz <martin@xemacs.org>
* XEmacs 21.2.29 is released.
#define DEFAULT_LOCKING DOTLOCKING
#endif
+#ifndef DISABLE_DIRECT_ACCESS
static void lock_dot(char *);
+#endif
static void unlock_dot(char *);
static int parse_lock_method(char *);
static char *unparse_lock_method(int);
static char *dotlock_filename = NULL;
+#ifndef DISABLE_DIRECT_ACCESS
static void
lock_dot(char *filename)
{
}
strcpy(dotlock_filename, filename);
}
+#endif /* not DISABLE_DIRECT_ACCESS */
static void
unlock_dot(char *filename)
+2000-02-21 Martin Buchholz <martin@xemacs.org>
+
+ * XEmacs 21.2.30 is released.
+
+2000-02-19 Martin Buchholz <martin@xemacs.org>
+
+ * byte-optimize.el (byte-optimize-plus):
+ (byte-optimize-minus):
+ (byte-optimize-multiply):
+ Optimize (- 0) to 0, not (-)
+ Optimize (+ 5 3.0) to 8.0
+ Optimize (* 5 3.0) to 15.0
+ Improve readability.
+
+2000-02-21 Jonathan Harris <jhar@tardis.ed.ac.uk>
+
+ * modeline.el: (modeline-scrolling-method): change modeline
+ mswindows cursor appearance according to the value.
+
+ * msw-faces.el: (mswindows-init-device-faces): Initialise 'default
+ and 'gui-element face colors and 'gui-element face font to Windows
+ defaults.
+
+2000-02-09 Stef Epardaud <stef@lunatech.com>
+
+ * font-lock.el: Javadoc enhancements
+
+1999-11-27 Oscar Figueiredo <Oscar.Figueiredo@di.epfl.ch>
+
+ * ldap.el (toplevel): Test if LDAP support has been compiled in
+ (ldap-verbose): New option
+ (ldap-search-entries): Renamed from the previous ldap-search
+ Conditionalize message display on ldap-verbose
+ (ldap-add-entries, ldap-modify-entries, ldap-delete-entries): New
+ defuns
+ (ldap-search): Is now defined as an obsolete wrapper calling
+ ldap-search-basic or ldap-search-entries
+
+
+1999-12-06 Hirokazu FUKUI <hfukui@sannet.ne.jp>
+ Shuhei KOBAYASHI <shuhei@aqua.ocn.ne.jp>
+ Jan Vroonhof <jan@xemacs.org>
+
+ * byte-optimize.el (byte-optimize-form-code-walker): Fixed.
+ When for-effect is true, didn't call `byte-optimize-form'
+ in and/or subforms without last.
+
+1999-12-07 Jan Vroonhof <vroonhof@math.ethz.ch>
+
+ * package-get.el (package-get-download-sites): Use correct custom
+ type.
+
+2000-02-15 Kirill 'Big K' Katsnelson <kkm@dtmx.com>
+
+ * files.el (write-file): Ask for coding system when compiled with
+ file-coding.
+
+2000-02-16 Andy Piper <andy@xemacs.org>
+
+ * buffer.el (switch-to-buffer): give norecord argument to
+ set-window-buffer instead of explicitly recording.
+
+ * gutter-items.el (buffers-tab-switch-to-buffer): don't record if
+ we have to pick a window.
+
+1999-12-24 Yoshiki Hayashi <t90553@mail.ecc.u-tokyo.ac.jp>
+
+ * mule/mule-cmds.el (describe-language-support): Don't add
+ unexist function to help-map.
+ (describe-coding-system): Don't use already assigend `C'.
+
+2000-01-23 Björn Torkelsson <torkel@hpc2n.umu.se>
+
+ * info.el (Info-save-auto-generated-dir): nil -> 'never to make it
+ work in custom.
+
+2000-02-04 Kazuyuki IENAGA <kazz@imasy.or.jp>
+
+ * about.el: Ienaga's e-mail address change.
+
+2000-02-16 Samuel Mikes <smikes@alumni.hmc.edu>
+
+ * etags.el (find-tag): force new window -- even if buf already
+ visible -- when other-window is t
+
2000-02-16 Martin Buchholz <martin@xemacs.org>
* XEmacs 21.2.29 is released.
(jmiller "Jeff Miller" "jmiller@smart.net")
(juhp "Jens-Ulrik Holger Petersen" "petersen@kurims.kyoto-u.ac.jp")
(jwz "Jamie Zawinski" "jwz@jwz.org")
- (kazz "IENAGA Kazuyuki" "ienaga@jsys.co.jp")
+ (kazz "IENAGA Kazuyuki" "ienaga@xemacs.org")
(kyle "Kyle Jones" "kyle_jones@wonderworks.com")
(larsi "Lars Magne Ingebrigtsen" "larsi@gnus.org")
(marcpa "Marc Paquette" "marcpa@CAM.ORG")
(set-buffer-major-mode buf))))
(push-window-configuration)
(set-buffer buf)
- (or norecord (record-buffer buf))
(set-window-buffer (if (eq (selected-window) (minibuffer-window))
(next-window (minibuffer-window))
(selected-window))
- buf)
+ buf norecord)
buf))
(defun pop-to-buffer (bufname &optional not-this-window-p on-frame)
(byte-compile-log
" all subforms of %s called for effect; deleted" form))
(and backwards
+ ;; Now optimize the rest of the forms. We need the return
+ ;; values. We already did the car.
+ (setcdr backwards
+ (mapcar 'byte-optimize-form (cdr backwards)))
(cons fn (nreverse backwards))))
(cons fn (mapcar 'byte-optimize-form (cdr form)))))
(setq form (byte-optimize-delay-constants-math form 1 '+))
(if (memq 0 form) (setq form (delq 0 (copy-sequence form))))
;;(setq form (byte-optimize-associative-two-args-math form))
+
(case (length (cdr form))
- ((0)
+ ((0) ; (+)
(condition-case ()
(eval form)
(error form)))
- ;; `add1' and `sub1' are a marginally fewer instructions
- ;; than `plus' and `minus', so use them when possible.
- ((2)
- (cond
- ((eq (nth 1 form) 1) `(1+ ,(nth 2 form))) ; (+ 1 x) --> (1+ x)
- ((eq (nth 2 form) 1) `(1+ ,(nth 1 form))) ; (+ x 1) --> (1+ x)
- ((eq (nth 1 form) -1) `(1- ,(nth 2 form))) ; (+ -1 x) --> (1- x)
- ((eq (nth 2 form) -1) `(1- ,(nth 1 form))) ; (+ x -1) --> (1- x)
- (t form)))
-
;; It is not safe to delete the function entirely
- ;; (actually, it would be safe if we know the sole arg
+ ;; (actually, it would be safe if we knew the sole arg
;; is not a marker).
- ;; ((null (cdr (cdr form))) (nth 1 form))
- (t form)))
+ ;; ((1)
+ ;; (nth 1 form))
+
+ ((2) ; (+ x y)
+ (byte-optimize-predicate
+ (cond
+ ;; `add1' and `sub1' are a marginally fewer instructions
+ ;; than `plus' and `minus', so use them when possible.
+ ((eq (nth 1 form) 1) `(1+ ,(nth 2 form))) ; (+ 1 x) --> (1+ x)
+ ((eq (nth 2 form) 1) `(1+ ,(nth 1 form))) ; (+ x 1) --> (1+ x)
+ ((eq (nth 1 form) -1) `(1- ,(nth 2 form))) ; (+ -1 x) --> (1- x)
+ ((eq (nth 2 form) -1) `(1- ,(nth 1 form))) ; (+ x -1) --> (1- x)
+ (t form))))
+
+ (t (byte-optimize-predicate form))))
(defun byte-optimize-minus (form)
;; Put constants at the end, except the last constant.
(setq form (byte-optimize-delay-constants-math form 2 '+))
- ;; Now only first and last element can be a number.
- (let ((last (car (reverse (nthcdr 3 form)))))
+ ;; Now only first and last element can be an integer.
+ (let ((last (last (nthcdr 3 form))))
(cond ((eq 0 last)
;; (- x y ... 0) --> (- x y ...)
(setq form (copy-sequence form))
(numberp last))
(setq form (nconc (list '- (- (nth 1 form) last) (nth 2 form))
(delq last (copy-sequence (nthcdr 3 form))))))))
- (setq form
-;;; It is not safe to delete the function entirely
-;;; (actually, it would be safe if we know the sole arg
-;;; is not a marker).
-;;; (if (eq (nth 2 form) 0)
-;;; (nth 1 form) ; (- x 0) --> x
- (byte-optimize-predicate
- (if (and (null (cdr (cdr (cdr form))))
- (eq (nth 1 form) 0)) ; (- 0 x) --> (- x)
- (cons (car form) (cdr (cdr form)))
- form))
-;;; )
- )
-
- ;; `add1' and `sub1' are a marginally fewer instructions than `plus'
- ;; and `minus', so use them when possible.
- (cond ((and (null (nthcdr 3 form))
- (eq (nth 2 form) 1))
- (list '1- (nth 1 form))) ; (- x 1) --> (1- x)
- ((and (null (nthcdr 3 form))
- (eq (nth 2 form) -1))
- (list '1+ (nth 1 form))) ; (- x -1) --> (1+ x)
- (t
- form))
- )
+
+ (case (length (cdr form))
+ ((0) ; (-)
+ (condition-case ()
+ (eval form)
+ (error form)))
+
+ ;; It is not safe to delete the function entirely
+ ;; (actually, it would be safe if we knew the sole arg
+ ;; is not a marker).
+ ;; ((1)
+ ;; (nth 1 form)
+
+ ((2) ; (+ x y)
+ (byte-optimize-predicate
+ (cond
+ ;; `add1' and `sub1' are a marginally fewer instructions than `plus'
+ ;; and `minus', so use them when possible.
+ ((eq (nth 2 form) 1) `(1- ,(nth 1 form))) ; (- x 1) --> (1- x)
+ ((eq (nth 2 form) -1) `(1+ ,(nth 1 form))) ; (- x -1) --> (1+ x)
+ ((eq (nth 1 form) 0) `(- ,(nth 2 form))) ; (- 0 x) --> (- x)
+ (t form))))
+
+ (t (byte-optimize-predicate form))))
(defun byte-optimize-multiply (form)
(setq form (byte-optimize-delay-constants-math form 1 '*))
- ;; If there is a constant in FORM, it is now the last element.
+ ;; If there is a constant integer in FORM, it is now the last element.
(cond ((null (cdr form)) 1)
;;; It is not safe to delete the function entirely
;;; (actually, it would be safe if we know the sole arg
;;; is not a marker or if it appears in other arithmetic).
;;; ((null (cdr (cdr form))) (nth 1 form))
- ((let ((last (car (reverse form))))
- (cond ((eq 0 last) (cons 'progn (cdr form)))
- ((eq 1 last) (delq 1 (copy-sequence form)))
- ((eq -1 last) (list '- (delq -1 (copy-sequence form))))
- ((and (eq 2 last)
- (memq t (mapcar 'symbolp (cdr form))))
- (prog1 (setq form (delq 2 (copy-sequence form)))
- (while (not (symbolp (car (setq form (cdr form))))))
- (setcar form (list '+ (car form) (car form)))))
- (form))))))
+ ((let ((last (last form)))
+ (byte-optimize-predicate
+ (cond ((eq 0 last) (cons 'progn (cdr form)))
+ ((eq 1 last) (delq 1 (copy-sequence form)))
+ ((eq -1 last) (list '- (delq -1 (copy-sequence form))))
+ ((and (eq 2 last)
+ (memq t (mapcar 'symbolp (cdr form))))
+ (prog1 (setq form (delq 2 (copy-sequence form)))
+ (while (not (symbolp (car (setq form (cdr form))))))
+ (setcar form (list '+ (car form) (car form)))))
+ (form)))))))
(defun byte-optimize-divide (form)
(setq form (byte-optimize-delay-constants-math form 2 '*))
- (let ((last (car (reverse (cdr (cdr form))))))
+ ;; If there is a constant integer in FORM, it is now the last element.
+ (let ((last (last (cdr (cdr form)))))
(if (numberp last)
(cond ((= (length form) 3)
(if (and (numberp (nth 1 form))
(cond
;;; ((null (cdr (cdr form)))
;;; (nth 1 form))
- ((eq (nth 1 form) 0)
- (append '(progn) (cdr (cdr form)) '(0)))
- ((eq last -1)
- (list '- (if (nthcdr 3 form)
- (butlast form)
- (nth 1 form))))
- (form))))
+ ((eq (nth 1 form) 0)
+ (append '(progn) (cdr (cdr form)) '(0)))
+ ((eq last -1)
+ (list '- (if (nthcdr 3 form)
+ (butlast form)
+ (nth 1 form))))
+ (form))))
(defun byte-optimize-logmumble (form)
(setq form (byte-optimize-delay-constants-math form 1 (car form)))
'(find-tag find-tag-other-window tags-loop-continue))))
(push-tag-mark))
(if other-window
- (pop-to-buffer tag-buf)
+ (pop-to-buffer tag-buf t)
(switch-to-buffer tag-buf))
(widen)
(push-mark)
;;;###autoload
(defun find-tag-other-window (tagname &optional next)
- "*Find tag whose name contains TAGNAME.
+ "*Find tag whose name contains TAGNAME, in another window.
Selects the buffer that the tag is contained in in another window
and puts point at its definition.
If TAGNAME is a null string, the expression in the buffer
(buffer-local-variables)))
nil nil (buffer-name)))
t
- (if (and current-prefix-arg (featurep 'mule))
+ (if (and current-prefix-arg (featurep 'file-coding))
(read-coding-system "Coding system: "))))
(and (eq (current-buffer) mouse-grabbed-buffer)
(error "Can't write minibuffer window"))
'("\\<\\(false\\|null\\|true\\)\\>" (1 font-lock-keyword-face))
;; Class names:
- (list (concat "\\<class\\>\\s *" java-font-lock-identifier-regexp)
- 1 'font-lock-function-name-face)
+ (list (concat "\\<\\(class\\|interface\\)\\>\\s *"
+ java-font-lock-identifier-regexp)
+ 2 'font-lock-function-name-face)
;; Package declarations:
(list (concat "\\<\\(package\\|import\\)\\>\\s *"
(list
- ;; Java doc tags
+ ;; Javadoc tags
'("@\\(author\\|exception\\|throws\\|deprecated\\|param\\|return\\|see\\|since\\|version\\)\\s "
0 font-lock-keyword-face t)
1 'font-lock-variable-name-face t)
;; Doc tag - Exception types
- (list (concat "@exception\\s +"
+ (list (concat "@\\(exception\\|throws\\)\\s +"
java-font-lock-identifier-regexp)
- '(1 (if (equal (char-after (match-end 0)) ?.)
+ '(2 (if (equal (char-after (match-end 0)) ?.)
font-lock-reference-face font-lock-type-face) t)
(list (concat "\\=\\." java-font-lock-identifier-regexp)
'(goto-char (match-end 0)) nil
'(1 (if (equal (char-after (match-end 0)) ?.)
'font-lock-reference-face 'font-lock-type-face) t)))
- ;; Doc tag - Exception types
- (list (concat "@exception\\s +"
- java-font-lock-identifier-regexp)
- '(1 (if (equal (char-after (match-end 0)) ?.)
- font-lock-reference-face font-lock-type-face) t)
- (list (concat "\\=\\." java-font-lock-identifier-regexp)
- '(goto-char (match-end 0)) nil
- '(1 (if (equal (char-after (match-end 0)) ?.)
- 'font-lock-reference-face 'font-lock-type-face) t)))
-
;; Doc tag - Cross-references, usually to methods
'("@see\\s +\\(\\S *[^][ \t\n\r\f(){},.;:]\\)"
1 font-lock-function-name-face t)
+ ;; Doc tag - docRoot (1.3)
+ '("\\({ *@docRoot *}\\)"
+ 0 font-lock-keyword-face t)
+ ;; Doc tag - beaninfo, unofficial but widely used, even by Sun
+ '("\\(@beaninfo\\)"
+ 0 font-lock-keyword-face t)
;; Doc tag - Links
- '("{@link\\s +\\([^}]*\\)}"
+ '("{ *@link\\s +\\([^}]+\\)}"
0 font-lock-keyword-face t)
;; Doc tag - Links
- '("{@link\\s +\\(\\S +\\s +\\S +\\)}"
+ '("{ *@link\\s +\\(\\(\\S +\\)\\|\\(\\S +\\s +\\S +\\)\\) *}"
1 font-lock-function-name-face t)
)))
"For use as a value for `buffers-tab-switch-to-buffer-function'."
(unless (eq (window-buffer) buffer)
(if (> (length (windows-of-buffer buffer)) 0)
- (select-window (car (windows-of-buffer buffer)))
+ (select-window (car (windows-of-buffer buffer)) t)
(switch-to-buffer buffer t))))
(defun select-buffers-tab-buffers-by-mode (buf1 buf2)
(const :tag "if-outdated" if-outdated))
:group 'info)
-(defcustom Info-save-auto-generated-dir nil
+(defcustom Info-save-auto-generated-dir 'never
"*Whether an auto-generated info directory listing should be saved.
Possible values are:
nil or `never', the default, auto-generated info directory
;; Author: Oscar Figueiredo <Oscar.Figueiredo@di.epfl.ch>
;; Maintainer: Oscar Figueiredo <Oscar.Figueiredo@di.epfl.ch>
;; Created: Jan 1998
-;; Version: $Revision: 1.7.2.6 $
+;; Version: $Revision: 1.7.2.7 $
;; Keywords: help comm
;; This file is part of XEmacs
;;; Code:
+(eval-when '(load)
+ (if (not (fboundp 'ldap-open))
+ (error "No LDAP support compiled in this XEmacs")))
+
(defgroup ldap nil
"Lightweight Directory Access Protocol"
:group 'comm)
(integer :tag "(number of records)")))))
:group 'ldap)
+(defcustom ldap-verbose nil
+ "*If non-nil, LDAP operations echo progress messages."
+ :type 'boolean
+ :group 'ldap)
+
(defcustom ldap-ignore-attribute-codings nil
"*If non-nil, do not perform any encoding/decoding on LDAP attribute values."
:type 'boolean
(cons name (mapcar decoder values))
attr)))
+(defun ldap-search (arg1 &rest args)
+ "Perform an LDAP search."
+ (apply (if (ldapp arg1)
+ 'ldap-search-basic
+ 'ldap-search-entries) arg1 args))
+
+(make-obsolete 'ldap-search
+ "Use `ldap-search-entries' instead or
+`ldap-search-basic' for the low-level search API.")
-(defun ldap-search (filter &optional host attributes attrsonly withdn)
+(defun ldap-search-entries (filter &optional host attributes attrsonly withdn)
"Perform an LDAP search.
FILTER is the search filter in RFC1558 syntax, i.e., something that
looks like \"(cn=John Smith)\".
(let ((host-plist (cdr (assoc host ldap-host-parameters-alist)))
ldap
result)
- (message "Opening LDAP connection to %s..." host)
+ (if ldap-verbose
+ (message "Opening LDAP connection to %s..." host))
(setq ldap (ldap-open host host-plist))
- (message "Searching with LDAP on %s..." host)
- (setq result (ldap-search-internal ldap filter
- (plist-get host-plist 'base)
- (plist-get host-plist 'scope)
- attributes attrsonly withdn))
+ (if ldap-verbose
+ (message "Searching with LDAP on %s..." host))
+ (setq result (ldap-search ldap filter
+ (plist-get host-plist 'base)
+ (plist-get host-plist 'scope)
+ attributes attrsonly withdn
+ ldap-verbose))
(ldap-close ldap)
(if ldap-ignore-attribute-codings
result
(mapcar 'ldap-decode-attribute record)))
result))))
+(defun ldap-add-entries (entries &optional host binddn passwd)
+ "Add entries to an LDAP directory.
+ENTRIES is a list of entry specifications of
+the form (DN (ATTR . VALUE) (ATTR . VALUE) ...) where
+DN is the distinguished name of an entry to add, the following
+are cons cells containing attribute/value string pairs.
+HOST is the LDAP host, defaulting to `ldap-default-host'
+BINDDN is the DN to bind as to the server
+PASSWD is the corresponding password"
+ (or host
+ (setq host ldap-default-host)
+ (error "No LDAP host specified"))
+ (let ((host-plist (cdr (assoc host ldap-host-parameters-alist)))
+ ldap
+ (i 1))
+ (if (or binddn passwd)
+ (setq host-plist (copy-seq host-plist)))
+ (if binddn
+ (setq host-plist (plist-put host-plist 'binddn binddn)))
+ (if passwd
+ (setq host-plist (plist-put host-plist 'passwd passwd)))
+ (if ldap-verbose
+ (message "Opening LDAP connection to %s..." host))
+ (setq ldap (ldap-open host host-plist))
+ (if ldap-verbose
+ (message "Adding LDAP entries..."))
+ (mapcar (function
+ (lambda (thisentry)
+ (ldap-add ldap (car thisentry) (cdr thisentry))
+ (if ldap-verbose
+ (message "%d added" i))
+ (setq i (1+ i))))
+ entries)
+ (ldap-close ldap)))
+
+
+(defun ldap-modify-entries (entry-mods &optional host binddn passwd)
+ "Modify entries of an LDAP directory.
+ENTRY_MODS is a list of entry modifications of the form
+ (DN MOD-SPEC1 MOD-SPEC2 ...) where 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
+(MOD-OP ATTR VALUE1 VALUE2 ...) MOD-OP and ATTR are mandatory,
+VALUEs are optional depending on MOD-OP.
+MOD-OP is the type of modification, one of the symbols `add', `delete'
+or `replace'. ATTR is the LDAP attribute type to modify.
+HOST is the LDAP host, defaulting to `ldap-default-host'
+BINDDN is the DN to bind as to the server
+PASSWD is the corresponding password"
+ (or host
+ (setq host ldap-default-host)
+ (error "No LDAP host specified"))
+ (let ((host-plist (cdr (assoc host ldap-host-parameters-alist)))
+ ldap
+ (i 1))
+ (if (or binddn passwd)
+ (setq host-plist (copy-seq host-plist)))
+ (if binddn
+ (setq host-plist (plist-put host-plist 'binddn binddn)))
+ (if passwd
+ (setq host-plist (plist-put host-plist 'passwd passwd)))
+ (if ldap-verbose
+ (message "Opening LDAP connection to %s..." host))
+ (setq ldap (ldap-open host host-plist))
+ (if ldap-verbose
+ (message "Modifying LDAP entries..."))
+ (mapcar (function
+ (lambda (thisentry)
+ (ldap-modify ldap (car thisentry) (cdr thisentry))
+ (if ldap-verbose
+ (message "%d modified" i))
+ (setq i (1+ i))))
+ entry-mods)
+ (ldap-close ldap)))
+
+
+(defun ldap-delete-entries (dn &optional host binddn passwd)
+ "Delete an entry from an LDAP directory.
+DN is the distinguished name of an entry to delete or
+a list of those.
+HOST is the LDAP host, defaulting to `ldap-default-host'
+BINDDN is the DN to bind as to the server
+PASSWD is the corresponding password."
+ (or host
+ (setq host ldap-default-host)
+ (error "No LDAP host specified"))
+ (let ((host-plist (cdr (assoc host ldap-host-parameters-alist)))
+ ldap)
+ (if (or binddn passwd)
+ (setq host-plist (copy-seq host-plist)))
+ (if binddn
+ (setq host-plist (plist-put host-plist 'binddn binddn)))
+ (if passwd
+ (setq host-plist (plist-put host-plist 'passwd passwd)))
+ (if ldap-verbose
+ (message "Opening LDAP connection to %s..." host))
+ (setq ldap (ldap-open host host-plist))
+ (if (consp dn)
+ (let ((i 1))
+ (if ldap-verbose
+ (message "Deleting LDAP entries..."))
+ (mapcar (function
+ (lambda (thisdn)
+ (ldap-delete ldap thisdn)
+ (if ldap-verbose
+ (message "%d deleted" i))
+ (setq i (1+ i))))
+ dn))
+ (if ldap-verbose
+ (message "Deleting LDAP entry..."))
+ (ldap-delete ldap dn))
+ (ldap-close ldap)))
+
+
(provide 'ldap)
;;; ldap.el ends here
(set-glyph-image modeline-pointer-glyph "fleur" 'global 'x))
(t
(set-glyph-image modeline-pointer-glyph "sb_v_double_arrow"
- 'global 'x)))))
+ 'global 'x))))
+ (when (featurep 'mswindows)
+ (cond ((eq val t)
+ (set-glyph-image modeline-pointer-glyph
+ [mswindows-resource :resource-type cursor
+ :resource-id "SizeAll"]
+ 'global 'mswindows))
+ ((eq val 'scrollbar)
+ (set-glyph-image modeline-pointer-glyph
+ [mswindows-resource :resource-type cursor
+ :resource-id "Normal"]
+ 'global 'mswindows))
+ (t
+ (set-glyph-image modeline-pointer-glyph
+ [mswindows-resource :resource-type cursor
+ :resource-id "SizeNS"]
+ 'global 'mswindows)))))
:group 'modeline)
(defun mouse-drag-modeline (event)
;; This file does the magic to parse mswindows font names, and make sure that
;; the default and modeline attributes of new frames are specified enough.
-;;; Force creation of the default face font so that if it fails we get an
-;;; error now instead of a crash at frame creation.
(defun mswindows-init-device-faces (device)
- (unless (face-font-instance 'default device)
- (error "Can't find a suitable default font")))
-
+ (let ((color-default (device-system-metric device 'color-default))
+ (color-3d-face (device-system-metric device 'color-3d-face)))
+ ; Force creation of the default face font so that if it fails we get
+ ; an error now instead of a crash at frame creation.
+ (unless (face-font-instance 'default device)
+ (error "Can't find a suitable default font"))
+
+ (if (car color-default)
+ (set-face-foreground 'default (car color-default)) device)
+ (if (cdr color-default)
+ (set-face-background 'default (cdr color-default)) device)
+ (if (car color-3d-face)
+ (set-face-foreground 'gui-element (car color-3d-face)) device)
+ (if (cdr color-3d-face)
+ (set-face-background 'gui-element (cdr color-3d-face)) device)
+ (set-face-font 'gui-element "MS Sans Serif:Regular:8" device)))
(defun mswindows-init-frame-faces (frame)
)
(define-key mule-keymap "r" 'toggle-display-direction) ; XEmacs
(define-key mule-keymap "l" 'set-language-environment)
-(define-key help-map "\C-L" 'describe-language-support)
(define-key help-map "L" 'describe-language-environment)
(define-key help-map "\C-\\" 'describe-input-method)
(define-key help-map "I" 'describe-input-method)
-(define-key help-map "C" 'describe-coding-system)
(define-key help-map "h" 'view-hello-file)
;; Menu for XEmacs were moved to menubar-items.el.
This variable is used to initialize `package-get-remote', the
variable actually used to specify package download sites."
:tag "Package download sites"
- :type '(repeat (list hostname directory))
+ :type '(repeat (list (string :tag "Name") host-name directory))
:group 'package-get)
(defcustom package-get-remove-copy t
+2000-02-21 Martin Buchholz <martin@xemacs.org>
+
+ * XEmacs 21.2.30 is released.
+
+2000-02-21 Andy Piper <andy@xemacs.org>
+
+ * lwlib.c (merge_widget_value_args): don't delete the args before
+ copying, lw_copy_widget_value_args will do this for us if
+ necessary.
+ (lw_add_widget_value_arg): Allow existing args to be replaced.
+ (free_widget_value_args): Set args to 0 rather than 0xdeadbeef,
+ reference couting works better that way.
+ (lw_copy_widget_value_args): Do the right thing.
+
+ * lwlib-Xm.c (xm_create_progress): Make sensitive as this looks
+ much better.
+ * lwlib-Xaw.c (xaw_create_progress): ditto.
+
+2000-02-12 Jan Vroonhof <vroonhof@math.ethz.ch>
+
+ * xlwmenu.h (XmUNSPECIFIED_PIXMAP): Define this if we are using Motif
+ compatible resource names.
+
+ * xlwmenu.c (make_shadow_gcs): Always check for XmUNSPECIFIED_PIXMAP
+ even if we are only 'compatible' with the Motif resources.
+
+2000-02-15 Andy Piper <andy@xemacs.org>
+
+ * xlwgauge.c (GaugeExpose): remove shadows.
+
2000-02-16 Martin Buchholz <martin@xemacs.org>
* XEmacs 21.2.29 is released.
int ac = 0;
Widget scale = 0;
widget_value* val = instance->info->val;
-
+#if 0 /* This looks too awful, although more correct. */
if (!val->call_data)
{
XtSetArg (al [ac], XtNsensitive, False); ac++;
{
XtSetArg (al [ac], XtNsensitive, val->enabled); ac++;
}
+#else
+ XtSetArg (al [ac], XtNsensitive, True); ac++;
+#endif
+
XtSetArg (al [ac], XtNmappedWhenManaged, FALSE); ac++;
XtSetArg (al [ac], XtNorientation, XtorientHorizontal); ac++;
XtSetArg (al [ac], XtNhighlightThickness, (Dimension)0);ac++;
int ac = 0;
Widget scale = 0;
widget_value* val = instance->info->val;
-
+#if 0 /* This looks too awful, although more correct. */
if (!val->call_data)
{
XtSetArg (al [ac], XmNsensitive, False); ac++;
{
XtSetArg (al [ac], XmNsensitive, val->enabled); ac++;
}
+#else
+ XtSetArg (al [ac], XmNsensitive, True); ac++;
+#endif
XtSetArg (al [ac], XmNalignment, XmALIGNMENT_BEGINNING); ac++;
XtSetArg (al [ac], XmNuserData, val->call_data); ac++;
XtSetArg (al [ac], XmNmappedWhenManaged, FALSE); ac++;
{
/* #### Do something more sensible here than just copying the
new values (like actually merging the values). */
- free_widget_value_args (old);
lw_copy_widget_value_args (new, old);
changed = True;
}
void lw_add_widget_value_arg (widget_value* wv, String name, XtArgVal value)
{
+ int i = 0;
if (!wv->args)
{
wv->args = (widget_args *) malloc (sizeof (widget_args));
if (wv->args->nargs > 10)
return;
- XtSetArg (wv->args->args [wv->args->nargs], name, value); wv->args->nargs++;
+ /* If the arg is already there then we must replace it. */
+ for (i = 0; i < wv->args->nargs; i++)
+ {
+ if (!strcmp (wv->args->args[i].name, name))
+ {
+ XtSetArg (wv->args->args [i], name, value);
+ break;
+ }
+ }
+ if (i >= wv->args->nargs)
+ {
+ XtSetArg (wv->args->args [wv->args->nargs], name, value); wv->args->nargs++;
+ }
}
static void free_widget_value_args (widget_value* wv)
#endif
free (wv->args->args);
free (wv->args);
- wv->args = (widget_args*)0xDEADBEEF;
+ wv->args = 0;
}
}
}
void lw_copy_widget_value_args (widget_value* val, widget_value* copy)
{
- if (!val->args)
+ if (val == copy || val->args == copy->args)
+ return;
+
+ if (copy->args)
{
- if (copy->args)
- free_widget_value_args (copy);
- copy->args = 0;
+ free_widget_value_args (copy);
}
- else
+
+ if (val->args)
{
copy->args = val->args;
copy->args->ref_count++;
if( gw->gauge.nlabels > 1 )
{
char label[20], *s = label ;
- int len, w,h =0 ;
+ int xlen, wd,h =0 ;
if( gw->gauge.orientation == XtorientHorizontal )
y = gw->gauge.lmargin + gw->label.font->max_bounds.ascent - 1 ;
s = gw->gauge.labels[i] ;
if( s != NULL ) {
x = e0 + i*(e1-e0-1)/(gw->gauge.nlabels-1) ;
- len = strlen(s) ;
+ xlen = strlen(s) ;
if( gw->gauge.orientation == XtorientHorizontal ) {
- w = XTextWidth(gw->label.font, s, len) ;
- XDrawString(dpy,win,gc, x-w/2,y, s,len) ;
+ wd = XTextWidth(gw->label.font, s, xlen) ;
+ XDrawString(dpy,win,gc, x-wd/2,y, s,xlen) ;
}
else {
- XDrawString(dpy,win,gc, y,x+h, s,len) ;
+ XDrawString(dpy,win,gc, y,x+h, s,xlen) ;
}
}
}
xgcv.foreground = mw->menu.top_shadow_color;
xgcv.background = mw->core.background_pixel;
/* xgcv.stipple = mw->menu.top_shadow_pixmap; gtb */
-#ifdef NEED_MOTIF
if (mw->menu.top_shadow_pixmap &&
mw->menu.top_shadow_pixmap != XmUNSPECIFIED_PIXMAP)
xgcv.stipple = mw->menu.top_shadow_pixmap;
else
xgcv.stipple = 0;
-#else
- xgcv.stipple = mw->menu.top_shadow_pixmap;
-#endif /* NEED_MOTIF */
pm = (xgcv.stipple ? GCStipple|GCFillStyle : 0);
mw->menu.shadow_top_gc =
XtGetGC((Widget)mw, GCForeground|GCBackground|pm, &xgcv);
xgcv.foreground = mw->menu.bottom_shadow_color;
/* xgcv.stipple = mw->menu.bottom_shadow_pixmap; gtb */
-#ifdef NEED_MOTIF
if (mw->menu.bottom_shadow_pixmap &&
mw->menu.bottom_shadow_pixmap != XmUNSPECIFIED_PIXMAP)
xgcv.stipple = mw->menu.bottom_shadow_pixmap;
else
xgcv.stipple = 0;
-#else
- xgcv.stipple = mw->menu.bottom_shadow_pixmap;
-#endif /* NEED_MOTIF */
pm = (xgcv.stipple ? GCStipple|GCFillStyle : 0);
mw->menu.shadow_bottom_gc =
XtGetGC ((Widget)mw, GCForeground|GCBackground|pm, &xgcv);
# define XmCTopShadowPixmap "TopShadowPixmap"
# define XmNbottomShadowPixmap "bottomShadowPixmap"
# define XmCBottomShadowPixmap "BottomShadowPixmap"
+# define XmUNSPECIFIED_PIXMAP 2
# define XmRHorizontalDimension "HorizontalDimension"
# define XmNspacing "spacing"
# define XmCSpacing "Spacing"
+2000-02-21 Martin Buchholz <martin@xemacs.org>
+
+ * XEmacs 21.2.30 is released.
+
+2000-02-21 Jonathan Harris <jhar@tardis.ed.ac.uk>
+
+ * internals/internals.texi: Made texinfmt-friendly.
+
+2000-01-20 Mark Thomas <mthomas@jprc.com>
+
+ * lispref/backups.texi (Numbered Backups):
+ * xemacs/files.texi (Backup Deletion):
+ Change trim-versions-without-asking to delete-old-versions.
+
+2000-02-19 Martin Buchholz <martin@xemacs.org>
+
+ * internals/internals.texi (Conversion to and from External Data):
+ Document TO_EXTERNAL_FORMAT and friends.
+ Doc bug fixes.
+
2000-02-16 Martin Buchholz <martin@xemacs.org>
* XEmacs 21.2.29 is released.
@example
(declaim (inline foo bar))
(eval-when (compile load eval) (proclaim '(inline foo bar)))
-(proclaim-inline foo bar) ; XEmacs only
-(defsubst foo (...) ...) ; instead of defun; Emacs 19 only
+(proclaim-inline foo bar) ; XEmacs only
+(defsubst foo (...) ...) ; instead of defun; Emacs 19 only
@end example
@strong{Please note:} This declaration remains in effect after the
just as well to use a regular quote:
@example
-(loop for x in y by #'cddr collect (mapcar #'plusp x)) ; Common Lisp
-(loop for x in y by 'cddr collect (mapcar 'plusp x)) ; Emacs Lisp
+(loop for x in y by #'cddr collect (mapcar #'plusp x)) ; Common Lisp
+(loop for x in y by 'cddr collect (mapcar 'plusp x)) ; Emacs Lisp
@end example
When @code{#'} introduces a @code{lambda} form, it is best to
* Interface to X Windows::
* Index::
-@detailmenu --- The Detailed Node Listing ---
+@detailmenu
+
+--- The Detailed Node Listing ---
A History of Emacs
* Allocation from Frob Blocks::
* lrecords::
* Low-level allocation::
-* Pure Space::
* Cons::
* Vector::
* Bit Vector::
Unfortunately, there is no perfect language. Static typing allows a
compiler to catch programmer errors and produce more efficient code, but
-makes programming more tedious and less fun. For the forseeable future,
+makes programming more tedious and less fun. For the foreseeable future,
an Ideal Editing and Programming Environment (and that is what XEmacs
aspires to) will be programmable in multiple languages: high level ones
like Lisp for user customization and prototyping, and lower level ones
[ 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 ]
[ 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 ]
- <---> ^ <------------------------------------------------------>
- tag | a pointer to a structure, or an integer
- |
- mark bit
-@end example
-
-The tag describes the type of the Lisp object. For integers and chars,
-the lower 28 bits contain the value of the integer or char; for all
-others, the lower 28 bits contain a pointer. The mark bit is used
-during garbage-collection, and is always 0 when garbage collection is
-not happening. (The way that garbage collection works, basically, is that it
-loops over all places where Lisp objects could exist---this includes
-all global variables in C that contain Lisp objects [including
-@code{Vobarray}, the C equivalent of @code{obarray}; through this, all
-Lisp variables will get marked], plus various other places---and
-recursively scans through the Lisp objects, marking each object it finds
-by setting the mark bit. Then it goes through the lists of all objects
-allocated, freeing the ones that are not marked and turning off the mark
-bit of the ones that are marked.)
+ <---------------------------------------------------------> <->
+ a pointer to a structure, or an integer tag
+@end example
+
+A tag of 00 is used for all pointer object types, a tag of 10 is used
+for characters, and the other two tags 01 and 11 are joined together to
+form the integer object type. This representation gives us 31 bits
+integers, 30 bits characters and pointers are represented directly
+without any bit masking. This representation, though, assumes that
+pointers to structs are always aligned to multiples of 4, so the lower 2
+bits are always zero.
Lisp objects use the typedef @code{Lisp_Object}, but the actual C type
used for the Lisp object can vary. It can be either a simple type
determined by the preprocessor constant @code{USE_UNION_TYPE} which is
defined via the @code{--use-union-type} option to @code{configure}.
-@cindex record type
-
-Note that there are only eight types that the tag can represent, but
-many more actual types than this. This is handled by having one of the
-tag types specify a meta-type called a @dfn{record}; for all such
-objects, the first four bytes of the pointed-to structure indicate what
-the actual type is.
-
-Note also that having 28 bits for pointers and integers restricts a lot
-of things to 256 megabytes of memory. (Basically, enough pointers and
-indices and whatnot get stuffed into Lisp objects that the total amount
-of memory used by XEmacs can't grow above 256 megabytes. In older
-versions of XEmacs and GNU Emacs, the tag was 5 bits wide, allowing for
-32 types, which was more than the actual number of types that existed at
-the time, and no ``record'' type was necessary. However, this limited
-the editor to 64 megabytes total, which some users who edited large
-files might conceivably exceed.)
-
-Also, note that there is an implicit assumption here that all pointers
-are low enough that the top bits are all zero and can just be chopped
-off. On standard machines that allocate memory from the bottom up (and
-give each process its own address space), this works fine. Some
-machines, however, put the data space somewhere else in memory
-(e.g. beginning at 0x80000000). Those machines cope by defining
-@code{DATA_SEG_BITS} in the corresponding @file{m/} or @file{s/} file to
-the proper mask. Then, pointers retrieved from Lisp objects are
-automatically OR'ed with this value prior to being used.
-
-A corollary of the previous paragraph is that @strong{(pointers to)
-stack-allocated structures cannot be put into Lisp objects}. The stack
-is generally located near the top of memory; if you put such a pointer
-into a Lisp object, it will get its top bits chopped off, and you will
-lose.
-
-Actually, there's an alternative representation of a @code{Lisp_Object},
-invented by Kyle Jones, that is used when the
-@code{--use-minimal-tagbits} option to @code{configure} is used. In
-this case the 2 lower bits are used for the tag bits. This
-representation assumes that pointers to structs are always aligned to
-multiples of 4, so the lower 2 bits are always zero.
-
-@example
- [ 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 ]
- [ 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 ]
-
- <---------------------------------------------------------> <->
- a pointer to a structure, or an integer tag
-@end example
-
-A tag of 00 is used for all pointer object types, a tag of 10 is used
-for characters, and the other two tags 01 and 11 are joined together to
-form the integer object type. The markbit is moved to part of the
-structure being pointed at (integers and chars do not need to be marked,
-since no memory is allocated). This representation has these
-advantages:
-
-@enumerate
-@item
-31 bits can be used for Lisp Integers.
-@item
-@emph{Any} pointer can be represented directly, and no bit masking
-operations are necessary.
-@end enumerate
-
-The disadvantages are:
-
-@enumerate
-@item
-An extra level of indirection is needed when accessing the object types
-that were not record types. So checking whether a Lisp object is a cons
-cell becomes a slower operation.
-@item
-Mark bits can no longer be stored directly in Lisp objects, so another
-place for them must be found. This means that a cons cell requires more
-memory than merely room for 2 lisp objects, leading to extra memory use.
-@end enumerate
-
Various macros are used to construct Lisp objects and extract the
components. Macros of the form @code{XINT()}, @code{XCHAR()},
-@code{XSTRING()}, @code{XSYMBOL()}, etc. mask out the pointer/integer
-field and cast it to the appropriate type. All of the macros that
-construct pointers will @code{OR} with @code{DATA_SEG_BITS} if
-necessary. @code{XINT()} needs to be a bit tricky so that negative
-numbers are properly sign-extended: Usually it does this by shifting the
-number four bits to the left and then four bits to the right. This
-assumes that the right-shift operator does an arithmetic shift (i.e. it
-leaves the most-significant bit as-is rather than shifting in a zero, so
-that it mimics a divide-by-two even for negative numbers). Not all
-machines/compilers do this, and on the ones that don't, a more
-complicated definition is selected by defining
-@code{EXPLICIT_SIGN_EXTEND}.
+@code{XSTRING()}, @code{XSYMBOL()}, etc. shift out the tag field if
+needed cast it to the appropriate type. @code{XINT()} needs to be a bit
+tricky so that negative numbers are properly sign-extended. Since
+integers are stored left-shifted, if the right-shift operator does an
+arithmetic shift (i.e. it leaves the most-significant bit as-is rather
+than shifting in a zero, so that it mimics a divide-by-two even for
+negative numbers) the shift to remove the tag bit is enough. This is
+the case on all the systems we support.
Note that when @code{ERROR_CHECK_TYPECHECK} is defined, the extractor
macros become more complicated---they check the tag bits and/or the
segment is re-mapped so that it becomes part of the (unmodifiable) code
segment in the dumped executable. This allows this memory to be shared
among multiple running XEmacs processes. XEmacs is careful to place as
-much constant data as possible into initialized variables (in
-particular, into what's called the @dfn{pure space}---see below) during
-the @file{temacs} phase.
+much constant data as possible into initialized variables during the
+@file{temacs} phase.
@cindex copy-on-write
@strong{Please note:} This kludge only works on a few systems nowadays,
The data representing the text in a buffer or string is logically a set
of @code{Bufbyte}s.
-XEmacs does not work with character formats all the time; when reading
-characters from the outside, it decodes them to an internal format, and
-likewise encodes them when writing. @code{Bufbyte} (in fact
+XEmacs does not work with the same character formats all the time; when
+reading characters from the outside, it decodes them to an internal
+format, and likewise encodes them when writing. @code{Bufbyte} (in fact
@code{unsigned char}) is the basic unit of XEmacs internal buffers and
-strings format.
+strings format. A @code{Bufbyte *} is the type that points at text
+encoded in the variable-width internal encoding.
One character can correspond to one or more @code{Bufbyte}s. In the
-current implementation, an ASCII character is represented by the same
-@code{Bufbyte}, and extended characters are represented by a sequence of
-@code{Bufbyte}s.
+current Mule implementation, an ASCII character is represented by the
+same @code{Bufbyte}, and other characters are represented by a sequence
+of two or more @code{Bufbyte}s.
-Without Mule support, a @code{Bufbyte} is equivalent to an
-@code{Emchar}.
+Without Mule support, there are exactly 256 characters, implicitly
+Latin-1, and each character is represented using one @code{Bufbyte}, and
+there is a one-to-one correspondence between @code{Bufbyte}s and
+@code{Emchar}s.
@item Bufpos
@itemx Charcount
A @code{Charcount} represents a number (count) of characters.
Logically, subtracting two @code{Bufpos} values yields a
@code{Charcount} value. Although all of these are @code{typedef}ed to
-@code{int}, we use them in preference to @code{int} to make it clear
-what sort of position is being used.
+@code{EMACS_INT}, we use them in preference to @code{EMACS_INT} to make
+it clear what sort of position is being used.
@code{Bufpos} and @code{Charcount} values are the only ones that are
ever visible to Lisp.
@cindex Bytind
@cindex Bytecount
A @code{Bytind} represents a byte position in a buffer or string. A
-@code{Bytecount} represents the distance between two positions in bytes.
+@code{Bytecount} represents the distance between two positions, in bytes.
The relationship between @code{Bytind} and @code{Bytecount} is the same
as the relationship between @code{Bufpos} and @code{Charcount}.
@table @code
@item MAX_EMCHAR_LEN
@cindex MAX_EMCHAR_LEN
-This preprocessor constant is the maximum number of buffer bytes per
-Emacs character, i.e. the byte length of an @code{Emchar}. It is useful
-when allocating temporary strings to keep a known number of characters.
-For instance:
+This preprocessor constant is the maximum number of buffer bytes to
+represent an Emacs character in the variable width internal encoding.
+It is useful when allocating temporary strings to keep a known number of
+characters. For instance:
@example
@group
The interface to conversion between the internal and external
representations of text are the numerous conversion macros defined in
-@file{buffer.h}. Before looking at them, we'll look at the external
-formats supported by these macros.
-
-Currently meaningful formats are @code{FORMAT_BINARY},
-@code{FORMAT_FILENAME}, @code{FORMAT_OS}, and @code{FORMAT_CTEXT}. Here
-is a description of these.
+@file{buffer.h}. There used to be a fixed set of external formats
+supported by these macros, but now any coding system can be used with
+these macros. The coding system alias mechanism is used to create the
+following logical coding systems, which replace the fixed external
+formats. The (dontusethis-set-symbol-value-handler) mechanism was
+enhanced to make this possible (more work on that is needed - like
+remove the @code{dontusethis-} prefix).
@table @code
-@item FORMAT_BINARY
-Binary format. This is the simplest format and is what we use in the
-absence of a more appropriate format. This converts according to the
-@code{binary} coding system:
+@item Qbinary
+This is the simplest format and is what we use in the absence of a more
+appropriate format. This converts according to the @code{binary} coding
+system:
@enumerate a
@item
-On input, bytes 0--255 are converted into characters 0--255.
+On input, bytes 0--255 are converted into (implicitly Latin-1)
+characters 0--255. A non-Mule xemacs doesn't really know about
+different character sets and the fonts to display them, so the bytes can
+be treated as text in different 1-byte encodings by simply setting the
+appropriate fonts. So in a sense, non-Mule xemacs is a multi-lingual
+editor if, for example, different fonts are used to display text in
+different buffers, faces, or windows. The specifier mechanism gives the
+user complete control over this kind of behavior.
@item
On output, characters 0--255 are converted into bytes 0--255 and other
-characters are converted into `X'.
+characters are converted into `~'.
@end enumerate
-@item FORMAT_FILENAME
-Format used for filenames. In the original Mule, this is user-definable
-with the @code{pathname-coding-system} variable. For the moment, we
-just use the @code{binary} coding system.
+@item Qfile_name
+Format used for filenames. This is user-definable via either the
+@code{file-name-coding-system} or @code{pathname-coding-system} (now
+obsolete) variables.
-@item FORMAT_OS
+@item Qnative
Format used for the external Unix environment---@code{argv[]}, stuff
from @code{getenv()}, stuff from the @file{/etc/passwd} file, etc.
+Currently this is the same as Qfile_name. The two should be
+distinguished for clarity and possible future separation.
-Perhaps should be the same as FORMAT_FILENAME.
-
-@item FORMAT_CTEXT
-Compound--text format. This is the standard X format used for data
+@item Qctext
+Compound--text format. This is the standard X11 format used for data
stored in properties, selections, and the like. This is an 8-bit
-no-lock-shift ISO2022 coding system.
+no-lock-shift ISO2022 coding system. This is a real coding system,
+unlike Qfile_name, which is user-definable.
@end table
-The macros to convert between these formats and the internal format, and
-vice versa, follow.
+There are two fundamental macros to convert between external and
+internal format.
+
+@code{TO_INTERNAL_FORMAT} converts external data to internal format, and
+@code{TO_EXTERNAL_FORMAT} converts the other way around. The arguments
+each of these receives are a source type, a source, a sink type, a sink,
+and a coding system (or a symbol naming a coding system).
+
+A typical call looks like
+@example
+TO_EXTERNAL_FORMAT (LISP_STRING, str, C_STRING_MALLOC, ptr, Qfile_name);
+@end example
+
+which means that the contents of the lisp string @code{str} are written
+to a malloc'ed memory area which will be pointed to by @code{ptr}, after
+the function returns. The conversion will be done using the
+@code{file-name} coding system, which will be controlled by the user
+indirectly by setting or binding the variable
+@code{file-name-coding-system}.
+
+Some sources and sinks require two C variables to specify. We use some
+preprocessor magic to allow different source and sink types, and even
+different numbers of arguments to specify different types of sources and
+sinks.
+
+So we can have a call that looks like
+@example
+TO_INTERNAL_FORMAT (DATA, (ptr, len),
+ MALLOC, (ptr, len),
+ coding_system);
+@end example
+
+The parenthesized argument pairs are required to make the preprocessor
+magic work.
+
+Here are the different source and sink types:
@table @code
-@item GET_CHARPTR_INT_DATA_ALLOCA
-@itemx GET_CHARPTR_EXT_DATA_ALLOCA
-These two are the most basic conversion macros.
-@code{GET_CHARPTR_INT_DATA_ALLOCA} converts external data to internal
-format, and @code{GET_CHARPTR_EXT_DATA_ALLOCA} converts the other way
-around. The arguments each of these receives are @var{ptr} (pointer to
-the text in external format), @var{len} (length of texts in bytes),
-@var{fmt} (format of the external text), @var{ptr_out} (lvalue to which
-new text should be copied), and @var{len_out} (lvalue which will be
-assigned the length of the internal text in bytes). The resulting text
-is stored to a stack-allocated buffer. If the text doesn't need
-changing, these macros will do nothing, except for setting
-@var{len_out}.
-
-The macros above take many arguments which makes them unwieldy. For
-this reason, a number of convenience macros are defined with obvious
-functionality, but accepting less arguments. The general rule is that
-macros with @samp{INT} in their name convert text to internal Emacs
-representation, whereas the @samp{EXT} macros convert to external
-representation.
-
-@item GET_C_CHARPTR_INT_DATA_ALLOCA
-@itemx GET_C_CHARPTR_EXT_DATA_ALLOCA
-As their names imply, these macros work on C char pointers, which are
-zero-terminated, and thus do not need @var{len} or @var{len_out}
-parameters.
-
-@item GET_STRING_EXT_DATA_ALLOCA
-@itemx GET_C_STRING_EXT_DATA_ALLOCA
-These two macros convert a Lisp string into an external representation.
-The difference between them is that @code{GET_STRING_EXT_DATA_ALLOCA}
-stores its output to a generic string, providing @var{len_out}, the
-length of the resulting external string. On the other hand,
-@code{GET_C_STRING_EXT_DATA_ALLOCA} assumes that the caller will be
-satisfied with output string being zero-terminated.
-
-Note that for Lisp strings only one conversion direction makes sense.
-
-@item GET_C_CHARPTR_EXT_BINARY_DATA_ALLOCA
-@itemx GET_CHARPTR_EXT_BINARY_DATA_ALLOCA
-@itemx GET_STRING_BINARY_DATA_ALLOCA
-@itemx GET_C_STRING_BINARY_DATA_ALLOCA
-@itemx GET_C_CHARPTR_EXT_FILENAME_DATA_ALLOCA
-@itemx ...
-These macros convert internal text to a specific external
-representation, with the external format being encoded into the name of
-the macro. Note that the @code{GET_STRING_...} and
-@code{GET_C_STRING...} macros lack the @samp{EXT} tag, because they
-only make sense in that direction.
-
-@item GET_C_CHARPTR_INT_BINARY_DATA_ALLOCA
-@itemx GET_CHARPTR_INT_BINARY_DATA_ALLOCA
-@itemx GET_C_CHARPTR_INT_FILENAME_DATA_ALLOCA
-@itemx ...
-These macros convert external text of a specific format to its internal
-representation, with the external format being incoded into the name of
-the macro.
+@item @code{DATA, (ptr, len),}
+input data is a fixed buffer of size @var{len} at address @var{ptr}
+@item @code{ALLOCA, (ptr, len),}
+output data is placed in an alloca()ed buffer of size @var{len} pointed to by @var{ptr}
+@item @code{MALLOC, (ptr, len),}
+output data is in a malloc()ed buffer of size @var{len} pointed to by @var{ptr}
+@item @code{C_STRING_ALLOCA, ptr,}
+equivalent to @code{ALLOCA (ptr, len_ignored)} on output.
+@item @code{C_STRING_MALLOC, ptr,}
+equivalent to @code{MALLOC (ptr, len_ignored)} on output
+@item @code{C_STRING, ptr,}
+equivalent to @code{DATA, (ptr, strlen (ptr) + 1)} on input
+@item @code{LISP_STRING, string,}
+input or output is a Lisp_Object of type string
+@item @code{LISP_BUFFER, buffer,}
+output is written to @code{(point)} in lisp buffer @var{buffer}
+@item @code{LISP_LSTREAM, lstream,}
+input or output is a Lisp_Object of type lstream
+@item @code{LISP_OPAQUE, object,}
+input or output is a Lisp_Object of type opaque
@end table
+Often, the data is being converted to a '\0'-byte-terminated string,
+which is the format required by many external system C APIs. For these
+purposes, a source type of @code{C_STRING} or a sink type of
+@code{C_STRING_ALLOCA} or @code{C_STRING_MALLOC} is appropriate.
+Otherwise, we should try to keep XEmacs '\0'-byte-clean, which means
+using (ptr, len) pairs.
+
+The sinks to be specified must be lvalues, unless they are the lisp
+object types @code{LISP_LSTREAM} or @code{LISP_BUFFER}.
+
+For the sink types @code{ALLOCA} and @code{C_STRING_ALLOCA}, the
+resulting text is stored in a stack-allocated buffer, which is
+automatically freed on returning from the function. However, the sink
+types @code{MALLOC} and @code{C_STRING_MALLOC} return @code{xmalloc()}ed
+memory. The caller is responsible for freeing this memory using
+@code{xfree()}.
+
+Note that it doesn't make sense for @code{LISP_STRING} to be a source
+for @code{TO_INTERNAL_FORMAT} or a sink for @code{TO_EXTERNAL_FORMAT}.
+You'll get an assertion failure if you try.
+
+
@node General Guidelines for Writing Mule-Aware Code, An Example of Mule-Aware Code, Conversion to and from External Data, Coding for Mule
@subsection General Guidelines for Writing Mule-Aware Code
buffers literally.
This means that when a system function, such as @code{readdir}, returns
-a string, you need to convert it using one of the conversion macros
+a string, you may need to convert it using one of the conversion macros
described in the previous chapter, before passing it further to Lisp.
-In the case of @code{readdir}, you would use the
-@code{GET_C_CHARPTR_INT_FILENAME_DATA_ALLOCA} macro.
+
+Actually, most of the basic system functions that accept '\0'-terminated
+string arguments, like @code{stat()} and @code{open()}, have been
+@strong{encapsulated} so that they are they @code{always} do internal to
+external conversion themselves. This means you must pass internally
+encoded data, typically the @code{XSTRING_DATA} of a Lisp_String to
+these functions. This is actually a design bug, since it unexpectedly
+changes the semantics of the system functions. A better design would be
+to provide separate versions of these system functions that accepted
+Lisp_Objects which were lisp strings in place of their current
+@code{char *} arguments.
+
+@example
+int stat_lisp (Lisp_Object path, struct stat *buf); /* Implement me */
+@end example
Also note that many internal functions, such as @code{make_string},
accept Bufbytes, which removes the need for them to convert the data
@node An Example of Mule-Aware Code, , General Guidelines for Writing Mule-Aware Code, Coding for Mule
@subsection An Example of Mule-Aware Code
-As an example of Mule-aware code, we shall will analyze the
-@code{string} function, which conses up a Lisp string from the character
-arguments it receives. Here is the definition, pasted from
-@code{alloc.c}:
+As an example of Mule-aware code, we will analyze the @code{string}
+function, which conses up a Lisp string from the character arguments it
+receives. Here is the definition, pasted from @code{alloc.c}:
@example
@group
Generated header files should be included using the @code{#include <...>} syntax,
not the @code{#include "..."} syntax. The generated headers are:
-@file{config.h puresize-adjust.h sheap-adjust.h paths.h Emacs.ad.h}
+@file{config.h sheap-adjust.h paths.h Emacs.ad.h}
The basic rule is that you should assume builds using @code{--srcdir}
and the @code{#include <...>} syntax needs to be used when the
@end example
@end itemize
+Here is a checklist of things to do when creating a new lisp object type
+named @var{foo}:
+
+@enumerate
+@item
+create @var{foo}.h
+@item
+create @var{foo}.c
+@item
+add definitions of syms_of_@var{foo}, etc. to @var{foo}.c
+@item
+add declarations of syms_of_@var{foo}, etc. to symsinit.h
+@item
+add calls to syms_of_@var{foo}, etc. to emacs.c(main_1)
+@item
+add definitions of macros like CHECK_FOO and FOOP to @var{foo}.h
+@item
+add the new type index to enum lrecord_type
+@item
+add DEFINE_LRECORD_IMPLEMENTATION call to @var{foo}.c
+@end enumerate
@node A Summary of the Various XEmacs Modules, Allocation of Objects in XEmacs Lisp, Rules When Writing New C Code, Top
@chapter A Summary of the Various XEmacs Modules
@example
alloc.c
-pure.c
-puresize.h
@end example
The large module @file{alloc.c} implements all of the basic allocation and
subtypes in the subsystem; this provides a great deal of robustness to
the XEmacs code.
-@cindex pure space
-@file{pure.c} contains the declaration of the @dfn{purespace} array.
-Pure space is a hack used to place some constant Lisp data into the code
-segment of the XEmacs executable, even though the data needs to be
-initialized through function calls. (See above in section VIII for more
-info about this.) During startup, certain sorts of data is
-automatically copied into pure space, and other data is copied manually
-in some of the basic Lisp files by calling the function @code{purecopy},
-which copies the object if possible (this only works in temacs, of
-course) and returns the new object. In particular, while temacs is
-executing, the Lisp reader automatically copies all compiled-function
-objects that it reads into pure space. Since compiled-function objects
-are large, are never modified, and typically comprise the majority of
-the contents of a compiled-Lisp file, this works well. While XEmacs is
-running, any attempt to modify an object that resides in pure space
-causes an error. Objects in pure space are never garbage collected --
-almost all of the time, they're intended to be permanent, and in any
-case you can't write into pure space to set the mark bits.
-
-@file{puresize.h} contains the declaration of the size of the pure space
-array. This depends on the optional features that are compiled in, any
-extra purespace requested by the user at compile time, and certain other
-factors (e.g. 64-bit machines need more pure space because their Lisp
-objects are larger). The smallest size that suffices should be used, so
-that there's no wasted space. If there's not enough pure space, you
-will get an error during the build process, specifying how much more
-pure space is needed.
-
-
@example
eval.c
* Allocation from Frob Blocks::
* lrecords::
* Low-level allocation::
-* Pure Space::
* Cons::
* Vector::
* Bit Vector::
have no corresponding Lisp primitives. Every Lisp object, though,
has at least one C primitive for creating it.
- Recall from section (VII) that a Lisp object, as stored in a 32-bit
-or 64-bit word, has a mark bit, a few tag bits, and a ``value'' that
-occupies the remainder of the bits. We can separate the different
-Lisp object types into four broad categories:
+ Recall from section (VII) that a Lisp object, as stored in a 32-bit or
+64-bit word, has a few tag bits, and a ``value'' that occupies the
+remainder of the bits. We can separate the different Lisp object types
+into three broad categories:
@itemize @bullet
@item
@code{GCPRO}ed.
@end itemize
- In the remaining three categories, the value is a pointer to a
-structure.
-
-@itemize @bullet
-@item
-@cindex frob block
-(b) Those for whom the tag directly specifies the type. Recall that
-there are only three tag bits; this means that at most five types can be
-specified this way. The most commonly-used types are stored in this
-format; this includes conses, strings, vectors, and sometimes symbols.
-With the exception of vectors, objects in this category are allocated in
-@dfn{frob blocks}, i.e. large blocks of memory that are subdivided into
-individual objects. This saves a lot on malloc overhead, since there
-are typically quite a lot of these objects around, and the objects are
-small. (A cons, for example, occupies 8 bytes on 32-bit machines---4
-bytes for each of the two objects it contains.) Vectors are individually
-@code{malloc()}ed since they are of variable size. (It would be
-possible, and desirable, to allocate vectors of certain small sizes out
-of frob blocks, but it isn't currently done.) Strings are handled
-specially: Each string is allocated in two parts, a fixed size structure
-containing a length and a data pointer, and the actual data of the
-string. The former structure is allocated in frob blocks as usual, and
-the latter data is stored in @dfn{string chars blocks} and is relocated
-during garbage collection to eliminate holes.
-@end itemize
-
In the remaining two categories, the type is stored in the object
itself. The tag for all such objects is the generic @dfn{lrecord}
-(Lisp_Record) tag. The first four bytes (or eight, for 64-bit machines)
-of the object's structure are a pointer to a structure that describes
-the object's type, which includes method pointers and a pointer to a
-string naming the type. Note that it's possible to save some space by
-using a one- or two-byte tag, rather than a four- or eight-byte pointer
-to store the type, but it's not clear it's worth making the change.
+(Lisp_Type_Record) tag. The first bytes of the object's structure are an
+integer (actually a char) characterising the object's type and some
+flags, in particular the mark bit used for garbage collection. A
+structure describing the type is accessible thru the
+lrecord_implementation_table indexed with said integer. This structure
+includes the method pointers and a pointer to a string naming the type.
@itemize @bullet
@item
-(c) Those lrecords that are allocated in frob blocks (see above). This
+(b) Those lrecords that are allocated in frob blocks (see above). This
includes the objects that are most common and relatively small, and
-includes floats, compiled functions, symbols (when not in category (b)),
+includes conses, strings, subrs, floats, compiled functions, symbols,
extents, events, and markers. With the cleanup of frob blocks done in
19.12, it's not terribly hard to add more objects to this category, but
-it's a bit trickier than adding an object type to type (d) (esp. if the
+it's a bit trickier than adding an object type to type (c) (esp. if the
object needs a finalization method), and is not likely to save much
space unless the object is small and there are many of them. (In fact,
if there are very few of them, it might actually waste space.)
@item
-(d) Those lrecords that are individually @code{malloc()}ed. These are
+(c) Those lrecords that are individually @code{malloc()}ed. These are
called @dfn{lcrecords}. All other types are in this category. Adding a
new type to this category is comparatively easy, and all types added
since 19.8 (when the current allocation scheme was devised, by Richard
@end itemize
Note that bit vectors are a bit of a special case. They are
-simple lrecords as in category (c), but are individually @code{malloc()}ed
+simple lrecords as in category (b), but are individually @code{malloc()}ed
like vectors. You can basically view them as exactly like vectors
except that their type is stored in lrecord fashion rather than
in directly-tagged fashion.
- Note that FSF Emacs redesigned their object system in 19.29 to follow
-a similar scheme. However, given RMS's expressed dislike for data
-abstraction, the FSF scheme is not nearly as clean or as easy to
-extend. (FSF calls items of type (c) @code{Lisp_Misc} and items of type
-(d) @code{Lisp_Vectorlike}, with separate tags for each, although
-@code{Lisp_Vectorlike} is also used for vectors.)
@node Garbage Collection, GCPROing, Introduction to Allocation, Allocation of Objects in XEmacs Lisp
@section Garbage Collection
all vectors (which are chained in one big list), and all
lcrecords (which are likewise chained).
- Note that, when an object is marked, the mark has to occur
-inside of the object's structure, rather than in the 32-bit
-@code{Lisp_Object} holding the object's pointer; i.e. you can't just
-set the pointer's mark bit. This is because there may be many
-pointers to the same object. This means that the method of
-marking an object can differ depending on the type. The
-different marking methods are approximately as follows:
-
-@enumerate
-@item
-For conses, the mark bit of the car is set.
-@item
-For strings, the mark bit of the string's plist is set.
-@item
-For symbols when not lrecords, the mark bit of the
-symbol's plist is set.
-@item
-For vectors, the length is negated after adding 1.
-@item
-For lrecords, the pointer to the structure describing
-the type is changed (see below).
-@item
-Integers and characters do not need to be marked, since
-no allocation occurs for them.
-@end enumerate
-
- The details of this are in the @code{mark_object()} function.
-
- Note that any code that operates during garbage collection has
-to be especially careful because of the fact that some objects
-may be marked and as such may not look like they normally do.
-In particular:
+ Garbage collection can be invoked explicitly by calling
+@code{garbage-collect} but is also called automatically by @code{eval},
+once a certain amount of memory has been allocated since the last
+garbage collection (according to @code{gc-cons-threshold}).
-@itemize @bullet
-Some object pointers may have their mark bit set. This will make
-@code{FOOBARP()} predicates fail. Use @code{GC_FOOBARP()} to deal with
-this.
-@item
-Even if you clear the mark bit, @code{FOOBARP()} will still fail
-for lrecords because the implementation pointer has been
-changed (see below). @code{GC_FOOBARP()} will correctly deal with
-this.
-@item
-Vectors have their size field munged, so anything that
-looks at this field will fail.
-@item
-Note that @code{XFOOBAR()} macros @emph{will} work correctly on object
-pointers with their mark bit set, because the logical shift operations
-that remove the tag also remove the mark bit.
-@end itemize
-
- Finally, note that garbage collection can be invoked explicitly
-by calling @code{garbage-collect} but is also called automatically
-by @code{eval}, once a certain amount of memory has been allocated
-since the last garbage collection (according to @code{gc-cons-threshold}).
@node GCPROing, Garbage Collection - Step by Step, Garbage Collection, Allocation of Objects in XEmacs Lisp
@section @code{GCPRO}ing
@enumerate
@item
-All objects that have been @code{staticpro()}d. This is used for
-any global C variables that hold Lisp objects. A call to
-@code{staticpro()} happens implicitly as a result of any symbols
-declared with @code{defsymbol()} and any variables declared with
-@code{DEFVAR_FOO()}. You need to explicitly call @code{staticpro()}
-(in the @code{vars_of_foo()} method of a module) for other global
-C variables holding Lisp objects. (This typically includes
-internal lists and such things.)
+All objects that have been @code{staticpro()}d or
+@code{staticpro_nodump()}ed. This is used for any global C variables
+that hold Lisp objects. A call to @code{staticpro()} happens implicitly
+as a result of any symbols declared with @code{defsymbol()} and any
+variables declared with @code{DEFVAR_FOO()}. You need to explicitly
+call @code{staticpro()} (in the @code{vars_of_foo()} method of a module)
+for other global C variables holding Lisp objects. (This typically
+includes internal lists and such things.). Use
+@code{staticpro_nodump()} only in the rare cases when you do not want
+the pointed variable to be saved at dump time but rather recompute it at
+startup.
Note that @code{obarray} is one of the @code{staticpro()}d things.
Therefore, all functions and variables get marked through this.
The upshot is that garbage collection can basically occur everywhere
@code{Feval}, respectively @code{Ffuncall}, is used - either directly or
-through another function. Since calls to these two functions are
-hidden in various other functions, many calls to
-@code{garabge_collect_1} are not obviously foreseeable, and therefore
-unexpected. Instances where they are used that are worth remembering are
-various elisp commands, as for example @code{or},
-@code{and}, @code{if}, @code{cond}, @code{while}, @code{setq}, etc.,
-miscellaneous @code{gui_item_...} functions, everything related to
-@code{eval} (@code{Feval_buffer}, @code{call0}, ...) and inside
-@code{Fsignal}. The latter is used to handle signals, as for example the
-ones raised by every @code{QUITE}-macro triggered after pressing Ctrl-g.
+through another function. Since calls to these two functions are hidden
+in various other functions, many calls to @code{garbage_collect_1} are
+not obviously foreseeable, and therefore unexpected. Instances where
+they are used that are worth remembering are various elisp commands, as
+for example @code{or}, @code{and}, @code{if}, @code{cond}, @code{while},
+@code{setq}, etc., miscellaneous @code{gui_item_...} functions,
+everything related to @code{eval} (@code{Feval_buffer}, @code{call0},
+...) and inside @code{Fsignal}. The latter is used to handle signals, as
+for example the ones raised by every @code{QUITE}-macro triggered after
+pressing Ctrl-g.
@node garbage_collect_1, mark_object, Invocation, Garbage Collection - Step by Step
@subsection @code{garbage_collect_1}
all the output occurring during garbage collecting is determined. In
order to be able to restore the old display's state after displaying the
message, some data about the current cursor position has to be
-saved. The variables @code{pre_gc_curser} and @code{cursor_changed} take
+saved. The variables @code{pre_gc_cursor} and @code{cursor_changed} take
care of that.
@item
The state of @code{gc_currently_forbidden} must be restored after
@item
The function @code{prune_specifiers} checks all listed specifiers held
-in @code{Vall_speficiers} and removes the ones from the lists that are
+in @code{Vall_specifiers} and removes the ones from the lists that are
unmarked.
@item
[see @file{lrecord.h}]
All lrecords have at the beginning of their structure a @code{struct
-lrecord_header}. This just contains a pointer to a @code{struct
+lrecord_header}. This just contains a type number and some flags,
+including the mark bit. The type number, thru the
+@code{lrecord_implementation_table}, gives access to a @code{struct
lrecord_implementation}, which is a structure containing method pointers
and such. There is one of these for each type, and it is a global,
constant, statically-declared structure that is declared in the
-@code{DEFINE_LRECORD_IMPLEMENTATION()} macro. (This macro actually
-declares an array of two @code{struct lrecord_implementation}
-structures. The first one contains all the standard method pointers,
-and is used in all normal circumstances. During garbage collection,
-however, the lrecord is @dfn{marked} by bumping its implementation
-pointer by one, so that it points to the second structure in the array.
-This structure contains a special indication in it that it's a
-@dfn{marked-object} structure: the finalize method is the special
-function @code{this_marks_a_marked_record()}, and all other methods are
-null pointers. At the end of garbage collection, all lrecords will
-either be reclaimed or unmarked by decrementing their implementation
-pointers, so this second structure pointer will never remain past
-garbage collection.
-
- Simple lrecords (of type (c) above) just have a @code{struct
+@code{DEFINE_LRECORD_IMPLEMENTATION()} macro.
+
+ Simple lrecords (of type (b) above) just have a @code{struct
lrecord_header} at their beginning. lcrecords, however, actually have a
@code{struct lcrecord_header}. This, in turn, has a @code{struct
lrecord_header} at its beginning, so sanity is preserved; but it also
For an example, see the methods for window configurations and opaques.
@end enumerate
-@node Low-level allocation, Pure Space, lrecords, Allocation of Objects in XEmacs Lisp
+@node Low-level allocation, Cons, lrecords, Allocation of Objects in XEmacs Lisp
@section Low-level allocation
Memory that you want to allocate directly should be allocated using
allocated, so that garbage-collection can be invoked when the
threshold is reached.
-@node Pure Space, Cons, Low-level allocation, Allocation of Objects in XEmacs Lisp
-@section Pure Space
-
- Not yet documented.
-
-@node Cons, Vector, Pure Space, Allocation of Objects in XEmacs Lisp
+@node Cons, Vector, Low-level allocation, Allocation of Objects in XEmacs Lisp
@section Cons
Conses are allocated in standard frob blocks. The only thing to
@node Symbol, Marker, Bit Vector, Allocation of Objects in XEmacs Lisp
@section Symbol
- Symbols are also allocated in frob blocks. Note that the code
-exists for symbols to be either lrecords (category (c) above)
-or simple types (category (b) above), and are lrecords by
-default (I think), although there is no good reason for this.
-
- Note that symbols in the awful horrible obarray structure are
-chained through their @code{next} field.
+ Symbols are also allocated in frob blocks. Symbols in the awful
+horrible obarray structure are chained through their @code{next} field.
Remember that @code{intern} looks up a symbol in an obarray, creating
one if necessary.
then written. They are:
@enumerate
-@item the staticpro array
-@item the dumpstruct array
-@item the lrecord_implementation_table array
-@item a vector of all the offsets to the objects in the file that include a
+@item
+the staticpro array
+@item
+the dumpstruct array
+@item
+the lrecord_implementation_table array
+@item
+a vector of all the offsets to the objects in the file that include a
description (for faster relocation at reload time)
-@item the pdump_wired and pdump_wired_list arrays
+@item
+the pdump_wired and pdump_wired_list arrays
@end enumerate
For each of the arrays we write both the pointer to the variables and
are converted into an internal form for faster execution.
When a compiled function is executed for the first time by
-@code{funcall_compiled_function()}, or when it is @code{Fpurecopy()}ed
-during the dump phase of building XEmacs, the byte-code instructions are
-converted from a @code{Lisp_String} (which is inefficient to access,
-especially in the presence of MULE) into a @code{Lisp_Opaque} object
-containing an array of unsigned char, which can be directly executed by
-the byte-code interpreter. At this time the byte code is also analyzed
-for validity and transformed into a more optimized form, so that
+@code{funcall_compiled_function()}, or during the dump phase of building
+XEmacs, the byte-code instructions are converted from a
+@code{Lisp_String} (which is inefficient to access, especially in the
+presence of MULE) into a @code{Lisp_Opaque} object containing an array
+of unsigned char, which can be directly executed by the byte-code
+interpreter. At this time the byte code is also analyzed for validity
+and transformed into a more optimized form, so that
@code{execute_optimized_program()} can really fly.
Here are some of the optimizations performed by the internal byte-code
@code{nil}, or @code{keywordp}) symbols, so that the byte interpreter
doesn't have to.
@item
-The maxiumum number of variable bindings in the byte-code is
+The maximum number of variable bindings in the byte-code is
pre-computed, so that space on the @code{specpdl} stack can be
pre-reserved once for the whole function execution.
@item
@code{let} and @code{let*}) using @code{specbind()} to create bindings
and @code{unbind_to()} to undo the bindings when finished.
-Note that, with the exeption of @code{Fprogn}, these functions are
+Note that, with the exception of @code{Fprogn}, these functions are
typically called in real life only in interpreted code, since the byte
compiler knows how to convert calls to these functions directly into
byte code.
@dfn{selected display}, @dfn{selected frame}, and @dfn{selected window}.
Each of these objects is distinguished in various ways, such as being the
default object for various functions that act on objects of that type.
-Note that every containing object rememembers the ``selected'' object
+Note that every containing object remembers the ``selected'' object
among the objects that it contains: e.g. not only is there a selected
window, but every frame remembers the last window in it that was
selected, and changing the selected frame causes the remembered window
@code{redisplay-x.c}, @code{redisplay-msw.c} and @code{redisplay-tty.c}
@end enumerate
-Steps 1 and 2 are device-independant and relatively complex. Step 3 is
+Steps 1 and 2 are device-independent and relatively complex. Step 3 is
mostly device-dependent.
Determining the desired display
dynarr's of @code{display_line}'s are held by each window representing
the current display and the desired display.
-The @code{display_line} structures are tighly tied to buffers which
+The @code{display_line} structures are tightly tied to buffers which
presents a problem for redisplay as this connection is bogus for the
modeline. Hence the @code{display_line} generation routines are
duplicated for generating the modeline. This means that the modeline
domains. For instance if we create a Pixmap, we can actually display
this on multiple windows - even though we only need a single Pixmap
instance to do this. If caching wasn't done then it would be necessary
-to create image-instances for every displayable occurrance of a glyph -
+to create image-instances for every displayable occurrence of a glyph -
and every usage - and this would be extremely memory and cpu intensive.
Widget-glyphs (a.k.a native widgets) are not cached in this way. This is
This has desirable properties such as lw_modify_all_widgets which is
called from glyphs-x.c and updates all the properties of a widget
without having to know what the widget is or what toolkit it is from.
-Unfortunately this also has hairy properrties such as making the lwlib
+Unfortunately this also has hairy properties such as making the lwlib
code quite complex. And of course lwlib has to know at some level what
the widget is and how to set its properties.
(@pxref{Backup Names}) is responsible for determining which backup
versions to delete, but does not delete them itself.
-@defopt trim-versions-without-asking
+@defopt delete-old-versions
If this variable is non-@code{nil}, then saving a file deletes excess
backup versions silently. Otherwise, it asks the user whether to delete
them.
that newly made backup is included in the count in @code{kept-new-versions}.
By default, both variables are 2.
-@vindex trim-versions-without-asking
- If @code{trim-versions-without-asking} is non-@code{nil}, excess
+@vindex delete-old-versions
+ If @code{delete-old-versions} is non-@code{nil}, excess
middle versions are deleted without notification. If it is @code{nil}, the
default, you are asked whether the excess middle versions should
really be deleted.
+2000-02-21 Martin Buchholz <martin@xemacs.org>
+
+ * XEmacs 21.2.30 is released.
+
+2000-02-21 Jonathan Harris <jhar@tardis.ed.ac.uk>
+
+ * README: Tidy up.
+ Document need for makeinfo program or texinfo package.
+
+ * Xmd.patch: New file, previously in README.
+
+2000-02-17 Martin Buchholz <martin@xemacs.org>
+
+ * config.h: Delete unused HAVE_LINUX_VERSION_H.
+
2000-02-16 Martin Buchholz <martin@xemacs.org>
* XEmacs 21.2.29 is released.
- Building and Installing XEmacs on Windows NT
+Building and Installing XEmacs on Windows NT -*- mode:outline -*-
David Hobley
Marc Paquette
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
-To get it working you will need:
-1. You will need Visual C++ V4.0 or later to compile everything. Personally we
- have tested V4.0, V4.2 and V5.0.
- Note that Visual C++ assumes a couple of environment variables INCLUDE and
- LIB to be set which specify the location of the includes and libraries.
- Your PATH environment variable also needs to include the DevStudio vc\bin
- and sharedide\bin directories.
+* Required tools and sources
+============================
+
+1. You will need Visual C++ V4.0 or later to compile everything. Personally
+ we have tested V4.0, V4.2, V5.0 and v6.0.
+
+ Note that Visual C++ assumes that the environment variables INCLUDE and
+ LIB are set to specify the location of the includes and libraries.
+ Your PATH environment variable also needs to include the DevStudio
+ vc\bin and sharedide\bin directories.
+
Visual C++ V5.0 installs a batch file called vcvars32.bat in
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. All Win32
- support is in the nt\ subdirectory. 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 packages.
+2. Grab the latest XEmacs source from ftp.xemacs.org if necessary.
+
+ 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
+ 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".
-3. At this point you can select X or Win32 native GUI support.
+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
+ section.
+
+
+** Extra tools and sources required for X
+
+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
+
+2. Source for the MIT X11R6.3 libraries, available from: ftp.x.org
+
+3. You'll need to compile the MIT libraries without multi-thread support.
+ To do this, there is an example Win32.cf and site.def provided which set
+ the relevant flags. You will also need to apply the patch in nt/X11.patch
+ in the xc/lib/X11 directory which will fix the DLL definition file.
+
+ Once compiled and installed, you will need to apply the patch in
+ nt/Xmd.patch. This is messy and better solutions would be appreciated.
+
+4. Goto step 2 under 'Optional libraries' below.
+
-If you want to build for native GUI:
+* 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.
directory. cd to that directory and build libcompface with
'nmake -f compface.mak'.
-6. cd to the nt subdirectory of the xemacs distribution and build xemacs:
+
+* 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.
-7. If you're building with XPM support, add this to the nmake command line:
+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.
HAVE_GIF=1
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"
+ HAVE_XFACE=1 COMPFACE_DIR="x:\location\of\your\compface\sources"
+
+ 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
-8. By default, XEmacs will expect to find its packages in the subdirectories
+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 .\obj\emacs.obj and rebuild with
- the new PACKAGE_PREFIX.
+ after you've built XEmacs, delete the file nt\obj\emacs.obj and rebuild
+ with the new PACKAGE_PREFIX setting.
-9. By default, XEmacs will be installed in directories under the directory
- "c:\Program Files\XEmacs\XEmacs-21.0". If you want to install it elsewhere,
- add this to the nmake command line:
+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"
-10. 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. 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.0\i386-pc-win32\runemacs.exe". You may
- want to create a shortcut to that file from your Desktop or Start Menu.
-
-11. The build process always creates debugging and "Source Browser" information
- in the source tree for use with MS DevStudio. If you actually want to debug
- XEmacs you should run XEmacs from the source directory instead of from the
- installation directory. You should probably also build a debug version of
- XEmacs; to do this start with a clean source tree and add DEBUG_XEMACS=1 to
- the nmake command line. 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.
-
- To make use of the debugging and "Source Browser" information, create a new
- "console" project in MS DevStudio and, under Project/Settings, set:
+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.
+
+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.
+
+ 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.
+
+
+* 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:
+
+1. Delete the directory nt\obj and it's contents.
+
+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.
+
+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.
+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.
-If you want support for X you will need:
+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.
-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
-
-2. The MIT X11R6.3 libraries available from: ftp.x.org
+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.
-3. You'll need to compile the MIT libraries without multi-thread support.
- To do this, there is an example Win32.cf and site.def provided which
- set the relevant flags. You will also need to apply the patch in
- nt/X11.patch in the xc/lib/X11 directory which will fix the DLL definition
- file. Once compiled and installed, you will need to apply the following
- patch to Xmd.h. This is messy and better solutions would be appreciated.
-4. Goto 2 under 'native GUI' above and add this to the nmake command line:
- HAVE_X=1 X11_DIR=x:\root\directory\of\your\X11\installation
+* Known Problems
+================
---- Xmd.h~ Thu Jun 08 23:20:40 1995
-+++ Xmd.h Sun Mar 16 13:09:10 1997
-@@ -150,8 +150,9 @@
- typedef CARD16 BITS16;
- typedef CARD8 BYTE;
-
-+#ifndef WIN32
- typedef CARD8 BOOL;
--
-+#endif
-
-Known Problems:
-Please look at the TODO list for the current list of problems and people
-working on them.
+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:
#undef HAVE_UTIME_H
#undef HAVE_SYS_WAIT_H
#undef HAVE_LIBGEN_H
-#undef HAVE_LINUX_VERSION_H
#undef WORDS_BIGENDIAN
#undef TIME_WITH_SYS_TIME
call debug_print ($1);
}
+Lisp_Type_Int=-2
+
# A bug in dbx prevents string variables from having values beginning with `-'!!
function XEmacsInit {
function ToInt { eval "$1=\$[(int) \`alloc.c\`$1]"; }
ToInt dbg_USE_UNION_TYPE
- ToInt Lisp_Type_Int
ToInt Lisp_Type_Char
- ToInt Lisp_Type_Cons
- ToInt Lisp_Type_String
- ToInt Lisp_Type_Vector
- ToInt Lisp_Type_Symbol
ToInt Lisp_Type_Record
ToInt dbg_valbits
ToInt dbg_gctypebits
fi
if test $type = $Lisp_Type_Record; then
- typeset lheader="((struct lrecord_header *) $val)"
+ lheader="((struct lrecord_header *) $val)"
+ lrecord_type=$[(enum lrecord_type) $lheader->type]
imp=$[(void*)(`alloc.c`lrecord_implementations_table[$lheader->type])]
else
+ lheader="((struct lrecord_header *) -1)"
+ lrecord_type=-1
imp="0xdeadbeef"
fi
# printvar obj val type imp
decode_object "$*"
if test $type = $Lisp_Type_Int; then echo "int"
elif test $type = $Lisp_Type_Char; then echo "char"
- elif test $type = $Lisp_Type_Symbol; then echo "symbol"
- elif test $type = $Lisp_Type_String; then echo "string"
- elif test $type = $Lisp_Type_Vector; then echo "vector"
- elif test $type = $Lisp_Type_Cons; then echo "cons"
elif test $type = null_pointer; then echo "null_pointer"
else
echo "record type with name: $[((struct lrecord_implementation *)$imp)->name]"
run -batch -l ../lisp/loadup.el dump
}
-function pstruct {
- xstruct="((struct $1 *) $val)"
- print $xstruct
- print *$xstruct
-}
-
-function lrecord_type_p {
- if eval test -z \"\$lrecord_$1\" && test $imp = $[(void*)(&lrecord_$1)]; then return 0; else return 1; fi
+function pstruct { # pstruct foo.c struct-name
+ module "$1" > /dev/null
+ type_ptr="((struct $2 *) $val)"
+ print $type_ptr
+ print *$type_ptr
}
document pobj << 'end'
else
print -f"Char: %d" $val
fi
- elif test $type = $Lisp_Type_String || lrecord_type_p string; then
- pstruct Lisp_String
- elif test $type = $Lisp_Type_Cons || lrecord_type_p cons; then
- pstruct Lisp_Cons
- elif test $type = $Lisp_Type_Symbol || lrecord_type_p symbol; then
- pstruct Lisp_Symbol
- echo "Symbol name: $[(char *)($xstruct->name->data)]"
- elif test $type = $Lisp_Type_Vector || lrecord_type_p vector; then
- pstruct Lisp_Vector
- echo "Vector of length $[$xstruct->size]"
- elif lrecord_type_p bit_vector; then
- pstruct Lisp_Bit_Vector
- elif lrecord_type_p buffer; then
- pstruct buffer
- elif lrecord_type_p char_table; then
- pstruct Lisp_Char_Table
- elif lrecord_type_p char_table_entry; then
- pstruct Lisp_Char_Table_Entry
- elif lrecord_type_p charset; then
- pstruct Lisp_Charset
- elif lrecord_type_p coding_system; then
- pstruct Lisp_Coding_System
- elif lrecord_type_p color_instance; then
- pstruct Lisp_Color_Instance
- elif lrecord_type_p command_builder; then
- pstruct command_builder
- elif lrecord_type_p compiled_function; then
- pstruct Lisp_Compiled_Function
- elif lrecord_type_p console; then
- pstruct console
- elif lrecord_type_p database; then
- pstruct Lisp_Database
- elif lrecord_type_p device; then
- pstruct device
- elif lrecord_type_p event; then
- pstruct Lisp_Event
- elif lrecord_type_p extent; then
- pstruct extent
- elif lrecord_type_p extent_auxiliary; then
- pstruct extent_auxiliary
- elif lrecord_type_p extent_info; then
- pstruct extent_info
- elif lrecord_type_p face; then
- pstruct Lisp_Face
- elif lrecord_type_p float; then
- pstruct Lisp_Float
- elif lrecord_type_p font_instance; then
- pstruct Lisp_Font_Instance
- elif lrecord_type_p frame; then
- pstruct frame
- elif lrecord_type_p glyph; then
- pstruct Lisp_Glyph
- elif lrecord_type_p hash_table; then
- pstruct Lisp_Hash_Table
- elif lrecord_type_p image_instance; then
- pstruct Lisp_Image_Instance
- elif lrecord_type_p keymap; then
- pstruct Lisp_Keymap
- elif lrecord_type_p lcrecord_list; then
- pstruct lcrecord_list
- elif lrecord_type_p lstream; then
- pstruct lstream
- elif lrecord_type_p marker; then
- pstruct Lisp_Marker
- elif lrecord_type_p opaque; then
- pstruct Lisp_Opaque
- elif lrecord_type_p opaque_ptr; then
- pstruct Lisp_Opaque_Ptr
- elif lrecord_type_p popup_data; then
- pstruct popup_data
- elif lrecord_type_p process; then
- pstruct Lisp_Process
- elif lrecord_type_p range_table; then
- pstruct Lisp_Range_Table
- elif lrecord_type_p specifier; then
- pstruct Lisp_Specifier
- elif lrecord_type_p subr; then
- pstruct Lisp_Subr
- elif lrecord_type_p symbol_value_buffer_local; then
- pstruct symbol_value_buffer_local
- elif lrecord_type_p symbol_value_forward; then
- pstruct symbol_value_forward
- elif lrecord_type_p symbol_value_lisp_magic; then
- pstruct symbol_value_lisp_magic
- elif lrecord_type_p symbol_value_varalias; then
- pstruct symbol_value_varalias
- elif lrecord_type_p toolbar_button; then
- pstruct toolbar_button
- elif lrecord_type_p tooltalk_message; then
- pstruct Lisp_Tooltalk_Message
- elif lrecord_type_p tooltalk_pattern; then
- pstruct Lisp_Tooltalk_Pattern
- elif lrecord_type_p weak_list; then
- pstruct weak_list
- elif lrecord_type_p window; then
- pstruct window
- elif lrecord_type_p window_configuration; then
- pstruct window_config
+ elif test $lrecord_type = lrecord_type_string; then
+ pstruct alloc.c Lisp_String
+ elif test $lrecord_type = lrecord_type_cons; then
+ pstruct alloc.c Lisp_Cons
+ elif test $lrecord_type = lrecord_type_symbol; then
+ pstruct symbols.c Lisp_Symbol
+ echo "Symbol name: $[(char *)($type_ptr->name->data)]"
+ elif test $lrecord_type = lrecord_type_vector; then
+ pstruct alloc.c Lisp_Vector
+ echo "Vector of length $[$type_ptr->size]"
+ elif test $lrecord_type = lrecord_type_bit_vector; then
+ pstruct fns.c Lisp_Bit_Vector
+ elif test $lrecord_type = lrecord_type_buffer; then
+ pstruct buffer.c buffer
+ elif test $lrecord_type = lrecord_type_char_table; then
+ pstruct chartab.c Lisp_Char_Table
+ elif test $lrecord_type = lrecord_type_char_table_entry; then
+ pstruct chartab.c Lisp_Char_Table_Entry
+ elif test $lrecord_type = lrecord_type_charset; then
+ pstruct mule-charset.c Lisp_Charset
+ elif test $lrecord_type = lrecord_type_coding_system; then
+ pstruct file-coding.c Lisp_Coding_System
+ elif test $lrecord_type = lrecord_type_color_instance; then
+ pstruct objects.c Lisp_Color_Instance
+ elif test $lrecord_type = lrecord_type_command_builder; then
+ pstruct event-stream.c command_builder
+ elif test $lrecord_type = lrecord_type_compiled_function; then
+ pstruct bytecode.c Lisp_Compiled_Function
+ elif test $lrecord_type = lrecord_type_console; then
+ pstruct console.c console
+ elif test $lrecord_type = lrecord_type_database; then
+ pstruct database.c Lisp_Database
+ elif test $lrecord_type = lrecord_type_device; then
+ pstruct device.c device
+ elif test $lrecord_type = lrecord_type_event; then
+ pstruct events.c Lisp_Event
+ elif test $lrecord_type = lrecord_type_extent; then
+ pstruct extents.c extent
+ elif test $lrecord_type = lrecord_type_extent_auxiliary; then
+ pstruct extents.c extent_auxiliary
+ elif test $lrecord_type = lrecord_type_extent_info; then
+ pstruct extents.c extent_info
+ elif test $lrecord_type = lrecord_type_face; then
+ pstruct faces.c Lisp_Face
+ elif test $lrecord_type = lrecord_type_float; then
+ pstruct floatfns.c Lisp_Float
+ elif test $lrecord_type = lrecord_type_font_instance; then
+ pstruct objects.c Lisp_Font_Instance
+ elif test $lrecord_type = lrecord_type_frame; then
+ pstruct frame.c frame
+ elif test $lrecord_type = lrecord_type_glyph; then
+ pstruct glyph.c Lisp_Glyph
+ elif test $lrecord_type = lrecord_type_gui_item; then
+ pstruct gui.c Lisp_Gui_Item
+ elif test $lrecord_type = lrecord_type_hash_table; then
+ pstruct elhash.c Lisp_Hash_Table
+ elif test $lrecord_type = lrecord_type_image_instance; then
+ pstruct glyphs.c Lisp_Image_Instance
+ elif test $lrecord_type = lrecord_type_keymap; then
+ pstruct keymap.c Lisp_Keymap
+ elif test $lrecord_type = lrecord_type_lcrecord_list; then
+ pstruct alloc.c lcrecord_list
+ elif test $lrecord_type = lrecord_type_ldap; then
+ pstruct ldap.c Lisp_LDAP
+ elif test $lrecord_type = lrecord_type_lstream; then
+ pstruct lstream.c lstream
+ elif test $lrecord_type = lrecord_type_marker; then
+ pstruct marker.c Lisp_Marker
+ elif test $lrecord_type = lrecord_type_opaque; then
+ pstruct opaque.c Lisp_Opaque
+ elif test $lrecord_type = lrecord_type_opaque_ptr; then
+ pstruct opaque.c Lisp_Opaque_Ptr
+ elif test $lrecord_type = lrecord_type_popup_data; then
+ pstruct gui-x.c popup_data
+ elif test $lrecord_type = lrecord_type_process; then
+ pstruct process.c Lisp_Process
+ elif test $lrecord_type = lrecord_type_range_table; then
+ pstruct rangetab.c Lisp_Range_Table
+ elif test $lrecord_type = lrecord_type_specifier; then
+ pstruct specifier.c Lisp_Specifier
+ elif test $lrecord_type = lrecord_type_subr; then
+ pstruct eval.c Lisp_Subr
+ elif test $lrecord_type = lrecord_type_symbol_value_buffer_local; then
+ pstruct symbols.c symbol_value_buffer_local
+ elif test $lrecord_type = lrecord_type_symbol_value_forward; then
+ pstruct symbols.c symbol_value_forward
+ elif test $lrecord_type = lrecord_type_symbol_value_lisp_magic; then
+ pstruct symbols.c symbol_value_lisp_magic
+ elif test $lrecord_type = lrecord_type_symbol_value_varalias; then
+ pstruct symbols.c symbol_value_varalias
+ elif test $lrecord_type = lrecord_type_timeout; then
+ pstruct event-stream.c Lisp_Timeout
+ elif test $lrecord_type = lrecord_type_toolbar_button; then
+ pstruct toolbar.c toolbar_button
+ elif test $lrecord_type = lrecord_type_tooltalk_message; then
+ pstruct tooltalk.c Lisp_Tooltalk_Message
+ elif test $lrecord_type = lrecord_type_tooltalk_pattern; then
+ pstruct tooltalk.c Lisp_Tooltalk_Pattern
+ elif test $lrecord_type = lrecord_type_weak_list; then
+ pstruct data.c weak_list
+ elif test $lrecord_type = lrecord_type_window; then
+ pstruct window.c window
+ elif test $lrecord_type = lrecord_type_window_configuration; then
+ pstruct window.c window_config
elif test "$type" = "null_pointer"; then
echo "Lisp Object is a null pointer!!"
else
fi
}
-function pproc {
- print *(`process.c`struct Lisp_Process*)$1 ;
- ldp "(`process.c`struct Lisp_Process*)$1->name" ;
- ldp "(`process.c`struct Lisp_Process*)$1->command" ;
-}
-
dbxenv suppress_startup_message 4.0
-dbxenv mt_watchpoints on
+# dbxenv mt_watchpoints on
function dp_core {
print ((struct x_frame *)(((struct frame*)(Fselected_frame(Qnil)&0x00FFFFFF))->frame_data))->widget->core
set print union off
set print pretty off
+set $Lisp_Type_Int = -2
+
define decode_object
set $obj = (unsigned long) $arg0
if $obj & 1
# It's an int
set $val = $obj >> 1
- set $type = Lisp_Type_Int
+ set $type = $Lisp_Type_Int
else
set $type = $obj & dbg_typemask
if $type == Lisp_Type_Char
end
if $type == Lisp_Type_Record
- set $lheader = (struct lrecord_header *) $val
- set $imp = lrecord_implementations_table[$lheader->type]
+ set $lheader = ((struct lrecord_header *) $val)
+ set $lrecord_type = ($lheader->type)
+ set $imp = lrecord_implementations_table[$lrecord_type]
else
+ set $lrecord_type = -1
+ set $lheader = -1
set $imp = -1
end
end
define xtype
decode_object $arg0
- if $type == Lisp_Type_Int
+ if $type == $Lisp_Type_Int
echo int\n
else
if $type == Lisp_Type_Char
echo char\n
else
- if $type == Lisp_Type_Symbol
- echo symbol\n
- else
- if $type == Lisp_Type_String
- echo string\n
- else
- if $type == Lisp_Type_Vector
- echo vector\n
- else
- if $type == Lisp_Type_Cons
- echo cons\n
- else
printf "record type: %s\n", $imp->name
- # barf
- end
- end
- end
- end
end
end
end
# GDB's command language makes you want to ...
-define pstruct
- set $xstruct = (struct $arg0 *) $val
- print $xstruct
- print *$xstruct
+define ptype
+ set $type_ptr = ($arg0 *) $val
+ print $type_ptr
+ print *$type_ptr
+end
+
+define pstructtype
+ set $type_ptr = (struct $arg0 *) $val
+ print $type_ptr
+ print *$type_ptr
end
define pobj
decode_object $arg0
- if $type == Lisp_Type_Int
+ if $type == $Lisp_Type_Int
printf "Integer: %d\n", $val
else
if $type == Lisp_Type_Char
printf "Char: %d\n", $val
end
else
- if $type == Lisp_Type_String || $imp == &lrecord_string
- pstruct Lisp_String
+ if $lrecord_type == lrecord_type_string
+ ptype Lisp_String
+ else
+ if $lrecord_type == lrecord_type_cons
+ ptype Lisp_Cons
+ else
+ if $lrecord_type == lrecord_type_symbol
+ ptype Lisp_Symbol
+ printf "Symbol name: %s\n", $type_ptr->name->data
else
- if $type == Lisp_Type_Cons || $imp == &lrecord_cons
- pstruct Lisp_Cons
+ if $lrecord_type == lrecord_type_vector
+ ptype Lisp_Vector
+ printf "Vector of length %d\n", $type_ptr->size
+ #print *($type_ptr->data) @ $type_ptr->size
else
- if $type == Lisp_Type_Symbol || $imp == &lrecord_symbol
- pstruct Lisp_Symbol
- printf "Symbol name: %s\n", $xstruct->name->data
+ if $lrecord_type == lrecord_type_bit_vector
+ ptype Lisp_Bit_Vector
else
- if $type == Lisp_Type_Vector || $imp == &lrecord_vector
- pstruct Lisp_Vector
- printf "Vector of length %d\n", $xstruct->size
- #print *($xstruct->data) @ $xstruct->size
+ if $lrecord_type == lrecord_type_buffer
+ pstructtype buffer
else
- if $imp == &lrecord_bit_vector
- pstruct Lisp_Bit_Vector
+ if $lrecord_type == lrecord_type_char_table
+ ptype Lisp_Char_Table
else
- if $imp == &lrecord_buffer
- pstruct buffer
+ if $lrecord_type == lrecord_type_char_table_entry
+ ptype Lisp_Char_Table_Entry
else
- if $imp == &lrecord_char_table
- pstruct Lisp_Char_Table
+ if $lrecord_type == lrecord_type_charset
+ ptype Lisp_Charset
else
- if $imp == &lrecord_char_table_entry
- pstruct Lisp_Char_Table_Entry
+ if $lrecord_type == lrecord_type_coding_system
+ ptype Lisp_Coding_System
else
- if $imp == &lrecord_charset
- pstruct Lisp_Charset
+ if $lrecord_type == lrecord_type_color_instance
+ ptype Lisp_Color_Instance
else
- if $imp == &lrecord_coding_system
- pstruct Lisp_Coding_System
+ if $lrecord_type == lrecord_type_command_builder
+ ptype command_builder
else
- if $imp == &lrecord_color_instance
- pstruct Lisp_Color_Instance
+ if $lrecord_type == lrecord_type_compiled_function
+ ptype Lisp_Compiled_Function
else
- if $imp == &lrecord_command_builder
- pstruct command_builder
+ if $lrecord_type == lrecord_type_console
+ pstructtype console
else
- if $imp == &lrecord_compiled_function
- pstruct Lisp_Compiled_Function
+ if $lrecord_type == lrecord_type_database
+ ptype Lisp_Database
else
- if $imp == &lrecord_console
- pstruct console
+ if $lrecord_type == lrecord_type_device
+ pstructtype device
else
- if $imp == &lrecord_database
- pstruct Lisp_Database
+ if $lrecord_type == lrecord_type_event
+ ptype Lisp_Event
else
- if $imp == &lrecord_device
- pstruct device
+ if $lrecord_type == lrecord_type_extent
+ pstructtype extent
else
- if $imp == &lrecord_event
- pstruct Lisp_Event
+ if $lrecord_type == lrecord_type_extent_auxiliary
+ pstructtype extent_auxiliary
else
- if $imp == &lrecord_extent
- pstruct extent
+ if $lrecord_type == lrecord_type_extent_info
+ pstructtype extent_info
else
- if $imp == &lrecord_extent_auxiliary
- pstruct extent_auxiliary
+ if $lrecord_type == lrecord_type_face
+ ptype Lisp_Face
else
- if $imp == &lrecord_extent_info
- pstruct extent_info
+ if $lrecord_type == lrecord_type_float
+ ptype Lisp_Float
else
- if $imp == &lrecord_face
- pstruct Lisp_Face
+ if $lrecord_type == lrecord_type_font_instance
+ ptype Lisp_Font_Instance
else
- if $imp == &lrecord_float
- pstruct Lisp_Float
+ if $lrecord_type == lrecord_type_frame
+ pstructtype frame
else
- if $imp == &lrecord_font_instance
- pstruct Lisp_Font_Instance
+ if $lrecord_type == lrecord_type_glyph
+ ptype Lisp_Glyph
else
- if $imp == &lrecord_frame
- pstruct frame
+ if $lrecord_type == lrecord_type_gui_item
+ ptype Lisp_Gui_Item
else
- if $imp == &lrecord_glyph
- pstruct Lisp_Glyph
+ if $lrecord_type == lrecord_type_hash_table
+ ptype Lisp_Hash_Table
else
- if $imp == &lrecord_hash_table
- pstruct Lisp_Hash_Table
+ if $lrecord_type == lrecord_type_image_instance
+ ptype Lisp_Image_Instance
else
- if $imp == &lrecord_image_instance
- pstruct Lisp_Image_Instance
+ if $lrecord_type == lrecord_type_keymap
+ ptype Lisp_Keymap
else
- if $imp == &lrecord_keymap
- pstruct Lisp_Keymap
+ if $lrecord_type == lrecord_type_lcrecord_list
+ pstructtype lcrecord_list
else
- if $imp == &lrecord_lcrecord_list
- pstruct lcrecord_list
+ if $lrecord_type == lrecord_type_ldap
+ ptype Lisp_LDAP
else
- if $imp == &lrecord_lstream
- pstruct lstream
+ if $lrecord_type == lrecord_type_lstream
+ pstructtype lstream
else
- if $imp == &lrecord_marker
- pstruct Lisp_Marker
+ if $lrecord_type == lrecord_type_marker
+ ptype Lisp_Marker
else
- if $imp == &lrecord_opaque
- pstruct Lisp_Opaque
+ if $lrecord_type == lrecord_type_opaque
+ ptype Lisp_Opaque
else
- if $imp == &lrecord_opaque_ptr
- pstruct Lisp_Opaque_Ptr
+ if $lrecord_type == lrecord_type_opaque_ptr
+ ptype Lisp_Opaque_Ptr
else
- if $imp == &lrecord_popup_data
- pstruct popup_data
+ if $lrecord_type == lrecord_type_popup_data
+ ptype popup_data
else
- if $imp == &lrecord_process
- pstruct Lisp_Process
+ if $lrecord_type == lrecord_type_process
+ ptype Lisp_Process
else
- if $imp == &lrecord_range_table
- pstruct Lisp_Range_Table
+ if $lrecord_type == lrecord_type_range_table
+ ptype Lisp_Range_Table
else
- if $imp == &lrecord_specifier
- pstruct Lisp_Specifier
+ if $lrecord_type == lrecord_type_specifier
+ ptype Lisp_Specifier
else
- if $imp == &lrecord_subr
- pstruct Lisp_Subr
+ if $lrecord_type == lrecord_type_subr
+ ptype Lisp_Subr
else
- if $imp == &lrecord_symbol_value_buffer_local
- pstruct symbol_value_buffer_local
+ if $lrecord_type == lrecord_type_symbol_value_buffer_local
+ pstructtype symbol_value_buffer_local
else
- if $imp == &lrecord_symbol_value_forward
- pstruct symbol_value_forward
+ if $lrecord_type == lrecord_type_symbol_value_forward
+ pstructtype symbol_value_forward
else
- if $imp == &lrecord_symbol_value_lisp_magic
- pstruct symbol_value_lisp_magic
+ if $lrecord_type == lrecord_type_symbol_value_lisp_magic
+ pstructtype symbol_value_lisp_magic
else
- if $imp == &lrecord_symbol_value_varalias
- pstruct symbol_value_varalias
+ if $lrecord_type == lrecord_type_symbol_value_varalias
+ pstructtype symbol_value_varalias
else
- if $imp == &lrecord_toolbar_button
- pstruct toolbar_button
+ if $lrecord_type == lrecord_type_timeout
+ ptype Lisp_Timeout
else
- if $imp == &lrecord_tooltalk_message
- pstruct Lisp_Tooltalk_Message
+ if $lrecord_type == lrecord_type_toolbar_button
+ pstructtype toolbar_button
else
- if $imp == &lrecord_tooltalk_pattern
- pstruct Lisp_Tooltalk_Pattern
+ if $lrecord_type == lrecord_type_tooltalk_message
+ ptype Lisp_Tooltalk_Message
else
- if $imp == &lrecord_weak_list
- pstruct weak_list
+ if $lrecord_type == lrecord_type_tooltalk_pattern
+ ptype Lisp_Tooltalk_Pattern
else
- if $imp == &lrecord_window
- pstruct window
+ if $lrecord_type == lrecord_type_weak_list
+ pstructtype weak_list
else
- if $imp == &lrecord_window_configuration
- pstruct window_config
+ if $lrecord_type == lrecord_type_window
+ pstructtype window
+ else
+ if $lrecord_type == lrecord_type_window_configuration
+ pstructtype window_config
else
echo Unknown Lisp Object type\n
print $arg0
end
end
end
+ end
+ end
# Repeat after me... gdb sux, gdb sux, gdb sux...
end
end
end
end
end
+ end
end
document pobj
+2000-02-21 Martin Buchholz <martin@xemacs.org>
+
+ * XEmacs 21.2.30 is released.
+
+2000-02-20 Martin Buchholz <martin@xemacs.org>
+
+ Performance hacking.
+ * *.c (syms_of_*):
+ Add INIT_LRECORD_IMPLEMENTATION macros, paired with
+ DEFINE_LRECORD_IMPLEMENTATION macros in the same file.
+ * emacs.c (main_1):
+ * lisp.h (DEFUN):
+ * console.c (DEFVAR_CONSOLE_LOCAL_1):
+ * buffer.c (DEFVAR_BUFFER_LOCAL_1):
+ * symeval.h (DEFVAR_SYMVAL_FWD):
+ * symbols.c (guts_of_unbound_marker):
+ Make all c_readonly objects also lisp_readonly and marked for life.
+ * lrecord.h (struct lrecord_implementation):
+ Document flags better.
+ * lrecord.h (DEFINE_LRECORD_SEQUENCE_IMPLEMENTATION_WITH_PROPS):
+ * lrecord.h (DECLARE_LRECORD):
+ * lrecord.h (XSETRECORD):
+ * lrecord.h (RECORDP):
+ * lrecord.h (RECORD_TYPEP):
+ * lrecord.h (RECORD_MARKER): New.
+ * lrecord.h (error_check_*):
+ * lrecord.h (CONCHECK_NONRECORD):
+ * lrecord.h (MAKE_LRECORD_IMPLEMENTATION):
+ * lrecord.h (INIT_LRECORD_IMPLEMENTATION): New.
+ * lrecord.h (set_lheader_implementation):
+ * lrecord.h (enum lrecord_type): New.
+ * symeval.h (SYMBOL_VALUE_MAGIC_P):
+ * alloc.c (disksave_object_finalization_1):
+ * alloc.c (mark_object):
+ * alloc.c (lrecord_type_index):
+ * alloc.c (tick_lcrecord_stats):
+ * alloc.c (Fgarbage_collect):
+ * alloc.c (init_alloc_once_early):
+ * alloc.c (pdump_load):
+ * alloc.c (GC_CHECK_LHEADER_INVARIANTS): New.
+ * alloc.c (lrecord_type_index): Delete.
+ Make lisp object type indexes be constant.
+ Makes (byte-compile) 5% faster.
+ Put all marker functions into their own array.
+ Makes (garbage-collect) 5% faster.
+ Optimize SYMBOL_VALUE_MAGIC_P.
+ Makes (byte-compile) 2-3% faster.
+ * config.h.in (gc_checking_assert): New.
+ * alloc.c: Use gc_checking_assert().
+ * .dbxrc: Make compatible with new object type implementation.
+ * .gdbinit: Make compatible with new object type implementation.
+ * alloc.c: Delete all symbols defined only for debugging, such as
+ Lisp_Type_Vector and lrecord_charset.
+
+2000-02-21 Andy Piper <andy@xemacs.org>
+
+ * gui-msw.c (Fmswindows_shell_execute): fix file location
+ problems.
+
+ * buffer.c (Fkill_buffer): remove buffer from alist buffer
+ unshowing so that set_window_buffer doesn't undo
+ kill_buffer_hook's hard work.
+
+ * glyphs-widget.c (tab_control_query_geometry): don't count the
+ first item when calculating geometry.
+
+ * glyphs.c (map_subwindow): remove redundant code.
+ (update_frame_subwindows): be more circumspect about when to
+ update subwindows.
+
+ * glyphs-x.c (x_update_widget): Properly fix sizing bug. Fix bug
+ when items haven't changed. Update faces if faces have changed as
+ well as just the widget face.
+ (x_tab_control_update): Update faces if faces have changed as well
+ as just the widget face.
+
+2000-02-21 Jonathan Harris <jhar@tardis.ed.ac.uk>
+
+ * device-msw.c: (mswindows_delete_device): Remove redundant DDE
+ registration.
+ (build_syscolor_string): Use mswindows_color_to_string to try to
+ get a named color.
+ (mswindows_device_system_metrics): Reverse the foreground and
+ background colors so that they match the documentation.
+
+ * objects-msw.c: (mswindows_X_color_map): tweak some values so
+ they match the default Windows palette.
+ (mswindows_color_to_string): New function.
+
+2000-02-21 Jonathan Harris <jhar@tardis.ed.ac.uk>
+
+ * s/windowsnt.h: Only use __declspec(noreturn) with MSVC>=6.
+
+2000-02-18 Olivier Galibert <galibert@pobox.com>
+
+ * m/*, s/*: Removed obsolete DATA_SEG_BITS, PURE_SEG_BITS,
+ WORD_MACHINE, SIGN_EXTEND_CHAR and EXPLICIT_SIGN_EXTEND.
+
+ * symbols.c (init_symbols_once_early): Removed obsolete
+ DATA_SEG_BITS related kludge.
+ (defvar_magic): Ditto.
+
+ * malloc.c: Removed obsolete DATA_SEG_BITS
+ * ralloc.c: Ditto.
+ * mem-limits.h: Ditto.
+
+ * Makefile.in.in: Removed obsolete HAVE_SHM
+ * emacs.c: Ditto.
+
+2000-02-13 Jonathan Harris <jhar@tardis.ed.ac.uk>
+
+ * device-msw.c (mswindows_delete_device): Free DDE string
+ handles.
+
+2000-02-16 Kirill 'Big K' Katsnelson <kkm@dtmx.com>
+
+ * keymap.c (get_keyelt):
+ * unexnt.c (unexec):
+ * vm-limit.c (memory_warnings):
+ * ntheap.c (recreate_heap):
+ * ntheap.h (UNINIT_PTR):
+ * select-msw.c (Fmswindows_get_clipboard):
+ (Fmswindows_set_clipboard):
+ * objects-msw.h (MSWINDOWS_BAD_HFONT):
+ * objects-msw.c:
+ * menubar-msw.c (displayable_menu_item):
+ * glyphs-msw.c:
+ * glyphs-msw.h (IMAGE_INSTANCE_MSWINDOWS_MASK):
+ * sysdep.c (sys_subshell):
+ * process-nt.c (nt_create_process):
+ * nt.c (normalize_filename):
+ (dostounix_filename):
+ (unixtodos_filename):
+ * ntproc.c (win32_executable_type):
+ * ntplay.c (play_sound_data_1):
+ (play_sound_file):
+ * editfns.c (get_home_directory):
+ * event-msw.c (struct winsock_stream):
+ (mswindows_dde_callback):
+ * device-msw.c (msprinter_init_device):
+ (msprinter_get_devmode_copy): Frobbed syntax frivolities.
+
+ * toolbar-msw.c (mswindows_free_frame_toolbars): Paramters to
+ mswindows_clear_toolbar were swapped!
+
+ * objects-msw.c:(colormap_t):
+ (fontmap_t):
+ * emacs.c (struct standard_args): Fixed const jumble.
+
+ * glyphs-widget.c (update_widget): Fixed comparison notation.
+
+ * event-msw.c (mswindows_dde_callback): Removed extraneous ';'.
+
+ * s\windowsnt.h (DOESNT_RETURN): Defined to support the MSVC
+ __declspec(noreturn) syntax.
+
+2000-02-19 Martin Buchholz <martin@xemacs.org>
+
+ * eldap.c (Fldap_open):
+ (Fldap_search_basic):
+ (Fldap_add):
+ (Fldap_modify):
+ Use new coding system conversion macros.
+
+2000-01-06 Yoshiki Hayashi <t90553@mail.ecc.u-tokyo.ac.jp>
+
+ * console-tty.c (tty_init_console): Change MULE to FILE_CODING.
+
+1999-11-27 Oscar Figueiredo <Oscar.Figueiredo@di.epfl.ch>
+
+ * eldap.h (Fldap_search) Renamed from Fldap_search_internal:
+ (Fldap_add, Fldap_modify, Fldap_delete): New functions
+
+ * eldap.c (Qadd, Qreplace): New constant symbols
+ (Fldap_open): Use the LDAP_OPT_RESTART option to avoid
+ interruptions by XEmacs signals
+ Remove unnecessary calls to slow_down_interrupts and
+ speed_up_interrupts
+ (Fldap_search_basic): Renamed from Fldap_search_internal
+ Added new optional parameter VERBOSE that triggers the
+ display of progress messages
+ Remove unnecessary calls to slow_down_interrupts and
+ speed_up_interrupts
+ LDAP result code analysis rewritten
+ (Fldap_add, Fldap_modify, Fldap_delete): New functions
+ (syms_of_eldap): Define the new symbols and functions
+
+
+2000-02-17 Martin Buchholz <martin@xemacs.org>
+
+ * realpath.c: Determine PATH_MAX maximally portably.
+
+ * insdel.c (bytecount_to_charcount): Optimize.
+ The function used to be optimized for entirely ASCII sequences.
+ Now it is optimized for successive characters from the same
+ charset. This also wins big for _mostly_ ASCII sequences.
+
+ * fileio.c (Ffile_truename): convert return from realpath() using
+ Qfile_name, not Qbinary. Fixes obvious bug with non-ASCII symlinks.
+ - Rewrite GCPROing slightly.
+
+ * sysdep.c (sys_open): Do filename conversion, like all other
+ sys_* functions. Fixes bug:
+ (let ((file-name-coding-system 'iso-8859-2))
+ (write-region x y latin2-name))
+ ==> writes filename using internal encoding.
+
+2000-02-18 Martin Buchholz <martin@xemacs.org>
+
+ * buffer.c (DEFVAR_BUFFER_LOCAL_1): Turn on c_readonly. Always const.
+ * console.c (DEFVAR_CONSOLE_LOCAL_1): Turn on c_readonly. Always const.
+ * symeval.h (DEFVAR_SYMVAL_FWD): Turn on c_readonly. Always const.
+ * eval.c (lrecord_subr): Remove this_one_is_unmarkable.
+ * symbols.c (lrecord_symbol_value_forward): Remove this_one_is_unmarkable.
+ * symbols.c (guts_of_unbound_marker): Turn on c_readonly.
+ * lrecord.h (UNMARKABLE_LRECORD_HEADER_P): Delete.
+ (CONST_IF_NOT_DEBUG): Delete.
+ * alloc.c (this_one_is_unmarkable): Delete.
+ (mark_object): Don't check for this_one_is_unmarkable. Use the
+ c_readonly flag instead.
+ * lisp.h (DEFUN): Define a Lisp_Subr as c_readonly.
+
+2000-02-18 Jonathan Harris <jhar@tardis.ed.ac.uk>
+
+ * event-msw.c (mswindows_drain_windows_queue):
+ (emacs_mswindows_handle_magic_event): Remove attempt to optimise
+ away redundant repaint events.
+
+2000-02-17 Andy Piper <andy@xemacs.org>
+
+ * redisplay.h: declare mark_redisplay_structs.
+
+ * redisplay.c (redisplay_window):
+ (redisplay_frame): don't check subwindows_state_changed.
+ (mark_redisplay): mark gutters here.
+
+ * glyphs.c: (instantiate_image_instantiator): always layout if we
+ haven't done so already.
+ (allocate_image_instance): don't mark as dirty.
+ (update_subwindow): bind inhibit_quit.
+
+ * gutter.c (mark_gutters): new function.
+
+ * glyphs-x.c (x_update_widget): Always resize to get round a
+ widget bug.
+
+ * glyphs-msw.c (mswindows_tab_control_update): remove `;' that was
+ breaking absolutely everything.
+
+ * gutter.h: declare mark_gutters.
+
2000-02-16 Martin Buchholz <martin@xemacs.org>
* XEmacs 21.2.29 is released.
* general.c (syms_of_general): Initialized it.
* redisplay-msw.c (get_frame_dc): Conditionally start a new page.
- (get_frame_dc):
+ (get_frame_dc):
(get_frame_compdc): Made inline.
* console.h (struct console_methods): Added eject_page method.
* device.c (Fdevice_printer_p): Used these.
* frame.c (allocate_frame_core): Initialize page number.
- (Fprint_job_page_number):
+ (Fprint_job_page_number):
(Fprint_job_eject_page): Implemented.
* frame-msw.c (msprinter_eject_page): Added method.
* alloc.c (alloc_lcrecord): Add more type checking assertions.
(vector_hash): New. Code from internal_hash.
- * lrecord.h:
+ * lrecord.h:
Fix up allocation subsystem comments.
* config.h.in: Add __EXTENSIONS__ for Solaris.
* sunplay.c (sighandler): Fix prototype to use SIGTYPE.
* lisp.h (STRETCHY_STRUCT_SIZEOF): Delete.
- * fns.c (size_bit_vector):
- * alloc.c (size_vector):
- (make_vector_internal):
- (make_bit_vector_internal):
- (sweep_bit_vectors_1):
+ * fns.c (size_bit_vector):
+ * alloc.c (size_vector):
+ (make_vector_internal):
+ (make_bit_vector_internal):
+ (sweep_bit_vectors_1):
Replace calls to STRETCHY_STRUCT_SIZEOF with offsetof expression.
2000-02-10 Martin Buchholz <martin@xemacs.org>
* config.h.in: Add HAVE_XCONVERTCASE.
2000-02-07 Andy Piper <andy@xemacs.org>
-
+
* glyphs.c (image_instance_layout): undo 2000-01-29 change since
it breaks many things.
* minibuf.c (echo_area_append): Workaround egcs-20000131 c++ compiler bug
- * ExternalShell.c:
- * ExternalClient.c:
- * EmacsShell-sub.c:
- * EmacsManager.c:
- * EmacsFrame.c:
+ * ExternalShell.c:
+ * ExternalClient.c:
+ * EmacsShell-sub.c:
+ * EmacsManager.c:
+ * EmacsFrame.c:
Use consistent style for specifying X resources.
* symbols.c (Fset): Further implement SYMVAL_LISP_MAGIC.
This makes (dontusethis-set-symbol-value-handler) actually usable.
* lrecord.h (lrecord_decription_type):
- * alloc.c (pdump_register_sub):
- (pdump_dump_data):
- (pdump_reloc_one):
+ * alloc.c (pdump_register_sub):
+ (pdump_dump_data):
+ (pdump_reloc_one):
Add XD_LISP_OBJECT_ARRAY to describe multiple Lisp_Objects.
Comply with XEmacs coding style.
All lrecord descriptions updated to use XD_LISP_OBJECT with 2
args, and XD_LISP_OBJECT_ARRAY with 3 args.
- * keymap.c (Faccessible_keymaps):
+ * keymap.c (Faccessible_keymaps):
Make (accessible-keymaps map "\C-h") do the Right Thing.
Make (accessible-keymaps map []) do the Right Thing.
Make (accessible-keymaps map "") do the Right Thing.
2000-01-30 Martin Buchholz <martin@xemacs.org>
* redisplay.c (init_redisplay): Fix small memory leak.
- * elhash.h:
- * elhash.c (pdump_reorganize_hash_table):
+ * elhash.h:
+ * elhash.c (pdump_reorganize_hash_table):
Rename from reorganize_hash_table. Change prototype.
Reuse the original memory for hentries. Save 100k.
* alloc.c (PDUMP_READ): new macro.
ifdefs in readable order.
(NEED_STARTS): Do not force NEED_STARTS when PDUMPing.
(start_of_text):
- (end_of_text):
+ (end_of_text):
(end_of_data): Do not compile in if using PDUMP.
* symsinit.h: Protptyped vars_of_nt().
(fstat, stat): Do not compile in if using MSVC 5.0 and above -
stat has been fixed in the C runtime.
(vars_of_nt): Added, defined the nt_fake_unix_uid variable there.
-
+
* file-coding.c (struct file_coding_dump): Do not define
ucs_to_mule_table in the struct if not MULE.
(struct struct lrecord_description fcd_description_1): Do not dump
* faces.c: Moved 'left-margin and 'right-margin defsymbols to
general.c.
- * console-msw.h: Added more msprinter device private slots.
+ * console-msw.h: Added more msprinter device private slots.
2000-02-01 Kirill 'Big K' Katsnelson <kkm@dtmx.com>
only.
* console-msw.h: Moved a few function prototypes here from
- event-msw.c.
+ event-msw.c.
* gui-msw.c (mswindows_handle_gui_wm_command): Changed the ID
parameter from unsigned short to unsigned long.
2000-01-27 URA Hiroshi <ura@hiru.aoba.yokohama.jp>
- * sysdep.c (init_system_name):
- process-unix.c (unix_canonicalized_host_name):
+ * sysdep.c (init_system_name):
+ process-unix.c (unix_canonicalized_host_name):
Don't call freeaddrinfo() if getaddrinfo() fails.
* process-unix.c (unix_open_unix_network_stream):
2000-01-27 Martin Buchholz <martin@xemacs.org>
- * buffer.c (reinit_vars_of_buffer):
+ * buffer.c (reinit_vars_of_buffer):
The right place to initialize conversion_in_dynarr and
conversion_out_dynarr.
file-name-coding-system, terminal-coding-system, and
keyboard-coding-system magical variables that are equivalent to
defining the corresponding coding system aliases.
-
+
* file-coding.c (Fcoding_system_canonical_name_p): New function.
* file-coding.c (Fcoding_system_alias_p): New function.
* file-coding.c (Fcoding_system_aliasee): New function.
2000-01-24 Martin Buchholz <martin@xemacs.org>
- * realpath.c (xrealpath):
+ * realpath.c (xrealpath):
Don't call getwd().
2000-01-25 Martin Buchholz <martin@xemacs.org>
2000-01-24 Martin Buchholz <martin@xemacs.org>
- * glyphs-widget.c (layout_query_geometry):
+ * glyphs-widget.c (layout_query_geometry):
(layout_layout): Use correct types for gheight, gwidth.
2000-01-24 Martin Buchholz <martin@xemacs.org>
2000-01-23 Kirill 'Big K' Katsnelson <kkm@dtmx.com>
- * callproc.c:
- * dired-msw.c:
- * fileio.c:
- * process-nt.c:
- * redisplay-msw.c:
+ * callproc.c:
+ * dired-msw.c:
+ * fileio.c:
+ * process-nt.c:
+ * redisplay-msw.c:
* sysdep.c: Removed redundant #include <windows.h>
2000-01-22 Kirill 'Big K' Katsnelson <kkm@dtmx.com>
* frame.c (delete_frame_internal): Do not delete device when its
implementation so declares.
(delete_frame_internal): Set device selected frame to nil when
- last frame goes away.
+ last frame goes away.
* device-msw.c (msprinter_device_system_metrics): Implemented.
(mswindows_device_system_metrics): Added 'device-dpi property.
2000-01-22 Martin Buchholz <martin@xemacs.org>
* process.c (Fset_process_coding_system):
- * device-x.c (Fx_keysym_hash_table):
+ * device-x.c (Fx_keysym_hash_table):
Docstring fixes.
* lstream.c (Lstream_write): Return documented value, not 0.
- * fileio.c (directory_file_name):
- (Fsubstitute_in_file_name):
- (Fsubstitute_insert_file_contents_internal):
+ * fileio.c (directory_file_name):
+ (Fsubstitute_in_file_name):
+ (Fsubstitute_insert_file_contents_internal):
(Fwrite_region_internal):
* emacs.c:
* sysdep.c:
- * getloadavg.c:
+ * getloadavg.c:
* systty.h:
Remove vestigial APOLLO-conditional code.
* miscplay.h: Add guard macros.
* *.h: Use consistent C-standards-approved guard macro names.
- * opaque.c (make_opaque): Switch parameter order.
+ * opaque.c (make_opaque): Switch parameter order.
* opaque.h (make_opaque): Switch parameter order.
Update all callers.
* buffer.h (MAKE_MIRROR_TRT_TABLE): Use symbolic constant OPAQUE_CLEAR.
#ifdef CANNOT_DUMP
ln temacs ${PROGNAME}
#else
-#ifdef HAVE_SHM
- -if [ -w ${srcdir}/../lisp ]; then \
- w=`pwd`; cd ${srcdir} && $${w}/temacs -nl -batch -l ${srcdir}/../lisp/inc-vers; \
- else true; fi
- -$(DUMPENV) ./temacs -nl -batch -l ${srcdir}/../lisp/loadup.el dump
-#else /* ! defined (HAVE_SHM) */
-if [ -w ${srcdir}/../lisp ]; then \
w=`pwd`; cd ${srcdir} && $${w}/temacs -batch -l ${srcdir}/../lisp/inc-vers; \
else true; fi
-$(DUMPENV) ./temacs -batch -l ${srcdir}/../lisp/loadup.el dump
-#endif /* ! defined (HAVE_SHM) */
touch release
#endif /* ! defined (CANNOT_DUMP) */
{
struct lcrecord_header *lcheader;
-#ifdef ERROR_CHECK_TYPECHECK
- if (implementation->static_size == 0)
- assert (implementation->size_in_bytes_method);
- else
- assert (implementation->static_size == size);
-
- assert (! implementation->basic_p);
-
- if (implementation->hash == NULL)
- assert (implementation->equal == NULL);
-#endif
+ type_checking_assert
+ ((implementation->static_size == 0 ?
+ implementation->size_in_bytes_method != NULL :
+ implementation->static_size == size)
+ &&
+ (! implementation->basic_p)
+ &&
+ (! (implementation->hash == NULL && implementation->equal != NULL)));
lcheader = (struct lcrecord_header *) allocate_lisp_storage (size);
set_lheader_implementation (&(lcheader->lheader), implementation);
for (header = all_lcrecords; header; header = header->next)
{
- if (LHEADER_IMPLEMENTATION(&header->lheader)->finalizer &&
+ if (LHEADER_IMPLEMENTATION (&header->lheader)->finalizer &&
!header->free)
- ((LHEADER_IMPLEMENTATION(&header->lheader)->finalizer)
- (header, 1));
+ LHEADER_IMPLEMENTATION (&header->lheader)->finalizer (header, 1);
}
}
-/* Semi-kludge -- lrecord_symbol_value_forward objects get stuck
- in const space and you get SEGV's if you attempt to mark them.
- This sits in lheader->implementation->marker. */
-
-Lisp_Object
-this_one_is_unmarkable (Lisp_Object obj)
-{
- abort ();
- return Qnil;
-}
-
\f
/************************************************************************/
/* Debugger support */
unsigned char dbg_USE_UNION_TYPE = 0;
#endif
-unsigned char Lisp_Type_Int = 100;
-unsigned char Lisp_Type_Cons = 101;
-unsigned char Lisp_Type_String = 102;
-unsigned char Lisp_Type_Vector = 103;
-unsigned char Lisp_Type_Symbol = 104;
-
-#ifndef MULE
-unsigned char lrecord_char_table_entry;
-unsigned char lrecord_charset;
-#ifndef FILE_CODING
-unsigned char lrecord_coding_system;
-#endif
-#endif
-
-#if !((defined HAVE_X_WINDOWS) && \
- (defined (HAVE_MENUBARS) || \
- defined (HAVE_SCROLLBARS) || \
- defined (HAVE_DIALOGS) || \
- defined (HAVE_TOOLBARS) || \
- defined (HAVE_WIDGETS)))
-unsigned char lrecord_popup_data;
-#endif
-
-#ifndef HAVE_TOOLBARS
-unsigned char lrecord_toolbar_button;
-#endif
-
-#ifndef TOOLTALK
-unsigned char lrecord_tooltalk_message;
-unsigned char lrecord_tooltalk_pattern;
-#endif
-
-#ifndef HAVE_DATABASE
-unsigned char lrecord_database;
-#endif
-
unsigned char dbg_valbits = VALBITS;
unsigned char dbg_gctypebits = GCTYPEBITS;
struct free_lcrecord_header *free_header =
(struct free_lcrecord_header *) lheader;
-#ifdef ERROR_CHECK_GC
- const struct lrecord_implementation *implementation
- = LHEADER_IMPLEMENTATION(lheader);
-
- /* There should be no other pointers to the free list. */
- assert (!MARKED_RECORD_HEADER_P (lheader));
- /* Only lcrecords should be here. */
- assert (!implementation->basic_p);
- /* Only free lcrecords should be here. */
- assert (free_header->lcheader.free);
- /* The type of the lcrecord must be right. */
- assert (implementation == list->implementation);
- /* So must the size. */
- assert (implementation->static_size == 0
- || implementation->static_size == list->size);
-#endif /* ERROR_CHECK_GC */
+ gc_checking_assert
+ (/* There should be no other pointers to the free list. */
+ ! MARKED_RECORD_HEADER_P (lheader)
+ &&
+ /* Only lcrecords should be here. */
+ ! LHEADER_IMPLEMENTATION (lheader)->basic_p
+ &&
+ /* Only free lcrecords should be here. */
+ free_header->lcheader.free
+ &&
+ /* The type of the lcrecord must be right. */
+ LHEADER_IMPLEMENTATION (lheader) == list->implementation
+ &&
+ /* So must the size. */
+ (LHEADER_IMPLEMENTATION (lheader)->static_size == 0 ||
+ LHEADER_IMPLEMENTATION (lheader)->static_size == list->size)
+ );
MARK_RECORD_HEADER (lheader);
chain = free_header->chain;
(struct free_lcrecord_header *) XPNTR (val);
#ifdef ERROR_CHECK_GC
- struct lrecord_header *lheader =
- (struct lrecord_header *) free_header;
- const struct lrecord_implementation *implementation
- = LHEADER_IMPLEMENTATION (lheader);
+ struct lrecord_header *lheader = &free_header->lcheader.lheader;
/* There should be no other pointers to the free list. */
- assert (!MARKED_RECORD_HEADER_P (lheader));
+ assert (! MARKED_RECORD_HEADER_P (lheader));
/* Only lcrecords should be here. */
- assert (!implementation->basic_p);
+ assert (! LHEADER_IMPLEMENTATION (lheader)->basic_p);
/* Only free lcrecords should be here. */
assert (free_header->lcheader.free);
/* The type of the lcrecord must be right. */
- assert (implementation == list->implementation);
+ assert (LHEADER_IMPLEMENTATION (lheader) == list->implementation);
/* So must the size. */
- assert (implementation->static_size == 0
- || implementation->static_size == list->size);
+ assert (LHEADER_IMPLEMENTATION (lheader)->static_size == 0 ||
+ LHEADER_IMPLEMENTATION (lheader)->static_size == list->size);
#endif /* ERROR_CHECK_GC */
+
list->free = free_header->chain;
free_header->lcheader.free = 0;
return val;
struct lcrecord_list *list = XLCRECORD_LIST (lcrecord_list);
struct free_lcrecord_header *free_header =
(struct free_lcrecord_header *) XPNTR (lcrecord);
- struct lrecord_header *lheader =
- (struct lrecord_header *) free_header;
+ struct lrecord_header *lheader = &free_header->lcheader.lheader;
const struct lrecord_implementation *implementation
= LHEADER_IMPLEMENTATION (lheader);
-#ifdef ERROR_CHECK_GC
/* Make sure the size is correct. This will catch, for example,
putting a window configuration on the wrong free list. */
- if (implementation->size_in_bytes_method)
- assert (implementation->size_in_bytes_method (lheader) == list->size);
- else
- assert (implementation->static_size == list->size);
-#endif /* ERROR_CHECK_GC */
+ gc_checking_assert ((implementation->size_in_bytes_method ?
+ implementation->size_in_bytes_method (lheader) :
+ implementation->static_size)
+ == list->size);
if (implementation->finalizer)
implementation->finalizer (lheader, 0);
return obj;
}
-
\f
/************************************************************************/
/* Garbage Collection */
/* This will be used more extensively In The Future */
static int last_lrecord_type_index_assigned;
-const struct lrecord_implementation *lrecord_implementations_table[128];
-#define max_lrecord_type (countof (lrecord_implementations_table) - 1)
+/* All the built-in lisp object types are enumerated in `enum lrecord_type'.
+ Additional ones may be defined by a module (none yet). We leave some
+ room in `lrecord_implementations_table' for such new lisp object types. */
+#define MODULE_DEFINABLE_TYPE_COUNT 32
+const struct lrecord_implementation *lrecord_implementations_table[lrecord_type_count + MODULE_DEFINABLE_TYPE_COUNT];
+
+/* Object marker functions are in the lrecord_implementation structure.
+ But copying them to a parallel array is much more cache-friendly.
+ This hack speeds up (garbage-collect) by about 5%. */
+Lisp_Object (*lrecord_markers[countof (lrecord_implementations_table)]) (Lisp_Object);
struct gcpro *gcprolist;
pdump_wirevec_list[pdump_wireidx_list++] = varaddress;
}
+#ifdef ERROR_CHECK_GC
+#define GC_CHECK_LHEADER_INVARIANTS(lheader) do { \
+ struct lrecord_header * GCLI_lh = (lheader); \
+ assert (GCLI_lh != 0); \
+ assert (GCLI_lh->type <= last_lrecord_type_index_assigned); \
+ assert (! C_READONLY_RECORD_HEADER_P (GCLI_lh) || \
+ (MARKED_RECORD_HEADER_P (GCLI_lh) && \
+ LISP_READONLY_RECORD_HEADER_P (GCLI_lh))); \
+} while (0)
+#else
+#define GC_CHECK_LHEADER_INVARIANTS(lheader)
+#endif
+
\f
/* Mark reference to a Lisp_Object. If the object referred to has not been
seen yet, recursively mark all the references contained in it. */
{
tail_recurse:
-#ifdef ERROR_CHECK_GC
- assert (! (EQ (obj, Qnull_pointer)));
-#endif
/* Checks we used to perform */
/* if (EQ (obj, Qnull_pointer)) return; */
/* if (!POINTER_TYPE_P (XGCTYPE (obj))) return; */
if (XTYPE (obj) == Lisp_Type_Record)
{
struct lrecord_header *lheader = XRECORD_LHEADER (obj);
-#if defined (ERROR_CHECK_GC)
- assert (lheader->type <= last_lrecord_type_index_assigned);
-#endif
- if (C_READONLY_RECORD_HEADER_P (lheader))
- return;
- if (! MARKED_RECORD_HEADER_P (lheader) &&
- ! UNMARKABLE_RECORD_HEADER_P (lheader))
+ GC_CHECK_LHEADER_INVARIANTS (lheader);
+
+ gc_checking_assert (LHEADER_IMPLEMENTATION (lheader)->basic_p ||
+ ! ((struct lcrecord_header *) lheader)->free);
+
+ /* All c_readonly objects have their mark bit set,
+ so that we only need to check the mark bit here. */
+ if (! MARKED_RECORD_HEADER_P (lheader))
{
- const struct lrecord_implementation *implementation =
- LHEADER_IMPLEMENTATION (lheader);
MARK_RECORD_HEADER (lheader);
-#ifdef ERROR_CHECK_GC
- if (!implementation->basic_p)
- assert (! ((struct lcrecord_header *) lheader)->free);
-#endif
- if (implementation->marker)
+
+ if (RECORD_MARKER (lheader))
{
- obj = implementation->marker (obj);
+ obj = RECORD_MARKER (lheader) (obj);
if (!NILP (obj)) goto tail_recurse;
}
}
/* static int gc_count_total_records_used, gc_count_records_total_size; */
\f
-int
-lrecord_type_index (const struct lrecord_implementation *implementation)
-{
- int type_index = *(implementation->lrecord_type_index);
- /* Have to do this circuitous validation test because of problems
- dumping out initialized variables (ie can't set xxx_type_index to -1
- because that would make xxx_type_index read-only in a dumped emacs. */
- if (type_index < 0 || type_index > max_lrecord_type
- || lrecord_implementations_table[type_index] != implementation)
- {
- assert (last_lrecord_type_index_assigned < max_lrecord_type);
- type_index = ++last_lrecord_type_index_assigned;
- lrecord_implementations_table[type_index] = implementation;
- *(implementation->lrecord_type_index) = type_index;
- }
- return type_index;
-}
-
/* stats on lcrecords in use - kinda kludgy */
static struct
static void
tick_lcrecord_stats (const struct lrecord_header *h, int free_p)
{
- const struct lrecord_implementation *implementation =
- LHEADER_IMPLEMENTATION (h);
- int type_index = lrecord_type_index (implementation);
+ unsigned int type_index = h->type;
if (((struct lcrecord_header *) h)->free)
{
- assert (!free_p);
+ gc_checking_assert (!free_p);
lcrecord_stats[type_index].instances_on_free_list++;
}
else
{
- size_t sz = (implementation->size_in_bytes_method
- ? implementation->size_in_bytes_method (h)
- : implementation->static_size);
+ const struct lrecord_implementation *implementation =
+ LHEADER_IMPLEMENTATION (h);
+ size_t sz = (implementation->size_in_bytes_method ?
+ implementation->size_in_bytes_method (h) :
+ implementation->static_size);
if (free_p)
{
lcrecord_stats[type_index].instances_freed++;
for (header = *prev; header; header = header->next)
{
struct lrecord_header *h = &(header->lheader);
- if (!C_READONLY_RECORD_HEADER_P(h)
- && !MARKED_RECORD_HEADER_P (h)
- && ! (header->free))
+
+ GC_CHECK_LHEADER_INVARIANTS (h);
+
+ if (! MARKED_RECORD_HEADER_P (h) && ! header->free)
{
if (LHEADER_IMPLEMENTATION (h)->finalizer)
LHEADER_IMPLEMENTATION (h)->finalizer (h, 0);
for (header = *prev; header; )
{
struct lrecord_header *h = &(header->lheader);
- if (C_READONLY_RECORD_HEADER_P(h) || MARKED_RECORD_HEADER_P (h))
+ if (MARKED_RECORD_HEADER_P (h))
{
- if (MARKED_RECORD_HEADER_P (h))
+ if (! C_READONLY_RECORD_HEADER_P (h))
UNMARK_RECORD_HEADER (h);
num_used++;
/* total_size += n->implementation->size_in_bytes (h);*/
{
Lisp_Bit_Vector *v = XBIT_VECTOR (bit_vector);
int len = v->size;
- if (C_READONLY_RECORD_HEADER_P(&(v->lheader)) || MARKED_RECORD_P (bit_vector))
+ if (MARKED_RECORD_P (bit_vector))
{
- if (MARKED_RECORD_P (bit_vector))
+ if (! C_READONLY_RECORD_HEADER_P(&(v->lheader)))
UNMARK_RECORD_HEADER (&(v->lheader));
total_size += len;
total_storage +=
{ \
num_used++; \
} \
- else if (!MARKED_RECORD_HEADER_P (&SFTB_victim->lheader)) \
+ else if (! MARKED_RECORD_HEADER_P (&SFTB_victim->lheader)) \
{ \
num_free++; \
FREE_FIXED_TYPE (typename, obj_type, SFTB_victim); \
SFTB_empty = 0; \
num_used++; \
} \
- else if (!MARKED_RECORD_HEADER_P (&SFTB_victim->lheader)) \
+ else if (! MARKED_RECORD_HEADER_P (&SFTB_victim->lheader)) \
{ \
num_free++; \
FREE_FIXED_TYPE (typename, obj_type, SFTB_victim); \
void
free_marker (Lisp_Marker *ptr)
{
-#ifdef ERROR_CHECK_GC
/* Perhaps this will catch freeing an already-freed marker. */
- Lisp_Object temmy;
- XSETMARKER (temmy, ptr);
- assert (MARKERP (temmy));
-#endif /* ERROR_CHECK_GC */
+ gc_checking_assert (ptr->lheader.type = lrecord_type_marker);
#ifndef ALLOC_NO_POOLS
FREE_FIXED_TYPE_WHEN_NOT_IN_GC (marker, Lisp_Marker, ptr);
int
marked_p (Lisp_Object obj)
{
-#ifdef ERROR_CHECK_GC
- assert (! (EQ (obj, Qnull_pointer)));
-#endif
/* Checks we used to perform. */
/* if (EQ (obj, Qnull_pointer)) return 1; */
/* if (!POINTER_TYPE_P (XGCTYPE (obj))) return 1; */
if (XTYPE (obj) == Lisp_Type_Record)
{
struct lrecord_header *lheader = XRECORD_LHEADER (obj);
-#if defined (ERROR_CHECK_GC)
- assert (lheader->type <= last_lrecord_type_index_assigned);
-#endif
- return C_READONLY_RECORD_HEADER_P (lheader) || MARKED_RECORD_HEADER_P (lheader);
+
+ GC_CHECK_LHEADER_INVARIANTS (lheader);
+
+ return MARKED_RECORD_HEADER_P (lheader);
}
return 1;
}
{
for (i=0; i<rt->count; i++)
{
- UNMARK_RECORD_HEADER ((struct lrecord_header *)(*(EMACS_INT *)p));
+ struct lrecord_header *lh = * (struct lrecord_header **) p;
+ if (! C_READONLY_RECORD_HEADER_P (lh))
+ UNMARK_RECORD_HEADER (lh);
p += sizeof (EMACS_INT);
}
} else
const char *name = lrecord_implementations_table[i]->name;
int len = strlen (name);
/* save this for the FSFmacs-compatible part of the summary */
- if (i == *lrecord_vector.lrecord_type_index)
+ if (i == lrecord_vector.lrecord_type_index)
gc_count_vector_total_size =
lcrecord_stats[i].bytes_in_use + lcrecord_stats[i].bytes_freed;
void
init_alloc_once_early (void)
{
- int iii;
-
reinit_alloc_once_early ();
- last_lrecord_type_index_assigned = -1;
- for (iii = 0; iii < countof (lrecord_implementations_table); iii++)
- {
- lrecord_implementations_table[iii] = 0;
- }
+ last_lrecord_type_index_assigned = lrecord_type_count - 1;
- /*
- * All the staticly
- * defined subr lrecords were initialized with lheader->type == 0.
- * See subr_lheader_initializer in lisp.h. Force type index 0 to be
- * assigned to lrecord_subr so that those predefined indexes match
- * reality.
- */
- lrecord_type_index (&lrecord_subr);
- assert (*(lrecord_subr.lrecord_type_index) == 0);
- /*
- * The same is true for symbol_value_forward objects, except the
- * type is 1.
- */
- lrecord_type_index (&lrecord_symbol_value_forward);
- assert (*(lrecord_symbol_value_forward.lrecord_type_index) == 1);
+ {
+ int i;
+ for (i = 0; i < countof (lrecord_implementations_table); i++)
+ lrecord_implementations_table[i] = 0;
+ }
+
+ INIT_LRECORD_IMPLEMENTATION (cons);
+ INIT_LRECORD_IMPLEMENTATION (vector);
+ INIT_LRECORD_IMPLEMENTATION (string);
+ INIT_LRECORD_IMPLEMENTATION (lcrecord_list);
staticidx = 0;
}
memcpy (lrecord_implementations_table, p, sizeof (lrecord_implementations_table));
p += sizeof (lrecord_implementations_table);
- /* Give back their numbers to the lrecord implementations */
- for (i = 0; i < countof (lrecord_implementations_table); i++)
+ /* Reinitialize lrecord_markers from lrecord_implementations_table */
+ for (i=0; i < countof (lrecord_implementations_table); i++)
if (lrecord_implementations_table[i])
- {
- *(lrecord_implementations_table[i]->lrecord_type_index) = i;
- last_lrecord_type_index_assigned = i;
- }
+ lrecord_markers[i] = lrecord_implementations_table[i]->marker;
/* Do the relocations */
pdump_rt_list = p;
}
#endif /* PDUMP */
+
local_var_alist is set to Qnil at the same point, in
nuke_all_buffer_slots(). */
reset_buffer_local_variables (b, 1);
- b->directory = ((current_buffer) ? current_buffer->directory : Qnil);
+ b->directory = current_buffer ? current_buffer->directory : Qnil;
b->last_window_start = 1;
kill_buffer_processes (buf);
+ delete_from_buffer_alist (buf);
+
/* #### This is a problem if this buffer is in a dedicated window.
Need to undedicate any windows of this buffer first (and delete them?)
*/
Freplace_buffer_in_windows (buf);
- delete_from_buffer_alist (buf);
-
font_lock_buffer_was_killed (b);
/* Delete any auto-save file, if we saved it in this session. */
void
syms_of_buffer (void)
{
+ INIT_LRECORD_IMPLEMENTATION (buffer);
+
defsymbol (&Qbuffer_live_p, "buffer-live-p");
defsymbol (&Qbuffer_or_string_p, "buffer-or-string-p");
defsymbol (&Qmode_class, "mode-class");
/* Renamed from DEFVAR_PER_BUFFER because FSFmacs D_P_B takes
a bogus extra arg, which confuses an otherwise identical make-docfile.c */
-
-/* Declaring this stuff as const produces 'Cannot reinitialize' messages
- from SunPro C's fix-and-continue feature (a way neato feature that
- makes debugging unbelievably more bearable) */
#define DEFVAR_BUFFER_LOCAL_1(lname, field_name, forward_type, magicfun) do { \
- static CONST_IF_NOT_DEBUG struct symbol_value_forward I_hate_C = \
+ static const struct symbol_value_forward I_hate_C = \
{ /* struct symbol_value_forward */ \
{ /* struct symbol_value_magic */ \
{ /* struct lcrecord_header */ \
{ /* struct lrecord_header */ \
- 1, /* type - index into lrecord_implementations_table */ \
- 0, /* mark bit */ \
- 0, /* c_readonly bit */ \
- 0 /* lisp_readonly bit */ \
+ lrecord_type_symbol_value_forward, /* lrecord_type_index */ \
+ 1, /* mark bit */ \
+ 1, /* c_readonly bit */ \
+ 1 /* lisp_readonly bit */ \
}, \
0, /* next */ \
0, /* uid */ \
void
syms_of_bytecode (void)
{
+ INIT_LRECORD_IMPLEMENTATION (compiled_function);
+
deferror (&Qinvalid_byte_code, "invalid-byte-code",
"Invalid byte code", Qerror);
defsymbol (&Qbyte_code, "byte-code");
void
syms_of_chartab (void)
{
+ INIT_LRECORD_IMPLEMENTATION (char_table);
+
#ifdef MULE
+ INIT_LRECORD_IMPLEMENTATION (char_table_entry);
+
defsymbol (&Qcategory_table_p, "category-table-p");
defsymbol (&Qcategory_designator_p, "category-designator-p");
defsymbol (&Qcategory_table_value_p, "category-table-value-p");
/* Some things figured out by the configure script, grouped as they are in
configure.in. */
#undef HAVE_MCHECK_H
+#undef HAVE_A_OUT_H
+#undef HAVE_CYGWIN_VERSION_H
+#undef HAVE_FCNTL_H
+#undef HAVE_INTTYPES_H
+#undef HAVE_LIBGEN_H
+#undef HAVE_LOCALE_H
#undef HAVE_MACH_MACH_H
+#undef HAVE_SYS_PARAM_H
+#undef HAVE_SYS_PSTAT_H
#undef HAVE_SYS_STROPTS_H
-#undef HAVE_SYS_TIMEB_H
#undef HAVE_SYS_TIME_H
+#undef HAVE_SYS_TIMEB_H
+#undef HAVE_SYS_UN_H
+#undef HAVE_ULIMIT_H
#undef HAVE_UNISTD_H
#undef HAVE_UTIME_H
+
#undef HAVE_SYS_WAIT_H
#undef HAVE_LIBINTL_H
-#undef HAVE_LIBGEN_H
-#undef HAVE_LOCALE_H
-#undef HAVE_FCNTL_H
-#undef HAVE_ULIMIT_H
#undef HAVE_X11_XLOCALE_H
-#undef HAVE_LINUX_VERSION_H
-#undef HAVE_CYGWIN_VERSION_H
-#undef HAVE_INTTYPES_H
-#undef HAVE_SYS_UN_H
-#undef HAVE_A_OUT_H
#undef STDC_HEADERS
#undef TIME_WITH_SYS_TIME
#undef WORDS_BIGENDIAN
#undef HAVE_VFORK_H
#undef HAVE_KSTAT_H
-#undef HAVE_SYS_PSTAT_H
#undef vfork
#undef HAVE_LONG_FILE_NAMES
/* Attempt to catch bugs related to garbage collection (e.g. not GCPRO'ing). */
#undef ERROR_CHECK_GC
+#ifdef ERROR_CHECK_GC
+#define gc_checking_assert(assertion) assert (assertion)
+#else
+#define gc_checking_assert(assertion)
+#endif
/* Attempt to catch freeing of a non-malloc()ed block, heap corruption, etc. */
#undef ERROR_CHECK_MALLOC
tty_con->instream = make_filedesc_input_stream (tty_con->infd, 0, -1, 0);
tty_con->outstream = make_filedesc_output_stream (tty_con->outfd, 0, -1, 0);
-#ifdef MULE
+#ifdef FILE_CODING
tty_con->instream =
make_decoding_input_stream (XLSTREAM (tty_con->instream),
Fget_coding_system (Vkeyboard_coding_system));
tty_con->outstream =
make_encoding_output_stream (XLSTREAM (tty_con->outstream),
Fget_coding_system (Vterminal_coding_system));
-#endif /* MULE */
+#endif /* FILE_CODING */
tty_con->terminal_type = terminal_type;
tty_con->controlling_process = controlling_process;
void
syms_of_console (void)
{
+ INIT_LRECORD_IMPLEMENTATION (console);
+
DEFSUBR (Fvalid_console_type_p);
DEFSUBR (Fconsole_type_list);
DEFSUBR (Fcdfw_console);
}
/* The docstrings for DEFVAR_* are recorded externally by make-docfile. */
-
-/* Declaring this stuff as const produces 'Cannot reinitialize' messages
- from SunPro C's fix-and-continue feature (a way neato feature that
- makes debugging unbelievably more bearable) */
#define DEFVAR_CONSOLE_LOCAL_1(lname, field_name, forward_type, magicfun) do { \
- static CONST_IF_NOT_DEBUG struct symbol_value_forward I_hate_C = \
+ static const struct symbol_value_forward I_hate_C = \
{ /* struct symbol_value_forward */ \
{ /* struct symbol_value_magic */ \
{ /* struct lcrecord_header */ \
{ /* struct lrecord_header */ \
- 1, /* type - index into lrecord_implementations_table */ \
- 0, /* mark bit */ \
- 0, /* c_readonly bit */ \
- 0 /* lisp_readonly bit */ \
+ lrecord_type_symbol_value_forward, /* lrecord_type_index */ \
+ 1, /* mark bit */ \
+ 1, /* c_readonly bit */ \
+ 1 /* lisp_readonly bit */ \
}, \
0, /* next */ \
0, /* uid */ \
void
syms_of_data (void)
{
+ INIT_LRECORD_IMPLEMENTATION (weak_list);
+
defsymbol (&Qquote, "quote");
defsymbol (&Qlambda, "lambda");
defsymbol (&Qlistp, "listp");
void
syms_of_database (void)
{
+ INIT_LRECORD_IMPLEMENTATION (database);
+
defsymbol (&Qdatabasep, "databasep");
#ifdef HAVE_DBM
defsymbol (&Qdbm, "dbm");
#include "console-msw.h"
#include "console-stream.h"
+#include "objects-msw.h"
#include "events.h"
#include "faces.h"
#include "frame.h"
static Lisp_Object
build_syscolor_string (int idx)
{
- DWORD clr;
- char buf[16];
-
- if (idx < 0)
- return Qnil;
-
- clr = GetSysColor (idx);
- sprintf (buf, "#%02X%02X%02X",
- GetRValue (clr),
- GetGValue (clr),
- GetBValue (clr));
- return build_string (buf);
+ return (idx < 0 ? Qnil : mswindows_color_to_string (GetSysColor (idx)));
}
static Lisp_Object
wc.lpszMenuName = NULL;
wc.lpszClassName = XEMACS_CLASS;
- wc.hIconSm = LoadImage (GetModuleHandle (NULL), XEMACS_CLASS,
+ wc.hIconSm = (HICON) LoadImage (GetModuleHandle (NULL), XEMACS_CLASS,
IMAGE_ICON, 16, 16, 0);
RegisterClassEx (&wc);
mswindows_delete_device (struct device *d)
{
#ifdef HAVE_DRAGNDROP
- DdeNameService (mswindows_dde_mlid, 0L, 0L, DNS_REGISTER);
+ DdeNameService (mswindows_dde_mlid, 0L, 0L, DNS_UNREGISTER);
+ DdeFreeStringHandle (mswindows_dde_mlid, mswindows_dde_item_open);
+ DdeFreeStringHandle (mswindows_dde_mlid, mswindows_dde_topic_system);
+ DdeFreeStringHandle (mswindows_dde_mlid, mswindows_dde_service);
DdeUninitialize (mswindows_dde_mlid);
#endif
break;
/*** Colors ***/
-#define FROB(met, index1, index2) \
+#define FROB(met, fore, back) \
case DM_##met: \
- return build_syscolor_cons (index1, index2);
+ return build_syscolor_cons (fore, back);
- FROB (color_default, COLOR_WINDOW, COLOR_WINDOWTEXT);
- FROB (color_select, COLOR_HIGHLIGHT, COLOR_HIGHLIGHTTEXT);
- FROB (color_balloon, COLOR_INFOBK, COLOR_INFOTEXT);
- FROB (color_3d_face, COLOR_3DFACE, COLOR_BTNTEXT);
- FROB (color_3d_light, COLOR_3DLIGHT, COLOR_3DHILIGHT);
- FROB (color_3d_dark, COLOR_3DSHADOW, COLOR_3DDKSHADOW);
- FROB (color_menu, COLOR_MENU, COLOR_MENUTEXT);
- FROB (color_menu_highlight, COLOR_HIGHLIGHT, COLOR_HIGHLIGHTTEXT);
- FROB (color_menu_button, COLOR_MENU, COLOR_MENUTEXT);
- FROB (color_menu_disabled, COLOR_MENU, COLOR_GRAYTEXT);
- FROB (color_toolbar, COLOR_BTNFACE, COLOR_BTNTEXT);
- FROB (color_scrollbar, COLOR_SCROLLBAR, COLOR_CAPTIONTEXT);
+ FROB (color_default, COLOR_WINDOWTEXT, COLOR_WINDOW);
+ FROB (color_select, COLOR_HIGHLIGHTTEXT, COLOR_HIGHLIGHT);
+ FROB (color_balloon, COLOR_INFOTEXT, COLOR_INFOBK);
+ FROB (color_3d_face, COLOR_BTNTEXT, COLOR_BTNFACE);
+ FROB (color_3d_light, COLOR_3DHILIGHT, COLOR_3DLIGHT);
+ FROB (color_3d_dark, COLOR_3DDKSHADOW, COLOR_3DSHADOW);
+ FROB (color_menu, COLOR_MENUTEXT, COLOR_MENU);
+ FROB (color_menu_highlight, COLOR_HIGHLIGHTTEXT, COLOR_HIGHLIGHT);
+ FROB (color_menu_button, COLOR_MENUTEXT, COLOR_MENU);
+ FROB (color_menu_disabled, COLOR_GRAYTEXT, COLOR_MENU);
+ FROB (color_toolbar, COLOR_BTNTEXT, COLOR_BTNFACE);
+ FROB (color_scrollbar, COLOR_CAPTIONTEXT, COLOR_SCROLLBAR);
FROB (color_desktop, -1, COLOR_DESKTOP);
FROB (color_workspace, -1, COLOR_APPWORKSPACE);
#undef FROB
if (DEVICE_MSPRINTER_DEVMODE_SIZE(d) <= 0)
signal_open_printer_error (d);
- DEVICE_MSPRINTER_DEVMODE(d) = xmalloc (DEVICE_MSPRINTER_DEVMODE_SIZE(d));
+ DEVICE_MSPRINTER_DEVMODE(d) =
+ (DEVMODE*) xmalloc (DEVICE_MSPRINTER_DEVMODE_SIZE(d));
DocumentProperties (NULL, DEVICE_MSPRINTER_HPRINTER(d),
printer_name, DEVICE_MSPRINTER_DEVMODE(d),
NULL, DM_OUT_BUFFER);
if (DEVICE_MSPRINTER_DEVMODE_MIRROR(d) == NULL)
DEVICE_MSPRINTER_DEVMODE_MIRROR(d) =
- xmalloc (DEVICE_MSPRINTER_DEVMODE_SIZE(d));
+ (DEVMODE*) xmalloc (DEVICE_MSPRINTER_DEVMODE_SIZE(d));
memcpy (DEVICE_MSPRINTER_DEVMODE_MIRROR(d),
DEVICE_MSPRINTER_DEVMODE(d),
- /* Generic device functions.
+/* Generic device functions.
Copyright (C) 1994, 1995 Board of Trustees, University of Illinois.
Copyright (C) 1994, 1995 Free Software Foundation, Inc.
Copyright (C) 1995, 1996 Ben Wing
size-device Device screen or paper size in pixels.
size-workspace Workspace size in pixels. This can be less than or
equal to the above. For diplays, this is the area
- available to applications less window manager
+ available to applications less window manager
decorations. For printers, this is the size of
printable area.
offset-workspace Offset of workspace area from the top left corner
void
syms_of_device (void)
{
+ INIT_LRECORD_IMPLEMENTATION (device);
+
DEFSUBR (Fvalid_device_class_p);
DEFSUBR (Fdevice_class_list);
/* #### - Stig sez: this should return nil instead of "unknown" when pw==0 */
/* Ben sez: bad idea because it's likely to break something */
#ifndef AMPERSAND_FULL_NAME
- p = ((pw) ? USER_FULL_NAME : "unknown"); /* don't gettext */
+ p = pw ? USER_FULL_NAME : "unknown"; /* don't gettext */
q = strchr (p, ',');
#else
- p = ((pw) ? USER_FULL_NAME : "unknown"); /* don't gettext */
+ p = pw ? USER_FULL_NAME : "unknown"; /* don't gettext */
q = strchr (p, ',');
#endif
tem = ((!NILP (user) && !pw)
*/
if (initial_directory[0] != '\0')
{
- cached_home_directory = initial_directory;
+ cached_home_directory = (Extbyte*) initial_directory;
}
else
{
/* This will probably give the wrong value */
- cached_home_directory = getcwd (NULL, 0);
+ cached_home_directory = (Extbyte*) getcwd (NULL, 0);
}
# else
/*
static Lisp_Object Qkrbv41, Qkrbv42;
/* Deref policy */
static Lisp_Object Qnever, Qalways, Qfind;
+/* Modification types (Qdelete is defined in general.c) */
+static Lisp_Object Qadd, Qreplace;
+
\f
/************************************************************************/
/* Utility Functions */
if ((err = ldap_set_option (ld, LDAP_OPT_REFERRALS,
LDAP_OPT_ON)) != LDAP_SUCCESS)
signal_ldap_error (ld, NULL, err);
+ if ((err = ldap_set_option (ld, LDAP_OPT_RESTART,
+ LDAP_OPT_ON)) != LDAP_SUCCESS)
+ signal_ldap_error (ld, NULL, err);
#else /* not HAVE_LDAP_SET_OPTION */
ld->ld_deref = ldap_deref;
ld->ld_timelimit = ldap_timelimit;
#else /* not LDAP_REFERRALS */
ld->ld_options = 0;
#endif /* not LDAP_REFERRALS */
+ /* XEmacs uses interrupts (SIGIO,SIGALRM), LDAP calls need to ignore them */
+ ld->ld_options |= LDAP_OPT_RESTART;
#endif /* not HAVE_LDAP_SET_OPTION */
- /* ldap_bind_s calls select and may be wedged by SIGIO. */
- slow_down_interrupts ();
err = ldap_bind_s (ld, ldap_binddn, ldap_passwd, ldap_auth);
- speed_up_interrupts ();
if (err != LDAP_SUCCESS)
signal_simple_error ("Failed binding to the server",
build_string (ldap_err2string (err)));
struct berval **vals;
};
-
static Lisp_Object
ldap_search_unwind (Lisp_Object unwind_obj)
{
return Qnil;
}
-DEFUN ("ldap-search-internal", Fldap_search_internal, 2, 7, 0, /*
+/* The following function is called `ldap-search-basic' instead of */
+/* plain `ldap-search' to maintain compatibility with the XEmacs 21.1 */
+/* API where `ldap-search' was the name of the high-level search */
+/* function */
+
+DEFUN ("ldap-search-basic", Fldap_search_basic, 2, 8, 0, /*
Perform a search on an open LDAP connection.
LDAP is an LDAP connection object created with `ldap-open'.
FILTER is a filter string for the search as described in RFC 1558.
for each matching entry. If nil return all available attributes.
If ATTRSONLY is non-nil then only the attributes are retrieved, not
the associated values.
-If WITHDN is non-nil each entry in the result will be prepennded with
+If WITHDN is non-nil each entry in the result will be prepended with
its distinguished name DN.
+If VERBOSE is non-nil progress messages will be 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 WITHDN.
*/
- (ldap, filter, base, scope, attrs, attrsonly, withdn))
+ (ldap, filter, base, scope, attrs, attrsonly, withdn, verbose))
{
/* This function can GC */
/* Build the results list */
matches = 0;
- /* ldap_result calls select() and can get wedged by EINTR signals */
- slow_down_interrupts ();
rc = ldap_result (ld, LDAP_RES_ANY, 0, NULL, &unwind.res);
- speed_up_interrupts ();
+
while (rc == LDAP_RES_SEARCH_ENTRY)
{
QUIT;
destroys the current echo area contents, even when invoked
from Lisp. It should use echo_area_message() instead, and
restore the old echo area contents later. */
- message ("Parsing ldap results... %d", matches);
+ if (! NILP (verbose))
+ message ("Parsing ldap results... %d", matches);
entry = Qnil;
/* Get the DN if required */
if (! NILP (withdn))
ldap_msgfree (unwind.res);
unwind.res = NULL;
- slow_down_interrupts ();
rc = ldap_result (ld, LDAP_RES_ANY, 0, NULL, &(unwind.res));
- speed_up_interrupts ();
}
- if (rc == -1)
- signal_ldap_error (ld, unwind.res, 0);
-
- if (rc == 0)
- signal_ldap_error (ld, NULL, LDAP_TIMELIMIT_EXCEEDED);
-
#if defined HAVE_LDAP_PARSE_RESULT
rc2 = ldap_parse_result (ld, unwind.res,
&rc,
NULL, NULL, NULL, NULL, 0);
if (rc2 != LDAP_SUCCESS)
rc = rc2;
-#elif defined HAVE_LDAP_RESULT2ERROR
+#else
+ if (rc == 0)
+ signal_ldap_error (ld, NULL, LDAP_TIMELIMIT_EXCEEDED);
+
+ if (rc == -1)
+ signal_ldap_error (ld, unwind.res, (unwind.res==NULL) ? ld->ld_errno : 0);
+
+#if defined HAVE_LDAP_RESULT2ERROR
rc = ldap_result2error (ld, unwind.res, 0);
#endif
- if ((rc != LDAP_SUCCESS) && (rc != LDAP_SIZELIMIT_EXCEEDED))
+#endif
+
+ if (rc != LDAP_SUCCESS)
signal_ldap_error (ld, NULL, rc);
ldap_msgfree (unwind.res);
unwind.res = (LDAPMessage *)NULL;
+
/* #### See above for calling message(). */
- message ("Parsing ldap results... done");
+ if (! NILP (verbose))
+ message ("Parsing ldap results... done");
unbind_to (speccount, Qnil);
UNGCPRO;
return Fnreverse (result);
}
+DEFUN ("ldap-add", Fldap_add, 3, 3, 0, /*
+Add an entry to an LDAP directory.
+LDAP is an LDAP connection object created with `ldap-open'.
+DN is the distinguished name of the entry to add.
+ENTRY is an entry specification, i.e., a list of cons cells
+containing attribute/value string pairs.
+*/
+ (ldap, dn, entry))
+{
+ LDAP *ld;
+ LDAPMod *ldap_mods, **ldap_mods_ptrs;
+ struct berval *bervals;
+ int rc;
+ int i, j;
+
+ Lisp_Object current, values;
+ struct gcpro gcpro1, gcpro2;
+ GCPRO2 (current, values);
+
+ /* Do all the parameter checking */
+ CHECK_LIVE_LDAP (ldap);
+ ld = XLDAP (ldap)->ld;
+
+ /* Check the DN */
+ CHECK_STRING (dn);
+
+ /* Check the entry */
+ CHECK_CONS (entry);
+ if (NILP (entry))
+ signal_simple_error ("Cannot add void entry", entry);
+
+ /* Build the ldap_mods array */
+ ldap_mods = alloca_array (LDAPMod, XINT (Flength (entry)));
+ ldap_mods_ptrs = alloca_array (LDAPMod *, 1 + XINT (Flength (entry)));
+ i = 0;
+ EXTERNAL_LIST_LOOP (entry, entry)
+ {
+ current = XCAR (entry);
+ CHECK_CONS (current);
+ CHECK_STRING (XCAR (current));
+ ldap_mods_ptrs[i] = &(ldap_mods[i]);
+ TO_EXTERNAL_FORMAT (LISP_STRING, XCAR (current),
+ C_STRING_ALLOCA, ldap_mods[i].mod_type,
+ Qnative);
+ ldap_mods[i].mod_op = LDAP_MOD_ADD | LDAP_MOD_BVALUES;
+ values = XCDR (current);
+ if (CONSP (values))
+ {
+ bervals =
+ alloca_array (struct berval, XINT (Flength (values)));
+ ldap_mods[i].mod_vals.modv_bvals =
+ alloca_array (struct berval *, 1 + XINT (Flength (values)));
+ j = 0;
+ EXTERNAL_LIST_LOOP (values, values)
+ {
+ current = XCAR (values);
+ CHECK_STRING (current);
+ ldap_mods[i].mod_vals.modv_bvals[j] = &(bervals[j]);
+ TO_EXTERNAL_FORMAT (LISP_STRING, current,
+ ALLOCA, (bervals[j].bv_val,
+ bervals[j].bv_len),
+ Qnative);
+ j++;
+ }
+ ldap_mods[i].mod_vals.modv_bvals[j] = NULL;
+ }
+ else
+ {
+ CHECK_STRING (values);
+ bervals = alloca_array (struct berval, 1);
+ ldap_mods[i].mod_vals.modv_bvals = alloca_array (struct berval *, 2);
+ ldap_mods[i].mod_vals.modv_bvals[0] = &(bervals[0]);
+ TO_EXTERNAL_FORMAT (LISP_STRING, values,
+ ALLOCA, (bervals[0].bv_val,
+ bervals[0].bv_len),
+ Qnative);
+ ldap_mods[i].mod_vals.modv_bvals[1] = NULL;
+ }
+ i++;
+ }
+ ldap_mods_ptrs[i] = NULL;
+ rc = ldap_add_s (ld, (char *) XSTRING_DATA (dn), ldap_mods_ptrs);
+ if (rc != LDAP_SUCCESS)
+ signal_ldap_error (ld, NULL, rc);
+
+ UNGCPRO;
+}
+
+DEFUN ("ldap-modify", Fldap_modify, 3, 3, 0, /*
+Add an entry to an LDAP directory.
+LDAP is an LDAP connection object created with `ldap-open'.
+DN is the distinguished name of the entry to modify.
+MODS is a list of modifications to apply.
+A modification is a list of the form (MOD-OP ATTR VALUE1 VALUE2 ...)
+MOD-OP and ATTR are mandatory, VALUEs are optional depending on MOD-OP.
+MOD-OP is the type of modification, one of the symbols `add', `delete'
+or `replace'. ATTR is the LDAP attribute type to modify
+*/
+ (ldap, dn, mods))
+{
+ LDAP *ld;
+ LDAPMod *ldap_mods, **ldap_mods_ptrs;
+ struct berval *bervals;
+ int i, j, rc;
+
+ Lisp_Object current, mod_op, values;
+ struct gcpro gcpro1, gcpro2;
+
+ GCPRO2 (current, values);
+
+ /* Do all the parameter checking */
+ CHECK_LIVE_LDAP (ldap);
+ ld = XLDAP (ldap)->ld;
+
+ /* Check the DN */
+ CHECK_STRING (dn);
+
+ /* Check the entry */
+ CHECK_CONS (mods);
+ if (NILP (mods))
+ return Qnil;
+
+ /* Build the ldap_mods array */
+ ldap_mods = alloca_array (LDAPMod, XINT (Flength (mods)));
+ ldap_mods_ptrs = alloca_array (LDAPMod *, 1 + XINT (Flength (mods)));
+ i = 0;
+ EXTERNAL_LIST_LOOP (mods, mods)
+ {
+ current = XCAR (mods);
+ CHECK_CONS (current);
+ CHECK_SYMBOL (XCAR (current));
+ mod_op = XCAR (current);
+ ldap_mods_ptrs[i] = &(ldap_mods[i]);
+ ldap_mods[i].mod_op = LDAP_MOD_BVALUES;
+ if (EQ (mod_op, Qadd))
+ ldap_mods[i].mod_op |= LDAP_MOD_ADD;
+ else if (EQ (mod_op, Qdelete))
+ ldap_mods[i].mod_op |= LDAP_MOD_DELETE;
+ else if (EQ (mod_op, Qreplace))
+ ldap_mods[i].mod_op |= LDAP_MOD_REPLACE;
+ else
+ signal_simple_error ("Invalid LDAP modification type", mod_op);
+ current = XCDR (current);
+ CHECK_STRING (XCAR (current));
+ TO_EXTERNAL_FORMAT (LISP_STRING, XCAR (current),
+ C_STRING_ALLOCA, ldap_mods[i].mod_type,
+ Qnative);
+ values = XCDR (current);
+ bervals = alloca_array (struct berval, XINT (Flength (values)));
+ ldap_mods[i].mod_vals.modv_bvals =
+ alloca_array (struct berval *, 1 + XINT (Flength (values)));
+ j = 0;
+ EXTERNAL_LIST_LOOP (values, values)
+ {
+ current = XCAR (values);
+ CHECK_STRING (current);
+ ldap_mods[i].mod_vals.modv_bvals[j] = &(bervals[j]);
+ TO_EXTERNAL_FORMAT (LISP_STRING, current,
+ ALLOCA, (bervals[j].bv_val,
+ bervals[j].bv_len),
+ Qnative);
+ j++;
+ }
+ ldap_mods[i].mod_vals.modv_bvals[j] = NULL;
+ i++;
+ }
+ ldap_mods_ptrs[i] = NULL;
+ rc = ldap_modify_s (ld, (char *) XSTRING_DATA (dn), ldap_mods_ptrs);
+ if (rc != LDAP_SUCCESS)
+ signal_ldap_error (ld, NULL, rc);
+
+ UNGCPRO;
+}
+
+
+DEFUN ("ldap-delete", Fldap_delete, 2, 2, 0, /*
+Delete an entry to an LDAP directory.
+LDAP is an LDAP connection object created with `ldap-open'.
+DN is the distinguished name of the entry to delete.
+*/
+ (ldap, dn))
+{
+ LDAP *ld;
+ int rc;
+
+ /* Check parameters */
+ CHECK_LIVE_LDAP (ldap);
+ ld = XLDAP (ldap)->ld;
+ CHECK_STRING (dn);
+
+ rc = ldap_delete_s (ld, (char *) XSTRING_DATA (dn));
+ if (rc != LDAP_SUCCESS)
+ signal_ldap_error (ld, NULL, rc);
+}
void
syms_of_eldap (void)
{
+ INIT_LRECORD_IMPLEMENTATION (ldap);
+
defsymbol (&Qldapp, "ldapp");
defsymbol (&Qport, "port");
defsymbol (&Qauth, "auth");
defsymbol (&Qnever, "never");
defsymbol (&Qalways, "always");
defsymbol (&Qfind, "find");
+ defsymbol (&Qadd, "add");
+ defsymbol (&Qreplace, "replace");
DEFSUBR (Fldapp);
DEFSUBR (Fldap_host);
DEFSUBR (Fldap_status);
DEFSUBR (Fldap_open);
DEFSUBR (Fldap_close);
- DEFSUBR (Fldap_search_internal);
+ DEFSUBR (Fldap_search_basic);
+ DEFSUBR (Fldap_add);
+ DEFSUBR (Fldap_modify);
+ DEFSUBR (Fldap_delete);
}
void
Lisp_Object Fldap_open (Lisp_Object host,
Lisp_Object ldap_plist);
Lisp_Object Fldap_close (Lisp_Object ldap);
-Lisp_Object Fldap_search_internal (Lisp_Object ldap,
- Lisp_Object filter,
- Lisp_Object base,
- Lisp_Object scope,
- Lisp_Object attrs,
- Lisp_Object attrsonly,
- Lisp_Object withdn);
+Lisp_Object Fldap_search_basic (Lisp_Object ldap,
+ Lisp_Object filter,
+ Lisp_Object base,
+ Lisp_Object scope,
+ Lisp_Object attrs,
+ Lisp_Object attrsonly,
+ Lisp_Object withdn,
+ Lisp_Object verbose);
+Lisp_Object Fldap_add (Lisp_Object ldap,
+ Lisp_Object dn,
+ Lisp_Object entry);
+Lisp_Object Fldap_modify (Lisp_Object ldap,
+ Lisp_Object dn,
+ Lisp_Object entry);
+Lisp_Object Fldap_delete (Lisp_Object ldap,
+ Lisp_Object dn);
#endif /* INCLUDED_eldap_h_ */
void
syms_of_elhash (void)
{
+ INIT_LRECORD_IMPLEMENTATION (hash_table);
+
DEFSUBR (Fhash_table_p);
DEFSUBR (Fmake_hash_table);
DEFSUBR (Fcopy_hash_table);
sort_args (argc, argv);
- /* Map in shared memory, if we are using that. */
-#ifdef HAVE_SHM
- if (argmatch (argv, argc, "-nl", "--no-shared-memory", 6, NULL, &skip_args))
- {
- map_in_data (0);
- /* The shared memory was just restored, which clobbered this. */
- skip_args = 1;
- }
- else
- {
- map_in_data (1);
- /* The shared memory was just restored, which clobbered this. */
- skip_args = 0;
- }
-#endif /* HAVE_SHM */
-
#if (defined (MSDOS) && defined (EMX)) || defined (WIN32) || defined (_SCO_DS)
environ = envp;
#endif
/* Initialize Qnil, Qt, Qunbound, and the
obarray. After this, symbols can be
- interned. This depends on init_alloc_once(). */
+ interned. This depends on init_alloc_once_early(). */
init_symbols_once_early ();
/* Declare the basic symbols pertaining to errors,
The *only* thing that the syms_of_*() functions are allowed to do
is call one of the following three functions:
+ INIT_LRECORD_IMPLEMENTATION()
defsymbol()
defsubr() (i.e. DEFSUBR)
deferror()
struct standard_args
{
- const char * const name;
- const char * const longname;
+ const char *name;
+ const char *longname;
int priority;
int nargs;
};
-static struct standard_args standard_args[] =
+static const struct standard_args standard_args[] =
{
/* Handled by main_1 above: */
{ "-nl", "--no-shared-memory", 100, 0 },
extern char my_edata[];
#endif
-#ifdef HAVE_SHM
-
-DEFUN ("dump-emacs-data", Fdump_emacs_data, 1, 1, 0, /*
-Dump current state of XEmacs into data file FILENAME.
-This function exists on systems that use HAVE_SHM.
-*/
- (intoname))
-{
- /* This function can GC */
- int opurify;
- struct gcpro gcpro1;
- GCPRO1 (intoname);
-
- CHECK_STRING (intoname);
- intoname = Fexpand_file_name (intoname, Qnil);
-
- opurify = purify_flag;
- purify_flag = 0;
-
- fflush (stderr);
- fflush (stdout);
-
- disksave_object_finalization ();
- release_breathing_space ();
-
- /* Tell malloc where start of impure now is */
- /* Also arrange for warnings when nearly out of space. */
-#ifndef SYSTEM_MALLOC
- memory_warnings (my_edata, malloc_warning);
-#endif
- UNGCPRO;
- map_out_data (XSTRING_DATA (intoname));
-
- purify_flag = opurify;
-
- return Qnil;
-}
-
-#else /* not HAVE_SHM */
extern void disable_free_hook (void);
DEFUN ("dump-emacs", Fdump_emacs, 2, 2, 0, /*
return Qnil;
}
-#endif /* not HAVE_SHM */
-
#endif /* not CANNOT_DUMP */
\f
#ifndef SEPCHAR
syms_of_emacs (void)
{
#ifndef CANNOT_DUMP
-#ifdef HAVE_SHM
- DEFSUBR (Fdump_emacs_data);
-#else
DEFSUBR (Fdump_emacs);
-#endif
#endif /* !CANNOT_DUMP */
DEFSUBR (Frun_emacs_from_temacs);
Vmail_lock_methods = Fcons (intern ("locking"), Vmail_lock_methods);
#endif
}
-
+
DEFVAR_CONST_LISP ("configure-mail-lock-method", &Vconfigure_mail_lock_method /*
Mail spool locking method suggested by configure. This is one
of the symbols in MAIL-LOCK-METHODS.
};
DEFINE_BASIC_LRECORD_IMPLEMENTATION ("subr", subr,
- this_one_is_unmarkable, print_subr, 0, 0, 0,
+ 0, print_subr, 0, 0, 0,
subr_description,
Lisp_Subr);
\f
void
syms_of_eval (void)
{
+ INIT_LRECORD_IMPLEMENTATION (subr);
+
defsymbol (&Qinhibit_quit, "inhibit-quit");
defsymbol (&Qautoload, "autoload");
defsymbol (&Qdebug_on_error, "debug-on-error");
static Lisp_Object mswindows_u_dispatch_event_queue, mswindows_u_dispatch_event_queue_tail;
static Lisp_Object mswindows_s_dispatch_event_queue, mswindows_s_dispatch_event_queue_tail;
-/* For speed: whether there is a WM_PAINT magic message in the system queue */
-static int mswindows_paint_pending = 0;
-
/* The number of things we can wait on */
#define MAX_WAITABLE (MAXIMUM_WAIT_OBJECTS - 1)
SOCKET s; /* Socket handle (which is a Win32 handle) */
OVERLAPPED ov; /* Overlapped I/O structure */
void* buffer; /* Buffer. Allocated for input stream only */
- unsigned int bufsize; /* Number of bytes last read */
- unsigned int bufpos; /* Position in buffer for next fetch */
+ unsigned long bufsize; /* Number of bytes last read */
+ unsigned long bufpos; /* Position in buffer for next fetch */
unsigned int error_p :1; /* I/O Error seen */
unsigned int eof_p :1; /* EOF Error seen */
unsigned int pending_p :1; /* There is a pending I/O operation */
shouldn't have received a paint message for it here. */
assert (msg.wParam == 0);
- if (!mswindows_paint_pending)
- {
- /* Queue a magic event for handling when safe */
- mswindows_enqueue_magic_event (msg.hwnd, WM_PAINT);
- mswindows_paint_pending = 1;
- }
+ /* Queue a magic event for handling when safe */
+ mswindows_enqueue_magic_event (msg.hwnd, WM_PAINT);
/* Don't dispatch. WM_PAINT is always the last message in the
queue so it's OK to just return. */
{ mswindows_dde_service, mswindows_dde_topic_system }, { 0, 0 } };
if (!(hszItem || DdeCmpStringHandles (hszItem, mswindows_dde_service)) &&
- !(hszTopic || DdeCmpStringHandles (hszTopic, mswindows_dde_topic_system)));
+ !(hszTopic || DdeCmpStringHandles (hszTopic, mswindows_dde_topic_system)))
return (DdeCreateDataHandle (mswindows_dde_mlid, (LPBYTE)pairs,
sizeof (pairs), 0L, 0, uFmt, 0));
}
if (!DdeCmpStringHandles (hszTopic, mswindows_dde_topic_system))
{
DWORD len = DdeGetData (hdata, NULL, 0, 0);
- char *cmd = alloca (len+1);
+ LPBYTE cmd = (LPBYTE) alloca (len+1);
char *end;
char *filename;
struct gcpro gcpro1, gcpro2;
GCPRO3 (emacs_event, l_dndlist, l_item);
- if (!DragQueryPoint ((HANDLE) wParam, &point))
+ if (!DragQueryPoint ((HDROP) wParam, &point))
point.x = point.y = -1; /* outside client area */
event->event_type = misc_user_event;
event->event.misc.y = point.y;
event->event.misc.function = Qdragdrop_drop_dispatch;
- filecount = DragQueryFile ((HANDLE) wParam, 0xffffffff, NULL, 0);
+ filecount = DragQueryFile ((HDROP) wParam, 0xffffffff, NULL, 0);
for (i=0; i<filecount; i++)
{
- len = DragQueryFile ((HANDLE) wParam, i, NULL, 0);
+ len = DragQueryFile ((HDROP) wParam, i, NULL, 0);
/* The URLs that we make here aren't correct according to section
* 3.10 of rfc1738 because they're missing the //<host>/ part and
* because they may contain reserved characters. But that's OK. */
#else
filename = (char *)xmalloc (len+6);
strcpy (filename, "file:");
- DragQueryFile ((HANDLE) wParam, i, filename+5, len+1);
+ DragQueryFile ((HDROP) wParam, i, filename+5, len+1);
dostounix_filename (filename+5);
#endif
l_item = make_string (filename, strlen (filename));
l_dndlist = Fcons (l_item, l_dndlist);
xfree (filename);
}
- DragFinish ((HANDLE) wParam);
+ DragFinish ((HDROP) wParam);
event->event.misc.object = Fcons (Qdragdrop_URL, l_dndlist);
mswindows_enqueue_dispatch_event (emacs_event);
case WM_PAINT:
mswindows_handle_paint (XFRAME (EVENT_CHANNEL (emacs_event)));
- mswindows_paint_pending = 0;
break;
case WM_SETFOCUS:
void
syms_of_event_stream (void)
{
+ INIT_LRECORD_IMPLEMENTATION (command_builder);
+ INIT_LRECORD_IMPLEMENTATION (timeout);
+
defsymbol (&Qdisabled, "disabled");
defsymbol (&Qcommand_event_p, "command-event-p");
void
syms_of_events (void)
{
+ INIT_LRECORD_IMPLEMENTATION (event);
+
DEFSUBR (Fcharacter_to_event);
DEFSUBR (Fevent_to_character);
assert (EXTENT_LIVE_P (extent));
assert (!extent_detached_p (extent));
{
- Memind i = (endp) ? (extent_end (extent)) :
- (extent_start (extent));
+ Memind i = endp ? extent_end (extent) : extent_start (extent);
Lisp_Object obj = extent_object (extent);
return buffer_or_string_memind_to_bytind (obj, i);
}
assert (EXTENT_LIVE_P (extent));
assert (!extent_detached_p (extent));
{
- Memind i = (endp) ? (extent_end (extent)) :
- (extent_start (extent));
+ Memind i = endp ? extent_end (extent) : extent_start (extent);
Lisp_Object obj = extent_object (extent);
return buffer_or_string_memind_to_bufpos (obj, i);
}
void
syms_of_extents (void)
{
+ INIT_LRECORD_IMPLEMENTATION (extent);
+ INIT_LRECORD_IMPLEMENTATION (extent_info);
+ INIT_LRECORD_IMPLEMENTATION (extent_auxiliary);
+
defsymbol (&Qextentp, "extentp");
defsymbol (&Qextent_live_p, "extent-live-p");
void
syms_of_faces (void)
{
+ INIT_LRECORD_IMPLEMENTATION (face);
+
/* Qdefault, Qwidget, Qleft_margin, Qright_margin defined in general.c */
defsymbol (&Qmodeline, "modeline");
defsymbol (&Qgui_element, "gui-element");
void
syms_of_file_coding (void)
{
+ INIT_LRECORD_IMPLEMENTATION (coding_system);
+
deferror (&Qcoding_system_error, "coding-system-error",
"Coding-system error", Qio_error);
if (p == beg + 2 && beg[1] == ':')
{
/* MAXPATHLEN+1 is guaranteed to be enough space for getdefdir. */
- Bufbyte *res = alloca (MAXPATHLEN + 1);
- if (getdefdir (toupper (*beg) - 'A' + 1, res))
+ Bufbyte *res = (Bufbyte*) alloca (MAXPATHLEN + 1);
+ if (getdefdir (toupper (*beg) - 'A' + 1, (char *)res))
{
char *c=((char *) res) + strlen ((char *) res);
if (!IS_DIRECTORY_SEP (*c))
#ifdef WINDOWSNT
/* We will force directory separators to be either all \ or /, so make
a local copy to modify, even if there ends up being no change. */
- nm = strcpy (alloca (strlen (nm) + 1), nm);
+ nm = strcpy ((char *)alloca (strlen ((char *)nm) + 1), (char *)nm);
/* Find and remove drive specifier if present; this makes nm absolute
even if the rest of the name appears to be relative. */
{
- Bufbyte *colon = strrchr (nm, ':');
+ Bufbyte *colon = (Bufbyte *) strrchr ((char *)nm, ':');
if (colon)
/* Only recognize colon as part of drive specifier if there is a
return make_string (target, o - target);
}
-#if 0 /* FSFmacs */
-/* another older version of expand-file-name; */
-#endif
-
DEFUN ("file-truename", Ffile_truename, 1, 2, 0, /*
Return the canonical name of the given FILE.
Second arg DEFAULT is directory to start with if FILE is relative
*/
(filename, default_))
{
- /* This function can GC. GC checked 1997.04.06. */
+ /* This function can GC. */
Lisp_Object expanded_name;
- Lisp_Object handler;
struct gcpro gcpro1;
CHECK_STRING (filename);
expanded_name = Fexpand_file_name (filename, default_);
+ GCPRO1 (expanded_name);
+
if (!STRINGP (expanded_name))
return Qnil;
- GCPRO1 (expanded_name);
- handler = Ffind_file_name_handler (expanded_name, Qfile_truename);
- UNGCPRO;
+ {
+ Lisp_Object handler =
+ Ffind_file_name_handler (expanded_name, Qfile_truename);
- if (!NILP (handler))
- return call2_check_string (handler, Qfile_truename, expanded_name);
+ if (!NILP (handler))
+ RETURN_UNGCPRO
+ (call2_check_string (handler, Qfile_truename, expanded_name));
+ }
{
char resolved_path[MAXPATHLEN];
p = path;
if (elen > MAXPATHLEN)
goto toolong;
-
+
/* Try doing it all at once. */
/* !! Does realpath() Mule-encapsulate?
Answer: Nope! So we do it above */
It claims to return a useful value in the "error" case, but since
there is no indication provided of how far along the pathname
the function went before erring, there is no way to use the
- partial result returned. What a piece of junk. */
+ partial result returned. What a piece of junk.
+
+ The above comment refers to historical versions of
+ realpath(). The Unix98 specs state:
+
+ "On successful completion, realpath() returns a
+ pointer to the resolved name. Otherwise, realpath()
+ returns a null pointer and sets errno to indicate the
+ error, and the contents of the buffer pointed to by
+ resolved_name are undefined."
+
+ Since we depend on undocumented semantics of various system realpath()s,
+ we just use our own version in realpath.c. */
for (;;)
{
p = (Extbyte *) memchr (p + 1, '/', elen - (p + 1 - path));
if (p)
*p = 0;
- /* memset (resolved_path, 0, sizeof (resolved_path)); */
if (xrealpath ((char *) path, resolved_path))
{
if (p)
/* "On failure, it returns NULL, sets errno to indicate
the error, and places in resolved_path the absolute pathname
of the path component which could not be resolved." */
- if (p)
+
+ if (p)
{
int plen = elen - (p - path);
}
{
+ Lisp_Object resolved_name;
int rlen = strlen (resolved_path);
if (elen > 0 && XSTRING_BYTE (expanded_name, elen - 1) == '/'
&& !(rlen > 0 && resolved_path[rlen - 1] == '/'))
{
if (rlen + 1 > countof (resolved_path))
goto toolong;
- resolved_path[rlen] = '/';
- resolved_path[rlen + 1] = 0;
- rlen = rlen + 1;
+ resolved_path[rlen++] = '/';
+ resolved_path[rlen] = '\0';
}
- return make_ext_string ((Bufbyte *) resolved_path, rlen, Qbinary);
+ TO_INTERNAL_FORMAT (DATA, (resolved_path, rlen),
+ LISP_STRING, resolved_name,
+ Qfile_name);
+ RETURN_UNGCPRO (resolved_name);
}
toolong:
lose:
report_file_error ("Finding truename", list1 (expanded_name));
}
- return Qnil; /* suppress compiler warning */
+ RETURN_UNGCPRO (Qnil);
}
\f
}
DEFUN ("delete-file", Fdelete_file, 1, 1, "fDelete file: ", /*
-Delete specified file. One argument, a file name string.
-If file has multiple names, it continues to exist with the other names.
+Delete the file named FILENAME (a string).
+If FILENAME has multiple names, it continues to exist with the other names.
*/
(filename))
{
if (desc < 0)
{
desc = open ((char *) XSTRING_DATA (fn),
- (O_WRONLY | O_TRUNC | O_CREAT | OPEN_BINARY),
- ((auto_saving) ? auto_save_mode_bits : CREAT_MODE));
+ O_WRONLY | O_TRUNC | O_CREAT | OPEN_BINARY,
+ auto_saving ? auto_save_mode_bits : CREAT_MODE);
}
if (desc < 0)
void
syms_of_floatfns (void)
{
+ INIT_LRECORD_IMPLEMENTATION (float);
/* Trig functions. */
void
syms_of_fns (void)
{
+ INIT_LRECORD_IMPLEMENTATION (bit_vector);
+
defsymbol (&Qstring_lessp, "string-lessp");
defsymbol (&Qidentity, "identity");
defsymbol (&Qyes_or_no_p, "yes-or-no-p");
void
syms_of_frame (void)
{
+ INIT_LRECORD_IMPLEMENTATION (frame);
+
defsymbol (&Qdelete_frame_hook, "delete-frame-hook");
defsymbol (&Qselect_frame_hook, "select-frame-hook");
defsymbol (&Qdeselect_frame_hook, "deselect-frame-hook");
struct device *d = XDEVICE (device);
struct frame *f;
void* bmp_buf=0;
- int type = 0;
+ enum image_instance_type type;
HBITMAP bitmap;
HDC hdc;
HBITMAP mask;
HGDIOBJ old = NULL;
HDC hcdc = FRAME_MSWINDOWS_CDC (f);
- unsigned char* dibits;
- BITMAPINFO* bmp_info =
- xmalloc_and_zero (sizeof(BITMAPINFO) + sizeof(RGBQUAD));
+ unsigned char *dibits, *and_bits;
+ BITMAPINFO *bmp_info =
+ (BITMAPINFO*) xmalloc_and_zero (sizeof(BITMAPINFO) + sizeof(RGBQUAD));
int i, j;
int height = IMAGE_INSTANCE_PIXMAP_HEIGHT (image);
- void* and_bits;
int maskbpline = BPLINE ((IMAGE_INSTANCE_PIXMAP_WIDTH (image)+7)/8);
int bpline = BPLINE (IMAGE_INSTANCE_PIXMAP_WIDTH (image) * 3);
if (!(mask = CreateDIBSection (hcdc,
bmp_info,
DIB_RGB_COLORS,
- &and_bits,
+ (void**)&and_bits,
0,0)))
{
xfree (bmp_info);
bmp_info->bmiHeader.biClrImportant = 0;
bmp_info->bmiHeader.biSizeImage = height * bpline;
- dibits = xmalloc_and_zero (bpline * height);
+ dibits = (unsigned char*) xmalloc_and_zero (bpline * height);
if (GetDIBits (hcdc,
IMAGE_INSTANCE_MSWINDOWS_BITMAP (image),
0,
/* 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_PIXMAP_WIDTH (image); i++)
{
- for(j=0; j<height; j++)
+ for (j=0; j<height; j++)
{
unsigned char* idx = &dibits[j * bpline + i * 3];
- if( RGB (idx[2], idx[1], idx[0]) == transparent_color )
+ if (RGB (idx[2], idx[1], idx[0]) == transparent_color)
{
idx[0] = idx[1] = idx[2] = 0;
- set_mono_pixel( and_bits, maskbpline, height, i, j, TRUE );
+ set_mono_pixel (and_bits, maskbpline, height, i, j, TRUE);
}
else
{
- set_mono_pixel( and_bits, maskbpline, height, i, j, FALSE );
+ set_mono_pixel (and_bits, maskbpline, height, i, j, FALSE);
}
}
}
LPCTSTR resid=0;
HINSTANCE hinst = NULL;
ICONINFO iconinfo;
- int iitype=0;
+ enum image_instance_type iitype;
char* fname=0;
Lisp_Object device = IMAGE_INSTANCE_DEVICE (ii);
bitmap and mask */
if (type != IMAGE_BITMAP)
{
- GetIconInfo (himage, &iconinfo);
+ GetIconInfo ((HICON)himage, &iconinfo);
IMAGE_INSTANCE_MSWINDOWS_BITMAP (ii) = iconinfo.hbmColor;
IMAGE_INSTANCE_MSWINDOWS_MASK (ii) = iconinfo.hbmMask;
XSETINT (IMAGE_INSTANCE_PIXMAP_HOTSPOT_X (ii), iconinfo.xHotspot);
XSETINT (IMAGE_INSTANCE_PIXMAP_HOTSPOT_Y (ii), iconinfo.yHotspot);
- IMAGE_INSTANCE_MSWINDOWS_ICON (ii) = himage;
+ IMAGE_INSTANCE_MSWINDOWS_ICON (ii) = (HICON) himage;
}
else
{
IMAGE_INSTANCE_MSWINDOWS_ICON (ii) = NULL;
- IMAGE_INSTANCE_MSWINDOWS_BITMAP (ii) = himage;
+ IMAGE_INSTANCE_MSWINDOWS_BITMAP (ii) = (HBITMAP) himage;
IMAGE_INSTANCE_MSWINDOWS_MASK (ii) = NULL;
XSETINT (IMAGE_INSTANCE_PIXMAP_HOTSPOT_X (ii), 0);
XSETINT (IMAGE_INSTANCE_PIXMAP_HOTSPOT_Y (ii), 0);
* its arguments won't have been touched. This routine should look as much
* like the Xlib routine XReadBitmapfile as possible.
*/
-int read_bitmap_data (fstream, width, height, datap, x_hot, y_hot)
- FILE *fstream; /* handle on file */
- unsigned int *width, *height; /* RETURNED */
- unsigned char **datap; /* RETURNED */
- int *x_hot, *y_hot; /* RETURNED */
+int read_bitmap_data (FILE* fstream, unsigned int *width,
+ unsigned int *height, unsigned char **datap,
+ int *x_hot, int *y_hot)
{
unsigned char *data = NULL; /* working variable */
char line[MAX_SIZE]; /* input line from file */
void *bmp_buf = 0;
unsigned char *new_data, *new_offset;
int i, j;
- BITMAPINFO* bmp_info =
- xmalloc_and_zero (sizeof(BITMAPINFO) + sizeof(RGBQUAD));
+ BITMAPINFO *bmp_info =
+ (BITMAPINFO*) xmalloc_and_zero (sizeof(BITMAPINFO) + sizeof(RGBQUAD));
HBITMAP bitmap;
if (!bmp_info)
static void
mswindows_button_update (Lisp_Object image_instance)
{
+ /* This function can GC if IN_REDISPLAY is false. */
Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance);
+
/* buttons checked or otherwise */
if (gui_item_selected_p (IMAGE_INSTANCE_WIDGET_ITEM (ii)))
SendMessage (WIDGET_INSTANCE_MSWINDOWS_HANDLE (ii),
{
Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance);
- if (IMAGE_INSTANCE_WIDGET_ITEMS_CHANGED (ii));
+ if (IMAGE_INSTANCE_WIDGET_ITEMS_CHANGED (ii))
{
HWND wnd = WIDGET_INSTANCE_MSWINDOWS_HANDLE (ii);
int i = 0;
int dest_mask, Lisp_Object domain)
{
Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance);
- HANDLE wnd;
+ HWND wnd;
Lisp_Object rest;
Lisp_Object data = Fplist_get (find_keyword_in_vector (instantiator, Q_properties),
Q_items, Qnil);
mswindows_widget_property (Lisp_Object image_instance, Lisp_Object prop)
{
Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance);
- HANDLE wnd = WIDGET_INSTANCE_MSWINDOWS_HANDLE (ii);
+ HWND wnd = WIDGET_INSTANCE_MSWINDOWS_HANDLE (ii);
/* get the text from a control */
if (EQ (prop, Q_text))
{
Extcount len = SendMessage (wnd, WM_GETTEXTLENGTH, 0, 0);
- Extbyte* buf =alloca (len+1);
+ Extbyte *buf = (Extbyte*) alloca (len+1);
SendMessage (wnd, WM_GETTEXT, (WPARAM)len+1, (LPARAM) buf);
return build_ext_string (buf, Qnative);
mswindows_button_property (Lisp_Object image_instance, Lisp_Object prop)
{
Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance);
- HANDLE wnd = WIDGET_INSTANCE_MSWINDOWS_HANDLE (ii);
+ HWND wnd = WIDGET_INSTANCE_MSWINDOWS_HANDLE (ii);
/* check the state of a button */
if (EQ (prop, Q_selected))
{
mswindows_combo_box_property (Lisp_Object image_instance, Lisp_Object prop)
{
Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance);
- HANDLE wnd = WIDGET_INSTANCE_MSWINDOWS_HANDLE (ii);
+ HWND wnd = WIDGET_INSTANCE_MSWINDOWS_HANDLE (ii);
/* get the text from a control */
if (EQ (prop, Q_text))
{
long item = SendMessage (wnd, CB_GETCURSEL, 0, 0);
Extcount len = SendMessage (wnd, CB_GETLBTEXTLEN, (WPARAM)item, 0);
- Extbyte* buf = alloca (len+1);
+ Extbyte* buf = (Extbyte*) alloca (len+1);
SendMessage (wnd, CB_GETLBTEXT, (WPARAM)item, (LPARAM)buf);
return build_ext_string (buf, Qnative);
}
#define IMAGE_INSTANCE_MSWINDOWS_BITMAP_SLICES(i) \
(MSWINDOWS_IMAGE_INSTANCE_DATA (i)->bitmaps)
#define IMAGE_INSTANCE_MSWINDOWS_MASK(i) \
- (HBITMAP)(IMAGE_INSTANCE_PIXMAP_MASK (i))
+ (*(HBITMAP*)&(IMAGE_INSTANCE_PIXMAP_MASK (i))) /* Make it lvalue */
#define IMAGE_INSTANCE_MSWINDOWS_ICON(i) \
(MSWINDOWS_IMAGE_INSTANCE_DATA (i)->icon)
Lisp_Image_Instance* ii = XIMAGE_INSTANCE (widget);
struct image_instantiator_methods* meths;
- if (!IMAGE_INSTANCE_TYPE (ii) == IMAGE_WIDGET)
+ if (IMAGE_INSTANCE_TYPE (ii) != IMAGE_WIDGET)
return;
/* Device generic methods. We must update the widget's size as it
enum image_instance_geometry disp, Lisp_Object domain)
{
Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance);
- Lisp_Object items = IMAGE_INSTANCE_WIDGET_ITEMS (ii);
+ Lisp_Object items = XCDR (IMAGE_INSTANCE_WIDGET_ITEMS (ii));
Lisp_Object rest;
unsigned int tw = 0, th = 0;
query_string_geometry (XGUI_ITEM (XCAR (rest))->name,
IMAGE_INSTANCE_WIDGET_FACE (ii),
&w, &h, 0, domain);
- tw += 2 * WIDGET_BORDER_WIDTH; /* some bias */
+ tw += 5 * WIDGET_BORDER_WIDTH; /* some bias */
tw += w;
th = max (th, h + 2 * WIDGET_BORDER_HEIGHT);
}
static void
x_update_widget (Lisp_Image_Instance *p)
{
+ /* This function can GC if IN_REDISPLAY is false. */
#ifdef HAVE_WIDGETS
widget_value* wv = 0;
- Boolean deep_p = False;
- /* Possibly update the size. */
- if (IMAGE_INSTANCE_SIZE_CHANGED (p))
- {
- Arg al[2];
-
- assert (IMAGE_INSTANCE_X_WIDGET_ID (p) &&
- IMAGE_INSTANCE_X_CLIPWIDGET (p)) ;
-
- if ( !XtIsManaged(IMAGE_INSTANCE_X_WIDGET_ID (p))
- ||
- IMAGE_INSTANCE_X_WIDGET_ID (p)->core.being_destroyed )
- {
- Lisp_Object sw;
- XSETIMAGE_INSTANCE (sw, p);
- signal_simple_error ("XEmacs bug: subwindow is deleted", sw);
- }
- XtSetArg (al [0], XtNwidth, (Dimension)IMAGE_INSTANCE_WIDTH (p));
- XtSetArg (al [1], XtNheight, (Dimension)IMAGE_INSTANCE_HEIGHT (p));
- XtSetValues (IMAGE_INSTANCE_X_WIDGET_ID (p), al, 2);
- }
-
- /* First get the items if they have changed since this is a structural change. */
+ /* First get the items if they have changed since this is a
+ structural change. As such it will nuke all added values so we
+ need to update most other things after the items have changed.*/
if (IMAGE_INSTANCE_WIDGET_ITEMS_CHANGED (p))
{
wv = gui_items_to_widget_values
(IMAGE_INSTANCE_WIDGET_ITEMS (p));
- deep_p = True;
+ wv->change = STRUCTURAL_CHANGE;
+ /* now modify the widget */
+ lw_modify_all_widgets (IMAGE_INSTANCE_X_WIDGET_LWID (p),
+ wv, True);
+ free_widget_value_tree (wv);
}
+ /* Now do non structural updates. */
+ wv = lw_get_all_values (IMAGE_INSTANCE_X_WIDGET_LWID (p));
+
/* 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
+ ||
+ IMAGE_INSTANCE_WIDGET_ITEMS_CHANGED (p))
{
update_widget_face (wv, p, IMAGE_INSTANCE_SUBWINDOW_FRAME (p));
}
wv->value = str;
}
+ /* Possibly update the size. */
+ if (IMAGE_INSTANCE_SIZE_CHANGED (p)
+ ||
+ IMAGE_INSTANCE_WIDGET_ITEMS_CHANGED (p))
+ {
+ assert (IMAGE_INSTANCE_X_WIDGET_ID (p) &&
+ IMAGE_INSTANCE_X_CLIPWIDGET (p)) ;
+
+ if (IMAGE_INSTANCE_X_WIDGET_ID (p)->core.being_destroyed
+ || !XtIsManaged(IMAGE_INSTANCE_X_WIDGET_ID (p)))
+ {
+ Lisp_Object sw;
+ XSETIMAGE_INSTANCE (sw, p);
+ signal_simple_error ("XEmacs bug: subwindow is deleted", sw);
+ }
+
+ lw_add_widget_value_arg (wv, XtNwidth,
+ (Dimension)IMAGE_INSTANCE_WIDTH (p));
+ lw_add_widget_value_arg (wv, XtNheight,
+ (Dimension)IMAGE_INSTANCE_HEIGHT (p));
+ }
+
/* now modify the widget */
lw_modify_all_widgets (IMAGE_INSTANCE_X_WIDGET_LWID (p),
- wv, deep_p);
- free_widget_value_tree (wv);
+ wv, False);
#endif
}
lw_add_widget_value_arg (clip_wv, XtNresize, False);
lw_add_widget_value_arg (clip_wv, XtNwidth,
- (Dimension)IMAGE_INSTANCE_SUBWINDOW_WIDTH (ii));
+ (Dimension)IMAGE_INSTANCE_WIDTH (ii));
lw_add_widget_value_arg (clip_wv, XtNheight,
- (Dimension)IMAGE_INSTANCE_SUBWINDOW_HEIGHT (ii));
+ (Dimension)IMAGE_INSTANCE_HEIGHT (ii));
clip_wv->enabled = True;
clip_wv->name = xstrdup ("clip-window");
/* we cannot allow widgets to resize themselves */
lw_add_widget_value_arg (wv, XtNresize, False);
lw_add_widget_value_arg (wv, XtNwidth,
- (Dimension)IMAGE_INSTANCE_SUBWINDOW_WIDTH (ii));
+ (Dimension)IMAGE_INSTANCE_WIDTH (ii));
lw_add_widget_value_arg (wv, XtNheight,
- (Dimension)IMAGE_INSTANCE_SUBWINDOW_HEIGHT (ii));
+ (Dimension)IMAGE_INSTANCE_HEIGHT (ii));
/* update the font. */
update_widget_face (wv, ii, domain);
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
+ ||
+ IMAGE_INSTANCE_WIDGET_ITEMS_CHANGED (ii))
{
widget_value* wv = lw_get_all_values (IMAGE_INSTANCE_X_WIDGET_LWID (ii));
update_tab_widget_face (wv, ii,
IMAGE_INSTANCE_SUBWINDOW_FRAME (ii));
lw_modify_all_widgets (IMAGE_INSTANCE_X_WIDGET_LWID (ii), wv, True);
- free_widget_value_tree (wv);
}
}
int dest_mask, Lisp_Object glyph)
{
Lisp_Object ii = allocate_image_instance (device, glyph);
+ Lisp_Image_Instance* p = XIMAGE_INSTANCE (ii);
struct image_instantiator_methods *meths;
struct gcpro gcpro1;
int methp = 0;
pointer_bg, dest_mask, domain));
UNGCPRO;
+ /* Some code may have already laid out the widget, if not then do it
+ here. */
+ if (IMAGE_INSTANCE_LAYOUT_CHANGED (p))
+ image_instance_layout (ii, IMAGE_UNSPECIFIED_GEOMETRY,
+ IMAGE_UNSPECIFIED_GEOMETRY, domain);
+
+ /* We *must* have a clean image at this point. */
+ IMAGE_INSTANCE_TEXT_CHANGED (p) = 0;
+ IMAGE_INSTANCE_SIZE_CHANGED (p) = 0;
+ IMAGE_INSTANCE_LAYOUT_CHANGED (p) = 0;
+ IMAGE_INSTANCE_DIRTYP (p) = 0;
+
return ii;
}
lp->parent = glyph;
/* So that layouts get done. */
lp->layout_changed = 1;
- lp->dirty = 1;
XSETIMAGE_INSTANCE (val, lp);
MARK_GLYPHS_CHANGED;
{
if (IMAGE_INSTANCEP (IMAGE_INSTANCE_PARENT (ii)))
{
- return image_instance_parent_glyph
+ return image_instance_parent_glyph
(XIMAGE_INSTANCE (IMAGE_INSTANCE_PARENT (ii)));
}
return IMAGE_INSTANCE_PARENT (ii);
static Lisp_Object
image_instantiate_cache_result (Lisp_Object locative)
{
- /* locative = (instance instantiator . subtable) */
+ /* locative = (instance instantiator . subtable)
+
+ So we are using the instantiator as the key and the instance as
+ the value. Since the hashtable is key-weak this means that the
+ image instance will stay around as long as the instantiator stays
+ around. The instantiator is stored in the `image' slot of the
+ glyph, so as long as the glyph is marked the instantiator will be
+ as well and hence the cached image instance also.*/
Fputhash (XCAR (XCDR (locative)), XCAR (locative), XCDR (XCDR (locative)));
free_cons (XCONS (XCDR (locative)));
free_cons (XCONS (locative));
*****************************************************************************/
/* #### All of this is 95% copied from face cachels. Consider
- consolidating.
-
+ consolidating.
+
Why do we need glyph_cachels? Simply because a glyph_cachel captures
per-window information about a particular glyph. A glyph itself is
not created in any particular context, so if we were to rely on a
* subwindow functions *
*****************************************************************************/
-/* update the displayed characteristics of a subwindow */
+/* Update the displayed characteristics of a subwindow. This function
+ should generally only get called if the subwindow is actually
+ dirty. The only other time it gets called is if subwindow state
+ changed, when we can't actually tell whether its going to be dirty
+ or not.
+ #### I suspect what we should really do is re-evaluate all the
+ gui slots that could affect this and then mark the instance as
+ dirty. Right now, updating everything is safe but expensive. */
void
update_subwindow (Lisp_Object subwindow)
{
Lisp_Image_Instance* ii = XIMAGE_INSTANCE (subwindow);
+ int count = specpdl_depth ();
+
+ /* The update method is allowed to call eval. Since it is quite
+ common for this function to get called from somewhere in
+ redisplay we need to make sure that quits are ignored. Otherwise
+ Fsignal will abort. */
+ specbind (Qinhibit_quit, Qt);
if (IMAGE_INSTANCE_TYPE (ii) == IMAGE_WIDGET
||
IMAGE_INSTANCE_TYPE (ii) == IMAGE_LAYOUT)
{
if (IMAGE_INSTANCE_TYPE (ii) == IMAGE_WIDGET)
- update_widget (subwindow);
+ update_widget (subwindow);
/* Reset the changed flags. */
IMAGE_INSTANCE_WIDGET_FACE_CHANGED (ii) = 0;
IMAGE_INSTANCE_WIDGET_PERCENT_CHANGED (ii) = 0;
}
IMAGE_INSTANCE_SIZE_CHANGED (ii) = 0;
+
+ unbind_to (count, Qnil);
}
/* Update all the subwindows on a frame. */
struct subwindow_cachel *cachel =
Dynarr_atp (f->subwindow_cachels, elt);
- if (cachel->being_displayed)
+ if (cachel->being_displayed
+ &&
+ /* We only want to update if something has really
+ changed. */
+ (f->subwindows_state_changed
+ ||
+ XIMAGE_INSTANCE_DIRTYP (cachel->subwindow)))
{
update_subwindow (cachel->subwindow);
}
cachel->height = dga->height;
cachel->being_displayed = 1;
-#if 0
- /* This forces any pending display changes to happen to the image
- before we show it. I'm not sure whether or not we need mark as
- clean here, but for now we will. */
- if (IMAGE_INSTANCE_DIRTYP (ii))
- {
- update_subwindow (subwindow);
- IMAGE_INSTANCE_DIRTYP (ii) = 0;
- }
-#endif
-
MAYBE_DEVMETH (XDEVICE (ii->device), map_subwindow, (ii, x, y, dga));
}
also might not. */
MARK_DEVICE_FRAMES_GLYPHS_CHANGED
(XDEVICE (IMAGE_INSTANCE_DEVICE (ii)));
- /* Cascade dirtiness so that we can have an animated glyph in a layout
+ /* Cascade dirtiness so that we can have an animated glyph in a layout
for instance. */
set_image_instance_dirty_p (value, 1);
}
void
syms_of_glyphs (void)
{
+ INIT_LRECORD_IMPLEMENTATION (glyph);
+ INIT_LRECORD_IMPLEMENTATION (image_instance);
+
/* image instantiators */
DEFSUBR (Fimage_instantiator_format_list);
CHECK_STRING (document);
- /* Just get the filename if we were given it. */
- document = Ffile_name_nondirectory (document);
-
if (NILP (current_dir))
current_dir = current_buffer->directory;
TO_EXTERNAL_FORMAT (LISP_STRING, document,
C_STRING_ALLOCA, f,
Qfile_name);
+#ifdef __CYGWIN32__
+ CYGWIN_WIN32_PATH (f, doc);
+#else
doc = f;
+#endif
}
UNGCPRO;
void
syms_of_gui_x (void)
{
+ INIT_LRECORD_IMPLEMENTATION (popup_data);
+
defsymbol (&Qmenu_no_selection_hook, "menu-no-selection-hook");
}
void
syms_of_gui (void)
{
+ INIT_LRECORD_IMPLEMENTATION (gui_item);
+
defkeyword (&Q_active, ":active");
defkeyword (&Q_suffix, ":suffix");
defkeyword (&Q_keys, ":keys");
redisplay_clear_region (window, findex, x, y, width, height);
}
+/* #### I don't currently believe that redisplay needs to mark the
+ glyphs in its structures since these will always be referenced from
+ somewhere else. However, I'm not sure enough to stake my life on it
+ at this point, so we do the safe thing. */
+
+/* See the comment in image_instantiate_cache_result as to why marking
+ the glyph will also mark the image_instance. */
+void
+mark_gutters (struct frame* f)
+{
+ if (f->current_display_lines)
+ mark_redisplay_structs (f->current_display_lines);
+ if (f->desired_display_lines)
+ mark_redisplay_structs (f->desired_display_lines);
+}
+
void
update_frame_gutters (struct frame *f)
{
extern Lisp_Object Vgutter_size[4];
extern Lisp_Object Vgutter_border_width[4];
void update_frame_gutters (struct frame *f);
+void mark_gutters (struct frame* f);
void init_frame_gutters (struct frame *f);
void init_device_gutters (struct device *d);
void init_global_gutters (struct device *d);
Charcount count = 0;
const Bufbyte *end = ptr + len;
-#if (LONGBITS == 32 || LONGBITS == 64)
-
-# if (LONGBITS == 32)
-# define LONG_BYTES 4
-# define ALIGN_MASK 0xFFFFFFFCU
-# define HIGH_BIT_MASK 0x80808080U
-# else
-# define LONG_BYTES 8
-# define ALIGN_MASK 0xFFFFFFFFFFFFFFF8UL
- /* I had a dream, I was being overrun with early Intel processors ... */
-# define HIGH_BIT_MASK 0x8080808080808080UL
-# endif
-
- /* When we have a large number of bytes to scan, we can be trickier
- and significantly faster by scanning them in chunks of the CPU word
- size (assuming that they're all ASCII -- we cut out as soon as
- we find something non-ASCII). */
- if (len >= 12)
- {
- /* Determine the section in the middle of the string that's
- amenable to this treatment. Everything has to be aligned
- on CPU word boundaries. */
- const Bufbyte *aligned_ptr =
- (const Bufbyte *) (((unsigned long) (ptr + LONG_BYTES - 1)) &
- ALIGN_MASK);
- const Bufbyte *aligned_end =
- (const Bufbyte *) (((unsigned long) end) & ALIGN_MASK);
-
- /* Handle unaligned stuff at the beginning. */
- while (ptr < aligned_ptr)
+#if SIZEOF_LONG == 8
+# define STRIDE_TYPE long
+# define HIGH_BIT_MASK 0x8080808080808080UL
+#elif SIZEOF_LONG_LONG == 8 && !(defined (i386) || defined (__i386__))
+# define STRIDE_TYPE long long
+# define HIGH_BIT_MASK 0x8080808080808080ULL
+#elif SIZEOF_LONG == 4
+# define STRIDE_TYPE long
+# define HIGH_BIT_MASK 0x80808080UL
+#else
+# error Add support for 128-bit systems here
+#endif
+
+#define ALIGN_BITS ((EMACS_UINT) (ALIGNOF (STRIDE_TYPE) - 1))
+#define ALIGN_MASK (~ ALIGN_BITS)
+#define ALIGNED(ptr) ((((EMACS_UINT) ptr) & ALIGN_BITS) == 0)
+#define STRIDE sizeof (STRIDE_TYPE)
+
+ while (ptr < end)
+ {
+ if (BYTE_ASCII_P (*ptr))
{
- if (!BYTE_ASCII_P (*ptr))
- goto bail;
- count++, ptr++;
+ /* optimize for long stretches of ASCII */
+ if (! ALIGNED (ptr))
+ ptr++, count++;
+ else
+ {
+ const unsigned STRIDE_TYPE *ascii_end =
+ (const unsigned STRIDE_TYPE *) ptr;
+ /* This loop screams, because we can typically
+ detect ASCII characters 8 at a time. */
+ while ((const Bufbyte *) ascii_end + STRIDE <= end
+ && !(*ascii_end & HIGH_BIT_MASK))
+ ascii_end++;
+ if ((Bufbyte *) ascii_end == ptr)
+ ptr++, count++;
+ else
+ {
+ count += (Bufbyte *) ascii_end - ptr;
+ ptr = (Bufbyte *) ascii_end;
+ }
+ }
}
- /* Now do it. */
- while (ptr < aligned_end)
+ else
{
-
- if ((* (unsigned long *) ptr) & HIGH_BIT_MASK)
- goto bail;
- ptr += LONG_BYTES;
- count += LONG_BYTES;
+ /* optimize for successive characters from the same charset */
+ Bufbyte leading_byte = *ptr;
+ size_t bytes = REP_BYTES_BY_FIRST_BYTE (leading_byte);
+ while ((ptr < end) && (*ptr == leading_byte))
+ ptr += bytes, count++;
}
}
-#endif /* LONGBITS == 32 || LONGBITS == 64 */
-
- bail:
- while (ptr < end)
- {
- count++;
- INC_CHARPTR (ptr);
- }
#ifdef ERROR_CHECK_BUFPOS
/* Bomb out if the specified substring ends in the middle
of a character. Note that we might have already gotten
if (!INTP (XCDR (idx)))
return Qnil;
indirection.keysym = XCAR (idx);
- indirection.modifiers = XINT (XCDR (idx));
+ indirection.modifiers = (unsigned char) XINT (XCDR (idx));
}
else if (SYMBOLP (idx))
{
void
syms_of_keymap (void)
{
+ INIT_LRECORD_IMPLEMENTATION (keymap);
+
defsymbol (&Qminor_mode_map_alist, "minor-mode-map-alist");
defsymbol (&Qkeymapp, "keymapp");
#define EXTERNAL_LIST_LOOP_1(list) \
Lisp_Object ELL1_elt, ELL1_hare, ELL1_tortoise; \
-EMACS_INT ELL1_len; \
+EMACS_INT ELL1_len; \
EXTERNAL_LIST_LOOP_6 (ELL1_elt, list, ELL1_len, ELL1_hare, \
ELL1_tortoise, CIRCULAR_LIST_SUSPICION_LENGTH)
#define EXTERNAL_LIST_LOOP_2(elt, list) \
Lisp_Object hare_##elt, tortoise_##elt; \
-EMACS_INT len_##elt; \
+EMACS_INT len_##elt; \
EXTERNAL_LIST_LOOP_6 (elt, list, len_##elt, hare_##elt, \
tortoise_##elt, CIRCULAR_LIST_SUSPICION_LENGTH)
#define EXTERNAL_LIST_LOOP_3(elt, list, tail) \
Lisp_Object tortoise_##elt; \
-EMACS_INT len_##elt; \
+EMACS_INT len_##elt; \
EXTERNAL_LIST_LOOP_6 (elt, list, len_##elt, tail, \
tortoise_##elt, CIRCULAR_LIST_SUSPICION_LENGTH)
/* Optimized and safe macros for looping over external property lists. */
#define EXTERNAL_PROPERTY_LIST_LOOP_3(key, value, list) \
Lisp_Object key, value, hare_##key, tortoise_##key; \
-EMACS_INT len_##key; \
+EMACS_INT len_##key; \
EXTERNAL_PROPERTY_LIST_LOOP_7 (key, value, list, len_##key, hare_##key, \
tortoise_##key, CIRCULAR_LIST_SUSPICION_LENGTH)
#define EXTERNAL_PROPERTY_LIST_LOOP_4(key, value, list, tail) \
Lisp_Object key, value, tail, tortoise_##key; \
-EMACS_INT len_##key; \
+EMACS_INT len_##key; \
EXTERNAL_PROPERTY_LIST_LOOP_7 (key, value, list, len_##key, tail, \
tortoise_##key, CIRCULAR_LIST_SUSPICION_LENGTH)
struct Lisp_Subr
{
struct lrecord_header lheader;
- short min_args, max_args;
+ short min_args;
+ short max_args;
const char *prompt;
const char *doc;
const char *name;
/* Can't be const, because then subr->doc is read-only and
Snarf_documentation chokes */
-#define subr_lheader_initializer { 0, 0, 0, 0 }
-
#define DEFUN(lname, Fname, min_args, max_args, prompt, arglist) \
Lisp_Object Fname (EXFUN_##max_args); \
- static struct Lisp_Subr S##Fname = { subr_lheader_initializer, \
- min_args, max_args, prompt, 0, lname, (lisp_fn_t) Fname }; \
+ static struct Lisp_Subr S##Fname = \
+ { \
+ { /* struct lrecord_header */ \
+ lrecord_type_subr, /* lrecord_type_index */ \
+ 1, /* mark bit */ \
+ 1, /* c_readonly bit */ \
+ 1 /* lisp_readonly bit */ \
+ }, \
+ min_args, \
+ max_args, \
+ prompt, \
+ 0, /* doc string */ \
+ lname, \
+ (lisp_fn_t) Fname \
+ }; \
Lisp_Object Fname (DEFUN_##max_args arglist)
/* Heavy ANSI C preprocessor hackery to get DEFUN to declare a
while (1)
{
char *esuffix = (char *) strchr (nsuffix, ':');
- int lsuffix = ((esuffix) ? (esuffix - nsuffix) : strlen (nsuffix));
+ int lsuffix = esuffix ? esuffix - nsuffix : strlen (nsuffix);
/* Concatenate path element/specified name with the suffix. */
strncpy (fn + fn_len, nsuffix, lsuffix);
{
/* index into lrecord_implementations_table[] */
unsigned int type :8;
- /* 1 if the object is marked during GC. */
+
+ /* If `mark' is 0 after the GC mark phase, the object will be freed
+ during the GC sweep phase. There are 2 ways that `mark' can be 1:
+ - by being referenced from other objects during the GC mark phase
+ - because it is permanently on, for c_readonly objects */
unsigned int mark :1;
- /* 1 if the object resides in read-only space */
+
+ /* 1 if the object resides in logically read-only space, and does not
+ reference other non-c_readonly objects.
+ Invariant: if (c_readonly == 1), then (mark == 1 && lisp_readonly == 1) */
unsigned int c_readonly :1;
+
/* 1 if the object is readonly from lisp */
unsigned int lisp_readonly :1;
};
#define set_lheader_implementation(header,imp) do { \
struct lrecord_header* SLI_header = (header); \
- SLI_header->type = lrecord_type_index (imp); \
+ SLI_header->type = (imp)->lrecord_type_index; \
SLI_header->mark = 0; \
SLI_header->c_readonly = 0; \
SLI_header->lisp_readonly = 0; \
Lisp_Object chain;
};
-/* see alloc.c for an explanation */
-Lisp_Object this_one_is_unmarkable (Lisp_Object obj);
+enum lrecord_type
+{
+ /* Symbol value magic types come first to make SYMBOL_VALUE_MAGIC_P fast.
+ #### This should be replaced by a symbol_value_magic_p flag
+ in the Lisp_Symbol lrecord_header. */
+ lrecord_type_symbol_value_forward,
+ lrecord_type_symbol_value_varalias,
+ lrecord_type_symbol_value_lisp_magic,
+ lrecord_type_symbol_value_buffer_local,
+ lrecord_type_max_symbol_value_magic = lrecord_type_symbol_value_buffer_local,
+
+ lrecord_type_symbol,
+ lrecord_type_subr,
+ lrecord_type_cons,
+ lrecord_type_vector,
+ lrecord_type_string,
+ lrecord_type_lcrecord_list,
+ lrecord_type_compiled_function,
+ lrecord_type_weak_list,
+ lrecord_type_bit_vector,
+ lrecord_type_float,
+ lrecord_type_hash_table,
+ lrecord_type_lstream,
+ lrecord_type_process,
+ lrecord_type_charset,
+ lrecord_type_coding_system,
+ lrecord_type_char_table,
+ lrecord_type_char_table_entry,
+ lrecord_type_range_table,
+ lrecord_type_opaque,
+ lrecord_type_opaque_ptr,
+ lrecord_type_buffer,
+ lrecord_type_extent,
+ lrecord_type_extent_info,
+ lrecord_type_extent_auxiliary,
+ lrecord_type_marker,
+ lrecord_type_event,
+ lrecord_type_keymap,
+ lrecord_type_command_builder,
+ lrecord_type_timeout,
+ lrecord_type_specifier,
+ lrecord_type_console,
+ lrecord_type_device,
+ lrecord_type_frame,
+ lrecord_type_window,
+ lrecord_type_window_configuration,
+ lrecord_type_gui_item,
+ lrecord_type_popup_data,
+ lrecord_type_toolbar_button,
+ lrecord_type_color_instance,
+ lrecord_type_font_instance,
+ lrecord_type_image_instance,
+ lrecord_type_glyph,
+ lrecord_type_face,
+ lrecord_type_database,
+ lrecord_type_tooltalk_message,
+ lrecord_type_tooltalk_pattern,
+ lrecord_type_ldap,
+ lrecord_type_count
+};
struct lrecord_implementation
{
size_t static_size;
size_t (*size_in_bytes_method) (const void *header);
- /* A unique subtag-code (dynamically) assigned to this datatype. */
- /* (This is a pointer so the rest of this structure can be read-only.) */
- int *lrecord_type_index;
+ /* The (constant) index into lrecord_implementations_table */
+ enum lrecord_type lrecord_type_index;
/* A "basic" lrecord is any lrecord that's not an lcrecord, i.e.
one that does not have an lcrecord_header at the front and which
extern const struct lrecord_implementation *lrecord_implementations_table[];
#define XRECORD_LHEADER_IMPLEMENTATION(obj) \
- (lrecord_implementations_table[XRECORD_LHEADER (obj)->type])
-#define LHEADER_IMPLEMENTATION(lh) (lrecord_implementations_table[(lh)->type])
+ LHEADER_IMPLEMENTATION (XRECORD_LHEADER (obj))
+#define LHEADER_IMPLEMENTATION(lh) lrecord_implementations_table[(lh)->type]
extern int gc_in_progress;
-#define MARKED_RECORD_P(obj) (gc_in_progress && XRECORD_LHEADER (obj)->mark)
+#define MARKED_RECORD_P(obj) (XRECORD_LHEADER (obj)->mark)
#define MARKED_RECORD_HEADER_P(lheader) ((lheader)->mark)
#define MARK_RECORD_HEADER(lheader) ((void) ((lheader)->mark = 1))
#define UNMARK_RECORD_HEADER(lheader) ((void) ((lheader)->mark = 0))
-#define UNMARKABLE_RECORD_HEADER_P(lheader) \
- (LHEADER_IMPLEMENTATION (lheader)->marker == this_one_is_unmarkable)
-
#define C_READONLY_RECORD_HEADER_P(lheader) ((lheader)->c_readonly)
#define LISP_READONLY_RECORD_HEADER_P(lheader) ((lheader)->lisp_readonly)
-#define SET_C_READONLY_RECORD_HEADER(lheader) \
- ((void) ((lheader)->c_readonly = (lheader)->lisp_readonly = 1))
+#define SET_C_READONLY_RECORD_HEADER(lheader) do { \
+ struct lrecord_header *SCRRH_lheader = (lheader); \
+ SCRRH_lheader->c_readonly = 1; \
+ SCRRH_lheader->lisp_readonly = 1; \
+ SCRRH_lheader->mark = 1; \
+} while (0)
#define SET_LISP_READONLY_RECORD_HEADER(lheader) \
((void) ((lheader)->lisp_readonly = 1))
+#define RECORD_MARKER(lheader) lrecord_markers[(lheader)->type]
/* External description stuff
{ XD_INT, offsetof (base_type, cur) }, \
{ XD_INT_RESET, offsetof (base_type, max), XD_INDIRECT(1, 0) }
-/* Declaring the following structures as const puts them in the
- text (read-only) segment, which makes debugging inconvenient
- because this segment is not mapped when processing a core-
- dump file */
-
-#ifdef DEBUG_XEMACS
-#define CONST_IF_NOT_DEBUG
-#else
-#define CONST_IF_NOT_DEBUG const
-#endif
-
/* DEFINE_LRECORD_IMPLEMENTATION is for objects with constant size.
DEFINE_LRECORD_SEQUENCE_IMPLEMENTATION is for objects whose size varies.
*/
#define MAKE_LRECORD_IMPLEMENTATION(name,c_name,marker,printer,nuker,equal,hash,desc,getprop,putprop,remprop,plist,size,sizer,basic_p,structtype) \
DECLARE_ERROR_CHECK_TYPECHECK(c_name, structtype) \
-static int lrecord_##c_name##_lrecord_type_index; \
-CONST_IF_NOT_DEBUG struct lrecord_implementation lrecord_##c_name = \
+const struct lrecord_implementation lrecord_##c_name = \
{ name, marker, printer, nuker, equal, hash, desc, \
getprop, putprop, remprop, plist, size, sizer, \
- &(lrecord_##c_name##_lrecord_type_index), basic_p } \
+ lrecord_type_##c_name, basic_p }
+
+extern Lisp_Object (*lrecord_markers[]) (Lisp_Object);
+
+#define INIT_LRECORD_IMPLEMENTATION(type) do { \
+ lrecord_implementations_table[lrecord_type_##type] = &lrecord_##type; \
+ lrecord_markers[lrecord_type_##type] = \
+ lrecord_implementations_table[lrecord_type_##type]->marker; \
+} while (0)
#define LRECORDP(a) (XTYPE (a) == Lisp_Type_Record)
#define XRECORD_LHEADER(a) ((struct lrecord_header *) XPNTR (a))
#define RECORD_TYPEP(x, ty) \
- (LRECORDP (x) && \
- lrecord_implementations_table[XRECORD_LHEADER (x)->type] == (ty))
+ (LRECORDP (x) && XRECORD_LHEADER (x)->type == (ty))
/* NOTE: the DECLARE_LRECORD() must come before the associated
DEFINE_LRECORD_*() or you will get compile errors.
#ifdef ERROR_CHECK_TYPECHECK
# define DECLARE_LRECORD(c_name, structtype) \
-extern CONST_IF_NOT_DEBUG struct lrecord_implementation \
- lrecord_##c_name; \
+extern const struct lrecord_implementation lrecord_##c_name; \
INLINE structtype *error_check_##c_name (Lisp_Object obj); \
INLINE structtype * \
error_check_##c_name (Lisp_Object obj) \
{ \
- assert (RECORD_TYPEP (obj, &lrecord_##c_name)); \
+ assert (RECORD_TYPEP (obj, lrecord_type_##c_name)); \
return (structtype *) XPNTR (obj); \
} \
extern Lisp_Object Q##c_name##p
# define XSETRECORD(var, p, c_name) do \
{ \
XSETOBJ (var, Lisp_Type_Record, p); \
- assert (RECORD_TYPEP (var, &lrecord_##c_name)); \
+ assert (RECORD_TYPEP (var, lrecord_type_##c_name)); \
} while (0)
#else /* not ERROR_CHECK_TYPECHECK */
# define DECLARE_LRECORD(c_name, structtype) \
extern Lisp_Object Q##c_name##p; \
-extern CONST_IF_NOT_DEBUG struct lrecord_implementation \
- lrecord_##c_name
+extern const struct lrecord_implementation lrecord_##c_name
# define DECLARE_NONRECORD(c_name, type_enum, structtype) \
extern Lisp_Object Q##c_name##p
# define XRECORD(x, c_name, structtype) ((structtype *) XPNTR (x))
#endif /* not ERROR_CHECK_TYPECHECK */
-#define RECORDP(x, c_name) RECORD_TYPEP (x, &lrecord_##c_name)
+#define RECORDP(x, c_name) RECORD_TYPEP (x, lrecord_type_##c_name)
/* Note: we now have two different kinds of type-checking macros.
The "old" kind has now been renamed CONCHECK_foo. The reason for
way out and disabled returning from a signal entirely. */
#define CONCHECK_RECORD(x, c_name) do { \
- if (!RECORD_TYPEP (x, &lrecord_##c_name)) \
+ if (!RECORD_TYPEP (x, lrecord_type_##c_name)) \
x = wrong_type_argument (Q##c_name##p, x); \
} while (0)
#define CONCHECK_NONRECORD(x, lisp_enum, predicate) do {\
x = wrong_type_argument (predicate, x); \
} while (0)
#define CHECK_RECORD(x, c_name) do { \
- if (!RECORD_TYPEP (x, &lrecord_##c_name)) \
+ if (!RECORD_TYPEP (x, lrecord_type_##c_name)) \
dead_wrong_type_argument (Q##c_name##p, x); \
} while (0)
#define CHECK_NONRECORD(x, lisp_enum, predicate) do { \
void
vars_of_lstream (void)
{
+ INIT_LRECORD_IMPLEMENTATION (lstream);
+
reinit_vars_of_lstream ();
}
operating system this machine is likely to run.
USUAL-OPSYS="usg5-2-2" */
-/* XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
vax, m68000, ns16000 are the ones defined so far. */
/* Synched up with: FSF 19.31. */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-#undef WORD_MACHINE
-
-/* Define how to take a char and sign-extend into an int.
- On machines where char is signed, this is a no-op. */
-
-/* ARM note - The RISCiX Norcroft C Compiler has ALL
- non-32-bit types as unsigned */
-
-#define SIGN_EXTEND_CHAR(c) (((int)(c) << 24) >> 24)
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
Ones defined so far include vax, m68000, ns16000, pyramid,
/* ARM note - this is done by the Norcroft compiler - symbol is `__arm' */
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
#ifdef LDAV_SYMBOL
#undef LDAV_SYMBOL
#endif
operating system this machine is likely to run.
USUAL-OPSYS="bsd4-3" */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-#undef WORD_MACHINE
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
#define sun /* Use X support for Sun keyboard stuff. */
#define C_OPTIMIZE_SWITCH "-Og" /* No concurrent code allowed here. */
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-/* On Alliants, bitfields are unsigned. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Concentrix uses a different kernel symbol for load average. */
#undef LDAV_SYMBOL /* Undo definition in s-bsd4-2.h */
operating system this machine is likely to run.
USUAL-OPSYS="bsd4-2" */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-#undef WORD_MACHINE
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
#define ALLIANT
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-/* On Alliants, bitfields are unsigned. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* No load average information available for Alliants. */
#undef LOAD_AVE_TYPE
operating system this machine is likely to run.
USUAL-OPSYS="usg5-2" */
-#define EXPLICIT_SIGN_EXTEND
-
#define LIB_STANDARD "-lc"
#ifdef __GNUC__
compiler is so brain damaged that it is not even worth trying to use it.
*/
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-#define WORD_MACHINE /* not actually used anywhere yet! */
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
/* However for clarity define amdahl_uts */
#define amdahl_uts
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
/* #define LOAD_AVE_TYPE long*/
/* Synched up with: FSF 19.31. */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-#undef WORD_MACHINE
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
Ones defined so far include vax, m68000, ns16000, pyramid,
#endif /* USG */
-#ifdef USG5_4
-#define DATA_SEG_BITS 0x08000000
-#endif
-
#ifdef MSDOS
#define NO_REMAP
#endif
#define SEGMENT_MASK ((SEGMENT_SIZE)-1)
#endif
-#if 0
-#ifdef __GNUC__
-/* GCC's alloca() is semi-broken. See lisp.h.
-
- This brokenness has been confirmed under both Linux and NetBSD.
- It may also exist on non-Intel architectures. */
-#define BROKEN_ALLOCA_IN_FUNCTION_CALLS
-#endif
-#endif
-
-
/* XEmacs change: John Hughes <john@AtlanTech.COM> says using vfork
under i386-unknown-sysv4.2 makes C-g sometimes cause a SIGSEGV
in TTY mode; the problem goes away if you use fork */
operating system this machine is likely to run.
USUAL-OPSYS="usg5-2-2" */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-/* #define WORD_MACHINE */
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically */
#define ATT3B
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
/* #define LOAD_AVE_TYPE long */
/* Synched up with: FSF 19.31. */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-#define WORD_MACHINE
-
-/* Define DATA_SEG_BITS if pointers need to be corrected with
- a segment field. */
-
-#ifdef FIX_ADDRESS
-#define DATA_SEG_BITS 0xef000000
-#endif
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
Ones defined so far include vax, m68000, ns16000, pyramid,
/*#define m88k*/
/*#endif*/
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
/* #define LOAD_AVE_TYPE long */
operating system this machine is likely to run.
USUAL-OPSYS="bsd4-2" */
-/* XINT must explicitly sign extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* celerity preprocessor defines "accel", however the following is clearer */
#define celerity
/* Synched up with: FSF 19.31. */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-/* #define WORD_MACHINE */
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically */
#define DOT_GLOBAL_START
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-/* #define EXPLICIT_SIGN_EXTEND */
-
/* USG systems I know of running on Vaxes do not actually
support the load average, so disable it for them. */
/* Synched up with: FSF 19.31. */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-/* #define WORD_MACHINE */
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically. */
#define m68000
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem.
These are commented out since it is not supported by this machine. */
operating system this machine is likely to run.
USUAL-OPSYS="bsd4-3" */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-/* #define WORD_MACHINE */
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically. */
#ifndef convex /* The compiler doesn't always do this. */
/* #define NO_REMAP */
\f
-/* Addresses on the Convex have the high bit set. */
-#define DATA_SEG_BITS (1 << (INTBITS-1))
-
/* Right shift is logical shift.
And the usual way of handling such machines, which involves
copying the number into sign_extend_temp, does not work
operating system this machine is likely to run.
USUAL-OPSYS="usg5-3" */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-#undef WORD_MACHINE
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
Ones defined so far include vax, m68000, ns16000, pyramid,
orion, tahoe, APOLLO and many others */
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
#define LOAD_AVE_TYPE long
#define C_ALLOCA
#undef HAVE_ALLOCA
-/* The data segment in this machine always starts at address 0x10000000.
- An address of data cannot be stored correctly in a Lisp object;
- we always lose the high bits. We must tell XPNTR to add them back. */
-
-#define DATA_SEG_BITS 0x20000000
#define DATA_START 0x20000000
/* Define NO_REMAP if memory segmentation makes it not work well
operating system this machine is likely to run.
USUAL-OPSYS="usg5-3" */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-/* #define WORD_MACHINE */
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
Ones defined so far include vax, m68000, ns16000, pyramid,
#define m68000
#define MOTOROLA_DELTA
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
/* #define LOAD_AVE_TYPE long */
operating system this machine is likely to run.
USUAL-OPSYS="usg5-3" */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-/* #define WORD_MACHINE */
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
Ones defined so far include vax, m68000, ns16000, pyramid,
does not define it automatically. */
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-/* #define EXPLICIT_SIGN_EXTEND */
-
/* Data type of load average, as read out of kmem. */
/* No load average on Motorola machines. */
/* #define LOAD_AVE_TYPE double */
/* #define ncl_el /* DPX/2 210,220 etc */
/* #define ncl_mr 1 /* DPX/2 320,340 (and 360,380 ?) */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-/* #define WORD_MACHINE /**/
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
Ones defined so far include vax, m68000, ns16000, pyramid,
/* /bin/cc on ncl_el and ncl_mr define m68k and mc68000 */
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
#define LOAD_AVE_TYPE long
NOTE-END */
-/* XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
vax, m68000, ns16000 are the ones defined so far. */
/* This file was modified by Matt Crawford <matt@tank.uchicago.edu>
to work under Elxsi's 12.0 release of BSD unix. */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-/*#define WORD_MACHINE */
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
#define elxsi
#endif
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
-
/* Name of kernel load average variable */
#undef LDAV_SYMBOL
/* Synched up with: Mule 2.0. Not in FSF. */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-#undef WORD_MACHINE
-
-/* Define how to take a char and sign-extend into an int.
- On machines where char is signed, this is a no-op. */
-
-#define SIGN_EXTEND_CHAR(c) ((signed char)(c))
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
Ones defined so far include vax, m68000, ns16000, pyramid,
# define mips
#endif
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
#define LOAD_AVE_TYPE long
#define C_DEBUG_SWITCH "-g"
#define LIBS_DEBUG "-lg"
-
-/* The data segment in this machine always starts at address 0x1000000 = 16M.
- An address of data cannot be stored correctly in a Lisp object;
- we always lose the high bits. We must tell XPNTR to add them back. */
-
-#define DATA_SEG_BITS 0x1000000
#define DATA_START 0x1000000
/* The text segment always starts at 0.
A site running a pre-release of 2.1 should #define RELEASE2_1 in config.h.
NOTE-END */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-/* #define WORD_MACHINE */
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically */
- it is no longer needed and interferes with a variable in xmenu.c */
#undef sel
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
#define LOAD_AVE_TYPE double
#define HAVE_ALLOCA
-/* XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
#define LOAD_AVE_TYPE long
#define LOAD_AVE_CVT(x) ((int) (((double) (x)) / 2048.0 * 100.0))
operating system this machine is likely to run.
USUAL-OPSYS="hpux" */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-#undef WORD_MACHINE
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
Ones defined so far include vax, m68000, ns16000, pyramid,
# define hp9000s800
#endif
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
\f
#ifdef __hpux
/* Now define a symbol for the cpu type, if your compiler
\f
/* the data segment on this machine always starts at address 0x40000000. */
-#define DATA_SEG_BITS 0x40000000
-
#ifdef DATA_START
#undef DATA_START
#endif
/* #define HPUX_5 */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-/* #define WORD_MACHINE */
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically. */
#define hp9000s300
#endif
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Define CANNOT_DUMP on machines where unexec does not work.
Then the function dump-emacs will not be defined
and temacs will do (load "loadup") automatically unless told otherwise. */
operating system this machine is likely to run.
USUAL-OPSYS="<name of system .h file here, without the s- or .h>" */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-/* #define WORD_MACHINE */
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
Ones defined so far include vax, m68000, ns16000, pyramid,
#define INTEL860
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
#define LOAD_AVE_TYPE long
work with certain new X window managers, and may be suboptimal.
NOTE-END */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-/* #define WORD_MACHINE */
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
Ones defined so far include vax, m68000, ns16000, pyramid,
#define DATA_START 0x00800000
#define DATA_END 0
-/* The data segment in this machine always starts at address 0x00800000.
- An address of data cannot be stored correctly in a Lisp object;
- we always lose the high bits. We must tell XPNTR to add them back. */
-
-#define DATA_SEG_BITS 0x00800000
#endif
#if 0 /* I refuse to promulgate a recommendation that would make
#define DATA_END 0
#endif
-/* The data segment in this machine always starts at address 0x20000000.
- An address of data cannot be stored correctly in a Lisp object;
- we always lose the high bits. We must tell XPNTR to add them back. */
-
-#ifndef USG5_4
-#define DATA_SEG_BITS 0x20000000
-#else
-#define DATA_SEG_BITS 0
-#endif
-
-#ifdef CANNOT_DUMP
-/* Define shared memory segment symbols */
-
-#define PURE_SEG_BITS 0x30000000
-
-/* Use shared memory. */
-/* This is turned off because it does not always work. See etc/AIX.DUMP. */
-/* #define HAVE_SHM */
-#define SHMKEY 5305035 /* used for shared memory code segments */
-#endif /* CANNOT_DUMP */
-
#define N_BADMAG(x) BADMAG(x)
#define N_TXTOFF(x) A_TEXTPOS(x)
#define N_SYMOFF(x) A_SYMPOS(x)
#define DATA_START 0x20000000
#define DATA_END 0
-/* The data segment in this machine always starts at address 0x20000000.
- An address of data cannot be stored correctly in a Lisp object;
- we always lose the high bits. We must tell XPNTR to add them back. */
-
-#define DATA_SEG_BITS 0x20000000
-
#define N_BADMAG(x) BADMAG(x)
#define N_TXTOFF(x) A_TEXTPOS(x)
#define N_SYMOFF(x) A_SYMPOS(x)
operating system this machine is likely to run.
USUAL-OPSYS="bsd4-2" */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-#define WORD_MACHINE
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically. */
#define romp /* unfortunately old include files are hanging around. */
#endif
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
#define LOAD_AVE_TYPE double /* For AIS (sysV) */
#define HAVE_ALLOCA
\f
-/* The data segment in this machine starts at a fixed address.
- An address of data cannot be stored correctly in a Lisp object;
- we always lose the high bits. We must tell XPNTR to add them back. */
-
-#define DATA_SEG_BITS 0x10000000
#define DATA_START 0x10000000
/* The text segment always starts at a fixed address.
Minor changes merged in 19.1.
NOTE-END */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-/* #define WORD_MACHINE */
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
Ones defined so far include vax, m68000, ns16000, pyramid,
#ifdef USG
-#if 0 /* ALLOCA is now autodetected */
-#define HAVE_ALLOCA
-#endif
#define NO_REMAP
#define TEXT_START 0
#endif /* USG */
#endif /* not XENIX */
-#ifdef USG5_4
-#define DATA_SEG_BITS 0x08000000
-#endif
-
#ifdef MSDOS
#define NO_REMAP
#endif
/* Synched up with: FSF 19.31. */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-#undef WORD_MACHINE
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
Ones defined so far include vax, m68000, ns16000, pyramid,
#define IRIS_4D
#endif
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* jg@genmagic.genmagic.com (John Giannandrea) says this is unnecessary. */
#if 0
/* Data type of load average, as read out of kmem. */
#endif
#define TEXT_START 0x400000
-
-/*
- * DATA_SEG_BITS forces extra bits to be or'd in with any pointers which
- * were stored in a Lisp_Object (as Emacs uses fewer than 32 bits for
- * the value field of a LISP_OBJECT).
- */
-
#define DATA_START 0x10000000
-#define DATA_SEG_BITS 0x10000000
#undef LIBS_MACHINE
/* -lsun in case using Yellow Pages for passwords. */
operating system this machine is likely to run.
USUAL-OPSYS="irix3-3" */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-#undef WORD_MACHINE
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
Ones defined so far include vax, m68000, ns16000, pyramid,
#define IRIS_4D
#endif
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
#define LOAD_AVE_TYPE long /* This doesn't quite work on the 4D */
#define TEXT_START 0x400000
-/*
- * DATA_SEG_BITS forces extra bits to be or'd in with any pointers which
- * were stored in a Lisp_Object (as Emacs uses fewer than 32 bits for
- * the value field of a LISP_OBJECT).
- */
-
#define DATA_START 0x10000000
-#define DATA_SEG_BITS 0x10000000
#undef LIBS_MACHINE
/* -lsun in case using Yellow Pages for passwords. */
/* Synched up with: FSF 19.31. */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-#undef WORD_MACHINE
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
Ones defined so far include vax, m68000, ns16000, pyramid,
#define IRIS_4D
#endif
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* jg@genmagic.genmagic.com (John Giannandrea) says this is unnecessary. */
#if 0
/* Data type of load average, as read out of kmem. */
#endif
#define TEXT_START 0x400000
-
-/*
- * DATA_SEG_BITS forces extra bits to be or'd in with any pointers which
- * were stored in a Lisp_Object (as Emacs uses fewer than 32 bits for
- * the value field of a LISP_OBJECT).
- */
-
#define DATA_START 0x10000000
-#define DATA_SEG_BITS 0x10000000
#undef LIBS_MACHINE
/* -lsun in case using Yellow Pages for passwords. */
(copy-file), it would say that it is non-critical...
#endif /* 0 */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-/* #define WORD_MACHINE */
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
Ones defined so far include vax, m68000, ns16000, pyramid,
#define m68000
#endif
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
#define LOAD_AVE_TYPE long
#define m68000
-/* XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
#ifdef BSD4_3
/* Synched up with: Mule 2.0. Not in FSF. */
-/* Define how to take a char and sign-extend into an int.
- On machines where char is signed, this is a no-op. */
-
-#define SIGN_EXTEND_CHAR(c) (c)
-
-/* XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
#define LOAD_AVE_TYPE long
/* Synched up with: FSF 19.31. */
-/* The following symbol gives information on
- the size of various data types. */
-
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-/* #define WORD_MACHINE */
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically. */
#define m68k
#endif
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the 24-bit bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Define CANNOT_DUMP on machines where unexec does not work.
Then the function dump-emacs will not be defined
and temacs will do (load "loadup") automatically unless told otherwise. */
/* #define VIRT_ADDR_VARIES */
#ifdef linux
-#ifdef __ELF__
-#define DATA_SEG_BITS 0x80000000
-#endif
#define NO_REMAP
#define TEXT_START 0
operating system this machine is likely to run.
USUAL-OPSYS="rtu" */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-#undef WORD_MACHINE
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
/* Masscomp predefines mc68000. */
#define m68000 mc68000
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#undef EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
#define LOAD_AVE_TYPE double
operating system this machine is likely to run.
USUAL-OPSYS="bsd4-2" */
-/* XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Say this machine is a 68000 */
#define m68000
your work; we'd like to distribute this information.
NOTE-END */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-/* ns16000 addresses are byte addresses */
-#undef WORD_MACHINE
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
#define ns16000
#define mg1
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
/* mg1 its an unsigned long */
#define LOAD_AVE_TYPE unsigned long
With this the file mips-siemens.h is obsolete.
NOTE-END */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-#undef WORD_MACHINE
-
-/* Define how to take a char and sign-extend into an int.
- On machines where char is signed, this is a no-op. */
-
-#define SIGN_EXTEND_CHAR(c) ((signed char)(c))
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
Ones defined so far include vax, m68000, ns16000, pyramid,
# define mips
#endif
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the 24-bit bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
#define LOAD_AVE_TYPE long
/* MARCO ???
*/
#define TEXT_START 0x400000
-/*
-#define DATA_START 0x10000000
-#define DATA_SEG_BITS 0x10000000
-*/
#undef ORDINARY_LINK
With this the file mips-siemens.h is obsolete.
NOTE-END */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-#undef WORD_MACHINE
-
-/* Define how to take a char and sign-extend into an int.
- On machines where char is signed, this is a no-op. */
-
-#define SIGN_EXTEND_CHAR(c) ((signed char)(c))
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
Ones defined so far include vax, m68000, ns16000, pyramid,
# define mips
#endif
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the 24-bit bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
#define LOAD_AVE_TYPE long
/* MARCO ???
*/
#define TEXT_START 0x400000
-/*
-#define DATA_START 0x10000000
-#define DATA_SEG_BITS 0x10000000
-*/
+
#ifdef UNEXEC
#undef UNEXEC
#endif
Note that the proper m- file for the Decstation is m-pmax.h.
NOTE-END */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-#undef WORD_MACHINE
-
-/* Define how to take a char and sign-extend into an int.
- On machines where char is signed, this is a no-op. */
-
-#define SIGN_EXTEND_CHAR(c) ((signed char)(c))
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
Ones defined so far include vax, m68000, ns16000, pyramid,
# define mips
#endif
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
#define LOAD_AVE_TYPE long
#ifdef linux
#define TEXT_START 0x00400000
#define DATA_START 0x10000000
-#define DATA_SEG_BITS 0x10000000
#else /* !linux */
#define TEXT_START 0x400000
#define DATA_START 0x800000
#define NeXT
#endif
-/* Define how to take a char and sign-extend into an int.
- On machines where char is signed, this is a no-op. */
-
-#define SIGN_EXTEND_CHAR(c) (c)
-
-/* XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Say that the text segment of a.out includes the header;
the header actually occupies the first few bytes of the text segment
and is counted in hdr.a_text. */
operating system this machine is likely to run.
USUAL-OPSYS="<name of system .h file here, without the s- or .h>" */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-/* #define WORD_MACHINE */
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
Ones defined so far include vax, m68000, ns16000, pyramid,
#define gcx
#endif
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-/* #define EXPLICIT_SIGN_EXTEND */
-
/* Data type of load average, as read out of kmem. */
#define LOAD_AVE_TYPE long
operating system this machine is likely to run.
USUAL-OPSYS="<name of system .h file here, without the s- or .h>" */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-/* #define WORD_MACHINE */
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
Ones defined so far include vax, m68000, ns16000, pyramid,
#define m88000
#endif
-#define VALBITS 26
-
-#define GCTYPEBITS 5
-
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-/* #define EXPLICIT_SIGN_EXTEND */
-
/* Data type of load average, as read out of kmem. */
#define LOAD_AVE_TYPE long
operating system this machine is likely to run.
USUAL-OPSYS="usg5-2" */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-/* #define WORD_MACHINE */
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
Ones defined so far include vax, m68000, ns16000, pyramid,
orion, tahoe, APOLLO and many others */
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
/* #define LOAD_AVE_TYPE long */
operating system this machine is likely to run.
USUAL-OPSYS="usg5-2" */
-/* XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
vax, m68000, ns16000 are the ones defined so far. */
#define orion
#endif
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-#define WORD_MACHINE
-
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
#define LOAD_AVE_TYPE double
operating system this machine is likely to run.
USUAL-OPSYS="bsd4-2" */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
/* Data type of load average, as read out of kmem. */
/* This used to be `double'. */
#define m68000
#define mc68000 1
-/* XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Define NO_REMAP if memory segmentation makes it not work well
to change the boundary between the text section and data section
when Emacs is dumped. If you define this, the preloaded Lisp
#define LD_SWITCH_MACHINE "-e __start"
-#if pfa50 || pfa70
-
-/* On A-50/60/70/80, data space has high order byte use. */
-#define VALBITS 26
-#define VALMASK (((1<<VALBITS) - 1) | 0x60000000)
-/* XEmacs: markbit is between type bits and value bits */
-/* #define XTYPE(a) ((enum Lisp_Type) (((a) >> VALBITS) & GCTYPEMASK)) */
-#define XTYPE(a) ((enum Lisp_Type) (((a) >> ((VALBITS) + 1)) & GCTYPEMASK))
-
-#endif /* pfa50, pfa70 */
-
/* SX/A has alloca in the PW library. */
#define LIB_STANDARD "-lPW -lc"
operating system this machine is likely to run.
USUAL-OPSYS="usg5-2" */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-#undef WORD_MACHINE
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
/* Plexus predefines m68 instead of m68000. */
#define m68000 m68
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#undef EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
#undef LOAD_AVE_TYPE
#undef LD_SWITCH_MACHINE
#undef DATA_START
#define DATA_START 0x10000000
-#define DATA_SEG_BITS 0x10000000
#if 0
/* I don't see any such conflict in Ultrix 4.2, 4.2a, or 4.3. And
# endif
#endif
-/* XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
#ifndef __linux__
/* Data type of load average, as read out of kmem. */
#define NO_REMAP
-#if 0
-#define TEXT_START 0x00001000
-#define TEXT_END 0
-#define DATA_START 0x01000000
-#define DATA_END 0
-
-/* The data segment in this machine always starts at address 0x10000000.
- An address of data cannot be stored correctly in a Lisp object;
- we always lose the high bits. We must tell XPNTR to add them back. */
-
-#define DATA_SEG_BITS 0x10000000
-#endif
-
/* Use type int rather than a union, to represent Lisp_Object */
/* #define NO_UNION_TYPE */
#ifdef CANNOT_DUMP
-/* Define shared memory segment symbols */
-
-#define PURE_SEG_BITS 0x30000000
-/* Use shared memory. */
-/* This is turned off because it does not always work. See etc/AIX.DUMP. */
-/* #define HAVE_SHM */
-#define SHMKEY 5305035 /* used for shared memory code segments */
#endif /* CANNOT_DUMP */
#define N_BADMAG(x) BADMAG(x)
operating system this machine is likely to run.
USUAL-OPSYS="bsd4-2" */
-/* XINT must explicitly sign extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* pyramid preprocessor defines "pyr", however the following is clearer */
#define pyramid
#include "intel386.h"
-/* Define how to take a char and sign-extend into an int.
- On machines where char is signed, this is a no-op. */
-/* CHECK THIS */
-#define SIGN_EXTEND_CHAR(c) (c)
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
Ones defined so far include vax, m68000, ns16000, pyramid,
#define CRT0_DUMMIES dummy1, dummy2, dummy3,
#endif
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the 24-bit bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
#define LOAD_AVE_TYPE unsigned long
/* NOTE: this file works for DYNIX release 2.0
(not tested on 1.3) on NS32000's */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-/* #define WORD_MACHINE */
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
#define DOT_GLOBAL_START
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
#define LOAD_AVE_TYPE unsigned long
operating system this machine is likely to run.
USUAL-OPSYS="irix3-3" */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-#undef WORD_MACHINE
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
Ones defined so far include vax, m68000, ns16000, pyramid,
#undef HAVE_NATIVE_SOUND
#endif
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
#define LOAD_AVE_TYPE long /* This doesn't quite work on the 4D */
#define UNEXEC "unexelfsgi.o"
#define TEXT_START 0x400000
-
-/*
- * DATA_SEG_BITS forces that bit to be or'd in with any pointers which
- * are trying to access pure strings (as gnu-emacs only allows 24 bits
- * for the value field of a LISP_OBJECT).
- */
-
#define DATA_START 0x10000000
-#define DATA_SEG_BITS 0x10000000
#undef LIBS_MACHINE
/* -lsun in case using Yellow Pages for passwords. */
# endif
#endif
-/* XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Mask for address bits within a memory segment */
#define SEGMENT_MASK (SEGSIZ - 1)
#define sps7
-/* XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
/* Suspect there is something weird about this machine, so turn it off. */
operating system this machine is likely to run.
USUAL-OPSYS="usg5-2" */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-#undef WORD_MACHINE
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
vax, m68000, ns16000, pyramid, orion, tahoe, APOLLO and STRIDE
#define STRIDE
#endif
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
#define LOAD_AVE_TYPE double
/* Sun can't write competent compilers */
#define COMPILER_REGISTER_BUG
-/* XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
#define LOAD_AVE_TYPE long
/* Sun can't write competent compilers */
#define COMPILER_REGISTER_BUG
-/* XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
#define LOAD_AVE_TYPE long
operating system this machine is likely to run.
USUAL-OPSYS="usg5-3" */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-/* #define WORD_MACHINE */
-
-/* Now define a symbol for the cpu type, if your compiler
- does not define it automatically */
-
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-/* #define EXPLICIT_SIGN_EXTEND */
-
/* Data type of load average, as read out of kmem. */
/* #define LOAD_AVE_TYPE long */
Berkeley you are running.
NOTE-END */
-/* XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Say this machine is a tahoe */
#ifndef tahoe
operating system this machine is likely to run.
USUAL-OPSYS="usg5-2-2" */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-#define WORD_MACHINE
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
/* #define m68k is defined by the Compiler */
/* #define m68000 */
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
/* #define LOAD_AVE_TYPE double */
operating system this machine is likely to run.
USUAL-OPSYS="bsd4-3" */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-#undef WORD_MACHINE
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically. */
/* Synched up with: FSF 19.31. */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-/* #define WORD_MACHINE */
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
Ones defined so far include vax, m68000, ns16000, pyramid,
#define m88000
#endif
-/* Define how to take a char and sign-extend into an int.
- On machines where char is signed, this is a no-op. */
-#define SIGN_EXTEND_CHAR(c) (c)
-
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-/* #define EXPLICIT_SIGN_EXTEND */
-
/* Data type of load average, as read out of kmem. */
/* #define LOAD_AVE_TYPE double */ /* No load average on XD88. */
/* Convert that into an integer that is 100 for a load average of 1.0 */
operating system this machine is likely to run.
USUAL-OPSYS="<name of system .h file here, without the .h>" */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-#define WORD_MACHINE
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
Ones defined so far include vax, m68000, ns16000, pyramid,
orion, tahoe, APOLLO and many others */
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
#define LOAD_AVE_TYPE long
operating system this machine is likely to run.
USUAL-OPSYS="usg5-2-2" */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-/* #define WORD_MACHINE */
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
are the ones defined so far. */
#define m68000
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
/* #define LOAD_AVE_TYPE long */
operating system this machine is likely to run.
USUAL-OPSYS="usg5-3" */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-/* #define WORD_MACHINE */
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
are the ones defined so far. */
#define m68000
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
/* #define LOAD_AVE_TYPE long */
operating system this machine is likely to run.
USUAL-OPSYS="usg5-3" */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-#undef WORD_MACHINE
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
#define m68000 mc68000
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#undef EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
#define LOAD_AVE_TYPE double
operating system this machine is likely to run.
USUAL-OPSYS="usg5-2" */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-#undef WORD_MACHINE
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
vax, m68000, ns16000 are the ones defined so far. */
/* This flag is used only in alloca.s. */
#define WICAT
-/* XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
#undef LOAD_AVE_TYPE
#define NO_ARG_ARRAY
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-#define WORD_MACHINE
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
Ones defined so far include vax, m68000, ns16000, pyramid,
#define NO_UNION_TYPE
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the 24-bit bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
#define LOAD_AVE_TYPE long
operating system this machine is likely to run.
USUAL-OPSYS="usg5-2" */
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-/* #define WORD_MACHINE */
-
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
Ones defined so far include vax, m68000, ns16000, pyramid,
orion, tahoe, APOLLO and many others */
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
/* #define LOAD_AVE_TYPE long */
extern char *start_of_data (void);
#ifdef BSD
-#ifndef DATA_SEG_BITS
#define start_of_data() &etext
#endif
-#endif
#ifndef emacs
#define start_of_data() &etext
void
syms_of_marker (void)
{
+ INIT_LRECORD_IMPLEMENTATION (marker);
+
DEFSUBR (Fmarker_position);
DEFSUBR (Fmarker_buffer);
DEFSUBR (Fset_marker);
#define EXCEEDS_LISP_PTR(ptr) 0
#ifdef BSD
-#ifndef DATA_SEG_BITS
extern int etext;
#define start_of_data() &etext
#endif
-#endif
#else /* not emacs */
extern char etext;
/* Escape '&' as '&&' */
ptr = buf;
- while ((ptr=memchr (ptr, '&', ll-(ptr-buf))) != NULL)
+ while ((ptr = (char*) memchr (ptr, '&', ll - (ptr - buf))) != NULL)
{
- if (ll+2 >= MAX_MENUITEM_LENGTH)
+ if (ll + 2 >= MAX_MENUITEM_LENGTH)
signal_simple_error ("Menu item produces too long displayable string",
XGUI_ITEM (gui_item)->name);
- memmove (ptr+1, ptr, (ll-(ptr-buf))+1);
+ memmove (ptr + 1, ptr, (ll - (ptr - buf)) + 1);
ll++;
- ptr+=2;
+ ptr += 2;
}
/* Replace XEmacs accelerator '%_' with Windows accelerator '&' */
ptr = buf;
- while ((ptr=memchr (ptr, '%', ll-(ptr-buf))) != NULL)
+ while ((ptr = (char*) memchr (ptr, '%', ll - (ptr - buf))) != NULL)
{
- if (*(ptr+1) == '_')
+ if (*(ptr + 1) == '_')
{
*ptr = '&';
- memmove (ptr+1, ptr+2, ll-(ptr-buf+2));
+ memmove (ptr + 1, ptr + 2, ll - (ptr - buf + 2));
ll--;
}
ptr++;
void
syms_of_mule_charset (void)
{
+ INIT_LRECORD_IMPLEMENTATION (charset);
+
DEFSUBR (Fcharsetp);
DEFSUBR (Ffind_charset);
DEFSUBR (Fget_charset);
putenv ((GetVersion () & 0x80000000) ? "SHELL=command" : "SHELL=cmd");
/* Set dir and shell from environment variables. */
- strcpy (the_passwd.pw_dir, get_home_directory());
+ strcpy (the_passwd.pw_dir, (char *)get_home_directory());
strcpy (the_passwd.pw_shell, getenv ("SHELL"));
}
case path name components to lower case. */
static void
-normalize_filename (fp, path_sep)
- REGISTER char *fp;
- char path_sep;
+normalize_filename (char *fp, char path_sep)
{
char sep;
char *elem;
/* Destructively turn backslashes into slashes. */
void
-dostounix_filename (p)
- REGISTER char *p;
+dostounix_filename (char *p)
{
normalize_filename (p, '/');
}
/* Destructively turn slashes into backslashes. */
void
-unixtodos_filename (p)
- REGISTER char *p;
+unixtodos_filename (char *p)
{
normalize_filename (p, '\\');
}
(From msdos.c...probably should figure out a way to share it,
although this code isn't going to ever change.) */
int
-crlf_to_lf (n, buf, lf_count)
- REGISTER int n;
- REGISTER unsigned char *buf;
- REGISTER unsigned *lf_count;
+crlf_to_lf (int n, unsigned char *buf, unsigned *lf_count)
{
unsigned char *np = buf;
unsigned char *startp = buf;
#define REG_ROOT "SOFTWARE\\GNU\\XEmacs"
LPBYTE
-nt_get_resource (key, lpdwtype)
- char *key;
- LPDWORD lpdwtype;
+nt_get_resource (char *key, LPDWORD lpdwtype)
{
LPBYTE lpvalue;
HKEY hrootkey = NULL;
len = strlen (name);
rootdir = (path >= name + len - 1
&& (IS_DIRECTORY_SEP (*path) || *path == 0));
- name = strcpy (alloca (len + 2), name);
+ name = strcpy ((char *)alloca (len + 2), name);
if (rootdir)
{
if (file_base == 0)
return FALSE;
- p_file->name = (char*)filename;
+ p_file->name = (char *)filename;
p_file->size = size;
p_file->file = file;
p_file->file_mapping = file_mapping;
- p_file->file_base = file_base;
+ p_file->file_base = (char *)file_base;
return TRUE;
}
return data_region_end;
}
-static char *
+static unsigned char *
allocate_heap (void)
{
/* The base address for our GNU malloc heap is chosen in conjunction
unsigned long base = 0x01B00000; /* 27MB */
/* Temporary hack for the non-starting problem - use 28 (256Mb) rather than VALBITS (1Gb) */
unsigned long end = 1 << 28; /* 256MB */
- void *ptr = NULL;
+ void *ptr;
#define NTHEAP_PROBE_BASE 1
#if NTHEAP_PROBE_BASE /* This is never normally defined */
PAGE_NOACCESS);
#endif
- return ptr;
+ return (unsigned char*) ptr;
}
void
recreate_heap (char *executable_path)
{
- unsigned char *tmp;
+ void *tmp;
/* First reserve the upper part of our heap. (We reserve first
because there have been problems in the past where doing the
/* To prevent zero-initialized variables from being placed into the bss
section, use non-zero values to represent an uninitialized state. */
-#define UNINIT_PTR ((void *) 0xF0A0F0A0)
+#define UNINIT_PTR ((unsigned char*) 0xF0A0F0A0)
#define UNINIT_LONG (0xF0A0F0A0L)
/* Emulation of Unix sbrk(). */
/* Useful routines for manipulating memory-mapped files. */
typedef struct file_data {
- const char *name;
- unsigned long size;
- HANDLE file;
- HANDLE file_mapping;
- unsigned char *file_base;
+ const char *name;
+ unsigned long size;
+ HANDLE file;
+ HANDLE file_mapping;
+ char *file_base;
} file_data;
#define OFFSET_TO_RVA(var,section) \
return;
size = lseek (ofd, 0, SEEK_END);
- data = xmalloc (size);
+ data = (unsigned char *)xmalloc (size);
lseek (ofd, 0, SEEK_SET);
if (!data)
if (convert_to_malloc)
{
- sound_data = xmalloc (length);
+ sound_data = (unsigned char *)xmalloc (length);
memcpy (sound_data, data, length);
}
else
if (exe_header->e_magic != DOSMAGIC)
goto unwind;
- if ((char *) exe_header->e_lfanew > (char *) executable.size)
+ if ((char*) exe_header->e_lfanew > (char*) executable.size)
{
/* Some dos headers (pkunzip) have bogus e_lfanew fields. */
*is_dos_app = TRUE;
if (dos_header->e_magic != IMAGE_DOS_SIGNATURE)
goto unwind;
- nt_header = (PIMAGE_NT_HEADERS) ((char *) dos_header + dos_header->e_lfanew);
+ nt_header = (PIMAGE_NT_HEADERS) ((char*) dos_header + dos_header->e_lfanew);
- if ((char *) nt_header > (char *) dos_header + executable.size)
+ if ((char*) nt_header > (char*) dos_header + executable.size)
{
/* Some dos headers (pkunzip) have bogus e_lfanew fields. */
*is_dos_app = TRUE;
IMAGE_SECTION_HEADER * section;
section = rva_to_section (import_dir.VirtualAddress, nt_header);
- imports = RVA_TO_PTR (import_dir.VirtualAddress, section, executable);
+ imports = (IMAGE_IMPORT_DESCRIPTOR *) RVA_TO_PTR (import_dir.VirtualAddress,
+ section, executable);
for ( ; imports->Name; imports++)
{
- char * dllname = RVA_TO_PTR (imports->Name, section, executable);
+ char *dllname = (char*) RVA_TO_PTR (imports->Name, section, executable);
if (strcmp (dllname, "cygwin.dll") == 0)
{
*nptr++ = *optr++;
num += optr - envp2;
- qsort (new_envp, num, sizeof (char *), compare_env);
+ qsort (new_envp, num, sizeof (char*), compare_env);
*nptr = NULL;
}
}
else
{
- (char*)cmdname = alloca (strlen (argv[0]) + 1);
+ cmdname = (char*)alloca (strlen (argv[0]) + 1);
strcpy ((char*)cmdname, argv[0]);
}
UNGCPRO;
while leaving the real app name as argv[0]. */
if (is_dos_app)
{
- cmdname = alloca (MAXPATHLEN);
+ cmdname = (char*) alloca (MAXPATHLEN);
if (egetenv ("CMDPROXY"))
strcpy ((char*)cmdname, egetenv ("CMDPROXY"));
else
}
arglen += strlen (*targ++) + 1;
}
- cmdline = alloca (arglen);
+ cmdline = (char*) alloca (arglen);
targ = (char**)argv;
parg = cmdline;
while (*targ)
/* and envp... */
arglen = 1;
- targ = (char**)envp;
+ targ = (char**) envp;
numenv = 1; /* for end null */
while (*targ)
{
numenv++;
/* merge env passed in and extra env into one, and sort it. */
- targ = (char **) alloca (numenv * sizeof (char *));
- merge_and_sort_env ((char**)envp, extra_env, targ);
+ targ = (char **) alloca (numenv * sizeof (char*));
+ merge_and_sort_env ((char**) envp, extra_env, targ);
/* concatenate env entries. */
- env = alloca (arglen);
+ env = (char*) alloca (arglen);
parg = env;
while (*targ)
{
typedef struct colormap_t
{
const char *name;
- const COLORREF colorref;
+ COLORREF colorref;
} colormap_t;
/* Colors from X11R6 "XConsortium: rgb.txt,v 10.41 94/02/20 18:39:36 rws Exp" */
+/* MSWindows tends to round up the numbers in it's palette, ie where X uses
+ * 127, MSWindows uses 128. Colors commented as "Adjusted" are tweaked to
+ * match the Windows standard palette to increase the likelyhood of
+ * mswindows_color_to_string() finding a named match.
+ */
static const colormap_t mswindows_X_color_map[] =
{
- {"snow" , PALETTERGB (255, 250, 250) },
- {"GhostWhite" , PALETTERGB (248, 248, 255) },
- {"WhiteSmoke" , PALETTERGB (245, 245, 245) },
- {"gainsboro" , PALETTERGB (220, 220, 220) },
- {"FloralWhite" , PALETTERGB (255, 250, 240) },
- {"OldLace" , PALETTERGB (253, 245, 230) },
- {"linen" , PALETTERGB (250, 240, 230) },
- {"AntiqueWhite" , PALETTERGB (250, 235, 215) },
- {"PapayaWhip" , PALETTERGB (255, 239, 213) },
- {"BlanchedAlmond" , PALETTERGB (255, 235, 205) },
- {"bisque" , PALETTERGB (255, 228, 196) },
- {"PeachPuff" , PALETTERGB (255, 218, 185) },
- {"NavajoWhite" , PALETTERGB (255, 222, 173) },
- {"moccasin" , PALETTERGB (255, 228, 181) },
- {"cornsilk" , PALETTERGB (255, 248, 220) },
- {"ivory" , PALETTERGB (255, 255, 240) },
- {"LemonChiffon" , PALETTERGB (255, 250, 205) },
- {"seashell" , PALETTERGB (255, 245, 238) },
- {"honeydew" , PALETTERGB (240, 255, 240) },
- {"MintCream" , PALETTERGB (245, 255, 250) },
- {"azure" , PALETTERGB (240, 255, 255) },
- {"AliceBlue" , PALETTERGB (240, 248, 255) },
- {"lavender" , PALETTERGB (230, 230, 250) },
- {"LavenderBlush" , PALETTERGB (255, 240, 245) },
- {"MistyRose" , PALETTERGB (255, 228, 225) },
- {"white" , PALETTERGB (255, 255, 255) },
- {"black" , PALETTERGB (0, 0, 0) },
- {"DarkSlateGray" , PALETTERGB (47, 79, 79) },
- {"DarkSlateGrey" , PALETTERGB (47, 79, 79) },
- {"DimGray" , PALETTERGB (105, 105, 105) },
- {"DimGrey" , PALETTERGB (105, 105, 105) },
- {"SlateGray" , PALETTERGB (112, 128, 144) },
- {"SlateGrey" , PALETTERGB (112, 128, 144) },
- {"LightSlateGray" , PALETTERGB (119, 136, 153) },
- {"LightSlateGrey" , PALETTERGB (119, 136, 153) },
- {"gray" , PALETTERGB (190, 190, 190) },
- {"grey" , PALETTERGB (190, 190, 190) },
- {"LightGrey" , PALETTERGB (211, 211, 211) },
- {"LightGray" , PALETTERGB (211, 211, 211) },
- {"MidnightBlue" , PALETTERGB (25, 25, 112) },
- {"navy" , PALETTERGB (0, 0, 128) },
- {"NavyBlue" , PALETTERGB (0, 0, 128) },
- {"CornflowerBlue" , PALETTERGB (100, 149, 237) },
- {"DarkSlateBlue" , PALETTERGB (72, 61, 139) },
- {"SlateBlue" , PALETTERGB (106, 90, 205) },
- {"MediumSlateBlue" , PALETTERGB (123, 104, 238) },
- {"LightSlateBlue" , PALETTERGB (132, 112, 255) },
- {"MediumBlue" , PALETTERGB (0, 0, 205) },
- {"RoyalBlue" , PALETTERGB (65, 105, 225) },
- {"blue" , PALETTERGB (0, 0, 255) },
- {"DodgerBlue" , PALETTERGB (30, 144, 255) },
- {"DeepSkyBlue" , PALETTERGB (0, 191, 255) },
- {"SkyBlue" , PALETTERGB (135, 206, 235) },
- {"LightSkyBlue" , PALETTERGB (135, 206, 250) },
- {"SteelBlue" , PALETTERGB (70, 130, 180) },
- {"LightSteelBlue" , PALETTERGB (176, 196, 222) },
- {"LightBlue" , PALETTERGB (173, 216, 230) },
- {"PowderBlue" , PALETTERGB (176, 224, 230) },
- {"PaleTurquoise" , PALETTERGB (175, 238, 238) },
- {"DarkTurquoise" , PALETTERGB (0, 206, 209) },
- {"MediumTurquoise" , PALETTERGB (72, 209, 204) },
- {"turquoise" , PALETTERGB (64, 224, 208) },
- {"cyan" , PALETTERGB (0, 255, 255) },
- {"LightCyan" , PALETTERGB (224, 255, 255) },
- {"CadetBlue" , PALETTERGB (95, 158, 160) },
- {"MediumAquamarine" , PALETTERGB (102, 205, 170) },
- {"aquamarine" , PALETTERGB (127, 255, 212) },
- {"DarkGreen" , PALETTERGB (0, 100, 0) },
- {"DarkOliveGreen" , PALETTERGB (85, 107, 47) },
- {"DarkSeaGreen" , PALETTERGB (143, 188, 143) },
- {"SeaGreen" , PALETTERGB (46, 139, 87) },
- {"MediumSeaGreen" , PALETTERGB (60, 179, 113) },
- {"LightSeaGreen" , PALETTERGB (32, 178, 170) },
- {"PaleGreen" , PALETTERGB (152, 251, 152) },
- {"SpringGreen" , PALETTERGB (0, 255, 127) },
- {"LawnGreen" , PALETTERGB (124, 252, 0) },
- {"green" , PALETTERGB (0, 255, 0) },
- {"chartreuse" , PALETTERGB (127, 255, 0) },
- {"MediumSpringGreen" , PALETTERGB (0, 250, 154) },
- {"GreenYellow" , PALETTERGB (173, 255, 47) },
- {"LimeGreen" , PALETTERGB (50, 205, 50) },
- {"YellowGreen" , PALETTERGB (154, 205, 50) },
- {"ForestGreen" , PALETTERGB (34, 139, 34) },
- {"OliveDrab" , PALETTERGB (107, 142, 35) },
- {"DarkKhaki" , PALETTERGB (189, 183, 107) },
- {"khaki" , PALETTERGB (240, 230, 140) },
- {"PaleGoldenrod" , PALETTERGB (238, 232, 170) },
- {"LightGoldenrodYellow" , PALETTERGB (250, 250, 210) },
- {"LightYellow" , PALETTERGB (255, 255, 224) },
- {"yellow" , PALETTERGB (255, 255, 0) },
- {"gold" , PALETTERGB (255, 215, 0) },
- {"LightGoldenrod" , PALETTERGB (238, 221, 130) },
- {"goldenrod" , PALETTERGB (218, 165, 32) },
- {"DarkGoldenrod" , PALETTERGB (184, 134, 11) },
- {"RosyBrown" , PALETTERGB (188, 143, 143) },
- {"IndianRed" , PALETTERGB (205, 92, 92) },
- {"SaddleBrown" , PALETTERGB (139, 69, 19) },
- {"sienna" , PALETTERGB (160, 82, 45) },
- {"peru" , PALETTERGB (205, 133, 63) },
- {"burlywood" , PALETTERGB (222, 184, 135) },
- {"beige" , PALETTERGB (245, 245, 220) },
- {"wheat" , PALETTERGB (245, 222, 179) },
- {"SandyBrown" , PALETTERGB (244, 164, 96) },
- {"tan" , PALETTERGB (210, 180, 140) },
- {"chocolate" , PALETTERGB (210, 105, 30) },
- {"firebrick" , PALETTERGB (178, 34, 34) },
- {"brown" , PALETTERGB (165, 42, 42) },
- {"DarkSalmon" , PALETTERGB (233, 150, 122) },
- {"salmon" , PALETTERGB (250, 128, 114) },
- {"LightSalmon" , PALETTERGB (255, 160, 122) },
- {"orange" , PALETTERGB (255, 165, 0) },
- {"DarkOrange" , PALETTERGB (255, 140, 0) },
- {"coral" , PALETTERGB (255, 127, 80) },
- {"LightCoral" , PALETTERGB (240, 128, 128) },
- {"tomato" , PALETTERGB (255, 99, 71) },
- {"OrangeRed" , PALETTERGB (255, 69, 0) },
- {"red" , PALETTERGB (255, 0, 0) },
- {"HotPink" , PALETTERGB (255, 105, 180) },
- {"DeepPink" , PALETTERGB (255, 20, 147) },
- {"pink" , PALETTERGB (255, 192, 203) },
- {"LightPink" , PALETTERGB (255, 182, 193) },
- {"PaleVioletRed" , PALETTERGB (219, 112, 147) },
- {"maroon" , PALETTERGB (176, 48, 96) },
- {"MediumVioletRed" , PALETTERGB (199, 21, 133) },
- {"VioletRed" , PALETTERGB (208, 32, 144) },
- {"magenta" , PALETTERGB (255, 0, 255) },
- {"violet" , PALETTERGB (238, 130, 238) },
- {"plum" , PALETTERGB (221, 160, 221) },
- {"orchid" , PALETTERGB (218, 112, 214) },
- {"MediumOrchid" , PALETTERGB (186, 85, 211) },
- {"DarkOrchid" , PALETTERGB (153, 50, 204) },
- {"DarkViolet" , PALETTERGB (148, 0, 211) },
- {"BlueViolet" , PALETTERGB (138, 43, 226) },
- {"purple" , PALETTERGB (160, 32, 240) },
- {"MediumPurple" , PALETTERGB (147, 112, 219) },
- {"thistle" , PALETTERGB (216, 191, 216) },
- {"snow1" , PALETTERGB (255, 250, 250) },
- {"snow2" , PALETTERGB (238, 233, 233) },
- {"snow3" , PALETTERGB (205, 201, 201) },
- {"snow4" , PALETTERGB (139, 137, 137) },
- {"seashell1" , PALETTERGB (255, 245, 238) },
- {"seashell2" , PALETTERGB (238, 229, 222) },
- {"seashell3" , PALETTERGB (205, 197, 191) },
- {"seashell4" , PALETTERGB (139, 134, 130) },
- {"AntiqueWhite1" , PALETTERGB (255, 239, 219) },
- {"AntiqueWhite2" , PALETTERGB (238, 223, 204) },
- {"AntiqueWhite3" , PALETTERGB (205, 192, 176) },
- {"AntiqueWhite4" , PALETTERGB (139, 131, 120) },
- {"bisque1" , PALETTERGB (255, 228, 196) },
- {"bisque2" , PALETTERGB (238, 213, 183) },
- {"bisque3" , PALETTERGB (205, 183, 158) },
- {"bisque4" , PALETTERGB (139, 125, 107) },
- {"PeachPuff1" , PALETTERGB (255, 218, 185) },
- {"PeachPuff2" , PALETTERGB (238, 203, 173) },
- {"PeachPuff3" , PALETTERGB (205, 175, 149) },
- {"PeachPuff4" , PALETTERGB (139, 119, 101) },
- {"NavajoWhite1" , PALETTERGB (255, 222, 173) },
- {"NavajoWhite2" , PALETTERGB (238, 207, 161) },
- {"NavajoWhite3" , PALETTERGB (205, 179, 139) },
- {"NavajoWhite4" , PALETTERGB (139, 121, 94) },
- {"LemonChiffon1" , PALETTERGB (255, 250, 205) },
- {"LemonChiffon2" , PALETTERGB (238, 233, 191) },
- {"LemonChiffon3" , PALETTERGB (205, 201, 165) },
- {"LemonChiffon4" , PALETTERGB (139, 137, 112) },
- {"cornsilk1" , PALETTERGB (255, 248, 220) },
- {"cornsilk2" , PALETTERGB (238, 232, 205) },
- {"cornsilk3" , PALETTERGB (205, 200, 177) },
- {"cornsilk4" , PALETTERGB (139, 136, 120) },
- {"ivory1" , PALETTERGB (255, 255, 240) },
- {"ivory2" , PALETTERGB (238, 238, 224) },
- {"ivory3" , PALETTERGB (205, 205, 193) },
- {"ivory4" , PALETTERGB (139, 139, 131) },
- {"honeydew1" , PALETTERGB (240, 255, 240) },
- {"honeydew2" , PALETTERGB (224, 238, 224) },
- {"honeydew3" , PALETTERGB (193, 205, 193) },
- {"honeydew4" , PALETTERGB (131, 139, 131) },
- {"LavenderBlush1" , PALETTERGB (255, 240, 245) },
- {"LavenderBlush2" , PALETTERGB (238, 224, 229) },
- {"LavenderBlush3" , PALETTERGB (205, 193, 197) },
- {"LavenderBlush4" , PALETTERGB (139, 131, 134) },
- {"MistyRose1" , PALETTERGB (255, 228, 225) },
- {"MistyRose2" , PALETTERGB (238, 213, 210) },
- {"MistyRose3" , PALETTERGB (205, 183, 181) },
- {"MistyRose4" , PALETTERGB (139, 125, 123) },
- {"azure1" , PALETTERGB (240, 255, 255) },
- {"azure2" , PALETTERGB (224, 238, 238) },
- {"azure3" , PALETTERGB (193, 205, 205) },
- {"azure4" , PALETTERGB (131, 139, 139) },
- {"SlateBlue1" , PALETTERGB (131, 111, 255) },
- {"SlateBlue2" , PALETTERGB (122, 103, 238) },
- {"SlateBlue3" , PALETTERGB (105, 89, 205) },
- {"SlateBlue4" , PALETTERGB (71, 60, 139) },
- {"RoyalBlue1" , PALETTERGB (72, 118, 255) },
- {"RoyalBlue2" , PALETTERGB (67, 110, 238) },
- {"RoyalBlue3" , PALETTERGB (58, 95, 205) },
- {"RoyalBlue4" , PALETTERGB (39, 64, 139) },
- {"blue1" , PALETTERGB (0, 0, 255) },
- {"blue2" , PALETTERGB (0, 0, 238) },
- {"blue3" , PALETTERGB (0, 0, 205) },
- {"blue4" , PALETTERGB (0, 0, 139) },
- {"DodgerBlue1" , PALETTERGB (30, 144, 255) },
- {"DodgerBlue2" , PALETTERGB (28, 134, 238) },
- {"DodgerBlue3" , PALETTERGB (24, 116, 205) },
- {"DodgerBlue4" , PALETTERGB (16, 78, 139) },
- {"SteelBlue1" , PALETTERGB (99, 184, 255) },
- {"SteelBlue2" , PALETTERGB (92, 172, 238) },
- {"SteelBlue3" , PALETTERGB (79, 148, 205) },
- {"SteelBlue4" , PALETTERGB (54, 100, 139) },
- {"DeepSkyBlue1" , PALETTERGB (0, 191, 255) },
- {"DeepSkyBlue2" , PALETTERGB (0, 178, 238) },
- {"DeepSkyBlue3" , PALETTERGB (0, 154, 205) },
- {"DeepSkyBlue4" , PALETTERGB (0, 104, 139) },
- {"SkyBlue1" , PALETTERGB (135, 206, 255) },
- {"SkyBlue2" , PALETTERGB (126, 192, 238) },
- {"SkyBlue3" , PALETTERGB (108, 166, 205) },
- {"SkyBlue4" , PALETTERGB (74, 112, 139) },
- {"LightSkyBlue1" , PALETTERGB (176, 226, 255) },
- {"LightSkyBlue2" , PALETTERGB (164, 211, 238) },
- {"LightSkyBlue3" , PALETTERGB (141, 182, 205) },
- {"LightSkyBlue4" , PALETTERGB (96, 123, 139) },
- {"SlateGray1" , PALETTERGB (198, 226, 255) },
- {"SlateGray2" , PALETTERGB (185, 211, 238) },
- {"SlateGray3" , PALETTERGB (159, 182, 205) },
- {"SlateGray4" , PALETTERGB (108, 123, 139) },
- {"LightSteelBlue1" , PALETTERGB (202, 225, 255) },
- {"LightSteelBlue2" , PALETTERGB (188, 210, 238) },
- {"LightSteelBlue3" , PALETTERGB (162, 181, 205) },
- {"LightSteelBlue4" , PALETTERGB (110, 123, 139) },
- {"LightBlue1" , PALETTERGB (191, 239, 255) },
- {"LightBlue2" , PALETTERGB (178, 223, 238) },
- {"LightBlue3" , PALETTERGB (154, 192, 205) },
- {"LightBlue4" , PALETTERGB (104, 131, 139) },
- {"LightCyan1" , PALETTERGB (224, 255, 255) },
- {"LightCyan2" , PALETTERGB (209, 238, 238) },
- {"LightCyan3" , PALETTERGB (180, 205, 205) },
- {"LightCyan4" , PALETTERGB (122, 139, 139) },
- {"PaleTurquoise1" , PALETTERGB (187, 255, 255) },
- {"PaleTurquoise2" , PALETTERGB (174, 238, 238) },
- {"PaleTurquoise3" , PALETTERGB (150, 205, 205) },
- {"PaleTurquoise4" , PALETTERGB (102, 139, 139) },
- {"CadetBlue1" , PALETTERGB (152, 245, 255) },
- {"CadetBlue2" , PALETTERGB (142, 229, 238) },
- {"CadetBlue3" , PALETTERGB (122, 197, 205) },
- {"CadetBlue4" , PALETTERGB (83, 134, 139) },
- {"turquoise1" , PALETTERGB (0, 245, 255) },
- {"turquoise2" , PALETTERGB (0, 229, 238) },
- {"turquoise3" , PALETTERGB (0, 197, 205) },
- {"turquoise4" , PALETTERGB (0, 134, 139) },
- {"cyan1" , PALETTERGB (0, 255, 255) },
- {"cyan2" , PALETTERGB (0, 238, 238) },
- {"cyan3" , PALETTERGB (0, 205, 205) },
- {"cyan4" , PALETTERGB (0, 139, 139) },
- {"DarkSlateGray1" , PALETTERGB (151, 255, 255) },
- {"DarkSlateGray2" , PALETTERGB (141, 238, 238) },
- {"DarkSlateGray3" , PALETTERGB (121, 205, 205) },
- {"DarkSlateGray4" , PALETTERGB (82, 139, 139) },
- {"aquamarine1" , PALETTERGB (127, 255, 212) },
- {"aquamarine2" , PALETTERGB (118, 238, 198) },
- {"aquamarine3" , PALETTERGB (102, 205, 170) },
- {"aquamarine4" , PALETTERGB (69, 139, 116) },
- {"DarkSeaGreen1" , PALETTERGB (193, 255, 193) },
- {"DarkSeaGreen2" , PALETTERGB (180, 238, 180) },
- {"DarkSeaGreen3" , PALETTERGB (155, 205, 155) },
- {"DarkSeaGreen4" , PALETTERGB (105, 139, 105) },
- {"SeaGreen1" , PALETTERGB (84, 255, 159) },
- {"SeaGreen2" , PALETTERGB (78, 238, 148) },
- {"SeaGreen3" , PALETTERGB (67, 205, 128) },
- {"SeaGreen4" , PALETTERGB (46, 139, 87) },
- {"PaleGreen1" , PALETTERGB (154, 255, 154) },
- {"PaleGreen2" , PALETTERGB (144, 238, 144) },
- {"PaleGreen3" , PALETTERGB (124, 205, 124) },
- {"PaleGreen4" , PALETTERGB (84, 139, 84) },
- {"SpringGreen1" , PALETTERGB (0, 255, 127) },
- {"SpringGreen2" , PALETTERGB (0, 238, 118) },
- {"SpringGreen3" , PALETTERGB (0, 205, 102) },
- {"SpringGreen4" , PALETTERGB (0, 139, 69) },
- {"green1" , PALETTERGB (0, 255, 0) },
- {"green2" , PALETTERGB (0, 238, 0) },
- {"green3" , PALETTERGB (0, 205, 0) },
- {"green4" , PALETTERGB (0, 139, 0) },
- {"chartreuse1" , PALETTERGB (127, 255, 0) },
- {"chartreuse2" , PALETTERGB (118, 238, 0) },
- {"chartreuse3" , PALETTERGB (102, 205, 0) },
- {"chartreuse4" , PALETTERGB (69, 139, 0) },
- {"OliveDrab1" , PALETTERGB (192, 255, 62) },
- {"OliveDrab2" , PALETTERGB (179, 238, 58) },
- {"OliveDrab3" , PALETTERGB (154, 205, 50) },
- {"OliveDrab4" , PALETTERGB (105, 139, 34) },
- {"DarkOliveGreen1" , PALETTERGB (202, 255, 112) },
- {"DarkOliveGreen2" , PALETTERGB (188, 238, 104) },
- {"DarkOliveGreen3" , PALETTERGB (162, 205, 90) },
- {"DarkOliveGreen4" , PALETTERGB (110, 139, 61) },
- {"khaki1" , PALETTERGB (255, 246, 143) },
- {"khaki2" , PALETTERGB (238, 230, 133) },
- {"khaki3" , PALETTERGB (205, 198, 115) },
- {"khaki4" , PALETTERGB (139, 134, 78) },
- {"LightGoldenrod1" , PALETTERGB (255, 236, 139) },
- {"LightGoldenrod2" , PALETTERGB (238, 220, 130) },
- {"LightGoldenrod3" , PALETTERGB (205, 190, 112) },
- {"LightGoldenrod4" , PALETTERGB (139, 129, 76) },
- {"LightYellow1" , PALETTERGB (255, 255, 224) },
- {"LightYellow2" , PALETTERGB (238, 238, 209) },
- {"LightYellow3" , PALETTERGB (205, 205, 180) },
- {"LightYellow4" , PALETTERGB (139, 139, 122) },
- {"yellow1" , PALETTERGB (255, 255, 0) },
- {"yellow2" , PALETTERGB (238, 238, 0) },
- {"yellow3" , PALETTERGB (205, 205, 0) },
- {"yellow4" , PALETTERGB (139, 139, 0) },
- {"gold1" , PALETTERGB (255, 215, 0) },
- {"gold2" , PALETTERGB (238, 201, 0) },
- {"gold3" , PALETTERGB (205, 173, 0) },
- {"gold4" , PALETTERGB (139, 117, 0) },
- {"goldenrod1" , PALETTERGB (255, 193, 37) },
- {"goldenrod2" , PALETTERGB (238, 180, 34) },
- {"goldenrod3" , PALETTERGB (205, 155, 29) },
- {"goldenrod4" , PALETTERGB (139, 105, 20) },
- {"DarkGoldenrod1" , PALETTERGB (255, 185, 15) },
- {"DarkGoldenrod2" , PALETTERGB (238, 173, 14) },
- {"DarkGoldenrod3" , PALETTERGB (205, 149, 12) },
- {"DarkGoldenrod4" , PALETTERGB (139, 101, 8) },
- {"RosyBrown1" , PALETTERGB (255, 193, 193) },
- {"RosyBrown2" , PALETTERGB (238, 180, 180) },
- {"RosyBrown3" , PALETTERGB (205, 155, 155) },
- {"RosyBrown4" , PALETTERGB (139, 105, 105) },
- {"IndianRed1" , PALETTERGB (255, 106, 106) },
- {"IndianRed2" , PALETTERGB (238, 99, 99) },
- {"IndianRed3" , PALETTERGB (205, 85, 85) },
- {"IndianRed4" , PALETTERGB (139, 58, 58) },
- {"sienna1" , PALETTERGB (255, 130, 71) },
- {"sienna2" , PALETTERGB (238, 121, 66) },
- {"sienna3" , PALETTERGB (205, 104, 57) },
- {"sienna4" , PALETTERGB (139, 71, 38) },
- {"burlywood1" , PALETTERGB (255, 211, 155) },
- {"burlywood2" , PALETTERGB (238, 197, 145) },
- {"burlywood3" , PALETTERGB (205, 170, 125) },
- {"burlywood4" , PALETTERGB (139, 115, 85) },
- {"wheat1" , PALETTERGB (255, 231, 186) },
- {"wheat2" , PALETTERGB (238, 216, 174) },
- {"wheat3" , PALETTERGB (205, 186, 150) },
- {"wheat4" , PALETTERGB (139, 126, 102) },
- {"tan1" , PALETTERGB (255, 165, 79) },
- {"tan2" , PALETTERGB (238, 154, 73) },
- {"tan3" , PALETTERGB (205, 133, 63) },
- {"tan4" , PALETTERGB (139, 90, 43) },
- {"chocolate1" , PALETTERGB (255, 127, 36) },
- {"chocolate2" , PALETTERGB (238, 118, 33) },
- {"chocolate3" , PALETTERGB (205, 102, 29) },
- {"chocolate4" , PALETTERGB (139, 69, 19) },
- {"firebrick1" , PALETTERGB (255, 48, 48) },
- {"firebrick2" , PALETTERGB (238, 44, 44) },
- {"firebrick3" , PALETTERGB (205, 38, 38) },
- {"firebrick4" , PALETTERGB (139, 26, 26) },
- {"brown1" , PALETTERGB (255, 64, 64) },
- {"brown2" , PALETTERGB (238, 59, 59) },
- {"brown3" , PALETTERGB (205, 51, 51) },
- {"brown4" , PALETTERGB (139, 35, 35) },
- {"salmon1" , PALETTERGB (255, 140, 105) },
- {"salmon2" , PALETTERGB (238, 130, 98) },
- {"salmon3" , PALETTERGB (205, 112, 84) },
- {"salmon4" , PALETTERGB (139, 76, 57) },
- {"LightSalmon1" , PALETTERGB (255, 160, 122) },
- {"LightSalmon2" , PALETTERGB (238, 149, 114) },
- {"LightSalmon3" , PALETTERGB (205, 129, 98) },
- {"LightSalmon4" , PALETTERGB (139, 87, 66) },
- {"orange1" , PALETTERGB (255, 165, 0) },
- {"orange2" , PALETTERGB (238, 154, 0) },
- {"orange3" , PALETTERGB (205, 133, 0) },
- {"orange4" , PALETTERGB (139, 90, 0) },
- {"DarkOrange1" , PALETTERGB (255, 127, 0) },
- {"DarkOrange2" , PALETTERGB (238, 118, 0) },
- {"DarkOrange3" , PALETTERGB (205, 102, 0) },
- {"DarkOrange4" , PALETTERGB (139, 69, 0) },
- {"coral1" , PALETTERGB (255, 114, 86) },
- {"coral2" , PALETTERGB (238, 106, 80) },
- {"coral3" , PALETTERGB (205, 91, 69) },
- {"coral4" , PALETTERGB (139, 62, 47) },
- {"tomato1" , PALETTERGB (255, 99, 71) },
- {"tomato2" , PALETTERGB (238, 92, 66) },
- {"tomato3" , PALETTERGB (205, 79, 57) },
- {"tomato4" , PALETTERGB (139, 54, 38) },
- {"OrangeRed1" , PALETTERGB (255, 69, 0) },
- {"OrangeRed2" , PALETTERGB (238, 64, 0) },
- {"OrangeRed3" , PALETTERGB (205, 55, 0) },
- {"OrangeRed4" , PALETTERGB (139, 37, 0) },
- {"red1" , PALETTERGB (255, 0, 0) },
- {"red2" , PALETTERGB (238, 0, 0) },
- {"red3" , PALETTERGB (205, 0, 0) },
- {"red4" , PALETTERGB (139, 0, 0) },
- {"DeepPink1" , PALETTERGB (255, 20, 147) },
- {"DeepPink2" , PALETTERGB (238, 18, 137) },
- {"DeepPink3" , PALETTERGB (205, 16, 118) },
- {"DeepPink4" , PALETTERGB (139, 10, 80) },
- {"HotPink1" , PALETTERGB (255, 110, 180) },
- {"HotPink2" , PALETTERGB (238, 106, 167) },
- {"HotPink3" , PALETTERGB (205, 96, 144) },
- {"HotPink4" , PALETTERGB (139, 58, 98) },
- {"pink1" , PALETTERGB (255, 181, 197) },
- {"pink2" , PALETTERGB (238, 169, 184) },
- {"pink3" , PALETTERGB (205, 145, 158) },
- {"pink4" , PALETTERGB (139, 99, 108) },
- {"LightPink1" , PALETTERGB (255, 174, 185) },
- {"LightPink2" , PALETTERGB (238, 162, 173) },
- {"LightPink3" , PALETTERGB (205, 140, 149) },
- {"LightPink4" , PALETTERGB (139, 95, 101) },
- {"PaleVioletRed1" , PALETTERGB (255, 130, 171) },
- {"PaleVioletRed2" , PALETTERGB (238, 121, 159) },
- {"PaleVioletRed3" , PALETTERGB (205, 104, 137) },
- {"PaleVioletRed4" , PALETTERGB (139, 71, 93) },
- {"maroon1" , PALETTERGB (255, 52, 179) },
- {"maroon2" , PALETTERGB (238, 48, 167) },
- {"maroon3" , PALETTERGB (205, 41, 144) },
- {"maroon4" , PALETTERGB (139, 28, 98) },
- {"VioletRed1" , PALETTERGB (255, 62, 150) },
- {"VioletRed2" , PALETTERGB (238, 58, 140) },
- {"VioletRed3" , PALETTERGB (205, 50, 120) },
- {"VioletRed4" , PALETTERGB (139, 34, 82) },
- {"magenta1" , PALETTERGB (255, 0, 255) },
- {"magenta2" , PALETTERGB (238, 0, 238) },
- {"magenta3" , PALETTERGB (205, 0, 205) },
- {"magenta4" , PALETTERGB (139, 0, 139) },
- {"orchid1" , PALETTERGB (255, 131, 250) },
- {"orchid2" , PALETTERGB (238, 122, 233) },
- {"orchid3" , PALETTERGB (205, 105, 201) },
- {"orchid4" , PALETTERGB (139, 71, 137) },
- {"plum1" , PALETTERGB (255, 187, 255) },
- {"plum2" , PALETTERGB (238, 174, 238) },
- {"plum3" , PALETTERGB (205, 150, 205) },
- {"plum4" , PALETTERGB (139, 102, 139) },
- {"MediumOrchid1" , PALETTERGB (224, 102, 255) },
- {"MediumOrchid2" , PALETTERGB (209, 95, 238) },
- {"MediumOrchid3" , PALETTERGB (180, 82, 205) },
- {"MediumOrchid4" , PALETTERGB (122, 55, 139) },
- {"DarkOrchid1" , PALETTERGB (191, 62, 255) },
- {"DarkOrchid2" , PALETTERGB (178, 58, 238) },
- {"DarkOrchid3" , PALETTERGB (154, 50, 205) },
- {"DarkOrchid4" , PALETTERGB (104, 34, 139) },
- {"purple1" , PALETTERGB (155, 48, 255) },
- {"purple2" , PALETTERGB (145, 44, 238) },
- {"purple3" , PALETTERGB (125, 38, 205) },
- {"purple4" , PALETTERGB (85, 26, 139) },
- {"MediumPurple1" , PALETTERGB (171, 130, 255) },
- {"MediumPurple2" , PALETTERGB (159, 121, 238) },
- {"MediumPurple3" , PALETTERGB (137, 104, 205) },
- {"MediumPurple4" , PALETTERGB (93, 71, 139) },
- {"thistle1" , PALETTERGB (255, 225, 255) },
- {"thistle2" , PALETTERGB (238, 210, 238) },
- {"thistle3" , PALETTERGB (205, 181, 205) },
- {"thistle4" , PALETTERGB (139, 123, 139) },
- {"gray0" , PALETTERGB (0, 0, 0) },
- {"grey0" , PALETTERGB (0, 0, 0) },
- {"gray1" , PALETTERGB (3, 3, 3) },
- {"grey1" , PALETTERGB (3, 3, 3) },
- {"gray2" , PALETTERGB (5, 5, 5) },
- {"grey2" , PALETTERGB (5, 5, 5) },
- {"gray3" , PALETTERGB (8, 8, 8) },
- {"grey3" , PALETTERGB (8, 8, 8) },
- {"gray4" , PALETTERGB (10, 10, 10) },
- {"grey4" , PALETTERGB (10, 10, 10) },
- {"gray5" , PALETTERGB (13, 13, 13) },
- {"grey5" , PALETTERGB (13, 13, 13) },
- {"gray6" , PALETTERGB (15, 15, 15) },
- {"grey6" , PALETTERGB (15, 15, 15) },
- {"gray7" , PALETTERGB (18, 18, 18) },
- {"grey7" , PALETTERGB (18, 18, 18) },
- {"gray8" , PALETTERGB (20, 20, 20) },
- {"grey8" , PALETTERGB (20, 20, 20) },
- {"gray9" , PALETTERGB (23, 23, 23) },
- {"grey9" , PALETTERGB (23, 23, 23) },
- {"gray10" , PALETTERGB (26, 26, 26) },
- {"grey10" , PALETTERGB (26, 26, 26) },
- {"gray11" , PALETTERGB (28, 28, 28) },
- {"grey11" , PALETTERGB (28, 28, 28) },
- {"gray12" , PALETTERGB (31, 31, 31) },
- {"grey12" , PALETTERGB (31, 31, 31) },
- {"gray13" , PALETTERGB (33, 33, 33) },
- {"grey13" , PALETTERGB (33, 33, 33) },
- {"gray14" , PALETTERGB (36, 36, 36) },
- {"grey14" , PALETTERGB (36, 36, 36) },
- {"gray15" , PALETTERGB (38, 38, 38) },
- {"grey15" , PALETTERGB (38, 38, 38) },
- {"gray16" , PALETTERGB (41, 41, 41) },
- {"grey16" , PALETTERGB (41, 41, 41) },
- {"gray17" , PALETTERGB (43, 43, 43) },
- {"grey17" , PALETTERGB (43, 43, 43) },
- {"gray18" , PALETTERGB (46, 46, 46) },
- {"grey18" , PALETTERGB (46, 46, 46) },
- {"gray19" , PALETTERGB (48, 48, 48) },
- {"grey19" , PALETTERGB (48, 48, 48) },
- {"gray20" , PALETTERGB (51, 51, 51) },
- {"grey20" , PALETTERGB (51, 51, 51) },
- {"gray21" , PALETTERGB (54, 54, 54) },
- {"grey21" , PALETTERGB (54, 54, 54) },
- {"gray22" , PALETTERGB (56, 56, 56) },
- {"grey22" , PALETTERGB (56, 56, 56) },
- {"gray23" , PALETTERGB (59, 59, 59) },
- {"grey23" , PALETTERGB (59, 59, 59) },
- {"gray24" , PALETTERGB (61, 61, 61) },
- {"grey24" , PALETTERGB (61, 61, 61) },
- {"gray25" , PALETTERGB (64, 64, 64) },
- {"grey25" , PALETTERGB (64, 64, 64) },
- {"gray26" , PALETTERGB (66, 66, 66) },
- {"grey26" , PALETTERGB (66, 66, 66) },
- {"gray27" , PALETTERGB (69, 69, 69) },
- {"grey27" , PALETTERGB (69, 69, 69) },
- {"gray28" , PALETTERGB (71, 71, 71) },
- {"grey28" , PALETTERGB (71, 71, 71) },
- {"gray29" , PALETTERGB (74, 74, 74) },
- {"grey29" , PALETTERGB (74, 74, 74) },
- {"gray30" , PALETTERGB (77, 77, 77) },
- {"grey30" , PALETTERGB (77, 77, 77) },
- {"gray31" , PALETTERGB (79, 79, 79) },
- {"grey31" , PALETTERGB (79, 79, 79) },
- {"gray32" , PALETTERGB (82, 82, 82) },
- {"grey32" , PALETTERGB (82, 82, 82) },
- {"gray33" , PALETTERGB (84, 84, 84) },
- {"grey33" , PALETTERGB (84, 84, 84) },
- {"gray34" , PALETTERGB (87, 87, 87) },
- {"grey34" , PALETTERGB (87, 87, 87) },
- {"gray35" , PALETTERGB (89, 89, 89) },
- {"grey35" , PALETTERGB (89, 89, 89) },
- {"gray36" , PALETTERGB (92, 92, 92) },
- {"grey36" , PALETTERGB (92, 92, 92) },
- {"gray37" , PALETTERGB (94, 94, 94) },
- {"grey37" , PALETTERGB (94, 94, 94) },
- {"gray38" , PALETTERGB (97, 97, 97) },
- {"grey38" , PALETTERGB (97, 97, 97) },
- {"gray39" , PALETTERGB (99, 99, 99) },
- {"grey39" , PALETTERGB (99, 99, 99) },
- {"gray40" , PALETTERGB (102, 102, 102) },
- {"grey40" , PALETTERGB (102, 102, 102) },
- {"gray41" , PALETTERGB (105, 105, 105) },
- {"grey41" , PALETTERGB (105, 105, 105) },
- {"gray42" , PALETTERGB (107, 107, 107) },
- {"grey42" , PALETTERGB (107, 107, 107) },
- {"gray43" , PALETTERGB (110, 110, 110) },
- {"grey43" , PALETTERGB (110, 110, 110) },
- {"gray44" , PALETTERGB (112, 112, 112) },
- {"grey44" , PALETTERGB (112, 112, 112) },
- {"gray45" , PALETTERGB (115, 115, 115) },
- {"grey45" , PALETTERGB (115, 115, 115) },
- {"gray46" , PALETTERGB (117, 117, 117) },
- {"grey46" , PALETTERGB (117, 117, 117) },
- {"gray47" , PALETTERGB (120, 120, 120) },
- {"grey47" , PALETTERGB (120, 120, 120) },
- {"gray48" , PALETTERGB (122, 122, 122) },
- {"grey48" , PALETTERGB (122, 122, 122) },
- {"gray49" , PALETTERGB (125, 125, 125) },
- {"grey49" , PALETTERGB (125, 125, 125) },
- {"gray50" , PALETTERGB (127, 127, 127) },
- {"grey50" , PALETTERGB (127, 127, 127) },
- {"gray51" , PALETTERGB (130, 130, 130) },
- {"grey51" , PALETTERGB (130, 130, 130) },
- {"gray52" , PALETTERGB (133, 133, 133) },
- {"grey52" , PALETTERGB (133, 133, 133) },
- {"gray53" , PALETTERGB (135, 135, 135) },
- {"grey53" , PALETTERGB (135, 135, 135) },
- {"gray54" , PALETTERGB (138, 138, 138) },
- {"grey54" , PALETTERGB (138, 138, 138) },
- {"gray55" , PALETTERGB (140, 140, 140) },
- {"grey55" , PALETTERGB (140, 140, 140) },
- {"gray56" , PALETTERGB (143, 143, 143) },
- {"grey56" , PALETTERGB (143, 143, 143) },
- {"gray57" , PALETTERGB (145, 145, 145) },
- {"grey57" , PALETTERGB (145, 145, 145) },
- {"gray58" , PALETTERGB (148, 148, 148) },
- {"grey58" , PALETTERGB (148, 148, 148) },
- {"gray59" , PALETTERGB (150, 150, 150) },
- {"grey59" , PALETTERGB (150, 150, 150) },
- {"gray60" , PALETTERGB (153, 153, 153) },
- {"grey60" , PALETTERGB (153, 153, 153) },
- {"gray61" , PALETTERGB (156, 156, 156) },
- {"grey61" , PALETTERGB (156, 156, 156) },
- {"gray62" , PALETTERGB (158, 158, 158) },
- {"grey62" , PALETTERGB (158, 158, 158) },
- {"gray63" , PALETTERGB (161, 161, 161) },
- {"grey63" , PALETTERGB (161, 161, 161) },
- {"gray64" , PALETTERGB (163, 163, 163) },
- {"grey64" , PALETTERGB (163, 163, 163) },
- {"gray65" , PALETTERGB (166, 166, 166) },
- {"grey65" , PALETTERGB (166, 166, 166) },
- {"gray66" , PALETTERGB (168, 168, 168) },
- {"grey66" , PALETTERGB (168, 168, 168) },
- {"gray67" , PALETTERGB (171, 171, 171) },
- {"grey67" , PALETTERGB (171, 171, 171) },
- {"gray68" , PALETTERGB (173, 173, 173) },
- {"grey68" , PALETTERGB (173, 173, 173) },
- {"gray69" , PALETTERGB (176, 176, 176) },
- {"grey69" , PALETTERGB (176, 176, 176) },
- {"gray70" , PALETTERGB (179, 179, 179) },
- {"grey70" , PALETTERGB (179, 179, 179) },
- {"gray71" , PALETTERGB (181, 181, 181) },
- {"grey71" , PALETTERGB (181, 181, 181) },
- {"gray72" , PALETTERGB (184, 184, 184) },
- {"grey72" , PALETTERGB (184, 184, 184) },
- {"gray73" , PALETTERGB (186, 186, 186) },
- {"grey73" , PALETTERGB (186, 186, 186) },
- {"gray74" , PALETTERGB (189, 189, 189) },
- {"grey74" , PALETTERGB (189, 189, 189) },
- {"gray75" , PALETTERGB (191, 191, 191) },
- {"grey75" , PALETTERGB (191, 191, 191) },
- {"gray76" , PALETTERGB (194, 194, 194) },
- {"grey76" , PALETTERGB (194, 194, 194) },
- {"gray77" , PALETTERGB (196, 196, 196) },
- {"grey77" , PALETTERGB (196, 196, 196) },
- {"gray78" , PALETTERGB (199, 199, 199) },
- {"grey78" , PALETTERGB (199, 199, 199) },
- {"gray79" , PALETTERGB (201, 201, 201) },
- {"grey79" , PALETTERGB (201, 201, 201) },
- {"gray80" , PALETTERGB (204, 204, 204) },
- {"grey80" , PALETTERGB (204, 204, 204) },
- {"gray81" , PALETTERGB (207, 207, 207) },
- {"grey81" , PALETTERGB (207, 207, 207) },
- {"gray82" , PALETTERGB (209, 209, 209) },
- {"grey82" , PALETTERGB (209, 209, 209) },
- {"gray83" , PALETTERGB (212, 212, 212) },
- {"grey83" , PALETTERGB (212, 212, 212) },
- {"gray84" , PALETTERGB (214, 214, 214) },
- {"grey84" , PALETTERGB (214, 214, 214) },
- {"gray85" , PALETTERGB (217, 217, 217) },
- {"grey85" , PALETTERGB (217, 217, 217) },
- {"gray86" , PALETTERGB (219, 219, 219) },
- {"grey86" , PALETTERGB (219, 219, 219) },
- {"gray87" , PALETTERGB (222, 222, 222) },
- {"grey87" , PALETTERGB (222, 222, 222) },
- {"gray88" , PALETTERGB (224, 224, 224) },
- {"grey88" , PALETTERGB (224, 224, 224) },
- {"gray89" , PALETTERGB (227, 227, 227) },
- {"grey89" , PALETTERGB (227, 227, 227) },
- {"gray90" , PALETTERGB (229, 229, 229) },
- {"grey90" , PALETTERGB (229, 229, 229) },
- {"gray91" , PALETTERGB (232, 232, 232) },
- {"grey91" , PALETTERGB (232, 232, 232) },
- {"gray92" , PALETTERGB (235, 235, 235) },
- {"grey92" , PALETTERGB (235, 235, 235) },
- {"gray93" , PALETTERGB (237, 237, 237) },
- {"grey93" , PALETTERGB (237, 237, 237) },
- {"gray94" , PALETTERGB (240, 240, 240) },
- {"grey94" , PALETTERGB (240, 240, 240) },
- {"gray95" , PALETTERGB (242, 242, 242) },
- {"grey95" , PALETTERGB (242, 242, 242) },
- {"gray96" , PALETTERGB (245, 245, 245) },
- {"grey96" , PALETTERGB (245, 245, 245) },
- {"gray97" , PALETTERGB (247, 247, 247) },
- {"grey97" , PALETTERGB (247, 247, 247) },
- {"gray98" , PALETTERGB (250, 250, 250) },
- {"grey98" , PALETTERGB (250, 250, 250) },
- {"gray99" , PALETTERGB (252, 252, 252) },
- {"grey99" , PALETTERGB (252, 252, 252) },
- {"gray100" , PALETTERGB (255, 255, 255) },
- {"grey100" , PALETTERGB (255, 255, 255) },
- {"DarkGrey" , PALETTERGB (169, 169, 169) },
- {"DarkGray" , PALETTERGB (169, 169, 169) },
- {"DarkBlue" , PALETTERGB (0, 0, 139) },
- {"DarkCyan" , PALETTERGB (0, 139, 139) },
- {"DarkMagenta" , PALETTERGB (139, 0, 139) },
- {"DarkRed" , PALETTERGB (139, 0, 0) },
- {"LightGreen" , PALETTERGB (144, 238, 144) }
+ {"white" , PALETTERGB (255, 255, 255) },
+ {"black" , PALETTERGB (0, 0, 0) },
+ {"snow" , PALETTERGB (255, 250, 250) },
+ {"GhostWhite" , PALETTERGB (248, 248, 255) },
+ {"WhiteSmoke" , PALETTERGB (245, 245, 245) },
+ {"gainsboro" , PALETTERGB (220, 220, 220) },
+ {"FloralWhite" , PALETTERGB (255, 250, 240) },
+ {"OldLace" , PALETTERGB (253, 245, 230) },
+ {"linen" , PALETTERGB (250, 240, 230) },
+ {"AntiqueWhite" , PALETTERGB (250, 235, 215) },
+ {"PapayaWhip" , PALETTERGB (255, 239, 213) },
+ {"BlanchedAlmond" , PALETTERGB (255, 235, 205) },
+ {"bisque" , PALETTERGB (255, 228, 196) },
+ {"PeachPuff" , PALETTERGB (255, 218, 185) },
+ {"NavajoWhite" , PALETTERGB (255, 222, 173) },
+ {"moccasin" , PALETTERGB (255, 228, 181) },
+ {"cornsilk" , PALETTERGB (255, 248, 220) },
+ {"ivory" , PALETTERGB (255, 255, 240) },
+ {"LemonChiffon" , PALETTERGB (255, 250, 205) },
+ {"seashell" , PALETTERGB (255, 245, 238) },
+ {"honeydew" , PALETTERGB (240, 255, 240) },
+ {"MintCream" , PALETTERGB (245, 255, 250) },
+ {"azure" , PALETTERGB (240, 255, 255) },
+ {"AliceBlue" , PALETTERGB (240, 248, 255) },
+ {"lavender" , PALETTERGB (230, 230, 250) },
+ {"LavenderBlush" , PALETTERGB (255, 240, 245) },
+ {"MistyRose" , PALETTERGB (255, 228, 225) },
+ {"DarkSlateGray" , PALETTERGB (47, 79, 79) },
+ {"DarkSlateGrey" , PALETTERGB (47, 79, 79) },
+ {"DimGray" , PALETTERGB (105, 105, 105) },
+ {"DimGrey" , PALETTERGB (105, 105, 105) },
+ {"SlateGray" , PALETTERGB (112, 128, 144) },
+ {"SlateGrey" , PALETTERGB (112, 128, 144) },
+ {"LightSlateGray" , PALETTERGB (119, 136, 153) },
+ {"LightSlateGrey" , PALETTERGB (119, 136, 153) },
+ {"gray" , PALETTERGB (190, 190, 190) },
+ {"grey" , PALETTERGB (190, 190, 190) },
+ {"LightGrey" , PALETTERGB (211, 211, 211) },
+ {"LightGray" , PALETTERGB (211, 211, 211) },
+ {"MidnightBlue" , PALETTERGB (25, 25, 112) },
+ {"navy" , PALETTERGB (0, 0, 128) },
+ {"NavyBlue" , PALETTERGB (0, 0, 128) },
+ {"CornflowerBlue" , PALETTERGB (100, 149, 237) },
+ {"DarkSlateBlue" , PALETTERGB (72, 61, 139) },
+ {"SlateBlue" , PALETTERGB (106, 90, 205) },
+ {"MediumSlateBlue" , PALETTERGB (123, 104, 238) },
+ {"LightSlateBlue" , PALETTERGB (132, 112, 255) },
+ {"MediumBlue" , PALETTERGB (0, 0, 205) },
+ {"RoyalBlue" , PALETTERGB (65, 105, 225) },
+ {"blue" , PALETTERGB (0, 0, 255) },
+ {"DodgerBlue" , PALETTERGB (30, 144, 255) },
+ {"DeepSkyBlue" , PALETTERGB (0, 191, 255) },
+ {"SkyBlue" , PALETTERGB (135, 206, 235) },
+ {"LightSkyBlue" , PALETTERGB (135, 206, 250) },
+ {"SteelBlue" , PALETTERGB (70, 130, 180) },
+ {"LightSteelBlue" , PALETTERGB (176, 196, 222) },
+ {"LightBlue" , PALETTERGB (173, 216, 230) },
+ {"PowderBlue" , PALETTERGB (176, 224, 230) },
+ {"PaleTurquoise" , PALETTERGB (175, 238, 238) },
+ {"DarkTurquoise" , PALETTERGB (0, 206, 209) },
+ {"MediumTurquoise" , PALETTERGB (72, 209, 204) },
+ {"turquoise" , PALETTERGB (64, 224, 208) },
+ {"cyan" , PALETTERGB (0, 255, 255) },
+ {"LightCyan" , PALETTERGB (224, 255, 255) },
+ {"CadetBlue" , PALETTERGB (95, 158, 160) },
+ {"MediumAquamarine" , PALETTERGB (102, 205, 170) },
+ {"aquamarine" , PALETTERGB (127, 255, 212) },
+ {"DarkGreen" , PALETTERGB (0, 128, 0) }, /* Adjusted */
+ {"DarkOliveGreen" , PALETTERGB (85, 107, 47) },
+ {"DarkSeaGreen" , PALETTERGB (143, 188, 143) },
+ {"SeaGreen" , PALETTERGB (46, 139, 87) },
+ {"MediumSeaGreen" , PALETTERGB (60, 179, 113) },
+ {"LightSeaGreen" , PALETTERGB (32, 178, 170) },
+ {"PaleGreen" , PALETTERGB (152, 251, 152) },
+ {"SpringGreen" , PALETTERGB (0, 255, 127) },
+ {"LawnGreen" , PALETTERGB (124, 252, 0) },
+ {"green" , PALETTERGB (0, 255, 0) },
+ {"chartreuse" , PALETTERGB (127, 255, 0) },
+ {"MediumSpringGreen" , PALETTERGB (0, 250, 154) },
+ {"GreenYellow" , PALETTERGB (173, 255, 47) },
+ {"LimeGreen" , PALETTERGB (50, 205, 50) },
+ {"YellowGreen" , PALETTERGB (154, 205, 50) },
+ {"ForestGreen" , PALETTERGB (34, 139, 34) },
+ {"OliveDrab" , PALETTERGB (107, 142, 35) },
+ {"DarkKhaki" , PALETTERGB (189, 183, 107) },
+ {"khaki" , PALETTERGB (240, 230, 140) },
+ {"PaleGoldenrod" , PALETTERGB (238, 232, 170) },
+ {"LightGoldenrodYellow", PALETTERGB (250, 250, 210) },
+ {"LightYellow" , PALETTERGB (255, 255, 224) },
+ {"LightYellow" , PALETTERGB (255, 255, 225) }, /* Adjusted */
+ {"yellow" , PALETTERGB (255, 255, 0) },
+ {"gold" , PALETTERGB (255, 215, 0) },
+ {"LightGoldenrod" , PALETTERGB (238, 221, 130) },
+ {"goldenrod" , PALETTERGB (218, 165, 32) },
+ {"DarkGoldenrod" , PALETTERGB (184, 134, 11) },
+ {"RosyBrown" , PALETTERGB (188, 143, 143) },
+ {"IndianRed" , PALETTERGB (205, 92, 92) },
+ {"SaddleBrown" , PALETTERGB (139, 69, 19) },
+ {"sienna" , PALETTERGB (160, 82, 45) },
+ {"peru" , PALETTERGB (205, 133, 63) },
+ {"burlywood" , PALETTERGB (222, 184, 135) },
+ {"beige" , PALETTERGB (245, 245, 220) },
+ {"wheat" , PALETTERGB (245, 222, 179) },
+ {"SandyBrown" , PALETTERGB (244, 164, 96) },
+ {"tan" , PALETTERGB (210, 180, 140) },
+ {"chocolate" , PALETTERGB (210, 105, 30) },
+ {"firebrick" , PALETTERGB (178, 34, 34) },
+ {"brown" , PALETTERGB (165, 42, 42) },
+ {"DarkSalmon" , PALETTERGB (233, 150, 122) },
+ {"salmon" , PALETTERGB (250, 128, 114) },
+ {"LightSalmon" , PALETTERGB (255, 160, 122) },
+ {"orange" , PALETTERGB (255, 165, 0) },
+ {"DarkOrange" , PALETTERGB (255, 140, 0) },
+ {"coral" , PALETTERGB (255, 127, 80) },
+ {"LightCoral" , PALETTERGB (240, 128, 128) },
+ {"tomato" , PALETTERGB (255, 99, 71) },
+ {"OrangeRed" , PALETTERGB (255, 69, 0) },
+ {"red" , PALETTERGB (255, 0, 0) },
+ {"HotPink" , PALETTERGB (255, 105, 180) },
+ {"DeepPink" , PALETTERGB (255, 20, 147) },
+ {"pink" , PALETTERGB (255, 192, 203) },
+ {"LightPink" , PALETTERGB (255, 182, 193) },
+ {"PaleVioletRed" , PALETTERGB (219, 112, 147) },
+ {"maroon" , PALETTERGB (176, 48, 96) },
+ {"MediumVioletRed" , PALETTERGB (199, 21, 133) },
+ {"VioletRed" , PALETTERGB (208, 32, 144) },
+ {"magenta" , PALETTERGB (255, 0, 255) },
+ {"violet" , PALETTERGB (238, 130, 238) },
+ {"plum" , PALETTERGB (221, 160, 221) },
+ {"orchid" , PALETTERGB (218, 112, 214) },
+ {"MediumOrchid" , PALETTERGB (186, 85, 211) },
+ {"DarkOrchid" , PALETTERGB (153, 50, 204) },
+ {"DarkViolet" , PALETTERGB (148, 0, 211) },
+ {"BlueViolet" , PALETTERGB (138, 43, 226) },
+ {"purple" , PALETTERGB (160, 32, 240) },
+ {"MediumPurple" , PALETTERGB (147, 112, 219) },
+ {"thistle" , PALETTERGB (216, 191, 216) },
+ {"snow1" , PALETTERGB (255, 250, 250) },
+ {"snow2" , PALETTERGB (238, 233, 233) },
+ {"snow3" , PALETTERGB (205, 201, 201) },
+ {"snow4" , PALETTERGB (139, 137, 137) },
+ {"seashell1" , PALETTERGB (255, 245, 238) },
+ {"seashell2" , PALETTERGB (238, 229, 222) },
+ {"seashell3" , PALETTERGB (205, 197, 191) },
+ {"seashell4" , PALETTERGB (139, 134, 130) },
+ {"AntiqueWhite1" , PALETTERGB (255, 239, 219) },
+ {"AntiqueWhite2" , PALETTERGB (238, 223, 204) },
+ {"AntiqueWhite3" , PALETTERGB (205, 192, 176) },
+ {"AntiqueWhite4" , PALETTERGB (139, 131, 120) },
+ {"bisque1" , PALETTERGB (255, 228, 196) },
+ {"bisque2" , PALETTERGB (238, 213, 183) },
+ {"bisque3" , PALETTERGB (205, 183, 158) },
+ {"bisque4" , PALETTERGB (139, 125, 107) },
+ {"PeachPuff1" , PALETTERGB (255, 218, 185) },
+ {"PeachPuff2" , PALETTERGB (238, 203, 173) },
+ {"PeachPuff3" , PALETTERGB (205, 175, 149) },
+ {"PeachPuff4" , PALETTERGB (139, 119, 101) },
+ {"NavajoWhite1" , PALETTERGB (255, 222, 173) },
+ {"NavajoWhite2" , PALETTERGB (238, 207, 161) },
+ {"NavajoWhite3" , PALETTERGB (205, 179, 139) },
+ {"NavajoWhite4" , PALETTERGB (139, 121, 94) },
+ {"LemonChiffon1" , PALETTERGB (255, 250, 205) },
+ {"LemonChiffon2" , PALETTERGB (238, 233, 191) },
+ {"LemonChiffon3" , PALETTERGB (205, 201, 165) },
+ {"LemonChiffon4" , PALETTERGB (139, 137, 112) },
+ {"cornsilk1" , PALETTERGB (255, 248, 220) },
+ {"cornsilk2" , PALETTERGB (238, 232, 205) },
+ {"cornsilk3" , PALETTERGB (205, 200, 177) },
+ {"cornsilk4" , PALETTERGB (139, 136, 120) },
+ {"ivory1" , PALETTERGB (255, 255, 240) },
+ {"ivory2" , PALETTERGB (240, 240, 208) }, /* Adjusted */
+ {"ivory3" , PALETTERGB (205, 205, 193) },
+ {"ivory4" , PALETTERGB (139, 139, 131) },
+ {"honeydew1" , PALETTERGB (240, 255, 240) },
+ {"honeydew2" , PALETTERGB (224, 238, 224) },
+ {"honeydew3" , PALETTERGB (193, 205, 193) },
+ {"honeydew4" , PALETTERGB (131, 139, 131) },
+ {"LavenderBlush1" , PALETTERGB (255, 240, 245) },
+ {"LavenderBlush2" , PALETTERGB (238, 224, 229) },
+ {"LavenderBlush3" , PALETTERGB (205, 193, 197) },
+ {"LavenderBlush4" , PALETTERGB (139, 131, 134) },
+ {"MistyRose1" , PALETTERGB (255, 228, 225) },
+ {"MistyRose2" , PALETTERGB (238, 213, 210) },
+ {"MistyRose3" , PALETTERGB (205, 183, 181) },
+ {"MistyRose4" , PALETTERGB (139, 125, 123) },
+ {"azure1" , PALETTERGB (240, 255, 255) },
+ {"azure2" , PALETTERGB (224, 238, 238) },
+ {"azure3" , PALETTERGB (193, 205, 205) },
+ {"azure4" , PALETTERGB (131, 139, 139) },
+ {"SlateBlue1" , PALETTERGB (131, 111, 255) },
+ {"SlateBlue2" , PALETTERGB (122, 103, 238) },
+ {"SlateBlue3" , PALETTERGB (105, 89, 205) },
+ {"SlateBlue4" , PALETTERGB (71, 60, 139) },
+ {"RoyalBlue1" , PALETTERGB (72, 118, 255) },
+ {"RoyalBlue2" , PALETTERGB (67, 110, 238) },
+ {"RoyalBlue3" , PALETTERGB (58, 95, 205) },
+ {"RoyalBlue4" , PALETTERGB (39, 64, 139) },
+ {"blue1" , PALETTERGB (0, 0, 255) },
+ {"blue2" , PALETTERGB (0, 0, 238) },
+ {"blue3" , PALETTERGB (0, 0, 205) },
+ {"blue4" , PALETTERGB (0, 0, 139) },
+ {"DodgerBlue1" , PALETTERGB (30, 144, 255) },
+ {"DodgerBlue2" , PALETTERGB (28, 134, 238) },
+ {"DodgerBlue3" , PALETTERGB (24, 116, 205) },
+ {"DodgerBlue4" , PALETTERGB (16, 78, 139) },
+ {"SteelBlue1" , PALETTERGB (99, 184, 255) },
+ {"SteelBlue2" , PALETTERGB (92, 172, 238) },
+ {"SteelBlue3" , PALETTERGB (79, 148, 205) },
+ {"SteelBlue4" , PALETTERGB (54, 100, 139) },
+ {"DeepSkyBlue1" , PALETTERGB (0, 191, 255) },
+ {"DeepSkyBlue2" , PALETTERGB (0, 178, 238) },
+ {"DeepSkyBlue3" , PALETTERGB (0, 154, 205) },
+ {"DeepSkyBlue4" , PALETTERGB (0, 104, 139) },
+ {"SkyBlue1" , PALETTERGB (135, 206, 255) },
+ {"SkyBlue2" , PALETTERGB (126, 192, 238) },
+ {"SkyBlue3" , PALETTERGB (108, 166, 205) },
+ {"SkyBlue4" , PALETTERGB (74, 112, 139) },
+ {"LightSkyBlue1" , PALETTERGB (176, 226, 255) },
+ {"LightSkyBlue2" , PALETTERGB (164, 211, 238) },
+ {"LightSkyBlue3" , PALETTERGB (141, 182, 205) },
+ {"LightSkyBlue4" , PALETTERGB (96, 123, 139) },
+ {"SlateGray1" , PALETTERGB (198, 226, 255) },
+ {"SlateGray2" , PALETTERGB (185, 211, 238) },
+ {"SlateGray3" , PALETTERGB (159, 182, 205) },
+ {"SlateGray4" , PALETTERGB (108, 123, 139) },
+ {"LightSteelBlue1" , PALETTERGB (202, 225, 255) },
+ {"LightSteelBlue2" , PALETTERGB (188, 210, 238) },
+ {"LightSteelBlue3" , PALETTERGB (162, 181, 205) },
+ {"LightSteelBlue4" , PALETTERGB (110, 123, 139) },
+ {"LightBlue1" , PALETTERGB (191, 239, 255) },
+ {"LightBlue2" , PALETTERGB (178, 223, 238) },
+ {"LightBlue3" , PALETTERGB (154, 192, 205) },
+ {"LightBlue4" , PALETTERGB (104, 131, 139) },
+ {"LightCyan1" , PALETTERGB (224, 255, 255) },
+ {"LightCyan2" , PALETTERGB (209, 238, 238) },
+ {"LightCyan3" , PALETTERGB (180, 205, 205) },
+ {"LightCyan4" , PALETTERGB (122, 139, 139) },
+ {"PaleTurquoise1" , PALETTERGB (187, 255, 255) },
+ {"PaleTurquoise2" , PALETTERGB (174, 238, 238) },
+ {"PaleTurquoise3" , PALETTERGB (150, 205, 205) },
+ {"PaleTurquoise4" , PALETTERGB (102, 139, 139) },
+ {"CadetBlue1" , PALETTERGB (152, 245, 255) },
+ {"CadetBlue2" , PALETTERGB (144, 220, 240) }, /* Adjusted */
+ {"CadetBlue3" , PALETTERGB (122, 197, 205) },
+ {"CadetBlue4" , PALETTERGB (83, 134, 139) },
+ {"turquoise1" , PALETTERGB (0, 245, 255) },
+ {"turquoise2" , PALETTERGB (0, 229, 238) },
+ {"turquoise3" , PALETTERGB (0, 197, 205) },
+ {"turquoise4" , PALETTERGB (0, 134, 139) },
+ {"cyan1" , PALETTERGB (0, 255, 255) },
+ {"cyan2" , PALETTERGB (0, 238, 238) },
+ {"cyan3" , PALETTERGB (0, 205, 205) },
+ {"cyan4" , PALETTERGB (0, 139, 139) },
+ {"DarkSlateGray1" , PALETTERGB (151, 255, 255) },
+ {"DarkSlateGray2" , PALETTERGB (141, 238, 238) },
+ {"DarkSlateGray3" , PALETTERGB (121, 205, 205) },
+ {"DarkSlateGray4" , PALETTERGB (82, 139, 139) },
+ {"aquamarine1" , PALETTERGB (127, 255, 212) },
+ {"aquamarine2" , PALETTERGB (118, 238, 198) },
+ {"aquamarine3" , PALETTERGB (102, 205, 170) },
+ {"aquamarine4" , PALETTERGB (69, 139, 116) },
+ {"DarkSeaGreen1" , PALETTERGB (193, 255, 193) },
+ {"DarkSeaGreen2" , PALETTERGB (180, 238, 180) },
+ {"DarkSeaGreen3" , PALETTERGB (155, 205, 155) },
+ {"DarkSeaGreen4" , PALETTERGB (105, 139, 105) },
+ {"SeaGreen1" , PALETTERGB (84, 255, 159) },
+ {"SeaGreen2" , PALETTERGB (78, 238, 148) },
+ {"SeaGreen3" , PALETTERGB (67, 205, 128) },
+ {"SeaGreen4" , PALETTERGB (46, 139, 87) },
+ {"PaleGreen1" , PALETTERGB (154, 255, 154) },
+ {"PaleGreen2" , PALETTERGB (144, 238, 144) },
+ {"PaleGreen3" , PALETTERGB (124, 205, 124) },
+ {"PaleGreen4" , PALETTERGB (84, 139, 84) },
+ {"SpringGreen1" , PALETTERGB (0, 255, 127) },
+ {"SpringGreen2" , PALETTERGB (0, 238, 118) },
+ {"SpringGreen3" , PALETTERGB (0, 205, 102) },
+ {"SpringGreen4" , PALETTERGB (0, 139, 69) },
+ {"green1" , PALETTERGB (0, 255, 0) },
+ {"green2" , PALETTERGB (0, 238, 0) },
+ {"green3" , PALETTERGB (0, 205, 0) },
+ {"green4" , PALETTERGB (0, 139, 0) },
+ {"chartreuse1" , PALETTERGB (127, 255, 0) },
+ {"chartreuse2" , PALETTERGB (118, 238, 0) },
+ {"chartreuse3" , PALETTERGB (102, 205, 0) },
+ {"chartreuse4" , PALETTERGB (69, 139, 0) },
+ {"OliveDrab1" , PALETTERGB (192, 255, 62) },
+ {"OliveDrab2" , PALETTERGB (179, 238, 58) },
+ {"OliveDrab3" , PALETTERGB (154, 205, 50) },
+ {"OliveDrab4" , PALETTERGB (105, 139, 34) },
+ {"DarkOliveGreen1" , PALETTERGB (202, 255, 112) },
+ {"DarkOliveGreen2" , PALETTERGB (188, 238, 104) },
+ {"DarkOliveGreen3" , PALETTERGB (162, 205, 90) },
+ {"DarkOliveGreen4" , PALETTERGB (110, 139, 61) },
+ {"khaki1" , PALETTERGB (255, 246, 143) },
+ {"khaki2" , PALETTERGB (238, 230, 133) },
+ {"khaki3" , PALETTERGB (205, 198, 115) },
+ {"khaki4" , PALETTERGB (139, 134, 78) },
+ {"LightGoldenrod1" , PALETTERGB (255, 236, 139) },
+ {"LightGoldenrod2" , PALETTERGB (238, 220, 130) },
+ {"LightGoldenrod3" , PALETTERGB (205, 190, 112) },
+ {"LightGoldenrod4" , PALETTERGB (139, 129, 76) },
+ {"LightYellow1" , PALETTERGB (255, 255, 224) },
+ {"LightYellow2" , PALETTERGB (238, 238, 209) },
+ {"LightYellow3" , PALETTERGB (205, 205, 180) },
+ {"LightYellow4" , PALETTERGB (139, 139, 122) },
+ {"yellow1" , PALETTERGB (255, 255, 0) },
+ {"yellow2" , PALETTERGB (238, 238, 0) },
+ {"yellow3" , PALETTERGB (205, 205, 0) },
+ {"yellow4" , PALETTERGB (139, 139, 0) },
+ {"gold1" , PALETTERGB (255, 215, 0) },
+ {"gold2" , PALETTERGB (238, 201, 0) },
+ {"gold3" , PALETTERGB (205, 173, 0) },
+ {"gold4" , PALETTERGB (139, 117, 0) },
+ {"goldenrod1" , PALETTERGB (255, 193, 37) },
+ {"goldenrod2" , PALETTERGB (238, 180, 34) },
+ {"goldenrod3" , PALETTERGB (205, 155, 29) },
+ {"goldenrod4" , PALETTERGB (139, 105, 20) },
+ {"DarkGoldenrod1" , PALETTERGB (255, 185, 15) },
+ {"DarkGoldenrod2" , PALETTERGB (238, 173, 14) },
+ {"DarkGoldenrod3" , PALETTERGB (205, 149, 12) },
+ {"DarkGoldenrod4" , PALETTERGB (139, 101, 8) },
+ {"RosyBrown1" , PALETTERGB (255, 193, 193) },
+ {"RosyBrown2" , PALETTERGB (238, 180, 180) },
+ {"RosyBrown3" , PALETTERGB (205, 155, 155) },
+ {"RosyBrown4" , PALETTERGB (139, 105, 105) },
+ {"IndianRed1" , PALETTERGB (255, 106, 106) },
+ {"IndianRed2" , PALETTERGB (238, 99, 99) },
+ {"IndianRed3" , PALETTERGB (205, 85, 85) },
+ {"IndianRed4" , PALETTERGB (139, 58, 58) },
+ {"sienna1" , PALETTERGB (255, 130, 71) },
+ {"sienna2" , PALETTERGB (238, 121, 66) },
+ {"sienna3" , PALETTERGB (205, 104, 57) },
+ {"sienna4" , PALETTERGB (139, 71, 38) },
+ {"burlywood1" , PALETTERGB (255, 211, 155) },
+ {"burlywood2" , PALETTERGB (238, 197, 145) },
+ {"burlywood3" , PALETTERGB (205, 170, 125) },
+ {"burlywood4" , PALETTERGB (139, 115, 85) },
+ {"wheat1" , PALETTERGB (255, 231, 186) },
+ {"wheat2" , PALETTERGB (238, 216, 174) },
+ {"wheat3" , PALETTERGB (205, 186, 150) },
+ {"wheat4" , PALETTERGB (139, 126, 102) },
+ {"tan1" , PALETTERGB (255, 165, 79) },
+ {"tan2" , PALETTERGB (238, 154, 73) },
+ {"tan3" , PALETTERGB (205, 133, 63) },
+ {"tan4" , PALETTERGB (139, 90, 43) },
+ {"chocolate1" , PALETTERGB (255, 127, 36) },
+ {"chocolate2" , PALETTERGB (238, 118, 33) },
+ {"chocolate3" , PALETTERGB (205, 102, 29) },
+ {"chocolate4" , PALETTERGB (139, 69, 19) },
+ {"firebrick1" , PALETTERGB (255, 48, 48) },
+ {"firebrick2" , PALETTERGB (238, 44, 44) },
+ {"firebrick3" , PALETTERGB (205, 38, 38) },
+ {"firebrick4" , PALETTERGB (139, 26, 26) },
+ {"brown1" , PALETTERGB (255, 64, 64) },
+ {"brown2" , PALETTERGB (238, 59, 59) },
+ {"brown3" , PALETTERGB (205, 51, 51) },
+ {"brown4" , PALETTERGB (139, 35, 35) },
+ {"salmon1" , PALETTERGB (255, 140, 105) },
+ {"salmon2" , PALETTERGB (238, 130, 98) },
+ {"salmon3" , PALETTERGB (205, 112, 84) },
+ {"salmon4" , PALETTERGB (139, 76, 57) },
+ {"LightSalmon1" , PALETTERGB (255, 160, 122) },
+ {"LightSalmon2" , PALETTERGB (238, 149, 114) },
+ {"LightSalmon3" , PALETTERGB (205, 129, 98) },
+ {"LightSalmon4" , PALETTERGB (139, 87, 66) },
+ {"orange1" , PALETTERGB (255, 165, 0) },
+ {"orange2" , PALETTERGB (238, 154, 0) },
+ {"orange3" , PALETTERGB (205, 133, 0) },
+ {"orange4" , PALETTERGB (139, 90, 0) },
+ {"DarkOrange1" , PALETTERGB (255, 127, 0) },
+ {"DarkOrange2" , PALETTERGB (238, 118, 0) },
+ {"DarkOrange3" , PALETTERGB (205, 102, 0) },
+ {"DarkOrange4" , PALETTERGB (139, 69, 0) },
+ {"coral1" , PALETTERGB (255, 114, 86) },
+ {"coral2" , PALETTERGB (238, 106, 80) },
+ {"coral3" , PALETTERGB (205, 91, 69) },
+ {"coral4" , PALETTERGB (139, 62, 47) },
+ {"tomato1" , PALETTERGB (255, 99, 71) },
+ {"tomato2" , PALETTERGB (238, 92, 66) },
+ {"tomato3" , PALETTERGB (205, 79, 57) },
+ {"tomato4" , PALETTERGB (139, 54, 38) },
+ {"OrangeRed1" , PALETTERGB (255, 69, 0) },
+ {"OrangeRed2" , PALETTERGB (238, 64, 0) },
+ {"OrangeRed3" , PALETTERGB (205, 55, 0) },
+ {"OrangeRed4" , PALETTERGB (139, 37, 0) },
+ {"red1" , PALETTERGB (255, 0, 0) },
+ {"red2" , PALETTERGB (238, 0, 0) },
+ {"red3" , PALETTERGB (205, 0, 0) },
+ {"red4" , PALETTERGB (139, 0, 0) },
+ {"DeepPink1" , PALETTERGB (255, 20, 147) },
+ {"DeepPink2" , PALETTERGB (238, 18, 137) },
+ {"DeepPink3" , PALETTERGB (205, 16, 118) },
+ {"DeepPink4" , PALETTERGB (139, 10, 80) },
+ {"HotPink1" , PALETTERGB (255, 110, 180) },
+ {"HotPink2" , PALETTERGB (238, 106, 167) },
+ {"HotPink3" , PALETTERGB (205, 96, 144) },
+ {"HotPink4" , PALETTERGB (139, 58, 98) },
+ {"pink1" , PALETTERGB (255, 181, 197) },
+ {"pink2" , PALETTERGB (238, 169, 184) },
+ {"pink3" , PALETTERGB (205, 145, 158) },
+ {"pink4" , PALETTERGB (139, 99, 108) },
+ {"LightPink1" , PALETTERGB (255, 174, 185) },
+ {"LightPink2" , PALETTERGB (238, 162, 173) },
+ {"LightPink3" , PALETTERGB (205, 140, 149) },
+ {"LightPink4" , PALETTERGB (139, 95, 101) },
+ {"PaleVioletRed1" , PALETTERGB (255, 130, 171) },
+ {"PaleVioletRed2" , PALETTERGB (238, 121, 159) },
+ {"PaleVioletRed3" , PALETTERGB (205, 104, 137) },
+ {"PaleVioletRed4" , PALETTERGB (139, 71, 93) },
+ {"maroon1" , PALETTERGB (255, 52, 179) },
+ {"maroon2" , PALETTERGB (238, 48, 167) },
+ {"maroon3" , PALETTERGB (205, 41, 144) },
+ {"maroon4" , PALETTERGB (139, 28, 98) },
+ {"VioletRed1" , PALETTERGB (255, 62, 150) },
+ {"VioletRed2" , PALETTERGB (238, 58, 140) },
+ {"VioletRed3" , PALETTERGB (205, 50, 120) },
+ {"VioletRed4" , PALETTERGB (139, 34, 82) },
+ {"magenta1" , PALETTERGB (255, 0, 255) },
+ {"magenta2" , PALETTERGB (238, 0, 238) },
+ {"magenta3" , PALETTERGB (205, 0, 205) },
+ {"magenta4" , PALETTERGB (139, 0, 139) },
+ {"orchid1" , PALETTERGB (255, 131, 250) },
+ {"orchid2" , PALETTERGB (238, 122, 233) },
+ {"orchid3" , PALETTERGB (205, 105, 201) },
+ {"orchid4" , PALETTERGB (139, 71, 137) },
+ {"plum1" , PALETTERGB (255, 187, 255) },
+ {"plum2" , PALETTERGB (238, 174, 238) },
+ {"plum3" , PALETTERGB (205, 150, 205) },
+ {"plum4" , PALETTERGB (139, 102, 139) },
+ {"MediumOrchid1" , PALETTERGB (224, 102, 255) },
+ {"MediumOrchid2" , PALETTERGB (209, 95, 238) },
+ {"MediumOrchid3" , PALETTERGB (180, 82, 205) },
+ {"MediumOrchid4" , PALETTERGB (122, 55, 139) },
+ {"DarkOrchid1" , PALETTERGB (191, 62, 255) },
+ {"DarkOrchid2" , PALETTERGB (178, 58, 238) },
+ {"DarkOrchid3" , PALETTERGB (154, 50, 205) },
+ {"DarkOrchid4" , PALETTERGB (104, 34, 139) },
+ {"purple1" , PALETTERGB (155, 48, 255) },
+ {"purple2" , PALETTERGB (145, 44, 238) },
+ {"purple3" , PALETTERGB (125, 38, 205) },
+ {"purple4" , PALETTERGB (85, 26, 139) },
+ {"MediumPurple1" , PALETTERGB (171, 130, 255) },
+ {"MediumPurple2" , PALETTERGB (159, 121, 238) },
+ {"MediumPurple3" , PALETTERGB (137, 104, 205) },
+ {"MediumPurple4" , PALETTERGB (93, 71, 139) },
+ {"thistle1" , PALETTERGB (255, 225, 255) },
+ {"thistle2" , PALETTERGB (238, 210, 238) },
+ {"thistle3" , PALETTERGB (205, 181, 205) },
+ {"thistle4" , PALETTERGB (139, 123, 139) },
+ {"gray0" , PALETTERGB (0, 0, 0) },
+ {"grey0" , PALETTERGB (0, 0, 0) },
+ {"gray1" , PALETTERGB (3, 3, 3) },
+ {"grey1" , PALETTERGB (3, 3, 3) },
+ {"gray2" , PALETTERGB (5, 5, 5) },
+ {"grey2" , PALETTERGB (5, 5, 5) },
+ {"gray3" , PALETTERGB (8, 8, 8) },
+ {"grey3" , PALETTERGB (8, 8, 8) },
+ {"gray4" , PALETTERGB (10, 10, 10) },
+ {"grey4" , PALETTERGB (10, 10, 10) },
+ {"gray5" , PALETTERGB (13, 13, 13) },
+ {"grey5" , PALETTERGB (13, 13, 13) },
+ {"gray6" , PALETTERGB (15, 15, 15) },
+ {"grey6" , PALETTERGB (15, 15, 15) },
+ {"gray7" , PALETTERGB (18, 18, 18) },
+ {"grey7" , PALETTERGB (18, 18, 18) },
+ {"gray8" , PALETTERGB (20, 20, 20) },
+ {"grey8" , PALETTERGB (20, 20, 20) },
+ {"gray9" , PALETTERGB (23, 23, 23) },
+ {"grey9" , PALETTERGB (23, 23, 23) },
+ {"gray10" , PALETTERGB (26, 26, 26) },
+ {"grey10" , PALETTERGB (26, 26, 26) },
+ {"gray11" , PALETTERGB (28, 28, 28) },
+ {"grey11" , PALETTERGB (28, 28, 28) },
+ {"gray12" , PALETTERGB (31, 31, 31) },
+ {"grey12" , PALETTERGB (31, 31, 31) },
+ {"gray13" , PALETTERGB (33, 33, 33) },
+ {"grey13" , PALETTERGB (33, 33, 33) },
+ {"gray14" , PALETTERGB (36, 36, 36) },
+ {"grey14" , PALETTERGB (36, 36, 36) },
+ {"gray15" , PALETTERGB (38, 38, 38) },
+ {"grey15" , PALETTERGB (38, 38, 38) },
+ {"gray16" , PALETTERGB (41, 41, 41) },
+ {"grey16" , PALETTERGB (41, 41, 41) },
+ {"gray17" , PALETTERGB (43, 43, 43) },
+ {"grey17" , PALETTERGB (43, 43, 43) },
+ {"gray18" , PALETTERGB (46, 46, 46) },
+ {"grey18" , PALETTERGB (46, 46, 46) },
+ {"gray19" , PALETTERGB (48, 48, 48) },
+ {"grey19" , PALETTERGB (48, 48, 48) },
+ {"gray20" , PALETTERGB (51, 51, 51) },
+ {"grey20" , PALETTERGB (51, 51, 51) },
+ {"gray21" , PALETTERGB (54, 54, 54) },
+ {"grey21" , PALETTERGB (54, 54, 54) },
+ {"gray22" , PALETTERGB (56, 56, 56) },
+ {"grey22" , PALETTERGB (56, 56, 56) },
+ {"gray23" , PALETTERGB (59, 59, 59) },
+ {"grey23" , PALETTERGB (59, 59, 59) },
+ {"gray24" , PALETTERGB (61, 61, 61) },
+ {"grey24" , PALETTERGB (61, 61, 61) },
+ {"gray25" , PALETTERGB (64, 64, 64) },
+ {"grey25" , PALETTERGB (64, 64, 64) },
+ {"gray26" , PALETTERGB (66, 66, 66) },
+ {"grey26" , PALETTERGB (66, 66, 66) },
+ {"gray27" , PALETTERGB (69, 69, 69) },
+ {"grey27" , PALETTERGB (69, 69, 69) },
+ {"gray28" , PALETTERGB (71, 71, 71) },
+ {"grey28" , PALETTERGB (71, 71, 71) },
+ {"gray29" , PALETTERGB (74, 74, 74) },
+ {"grey29" , PALETTERGB (74, 74, 74) },
+ {"gray30" , PALETTERGB (77, 77, 77) },
+ {"grey30" , PALETTERGB (77, 77, 77) },
+ {"gray31" , PALETTERGB (79, 79, 79) },
+ {"grey31" , PALETTERGB (79, 79, 79) },
+ {"gray32" , PALETTERGB (82, 82, 82) },
+ {"grey32" , PALETTERGB (82, 82, 82) },
+ {"gray33" , PALETTERGB (84, 84, 84) },
+ {"grey33" , PALETTERGB (84, 84, 84) },
+ {"gray34" , PALETTERGB (87, 87, 87) },
+ {"grey34" , PALETTERGB (87, 87, 87) },
+ {"gray35" , PALETTERGB (89, 89, 89) },
+ {"grey35" , PALETTERGB (89, 89, 89) },
+ {"gray36" , PALETTERGB (92, 92, 92) },
+ {"grey36" , PALETTERGB (92, 92, 92) },
+ {"gray37" , PALETTERGB (94, 94, 94) },
+ {"grey37" , PALETTERGB (94, 94, 94) },
+ {"gray38" , PALETTERGB (97, 97, 97) },
+ {"grey38" , PALETTERGB (97, 97, 97) },
+ {"gray39" , PALETTERGB (99, 99, 99) },
+ {"grey39" , PALETTERGB (99, 99, 99) },
+ {"gray40" , PALETTERGB (102, 102, 102) },
+ {"grey40" , PALETTERGB (102, 102, 102) },
+ {"gray41" , PALETTERGB (105, 105, 105) },
+ {"grey41" , PALETTERGB (105, 105, 105) },
+ {"gray42" , PALETTERGB (107, 107, 107) },
+ {"grey42" , PALETTERGB (107, 107, 107) },
+ {"gray43" , PALETTERGB (110, 110, 110) },
+ {"grey43" , PALETTERGB (110, 110, 110) },
+ {"gray44" , PALETTERGB (112, 112, 112) },
+ {"grey44" , PALETTERGB (112, 112, 112) },
+ {"gray45" , PALETTERGB (115, 115, 115) },
+ {"grey45" , PALETTERGB (115, 115, 115) },
+ {"gray46" , PALETTERGB (117, 117, 117) },
+ {"grey46" , PALETTERGB (117, 117, 117) },
+ {"gray47" , PALETTERGB (120, 120, 120) },
+ {"grey47" , PALETTERGB (120, 120, 120) },
+ {"gray48" , PALETTERGB (122, 122, 122) },
+ {"grey48" , PALETTERGB (122, 122, 122) },
+ {"gray49" , PALETTERGB (125, 125, 125) },
+ {"grey49" , PALETTERGB (125, 125, 125) },
+ {"gray50" , PALETTERGB (128, 128, 128) }, /* Adjusted */
+ {"grey50" , PALETTERGB (128, 128, 128) }, /* Adjusted */
+ {"gray51" , PALETTERGB (130, 130, 130) },
+ {"grey51" , PALETTERGB (130, 130, 130) },
+ {"gray52" , PALETTERGB (133, 133, 133) },
+ {"grey52" , PALETTERGB (133, 133, 133) },
+ {"gray53" , PALETTERGB (135, 135, 135) },
+ {"grey53" , PALETTERGB (135, 135, 135) },
+ {"gray54" , PALETTERGB (138, 138, 138) },
+ {"grey54" , PALETTERGB (138, 138, 138) },
+ {"gray55" , PALETTERGB (140, 140, 140) },
+ {"grey55" , PALETTERGB (140, 140, 140) },
+ {"gray56" , PALETTERGB (143, 143, 143) },
+ {"grey56" , PALETTERGB (143, 143, 143) },
+ {"gray57" , PALETTERGB (145, 145, 145) },
+ {"grey57" , PALETTERGB (145, 145, 145) },
+ {"gray58" , PALETTERGB (148, 148, 148) },
+ {"grey58" , PALETTERGB (148, 148, 148) },
+ {"gray59" , PALETTERGB (150, 150, 150) },
+ {"grey59" , PALETTERGB (150, 150, 150) },
+ {"gray60" , PALETTERGB (153, 153, 153) },
+ {"grey60" , PALETTERGB (153, 153, 153) },
+ {"gray61" , PALETTERGB (156, 156, 156) },
+ {"grey61" , PALETTERGB (156, 156, 156) },
+ {"gray62" , PALETTERGB (158, 158, 158) },
+ {"grey62" , PALETTERGB (158, 158, 158) },
+ {"gray63" , PALETTERGB (161, 161, 161) },
+ {"grey63" , PALETTERGB (161, 161, 161) },
+ {"gray64" , PALETTERGB (163, 163, 163) },
+ {"grey64" , PALETTERGB (163, 163, 163) },
+ {"gray65" , PALETTERGB (166, 166, 166) },
+ {"grey65" , PALETTERGB (166, 166, 166) },
+ {"gray66" , PALETTERGB (168, 168, 168) },
+ {"grey66" , PALETTERGB (168, 168, 168) },
+ {"gray67" , PALETTERGB (171, 171, 171) },
+ {"grey67" , PALETTERGB (171, 171, 171) },
+ {"gray68" , PALETTERGB (173, 173, 173) },
+ {"grey68" , PALETTERGB (173, 173, 173) },
+ {"gray69" , PALETTERGB (176, 176, 176) },
+ {"grey69" , PALETTERGB (176, 176, 176) },
+ {"gray70" , PALETTERGB (179, 179, 179) },
+ {"grey70" , PALETTERGB (179, 179, 179) },
+ {"gray71" , PALETTERGB (181, 181, 181) },
+ {"grey71" , PALETTERGB (181, 181, 181) },
+ {"gray72" , PALETTERGB (184, 184, 184) },
+ {"grey72" , PALETTERGB (184, 184, 184) },
+ {"gray73" , PALETTERGB (186, 186, 186) },
+ {"grey73" , PALETTERGB (186, 186, 186) },
+ {"gray74" , PALETTERGB (189, 189, 189) },
+ {"grey74" , PALETTERGB (189, 189, 189) },
+ {"gray75" , PALETTERGB (192, 192, 192) }, /* Adjusted */
+ {"grey75" , PALETTERGB (192, 192, 192) }, /* Adjusted */
+ {"gray76" , PALETTERGB (194, 194, 194) },
+ {"grey76" , PALETTERGB (194, 194, 194) },
+ {"gray77" , PALETTERGB (196, 196, 196) },
+ {"grey77" , PALETTERGB (196, 196, 196) },
+ {"gray78" , PALETTERGB (199, 199, 199) },
+ {"grey78" , PALETTERGB (199, 199, 199) },
+ {"gray79" , PALETTERGB (201, 201, 201) },
+ {"grey79" , PALETTERGB (201, 201, 201) },
+ {"gray80" , PALETTERGB (204, 204, 204) },
+ {"grey80" , PALETTERGB (204, 204, 204) },
+ {"gray81" , PALETTERGB (207, 207, 207) },
+ {"grey81" , PALETTERGB (207, 207, 207) },
+ {"gray82" , PALETTERGB (209, 209, 209) },
+ {"grey82" , PALETTERGB (209, 209, 209) },
+ {"gray83" , PALETTERGB (212, 212, 212) },
+ {"grey83" , PALETTERGB (212, 212, 212) },
+ {"gray84" , PALETTERGB (214, 214, 214) },
+ {"grey84" , PALETTERGB (214, 214, 214) },
+ {"gray85" , PALETTERGB (217, 217, 217) },
+ {"grey85" , PALETTERGB (217, 217, 217) },
+ {"gray86" , PALETTERGB (219, 219, 219) },
+ {"grey86" , PALETTERGB (219, 219, 219) },
+ {"gray87" , PALETTERGB (222, 222, 222) },
+ {"grey87" , PALETTERGB (222, 222, 222) },
+ {"gray88" , PALETTERGB (224, 224, 224) },
+ {"grey88" , PALETTERGB (224, 224, 224) },
+ {"gray89" , PALETTERGB (227, 227, 227) },
+ {"grey89" , PALETTERGB (227, 227, 227) },
+ {"gray90" , PALETTERGB (229, 229, 229) },
+ {"grey90" , PALETTERGB (229, 229, 229) },
+ {"gray91" , PALETTERGB (232, 232, 232) },
+ {"grey91" , PALETTERGB (232, 232, 232) },
+ {"gray92" , PALETTERGB (235, 235, 235) },
+ {"grey92" , PALETTERGB (235, 235, 235) },
+ {"gray93" , PALETTERGB (237, 237, 237) },
+ {"grey93" , PALETTERGB (237, 237, 237) },
+ {"gray94" , PALETTERGB (240, 240, 240) },
+ {"grey94" , PALETTERGB (240, 240, 240) },
+ {"gray95" , PALETTERGB (242, 242, 242) },
+ {"grey95" , PALETTERGB (242, 242, 242) },
+ {"gray96" , PALETTERGB (245, 245, 245) },
+ {"grey96" , PALETTERGB (245, 245, 245) },
+ {"gray97" , PALETTERGB (247, 247, 247) },
+ {"grey97" , PALETTERGB (247, 247, 247) },
+ {"gray98" , PALETTERGB (250, 250, 250) },
+ {"grey98" , PALETTERGB (250, 250, 250) },
+ {"gray99" , PALETTERGB (252, 252, 252) },
+ {"grey99" , PALETTERGB (252, 252, 252) },
+ {"gray100" , PALETTERGB (255, 255, 255) },
+ {"grey100" , PALETTERGB (255, 255, 255) },
+ {"DarkGrey" , PALETTERGB (169, 169, 169) },
+ {"DarkGray" , PALETTERGB (169, 169, 169) },
+ {"DarkBlue" , PALETTERGB (0, 0, 128) }, /* Adjusted == Navy */
+ {"DarkCyan" , PALETTERGB (0, 128, 128) }, /* Adjusted */
+ {"DarkMagenta" , PALETTERGB (128, 0, 128) }, /* Adjusted */
+ {"DarkRed" , PALETTERGB (128, 0, 0) }, /* Adjusted */
+ {"LightGreen" , PALETTERGB (144, 238, 144) },
+ /* Added to match values in the default Windows palette: */
+ {"DarkYellow" , PALETTERGB (128, 128, 0) },
+ {"PaleYellow" , PALETTERGB (255, 255, 128) }
};
typedef struct fontmap_t
{
const char *name;
- const int value;
+ int value;
} fontmap_t;
/* Default weight first, preferred names listed before synonyms */
}
else if (*name) /* Can't be an empty string */
{
- char *nospaces = alloca (strlen (name)+1);
- char *c=nospaces;
+ char *nospaces = (char*) alloca (strlen (name)+1);
+ char *c = nospaces;
while (*name)
if (*name != ' ')
- *(c++) = *(name++);
+ *c++ = *name++;
else
name++;
*c = '\0';
- for (i=0; i< countof (mswindows_X_color_map); i++)
+ for (i = 0; i < countof (mswindows_X_color_map); i++)
if (!stricmp (nospaces, mswindows_X_color_map[i].name))
return (mswindows_X_color_map[i].colorref);
}
return (COLORREF) -1;
}
+Lisp_Object
+mswindows_color_to_string (COLORREF color)
+{
+ int i;
+ char buf[8];
+ COLORREF pcolor = PALETTERGB (GetRValue (color), GetGValue (color),
+ GetBValue (color));
+
+ for (i=0; i < countof (mswindows_X_color_map); i++)
+ if (pcolor == (mswindows_X_color_map[i].colorref))
+ return build_string (mswindows_X_color_map[i].name);
+
+ sprintf (buf, "#%02X%02X%02X",
+ GetRValue (color), GetGValue (color), GetBValue (color));
+ return build_string (buf);
+}
+
/*
* Returns non-zero if the two supplied font patterns match.
* If they match and fontname is not NULL, copies the logical OR of the
if (hfont2 != MSWINDOWS_BAD_HFONT)
hfont = hfont2;
- hfont2 = SelectObject(hdc, hfont);
+ hfont2 = (HFONT) SelectObject (hdc, hfont);
if (!hfont2)
{
mswindows_finalize_font_instance (f);
int nsep=0;
char *name = (char *) XSTRING_DATA (f->name);
char* ptr = name;
- char* extname = alloca (strlen (name) + 19);
+ char* extname = (char*) alloca (strlen (name) + 19);
strcpy (extname, name);
while ((ptr = strchr (ptr, ':')) != 0)
/* If font creation during redisplay fails, then the following
value is used to prevent future attempts to create this font.
Redisplay uses the "main" font when encounters this value */
-#define MSWINDOWS_BAD_HFONT INVALID_HANDLE_VALUE
+#define MSWINDOWS_BAD_HFONT ((HFONT)INVALID_HANDLE_VALUE)
HFONT mswindows_get_hfont (Lisp_Font_Instance* f, int under, int strike);
+Lisp_Object mswindows_color_to_string (COLORREF color);
+
#endif /* INCLUDED_objects_msw_h_ */
void
syms_of_objects (void)
{
+ INIT_LRECORD_IMPLEMENTATION (color_instance);
+ INIT_LRECORD_IMPLEMENTATION (font_instance);
+
DEFSUBR (Fcolor_specifier_p);
DEFSUBR (Ffont_specifier_p);
DEFSUBR (Fface_boolean_specifier_p);
void
init_opaque_once_early (void)
{
+ INIT_LRECORD_IMPLEMENTATION (opaque);
+ INIT_LRECORD_IMPLEMENTATION (opaque_ptr);
+
reinit_opaque_once_early ();
}
new_space++;
/* Allocate space and copy variables into it */
- penv = proc_env = alloca(new_space);
+ penv = proc_env = (char*) alloca(new_space);
for (i = 0; i < new_length; i++)
{
strcpy(penv, env[i]);
void
syms_of_process (void)
{
+ INIT_LRECORD_IMPLEMENTATION (process);
+
defsymbol (&Qprocessp, "processp");
defsymbol (&Qprocess_live_p, "process-live-p");
defsymbol (&Qrun, "run");
addr_chain = (ADDRESS_CHAIN) UNDERLYING_MALLOC( sizeof( ADDRESS_BLOCK ));
addr_chain->next = 0; /* Last block in chain */
addr_chain->sz = 0x0c000000; /* Size */
- addr_chain->addr = (POINTER) (0x04000000 | DATA_SEG_BITS);
+ addr_chain->addr = (POINTER) (0x04000000);
addr_chain->flag = empty;
}
void
syms_of_rangetab (void)
{
+ INIT_LRECORD_IMPLEMENTATION (range_table);
+
defsymbol (&Qrange_tablep, "range-table-p");
defsymbol (&Qrange_table, "range-table");
#include <stdio.h>
#include <string.h>
#include <errno.h>
+#include <limits.h>
+
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
-#ifdef _POSIX_VERSION
-#include <limits.h> /* for PATH_MAX */
-#else
-#include <sys/param.h> /* for MAXPATHLEN */
+
+#if defined (HAVE_SYS_PARAM_H)
+#include <sys/param.h>
#endif
#ifdef WINDOWSNT
#endif
/* Make a copy of the source path since we may need to modify it. */
- strcpy(copy_path, path);
+ strcpy (copy_path, path);
path = copy_path;
max_path = copy_path + PATH_MAX - 2;
#ifdef WINDOWSNT
continue;
}
- if (path[1] == '.')
+ /* Handle ".." */
+ if (path[1] == '.' &&
+ (path[2] == '\0' || path[2] == '/'))
{
- if (path[2] == '\0' || path[2] == '/')
- {
- path += 2;
-
- /* Ignore ".." at root. */
- if (new_path == resolved_path + 1)
- continue;
-
- /* Handle ".." by backing up. */
- while ((--new_path)[-1] != '/')
- ;
- continue;
- }
+ path += 2;
+
+ /* Ignore ".." at root. */
+ if (new_path == resolved_path + 1)
+ continue;
+
+ /* Handle ".." by backing up. */
+ while ((--new_path)[-1] != '/')
+ ;
+ continue;
}
}
#ifdef S_IFLNK
/* See if latest pathname component is a symlink. */
*new_path = '\0';
- n = readlink(resolved_path, link_path, PATH_MAX - 1);
+ n = readlink (resolved_path, link_path, PATH_MAX - 1);
if (n < 0)
{
&& !f->faces_changed
&& !f->glyphs_changed
&& !f->subwindows_changed
- && !f->subwindows_state_changed
+ /* && !f->subwindows_state_changed*/
&& !f->point_changed
&& !f->windows_structure_changed)
{
&& !f->faces_changed
&& !f->glyphs_changed
&& !f->subwindows_changed
- && !f->subwindows_state_changed
+ /* && !f->subwindows_state_changed*/
&& !f->windows_structure_changed)
{
if (point_visible (w, pointm, CURRENT_DISP)
&& !f->faces_changed
&& !f->glyphs_changed
&& !f->subwindows_changed
- && !f->subwindows_state_changed
+ /* && !f->subwindows_state_changed*/
&& !f->windows_structure_changed
&& !f->frame_changed
&& !truncation_changed
}
else
mark_subwindow_cachels_as_not_updated (f);
+
/* We can now update the gutters, safe in the knowledge that our
efforts won't get undone. */
+
+ /* #### This can call lisp, it may be that if the subwindow cachels
+ have been reset there are no remaining references to the
+ displayed glyphs and so they get garbage collected. We should
+ consider putting this call inside the critical redisplay
+ section. */
update_frame_gutters (f);
hold_frame_size_changes ();
}
}
-static void
+/* See the comment in image_instantiate_cache_result as to why marking
+ the glyph will also mark the image_instance. */
+void
mark_redisplay_structs (display_line_dynarr *dla)
{
display_line *dl = Dynarr_atp (dla, 0);
struct frame *f = XFRAME (XCAR (frmcons));
update_frame_window_mirror (f);
mark_window_mirror (f->root_mirror);
+ mark_gutters (f);
}
}
\f
void redisplay_echo_area (void);
void free_display_structs (struct window_mirror *mir);
void free_display_lines (display_line_dynarr *dla);
+void mark_redisplay_structs (display_line_dynarr *dla);
void generate_displayable_area (struct window *w, Lisp_Object disp_string,
int xpos, int ypos, int width, int height,
display_line_dynarr* dl,
#define NO_ARG_ARRAY
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-#define WORD_MACHINE
-
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the 24-bit bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
#define LOAD_AVE_TYPE long
/* Text does precede data space, but this is never a safe assumption. */
#define VIRT_ADDR_VARIES
-/* set this if you have a new version of cygwin
-#define DATA_SEG_BITS 0x10000000
-*/
-
/* If you are compiling with a non-C calling convention but need to
declare vararg routines differently, put it here */
#define _VARARGS_ __cdecl
#define NO_ARG_ARRAY
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-#define WORD_MACHINE
-
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the 24-bit bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
/* System calls that are encapsulated */
#define ENCAPSULATE_RENAME
#define ENCAPSULATE_OPEN
/* Text does precede data space, but this is never a safe assumption. */
#define VIRT_ADDR_VARIES
-/* set this if you have a new version of cygwin
-#define DATA_SEG_BITS 0x10000000
-*/
-
/* If you are compiling with a non-C calling convention but need to
declare vararg routines differently, put it here */
#define _VARARGS_ __cdecl
#define _WIN32_WINNT 0x0400
#endif
#endif
+
+/* MSVC 6.0 has a mechanism to declare functions which never return */
+#if (_MSC_VER >= 1200)
+#define DOESNT_RETURN __declspec(noreturn) void
+#define DECLARE_DOESNT_RETURN(decl) __declspec(noreturn) extern void decl
+#define DECLARE_DOESNT_RETURN_GCC_ATTRIBUTE_SYNTAX_SUCKS(decl,str,idx) \
+ __declspec(noreturn) extern void decl PRINTF_ARGS(str,idx)
+#endif /* MSVC 6.0 */
do
{
/* copy next line or remaining bytes including '\0' */
- next = memccpy (dst, src, '\n', rawsize);
+ next = (char*) memccpy (dst, src, '\n', rawsize);
if (next)
{
/* copied one line ending with '\n' */
do
{
/* copy next line or remaining bytes excluding '\0' */
- next = memccpy (dst, src, '\r', rawsize);
+ next = (char*) memccpy (dst, src, '\r', rawsize);
if (next)
{
/* copied one line ending with '\r' */
void
syms_of_specifier (void)
{
+ INIT_LRECORD_IMPLEMENTATION (specifier);
+
defsymbol (&Qspecifierp, "specifierp");
defsymbol (&Qconsole_type, "console-type");
DEFINE_LRECORD_IMPLEMENTATION ("symbol-value-forward",
symbol_value_forward,
- this_one_is_unmarkable,
+ 0,
print_symbol_value_magic, 0, 0, 0,
symbol_value_forward_description,
struct symbol_value_forward);
#endif
/* some losing systems can't have static vars at function scope... */
-static struct symbol_value_magic guts_of_unbound_marker =
+static const struct symbol_value_magic guts_of_unbound_marker =
{ /* struct symbol_value_magic */
{ /* struct lcrecord_header */
{ /* struct lrecord_header */
- 1, /* type - index into lrecord_implementations_table */
- 0, /* mark */
- 0, /* c_readonly */
- 0, /* lisp_readonly */
+ lrecord_type_symbol_value_forward, /* lrecord_type_index */
+ 1, /* mark bit */
+ 1, /* c_readonly bit */
+ 1, /* lisp_readonly bit */
},
0, /* next */
0, /* uid */
void
init_symbols_once_early (void)
{
+ INIT_LRECORD_IMPLEMENTATION (symbol);
+ INIT_LRECORD_IMPLEMENTATION (symbol_value_forward);
+ INIT_LRECORD_IMPLEMENTATION (symbol_value_buffer_local);
+ INIT_LRECORD_IMPLEMENTATION (symbol_value_lisp_magic);
+ INIT_LRECORD_IMPLEMENTATION (symbol_value_varalias);
+
reinit_symbols_once_early ();
/* Bootstrapping problem: Qnil isn't set when make_string_nocopy is
{
/* Required to get around a GCC syntax error on certain
architectures */
- struct symbol_value_magic *tem = &guts_of_unbound_marker;
+ const struct symbol_value_magic *tem = &guts_of_unbound_marker;
XSETSYMBOL_VALUE_MAGIC (Qunbound, tem);
}
- if ((const void *) XPNTR (Qunbound) !=
- (const void *)&guts_of_unbound_marker)
- {
- /* This might happen on DATA_SEG_BITS machines. */
- /* abort (); */
- /* Can't represent a pointer to constant C data using a Lisp_Object.
- So heap-allocate it. */
- struct symbol_value_magic *urk = xnew (struct symbol_value_magic);
- memcpy (urk, &guts_of_unbound_marker, sizeof (*urk));
- XSETSYMBOL_VALUE_MAGIC (Qunbound, urk);
- }
XSYMBOL (Qnil)->function = Qunbound;
void
defvar_magic (const char *symbol_name, const struct symbol_value_forward *magic)
{
- Lisp_Object sym, kludge;
-
- /* Check that `magic' points somewhere we can represent as a Lisp pointer */
- XSETOBJ (kludge, Lisp_Type_Record, magic);
- if ((void *)magic != (void*) XPNTR (kludge))
- {
- /* This might happen on DATA_SEG_BITS machines. */
- /* abort (); */
- /* Copy it to somewhere which is representable. */
- struct symbol_value_forward *p = xnew (struct symbol_value_forward);
- memcpy (p, magic, sizeof *magic);
- magic = p;
- }
+ Lisp_Object sym;
#if defined(HAVE_SHLIB)
/*
void *value;
enum symbol_value_type type;
};
-#define SYMBOL_VALUE_MAGIC_P(x) \
- (LRECORDP (x) \
- && (XRECORD_LHEADER_IMPLEMENTATION (x)->printer \
- == print_symbol_value_magic))
+#define SYMBOL_VALUE_MAGIC_P(x) \
+(LRECORDP (x) && \
+ XRECORD_LHEADER (x)->type <= lrecord_type_max_symbol_value_magic)
#define XSYMBOL_VALUE_MAGIC_TYPE(v) \
(((struct symbol_value_magic *) XPNTR (v))->type)
#define XSETSYMBOL_VALUE_MAGIC(s, p) XSETOBJ (s, Lisp_Type_Record, p)
void defvar_magic (const char *symbol_name, const struct symbol_value_forward *magic);
#define DEFVAR_SYMVAL_FWD(lname, c_location, forward_type, magicfun) do { \
- static CONST_IF_NOT_DEBUG struct symbol_value_forward I_hate_C = \
+ static const struct symbol_value_forward I_hate_C = \
{ /* struct symbol_value_forward */ \
{ /* struct symbol_value_magic */ \
{ /* struct lcrecord_header */ \
{ /* struct lrecord_header */ \
- 1, /* type - index into lrecord_implementations_table */ \
- 0, /* mark bit */ \
- 0, /* c_readonly bit */ \
- 0 /* lisp_readonly bit */ \
+ lrecord_type_symbol_value_forward, /* lrecord_type_index */ \
+ 1, /* mark bit */ \
+ 1, /* c_readonly bit */ \
+ 1 /* lisp_readonly bit */ \
}, \
0, /* next */ \
0, /* uid */ \
#ifdef WINDOWSNT
/* Waits for process completion */
- pid = _spawnlp (_P_WAIT, sh, sh, NULL);
+ pid = (HANDLE) _spawnlp (_P_WAIT, sh, sh, NULL);
if (pid == NULL)
write (1, "Can't execute subshell", 22);
mode = va_arg (ap, int);
va_end (ap);
+ PATHNAME_CONVERT_OUT (path);
+
#ifdef WINDOWSNT
/* Make all handles non-inheritable */
oflag |= _O_NOINHERIT;
mswindows_free_frame_toolbars (struct frame *f)
{
HWND twnd=NULL;
-#define DELETE_TOOLBAR(pos) \
- mswindows_clear_toolbar(f, 0, pos); \
- if ((twnd=GetDlgItem(FRAME_MSWINDOWS_HANDLE(f), TOOLBAR_ID_BIAS + pos))) \
+#define DELETE_TOOLBAR(pos) \
+ mswindows_clear_toolbar(f, pos, 0); \
+ if ((twnd=GetDlgItem(FRAME_MSWINDOWS_HANDLE(f), \
+ TOOLBAR_ID_BIAS + pos))) \
DestroyWindow(twnd)
DELETE_TOOLBAR(TOP_TOOLBAR);
static void
compute_frame_toolbars_data (struct frame *f)
{
- set_frame_toolbar (f, TOP_TOOLBAR);
- set_frame_toolbar (f, BOTTOM_TOOLBAR);
- set_frame_toolbar (f, LEFT_TOOLBAR);
- set_frame_toolbar (f, RIGHT_TOOLBAR);
+ set_frame_toolbar (f, TOP_TOOLBAR);
+ set_frame_toolbar (f, BOTTOM_TOOLBAR);
+ set_frame_toolbar (f, LEFT_TOOLBAR);
+ set_frame_toolbar (f, RIGHT_TOOLBAR);
}
void
&& (f->toolbar_changed || f->frame_changed || f->clear))
{
int pos;
-
+
/* We're not officially "in redisplay", so we still have a
chance to re-layout toolbars and windows. This is done here,
because toolbar is the only thing which currently might
void
syms_of_toolbar (void)
{
+ INIT_LRECORD_IMPLEMENTATION (toolbar_button);
+
defsymbol (&Qtoolbar_buttonp, "toolbar-button-p");
defsymbol (&Q2D, "2D");
defsymbol (&Q3D, "3D");
fb = Fcons (Fcons (list1 (Qx), make_int (DEFAULT_TOOLBAR_HEIGHT)), fb);
#endif
#ifdef HAVE_MS_WINDOWS
- fb = Fcons (Fcons (list1 (Qmswindows),
+ fb = Fcons (Fcons (list1 (Qmswindows),
make_int (MSWINDOWS_DEFAULT_TOOLBAR_HEIGHT)), fb);
#endif
if (!NILP (fb))
fb = Fcons (Fcons (list1 (Qx), make_int (DEFAULT_TOOLBAR_WIDTH)), fb);
#endif
#ifdef HAVE_MS_WINDOWS
- fb = Fcons (Fcons (list1 (Qmswindows),
+ fb = Fcons (Fcons (list1 (Qmswindows),
make_int (MSWINDOWS_DEFAULT_TOOLBAR_WIDTH)), fb);
#endif
if (!NILP (fb))
void
syms_of_tooltalk (void)
{
+ INIT_LRECORD_IMPLEMENTATION (tooltalk_message);
+ INIT_LRECORD_IMPLEMENTATION (tooltalk_pattern);
+
defsymbol (&Qtooltalk_messagep, "tooltalk-message-p");
DEFSUBR (Ftooltalk_message_p);
defsymbol (&Qtooltalk_patternp, "tooltalk-pattern-p");
/* From IMAGEHLP.H which is not installed by default by MSVC < 5 */
/* The IMAGEHLP.DLL library is not distributed by default with Windows95 */
-PIMAGE_NT_HEADERS
-(__stdcall * pfnCheckSumMappedFile) (LPVOID BaseAddress, DWORD FileLength,
- LPDWORD HeaderSum, LPDWORD CheckSum);
+typedef PIMAGE_NT_HEADERS
+(__stdcall * pfnCheckSumMappedFile_t) (LPVOID BaseAddress, DWORD FileLength,
+ LPDWORD HeaderSum, LPDWORD CheckSum);
+
#if 0
extern BOOL ctrl_c_handler (unsigned long type);
char out_filename[MAX_PATH], in_filename[MAX_PATH];
unsigned long size;
char *ptr;
- HANDLE hImagehelp;
+ HINSTANCE hImagehelp;
/* Make sure that the input and output filenames have the
".exe" extension...patch them up if they don't. */
{
PIMAGE_DOS_HEADER dos_header;
PIMAGE_NT_HEADERS nt_header;
+
DWORD headersum;
DWORD checksum;
+ pfnCheckSumMappedFile_t pfnCheckSumMappedFile;
dos_header = (PIMAGE_DOS_HEADER) out_file.file_base;
nt_header = (PIMAGE_NT_HEADERS) ((char *) dos_header + dos_header->e_lfanew);
nt_header->OptionalHeader.CheckSum = 0;
-// nt_header->FileHeader.TimeDateStamp = time (NULL);
-// dos_header->e_cp = size / 512;
-// nt_header->OptionalHeader.SizeOfImage = size;
+#if 0
+ nt_header->FileHeader.TimeDateStamp = time (NULL);
+ dos_header->e_cp = size / 512;
+ nt_header->OptionalHeader.SizeOfImage = size;
+#endif
- pfnCheckSumMappedFile = (void *) GetProcAddress (hImagehelp, "CheckSumMappedFile");
+ pfnCheckSumMappedFile =
+ (pfnCheckSumMappedFile_t) GetProcAddress (hImagehelp,
+ "CheckSumMappedFile");
if (pfnCheckSumMappedFile)
{
-// nt_header->FileHeader.TimeDateStamp = time (NULL);
+#if 0
+ nt_header->FileHeader.TimeDateStamp = time (NULL);
+#endif
pfnCheckSumMappedFile (out_file.file_base,
out_file.size,
&headersum,
return FALSE;
file_base = MapViewOfFile (file_mapping, FILE_MAP_WRITE, 0, 0, size);
- if (file_base == 0)
+ if (file_base == NULL)
return FALSE;
p_file->name = filename;
p_file->size = size;
p_file->file = file;
p_file->file_mapping = file_mapping;
- p_file->file_base = file_base;
+ p_file->file_base = (char*) file_base;
return TRUE;
}
DUMP_MSG (("Dumping data section...\n"));
DUMP_MSG (("\t0x%08x Address in process.\n", data_va));
DUMP_MSG (("\t0x%08x Offset in output file.\n",
- data_file - p_outfile->file_base));
+ (char*)data_file - p_outfile->file_base));
DUMP_MSG (("\t0x%08x Size in bytes.\n", size));
memcpy (data_file, data_va, size);
extern void (* __after_morecore_hook) (void); /* From gmalloc.c */
if (start)
- data_space_start = start;
+ data_space_start = (char*) start;
else
data_space_start = start_of_data ();
void
syms_of_window (void)
{
+ INIT_LRECORD_IMPLEMENTATION (window);
+ INIT_LRECORD_IMPLEMENTATION (window_configuration);
+
defsymbol (&Qwindowp, "windowp");
defsymbol (&Qwindow_live_p, "window-live-p");
defsymbol (&Qwindow_configurationp, "window-configuration-p");
+2000-02-21 Martin Buchholz <martin@xemacs.org>
+
+ * XEmacs 21.2.30 is released.
+
+2000-02-17 Martin Buchholz <martin@xemacs.org>
+
+ * automated/mule-tests.el: Added some fileio tests.
+
2000-02-16 Martin Buchholz <martin@xemacs.org>
* XEmacs 21.2.29 is released.
;;-----------------------------------------------------------------
(when (featurep 'mule)
+ ;;---------------------------------------------------------------
;; Test fillarray
+ ;;---------------------------------------------------------------
(macrolet
((fillarray-test
(charset1 charset2)
(aset string 0 (make-char 'latin-iso8859-2 42))
(Assert (eq (aref string 1) (make-char 'latin-iso8859-2 69))))
+ ;;---------------------------------------------------------------
;; Test coding system functions
+ ;;---------------------------------------------------------------
;; Create alias for coding system without subsidiaries
(Assert (coding-system-p (find-coding-system 'binary)))
(Assert (not (coding-system-alias-p 'nested-mule-tests-alias)))
(Assert (not (coding-system-alias-p 'nested-mule-tests-alias-dos)))
+ ;;---------------------------------------------------------------
;; Test strings waxing and waning across the 8k BIG_STRING limit (see alloc.c)
+ ;;---------------------------------------------------------------
(defun charset-char-string (charset)
(let (lo hi string n)
(if (= (charset-chars charset) 94)
(loop for k in '(0 1 58 59) do
(Assert (equal (substring string (* 94 k) (* 94 (1+ k))) ascii-string))))
+ ;;---------------------------------------------------------------
+ ;; Test file-system character conversion (and, en passant, file ops)
+ ;;---------------------------------------------------------------
+ (let* ((scaron (make-char 'latin-iso8859-2 57))
+ (latin2-string (make-string 4 scaron))
+ (prefix (concat (file-name-as-directory (temp-directory)) latin2-string))
+ (name1 (make-temp-name prefix))
+ (name2 (make-temp-name prefix))
+ (file-name-coding-system 'iso-8859-2))
+ ;; This is how you suppress output from `message', called by `write-region'
+ (flet ((append-message (&rest args) ()))
+ (Assert (not (file-exists-p name1)))
+ (write-region (point-min) (point-max) name1)
+ (Assert (file-exists-p name1))
+ (when (fboundp 'make-symbolic-link)
+ (make-symbolic-link name1 name2)
+ (Assert (file-exists-p name2))
+ (Assert (equal (file-truename name2) name1))
+ (Assert (equal (file-truename name1) name1)))
+
+ (ignore-file-errors (delete-file name1) (delete-file name2))))
+
+ ;; Add many more file operation tests here...
+
)
emacs_is_beta=t
emacs_major_version=21
emacs_minor_version=2
-emacs_beta_version=29
-xemacs_codename="Hestia"
+emacs_beta_version=30
+xemacs_codename="Hygeia"
infodock_major_version=4
infodock_minor_version=0
infodock_build_version=8