-*- indented-text -*-
to 21.2.18 "Toshima"
+-- miscellaneous fixes from Steve Baur
+-- miscellaneous fixes from Didier Verna
+-- various bug fixes from Karl Hegbloom
+-- miscellaneous fixes from Bob Weiner
+-- fix for XIM server crashing and taking down XEmacs from Kazuyuki IENAGA
+-- valid-image-instantiator-format-p tightened up by Andy Piper.
+-- glyph widget support under X/Motif from Andy Piper
-- Make docdir configurable, update package searching rules from Michael
Sperber
-- Fix for Japanese word/character movements from MORIOKA Tomohiko
* configure.in: Add new option `--with-utf-2000'; define `UTF2000'
if it is specified.
+1999-06-29 MORIOKA Tomohiko <tomo@etl.go.jp>
+
+ * etc/TUTORIAL.th: Change code to tis-620.
+
+1999-07-13 XEmacs Build Bot <builds@cvs.xemacs.org>
+
+ * XEmacs 21.2.18 is released
+
+1999-07-06 SL Baur <steve@miho.m17n.org>
+
+ * config.guess (main): Synch with newer config.guess for HP
+ support.
+ From Marcus Thiessel <marcus@xemacs.org>
+
+1999-06-25 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
+
+ * configure.in (with_prefix): Added --with-prefix, defaults to
+ yes, to control whether the value of --prefix is compiled into the
+ binary.
+
+1999-07-03 Andy Piper <andy@xemacs.org>
+
+ * configure.usage (--with-widgets): add.
+
+1999-07-02 Andy Piper <andy@xemacs.org>
+
+ * configure.in: Make sure we get motif in lwlib if we have widgets
+ and motif.
+
+1999-06-25 SL Baur <steve@miho.m17n.org>
+
+ * configure.in (version): Fix --with-infodock test.
+
1999-06-15 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
* configure.in: --prefix and --exec-prefix are now only compiled
------------------------
In addition to the system wide packages, each user can have his own
-packages installed in "~/.xemacs/packages". If you want to
+packages installed in "~/.xemacs/xemacs-packages". If you want to
install packages there using the interactive tools, you need to set
-'pui-package-install-dest-dir' to "~/xemacs/packages"
+'pui-package-install-dest-dir' to "~/.xemacs/xemacs-packages"
Site lisp/Site start
--------------------
case "${UNAME_MACHINE}" in
9000/31? ) HP_ARCH=m68000 ;;
9000/[34]?? ) HP_ARCH=m68k ;;
- 9000/6?? | 9000/7?? | 9000/80[24] | 9000/8?[13679] | 9000/892 )
+ 9000/[678][0-9][0-9])
sed 's/^ //' << EOF >dummy.c
#include <stdlib.h>
#include <unistd.h>
lockdir='${statedir}/${PROGNAME}/lock'
archlibdir='${datadir}/${PROGNAME}-${version}/${configuration}'
docdir='${archlibdir}'
+with_prefix='yes'
with_site_lisp='no'
with_site_modules='yes'
with_menubars=''
with_scrollbars=''
+with_widgets=''
with_dialogs=''
with_file_coding=''
cpp='' cppflags='' libs='' ldflags=''
case "$opt" in
with_site_lisp | \
- with_site_modules | \
+ with_prefix | \
+ with_site_modules | \
with_x | \
with_x11 | \
with_msw | \
eval "$opt=\"$val\""
case "$opt" in
- prefix ) { test "$extra_verbose" = "yes" && cat << \EOF
- Defining PREFIX_USER_DEFINED
-EOF
-cat >> confdefs.h <<\EOF
-#define PREFIX_USER_DEFINED 1
-EOF
-}
- ;;
- exec_prefix ) { test "$extra_verbose" = "yes" && cat << \EOF
+ exec_prefix ) { test "$extra_verbose" = "yes" && cat << \EOF
Defining EXEC_PREFIX_USER_DEFINED
EOF
cat >> confdefs.h <<\EOF
"with_menubars" | \
"with_scrollbars" | \
- "with_dialogs" )
+ "with_dialogs" | \
+ "with_widgets" )
case "$val" in
l | lu | luc | luci | lucid ) val=lucid ;;
m | mo | mot | moti | motif ) val=motif ;;
fi
echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:800: checking whether ln -s works" >&5
+echo "configure:796: checking whether ln -s works" >&5
rm -f conftestdata
if ln -s X conftestdata 2>/dev/null
if test "$with_infodock" = "yes"; then
- if test ! -f ../ID-INSTALL; then
+ if test ! -f ../../ID-INSTALL; then
echo "Cannot build InfoDock without InfoDock sources"
with_infodock=no
fi
echo $ac_n "checking "host system type"""... $ac_c" 1>&6
-echo "configure:1045: checking "host system type"" >&5
+echo "configure:1041: checking "host system type"" >&5
internal_configuration=`echo $configuration | sed 's/-\(workshop\)//'`
canonical=`${CONFIG_SHELL-/bin/sh} $srcdir/config.sub "$internal_configuration"`
configuration=`echo "$configuration" | sed 's/^\([^-][^-]*-[^-][^-]*-[^-][^-]*\)-.*$/\1/'`
# 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:1537: checking for $ac_word" >&5
+echo "configure:1533: 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:1564: checking for $ac_word" >&5
+echo "configure:1560: 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:1612: checking for $ac_word" >&5
+echo "configure:1608: 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:1641: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1637: 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 1654 "configure"
+#line 1650 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:1659: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1655: \"$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:1687: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1683: 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:1692: checking whether we are using GNU C" >&5
+echo "configure:1688: 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:1699: \"$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:1695: \"$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:1717: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1713: 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:1750: checking for $ac_word" >&5
+echo "configure:1746: 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:1777: checking for $ac_word" >&5
+echo "configure:1773: 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:1825: checking for $ac_word" >&5
+echo "configure:1821: 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:1854: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1850: 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 1867 "configure"
+#line 1863 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:1872: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1868: \"$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:1900: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1896: 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:1905: checking whether we are using GNU C" >&5
+echo "configure:1901: 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:1912: \"$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:1908: \"$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:1930: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1926: 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:1963: checking for $ac_word" >&5
+echo "configure:1959: 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:1990: checking for $ac_word" >&5
+echo "configure:1986: 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:2038: checking for $ac_word" >&5
+echo "configure:2034: 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:2067: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:2063: 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 2080 "configure"
+#line 2076 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:2085: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2081: \"$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:2113: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:2109: 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:2118: checking whether we are using GNU C" >&5
+echo "configure:2114: 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:2125: \"$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:2121: \"$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:2143: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:2139: 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:2180: checking how to run the C preprocessor" >&5
+echo "configure:2176: 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 2193 "configure"
+#line 2189 "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:2199: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2195: \"$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 2210 "configure"
+#line 2206 "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:2216: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2212: \"$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 2227 "configure"
+#line 2223 "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:2233: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2229: \"$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:2258: checking for AIX" >&5
+echo "configure:2254: checking for AIX" >&5
cat > conftest.$ac_ext <<EOF
-#line 2260 "configure"
+#line 2256 "configure"
#include "confdefs.h"
#ifdef _AIX
yes
echo $ac_n "checking for GNU libc""... $ac_c" 1>&6
-echo "configure:2287: checking for GNU libc" >&5
+echo "configure:2283: checking for GNU libc" >&5
cat > conftest.$ac_ext <<EOF
-#line 2289 "configure"
+#line 2285 "configure"
#include "confdefs.h"
#include <features.h>
int main() {
; return 0; }
EOF
-if { (eval echo configure:2301: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2297: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
have_glibc=yes
else
cat > conftest.$ac_ext <<EOF
-#line 2323 "configure"
+#line 2319 "configure"
#include "confdefs.h"
int main () {
#if defined __SUNPRO_C
#endif
}
EOF
-if { (eval echo configure:2335: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:2331: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
:
else
fi
echo $ac_n "checking for dynodump""... $ac_c" 1>&6
-echo "configure:2609: checking for dynodump" >&5
+echo "configure:2605: 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:2647: checking for terminateAndUnload in -lC" >&5
+echo "configure:2643: 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 2652 "configure"
+#line 2648 "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:2663: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2659: \"$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:2767: checking "for runtime libraries flag"" >&5
+echo "configure:2763: 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 2789 "configure"
+#line 2785 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:2796: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2792: \"$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:2898: checking for malloc_get_state" >&5
+echo "configure:2894: checking for malloc_get_state" >&5
cat > conftest.$ac_ext <<EOF
-#line 2901 "configure"
+#line 2897 "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:2924: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2920: \"$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:2944: checking for malloc_set_state" >&5
+echo "configure:2940: checking for malloc_set_state" >&5
cat > conftest.$ac_ext <<EOF
-#line 2947 "configure"
+#line 2943 "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:2970: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2966: \"$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:2990: checking whether __after_morecore_hook exists" >&5
+echo "configure:2986: checking whether __after_morecore_hook exists" >&5
cat > conftest.$ac_ext <<EOF
-#line 2992 "configure"
+#line 2988 "configure"
#include "confdefs.h"
extern void (* __after_morecore_hook)();
int main() {
__after_morecore_hook = 0
; return 0; }
EOF
-if { (eval echo configure:2999: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2995: \"$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:3058: checking for $ac_word" >&5
+echo "configure:3054: 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:3113: checking for a BSD compatible install" >&5
+echo "configure:3109: 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:3167: checking for $ac_word" >&5
+echo "configure:3163: checking for $ac_word" >&5
if test -n "$YACC"; then
ac_cv_prog_YACC="$YACC" # Let the user override the test.
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3199: checking for $ac_hdr" >&5
+echo "configure:3195: checking for $ac_hdr" >&5
cat > conftest.$ac_ext <<EOF
-#line 3202 "configure"
+#line 3198 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3207: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3203: \"$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*
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3240: checking for $ac_hdr" >&5
+echo "configure:3236: checking for $ac_hdr" >&5
cat > conftest.$ac_ext <<EOF
-#line 3243 "configure"
+#line 3239 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3248: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3244: \"$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*
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3281: checking for $ac_hdr" >&5
+echo "configure:3277: checking for $ac_hdr" >&5
cat > conftest.$ac_ext <<EOF
-#line 3284 "configure"
+#line 3280 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3289: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3285: \"$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:3319: checking for sys/wait.h that is POSIX.1 compatible" >&5
+echo "configure:3315: checking for sys/wait.h that is POSIX.1 compatible" >&5
cat > conftest.$ac_ext <<EOF
-#line 3322 "configure"
+#line 3318 "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:3338: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3334: \"$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:3362: checking for ANSI C header files" >&5
+echo "configure:3358: checking for ANSI C header files" >&5
cat > conftest.$ac_ext <<EOF
-#line 3365 "configure"
+#line 3361 "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:3373: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3369: \"$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 3390 "configure"
+#line 3386 "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 3408 "configure"
+#line 3404 "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 3426 "configure"
+#line 3422 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
exit (0); }
EOF
-if { (eval echo configure:3437: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:3433: \"$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:3463: checking whether time.h and sys/time.h may both be included" >&5
+echo "configure:3459: checking whether time.h and sys/time.h may both be included" >&5
cat > conftest.$ac_ext <<EOF
-#line 3466 "configure"
+#line 3462 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/time.h>
struct tm *tp;
; return 0; }
EOF
-if { (eval echo configure:3475: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3471: \"$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:3499: checking for sys_siglist declaration in signal.h or unistd.h" >&5
+echo "configure:3495: checking for sys_siglist declaration in signal.h or unistd.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 3502 "configure"
+#line 3498 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <signal.h>
char *msg = *(sys_siglist + 1);
; return 0; }
EOF
-if { (eval echo configure:3514: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3510: \"$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:3539: checking for struct utimbuf" >&5
+echo "configure:3535: checking for struct utimbuf" >&5
cat > conftest.$ac_ext <<EOF
-#line 3541 "configure"
+#line 3537 "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:3560: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3556: \"$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:3580: checking return type of signal handlers" >&5
+echo "configure:3576: checking return type of signal handlers" >&5
cat > conftest.$ac_ext <<EOF
-#line 3583 "configure"
+#line 3579 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <signal.h>
int i;
; return 0; }
EOF
-if { (eval echo configure:3600: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3596: \"$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:3622: checking for size_t" >&5
+echo "configure:3618: checking for size_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 3625 "configure"
+#line 3621 "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:3656: checking for pid_t" >&5
+echo "configure:3652: checking for pid_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 3659 "configure"
+#line 3655 "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:3690: checking for uid_t in sys/types.h" >&5
+echo "configure:3686: checking for uid_t in sys/types.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 3693 "configure"
+#line 3689 "configure"
#include "confdefs.h"
#include <sys/types.h>
EOF
fi
echo $ac_n "checking for mode_t""... $ac_c" 1>&6
-echo "configure:3729: checking for mode_t" >&5
+echo "configure:3725: checking for mode_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 3732 "configure"
+#line 3728 "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:3763: checking for off_t" >&5
+echo "configure:3759: checking for off_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 3766 "configure"
+#line 3762 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
echo $ac_n "checking for struct timeval""... $ac_c" 1>&6
-echo "configure:3798: checking for struct timeval" >&5
+echo "configure:3794: checking for struct timeval" >&5
cat > conftest.$ac_ext <<EOF
-#line 3800 "configure"
+#line 3796 "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:3816: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3812: \"$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:3838: checking whether struct tm is in sys/time.h or time.h" >&5
+echo "configure:3834: checking whether struct tm is in sys/time.h or time.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 3841 "configure"
+#line 3837 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <time.h>
struct tm *tp; tp->tm_sec;
; return 0; }
EOF
-if { (eval echo configure:3849: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3845: \"$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:3873: checking for tm_zone in struct tm" >&5
+echo "configure:3869: checking for tm_zone in struct tm" >&5
cat > conftest.$ac_ext <<EOF
-#line 3876 "configure"
+#line 3872 "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:3884: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3880: \"$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:3907: checking for tzname" >&5
+echo "configure:3903: checking for tzname" >&5
cat > conftest.$ac_ext <<EOF
-#line 3910 "configure"
+#line 3906 "configure"
#include "confdefs.h"
#include <time.h>
#ifndef tzname /* For SGI. */
atoi(*tzname);
; return 0; }
EOF
-if { (eval echo configure:3920: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3916: \"$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:3946: checking for working const" >&5
+echo "configure:3942: checking for working const" >&5
cat > conftest.$ac_ext <<EOF
-#line 3949 "configure"
+#line 3945 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:3998: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3994: \"$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:4023: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:4019: 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:4048: checking whether byte ordering is bigendian" >&5
+echo "configure:4044: 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 4053 "configure"
+#line 4049 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/param.h>
#endif
; return 0; }
EOF
-if { (eval echo configure:4064: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4060: \"$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 4068 "configure"
+#line 4064 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/param.h>
#endif
; return 0; }
EOF
-if { (eval echo configure:4079: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4075: \"$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 4096 "configure"
+#line 4092 "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:4109: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4105: \"$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:4136: checking size of short" >&5
+echo "configure:4132: checking size of short" >&5
cat > conftest.$ac_ext <<EOF
-#line 4139 "configure"
+#line 4135 "configure"
#include "confdefs.h"
#include <stdio.h>
main()
exit(0);
}
EOF
-if { (eval echo configure:4150: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4146: \"$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:4178: checking size of int" >&5
+echo "configure:4174: checking size of int" >&5
cat > conftest.$ac_ext <<EOF
-#line 4181 "configure"
+#line 4177 "configure"
#include "confdefs.h"
#include <stdio.h>
main()
exit(0);
}
EOF
-if { (eval echo configure:4192: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4188: \"$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:4214: checking size of long" >&5
+echo "configure:4210: checking size of long" >&5
cat > conftest.$ac_ext <<EOF
-#line 4217 "configure"
+#line 4213 "configure"
#include "confdefs.h"
#include <stdio.h>
main()
exit(0);
}
EOF
-if { (eval echo configure:4228: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4224: \"$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:4250: checking size of long long" >&5
+echo "configure:4246: checking size of long long" >&5
cat > conftest.$ac_ext <<EOF
-#line 4253 "configure"
+#line 4249 "configure"
#include "confdefs.h"
#include <stdio.h>
main()
exit(0);
}
EOF
-if { (eval echo configure:4264: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4260: \"$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:4286: checking size of void *" >&5
+echo "configure:4282: checking size of void *" >&5
cat > conftest.$ac_ext <<EOF
-#line 4289 "configure"
+#line 4285 "configure"
#include "confdefs.h"
#include <stdio.h>
main()
exit(0);
}
EOF
-if { (eval echo configure:4300: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4296: \"$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:4323: checking for long file names" >&5
+echo "configure:4319: 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:4369: checking for sin" >&5
+echo "configure:4365: checking for sin" >&5
cat > conftest.$ac_ext <<EOF
-#line 4372 "configure"
+#line 4368 "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:4395: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4391: \"$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:4413: checking for sin in -lm" >&5
+echo "configure:4409: 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 4418 "configure"
+#line 4414 "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:4429: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4425: \"$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 4473 "configure"
+#line 4469 "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:4480: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4476: \"$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:4497: checking type of mail spool file locking" >&5
+echo "configure:4493: checking type of mail spool file locking" >&5
test -z "$mail_locking" -a "$mail_use_flock" = "yes" && mail_locking=flock
test -z "$mail_locking" -a "$mail_use_lockf" = "yes" && mail_locking=lockf
if test "$mail_locking" = "lockf"; then { test "$extra_verbose" = "yes" && cat << \EOF
case "$opsys" in decosf*)
echo $ac_n "checking for cma_open in -lpthreads""... $ac_c" 1>&6
-echo "configure:4522: checking for cma_open in -lpthreads" >&5
+echo "configure:4518: 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 4527 "configure"
+#line 4523 "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:4538: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4534: \"$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:4574: checking whether the -xildoff compiler flag is required" >&5
+echo "configure:4570: 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;
if test "$opsys" = "sol2" && test "$OS_RELEASE" -ge 56; then
echo $ac_n "checking for \"-z ignore\" linker flag""... $ac_c" 1>&6
-echo "configure:4585: checking for \"-z ignore\" linker flag" >&5
+echo "configure:4581: 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 "checking "for specified window system"" 1>&6
-echo "configure:4595: checking "for specified window system"" >&5
+echo "configure:4591: 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:4628: checking for X" >&5
+echo "configure:4624: 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 4688 "configure"
+#line 4684 "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:4693: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4689: \"$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 4762 "configure"
+#line 4758 "configure"
#include "confdefs.h"
int main() {
${x_direct_test_function}()
; return 0; }
EOF
-if { (eval echo configure:4769: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4765: \"$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:4878: checking whether -R must be followed by a space" >&5
+echo "configure:4874: 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 4881 "configure"
+#line 4877 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:4888: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4884: \"$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 4904 "configure"
+#line 4900 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:4911: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4907: \"$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:4947: checking for dnet_ntoa in -ldnet" >&5
+echo "configure:4943: 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 4952 "configure"
+#line 4948 "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:4963: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4959: \"$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:4987: checking for dnet_ntoa in -ldnet_stub" >&5
+echo "configure:4983: 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 4992 "configure"
+#line 4988 "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:5003: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4999: \"$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:5032: checking for gethostbyname" >&5
+echo "configure:5028: checking for gethostbyname" >&5
cat > conftest.$ac_ext <<EOF
-#line 5035 "configure"
+#line 5031 "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:5058: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5054: \"$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:5079: checking for gethostbyname in -lnsl" >&5
+echo "configure:5075: 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 5084 "configure"
+#line 5080 "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:5095: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5091: \"$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:5125: checking for connect" >&5
+echo "configure:5121: checking for connect" >&5
cat > conftest.$ac_ext <<EOF
-#line 5128 "configure"
+#line 5124 "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:5151: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5147: \"$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:5174: checking "$xe_msg_checking"" >&5
+echo "configure:5170: 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 5179 "configure"
+#line 5175 "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:5190: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5186: \"$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:5214: checking for remove" >&5
+echo "configure:5210: checking for remove" >&5
cat > conftest.$ac_ext <<EOF
-#line 5217 "configure"
+#line 5213 "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:5240: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5236: \"$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:5261: checking for remove in -lposix" >&5
+echo "configure:5257: 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 5266 "configure"
+#line 5262 "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:5277: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5273: \"$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:5301: checking for shmat" >&5
+echo "configure:5297: checking for shmat" >&5
cat > conftest.$ac_ext <<EOF
-#line 5304 "configure"
+#line 5300 "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:5327: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5323: \"$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:5348: checking for shmat in -lipc" >&5
+echo "configure:5344: 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 5353 "configure"
+#line 5349 "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:5364: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5360: \"$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:5400: checking "$xe_msg_checking"" >&5
+echo "configure:5396: 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 5405 "configure"
+#line 5401 "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:5416: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5412: \"$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:5585: checking for X defines extracted by xmkmf" >&5
+echo "configure:5581: 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:5617: checking for X11/Intrinsic.h" >&5
+echo "configure:5613: checking for X11/Intrinsic.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 5620 "configure"
+#line 5616 "configure"
#include "confdefs.h"
#include <X11/Intrinsic.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5625: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5621: \"$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:5649: checking for XOpenDisplay in -lX11" >&5
+echo "configure:5645: 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 5654 "configure"
+#line 5650 "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:5665: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5661: \"$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:5690: checking "$xe_msg_checking"" >&5
+echo "configure:5686: 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 5695 "configure"
+#line 5691 "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:5706: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5702: \"$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:5733: checking for XShapeSelectInput in -lXext" >&5
+echo "configure:5729: 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 5738 "configure"
+#line 5734 "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:5749: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5745: \"$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:5772: checking for XtOpenDisplay in -lXt" >&5
+echo "configure:5768: 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 5777 "configure"
+#line 5773 "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:5788: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5784: \"$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:5811: checking the version of X11 being used" >&5
+echo "configure:5807: checking the version of X11 being used" >&5
cat > conftest.$ac_ext <<EOF
-#line 5813 "configure"
+#line 5809 "configure"
#include "confdefs.h"
#include <X11/Intrinsic.h>
int main(int c, char *v[]) { return c>1 ? XlibSpecificationRelease : 0; }
EOF
-if { (eval echo configure:5818: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:5814: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
./conftest foobar; x11_release=$?
else
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:5843: checking for $ac_hdr" >&5
+echo "configure:5839: checking for $ac_hdr" >&5
cat > conftest.$ac_ext <<EOF
-#line 5846 "configure"
+#line 5842 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5851: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5847: \"$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:5882: checking for XFree86" >&5
+echo "configure:5878: 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:5902: checking for XmuReadBitmapDataFromFile in -lXmu" >&5
+echo "configure:5898: 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 5907 "configure"
+#line 5903 "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:5918: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5914: \"$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:5957: checking for main in -lXbsd" >&5
+echo "configure:5953: 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 5962 "configure"
+#line 5958 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:5969: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5965: \"$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:6006: checking for MS-Windows" >&5
+echo "configure:6002: checking for MS-Windows" >&5
echo $ac_n "checking for main in -lgdi32""... $ac_c" 1>&6
-echo "configure:6009: checking for main in -lgdi32" >&5
+echo "configure:6005: 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 6014 "configure"
+#line 6010 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:6021: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6017: \"$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 6086 "configure"
+#line 6082 "configure"
#include "confdefs.h"
#include <fcntl.h>
int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; }
EOF
-if { (eval echo configure:6091: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:6087: \"$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:6167: checking for WM_COMMAND option" >&5;
+echo "configure:6163: 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:6182: checking for X11/Xauth.h" >&5
+echo "configure:6178: checking for X11/Xauth.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 6185 "configure"
+#line 6181 "configure"
#include "confdefs.h"
#include <X11/Xauth.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6190: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6186: \"$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:6213: checking for XauGetAuthByAddr in -lXau" >&5
+echo "configure:6209: 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 6218 "configure"
+#line 6214 "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:6229: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6225: \"$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:6274: checking for ${dir}tt_c.h" >&5
+echo "configure:6270: checking for ${dir}tt_c.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 6277 "configure"
+#line 6273 "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:6282: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6278: \"$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:6318: checking "$xe_msg_checking"" >&5
+echo "configure:6314: 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 6323 "configure"
+#line 6319 "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:6334: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6330: \"$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:6391: checking for Dt/Dt.h" >&5
+echo "configure:6387: checking for Dt/Dt.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 6394 "configure"
+#line 6390 "configure"
#include "confdefs.h"
#include <Dt/Dt.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6399: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6395: \"$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:6422: checking for DtDndDragStart in -lDtSvc" >&5
+echo "configure:6418: 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 6427 "configure"
+#line 6423 "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:6438: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6434: \"$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:6507: checking if drag and drop API is needed" >&5
+echo "configure:6503: 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:6528: checking for LDAP" >&5
+echo "configure:6524: 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:6531: checking for ldap.h" >&5
+echo "configure:6527: checking for ldap.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 6534 "configure"
+#line 6530 "configure"
#include "confdefs.h"
#include <ldap.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6539: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6535: \"$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:6562: checking for lber.h" >&5
+echo "configure:6558: checking for lber.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 6565 "configure"
+#line 6561 "configure"
#include "confdefs.h"
#include <lber.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6570: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6566: \"$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:6594: checking for ldap_search in -lldap" >&5
+echo "configure:6590: 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 6599 "configure"
+#line 6595 "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:6610: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6606: \"$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:6635: checking "$xe_msg_checking"" >&5
+echo "configure:6631: 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 6640 "configure"
+#line 6636 "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:6651: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6647: \"$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:6695: checking for $ac_func" >&5
+echo "configure:6691: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 6698 "configure"
+#line 6694 "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:6721: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6717: \"$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:6753: checking for graphics libraries" >&5
+echo "configure:6749: 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:6758: checking for Xpm - no older than 3.4f" >&5
+echo "configure:6754: checking for Xpm - no older than 3.4f" >&5
xe_check_libs=-lXpm
cat > conftest.$ac_ext <<EOF
-#line 6761 "configure"
+#line 6757 "configure"
#include "confdefs.h"
#include <X11/xpm.h>
int main(int c, char **v) {
XpmIncludeVersion != XpmLibraryVersion() ? 1 :
XpmIncludeVersion < 30406 ? 2 : 0 ;}
EOF
-if { (eval echo configure:6769: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:6765: \"$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:6811: checking for \"FOR_MSW\" xpm" >&5
+echo "configure:6807: checking for \"FOR_MSW\" xpm" >&5
xe_check_libs=-lXpm
cat > conftest.$ac_ext <<EOF
-#line 6814 "configure"
+#line 6810 "configure"
#include "confdefs.h"
int main() {
XpmCreatePixmapFromData()
; return 0; }
EOF
-if { (eval echo configure:6821: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6817: \"$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:6847: checking for compface.h" >&5
+echo "configure:6843: checking for compface.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 6850 "configure"
+#line 6846 "configure"
#include "confdefs.h"
#include <compface.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6855: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6851: \"$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:6878: checking for UnGenFace in -lcompface" >&5
+echo "configure:6874: 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 6883 "configure"
+#line 6879 "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:6894: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6890: \"$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:6946: checking for inflate in -lc" >&5
+echo "configure:6942: 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 6951 "configure"
+#line 6947 "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:6962: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6958: \"$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:6981: checking for inflate in -lz" >&5
+echo "configure:6977: 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 6986 "configure"
+#line 6982 "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:6997: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6993: \"$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:7016: checking for inflate in -lgz" >&5
+echo "configure:7012: 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 7021 "configure"
+#line 7017 "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:7032: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7028: \"$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:7062: checking for jpeglib.h" >&5
+echo "configure:7058: checking for jpeglib.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 7065 "configure"
+#line 7061 "configure"
#include "confdefs.h"
#include <jpeglib.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7070: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7066: \"$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:7093: checking for jpeg_destroy_decompress in -ljpeg" >&5
+echo "configure:7089: 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 7098 "configure"
+#line 7094 "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:7109: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7105: \"$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:7145: checking for pow" >&5
+echo "configure:7141: checking for pow" >&5
cat > conftest.$ac_ext <<EOF
-#line 7148 "configure"
+#line 7144 "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:7171: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7167: \"$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:7192: checking for png.h" >&5
+echo "configure:7188: checking for png.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 7195 "configure"
+#line 7191 "configure"
#include "confdefs.h"
#include <png.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7200: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7196: \"$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:7223: checking for png_read_image in -lpng" >&5
+echo "configure:7219: 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 7228 "configure"
+#line 7224 "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:7239: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7235: \"$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:7262: checking for workable png version information" >&5
+echo "configure:7258: checking for workable png version information" >&5
xe_check_libs="-lpng -lz"
cat > conftest.$ac_ext <<EOF
-#line 7265 "configure"
+#line 7261 "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:7273: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:7269: \"$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:7316: checking for tiffio.h" >&5
+echo "configure:7312: checking for tiffio.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 7319 "configure"
+#line 7315 "configure"
#include "confdefs.h"
#include <tiffio.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7324: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7320: \"$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:7347: checking for TIFFClientOpen in -ltiff" >&5
+echo "configure:7343: 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 7352 "configure"
+#line 7348 "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:7363: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7359: \"$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:7402: checking for X11 graphics libraries" >&5
+echo "configure:7398: checking for X11 graphics libraries" >&5
echo $ac_n "checking for XawScrollbarSetThumb in -lXaw""... $ac_c" 1>&6
-echo "configure:7406: checking for XawScrollbarSetThumb in -lXaw" >&5
+echo "configure:7402: checking for XawScrollbarSetThumb in -lXaw" >&5
ac_lib_var=`echo Xaw'_'XawScrollbarSetThumb | sed 'y%./+-%__p_%'`
xe_check_libs=" -lXaw "
cat > conftest.$ac_ext <<EOF
-#line 7411 "configure"
+#line 7407 "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:7422: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7418: \"$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 "Xm/Xm.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for Xm/Xm.h""... $ac_c" 1>&6
-echo "configure:7446: checking for Xm/Xm.h" >&5
+echo "configure:7442: checking for Xm/Xm.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 7449 "configure"
+#line 7445 "configure"
#include "confdefs.h"
#include <Xm/Xm.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7454: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7450: \"$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:7471: checking for XmStringFree in -lXm" >&5
+echo "configure:7467: 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 7476 "configure"
+#line 7472 "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:7487: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7483: \"$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:7516: checking for Lesstif" >&5
+echo "configure:7512: checking for Lesstif" >&5
cat > conftest.$ac_ext <<EOF
-#line 7518 "configure"
+#line 7514 "configure"
#include "confdefs.h"
#include <Xm/Xm.h>
#ifdef LESSTIF_VERSION
case "$with_scrollbars" in "" | "yes" )
with_scrollbars="lucid" ;;
esac
+case "$with_widgets" in "" | "yes" )
+ if test "$have_motif" = "yes"; then with_widgets="motif"
+ else with_widgets=no
+ fi ;;
+esac
-all_widgets="$with_menubars $with_scrollbars $with_dialogs $with_toolbars"
+all_widgets="$with_menubars $with_scrollbars $with_dialogs $with_toolbars $with_widgets"
case "$all_widgets" in *athena* )
{ test "$extra_verbose" = "yes" && cat << \EOF
test "$with_toolbars" != "no" && extra_objs="$extra_objs toolbar-x.o" && if test "$extra_verbose" = "yes"; then
echo " xemacs will be linked with \"toolbar-x.o\""
fi
- test "$all_widgets" != "no no no no" && extra_objs="$extra_objs gui-x.o" && if test "$extra_verbose" = "yes"; then
+ test "$all_widgets" != "no no no no no" && extra_objs="$extra_objs gui-x.o" && if test "$extra_verbose" = "yes"; then
echo " xemacs will be linked with \"gui-x.o\""
fi
else
if test "$with_mule" = "yes" ; then
echo "checking for Mule-related features" 1>&6
-echo "configure:7781: checking for Mule-related features" >&5
+echo "configure:7782: 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:7806: checking for $ac_hdr" >&5
+echo "configure:7807: checking for $ac_hdr" >&5
cat > conftest.$ac_ext <<EOF
-#line 7809 "configure"
+#line 7810 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7814: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7815: \"$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:7845: checking for strerror in -lintl" >&5
+echo "configure:7846: 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 7850 "configure"
+#line 7851 "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:7861: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7862: \"$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 "checking for Mule input methods" 1>&6
-echo "configure:7922: checking for Mule input methods" >&5
+echo "configure:7923: checking for Mule input methods" >&5
case "$with_xim" in "" | "yes" )
echo "checking for XIM" 1>&6
-echo "configure:7925: checking for XIM" >&5
+echo "configure:7926: checking for XIM" >&5
echo $ac_n "checking for XOpenIM in -lX11""... $ac_c" 1>&6
-echo "configure:7928: checking for XOpenIM in -lX11" >&5
+echo "configure:7929: 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 7933 "configure"
+#line 7934 "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:7944: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7945: \"$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:7968: checking for XmImMbLookupString in -lXm" >&5
+echo "configure:7969: 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 7973 "configure"
+#line 7974 "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:7984: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7985: \"$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:8049: checking for XFontSet" >&5
+echo "configure:8050: checking for XFontSet" >&5
echo $ac_n "checking for XmbDrawString in -lX11""... $ac_c" 1>&6
-echo "configure:8052: checking for XmbDrawString in -lX11" >&5
+echo "configure:8053: 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 8057 "configure"
+#line 8058 "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:8068: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8069: \"$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:8108: checking for wnn/jllib.h" >&5
+echo "configure:8109: checking for wnn/jllib.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 8111 "configure"
+#line 8112 "configure"
#include "confdefs.h"
#include <wnn/jllib.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8116: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8117: \"$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:8141: checking for $ac_func" >&5
+echo "configure:8142: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 8144 "configure"
+#line 8145 "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:8167: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8168: \"$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:8196: checking for crypt in -lcrypt" >&5
+echo "configure:8197: 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 8201 "configure"
+#line 8202 "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:8212: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8213: \"$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:8247: checking for jl_dic_list_e in -lwnn" >&5
+echo "configure:8248: 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 8252 "configure"
+#line 8253 "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:8263: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8264: \"$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:8281: checking for jl_dic_list_e in -lwnn4" >&5
+echo "configure:8282: 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 8286 "configure"
+#line 8287 "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:8297: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8298: \"$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:8315: checking for jl_dic_list_e in -lwnn6" >&5
+echo "configure:8316: 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 8320 "configure"
+#line 8321 "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:8331: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8332: \"$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:8349: checking for dic_list_e in -lwnn6_fromsrc" >&5
+echo "configure:8350: 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 8354 "configure"
+#line 8355 "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:8365: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8366: \"$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:8413: checking for jl_fi_dic_list in -l$libwnn" >&5
+echo "configure:8414: 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 8418 "configure"
+#line 8419 "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:8429: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8430: \"$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:8464: checking for canna/jrkanji.h" >&5
+echo "configure:8465: checking for canna/jrkanji.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 8467 "configure"
+#line 8468 "configure"
#include "confdefs.h"
#include <canna/jrkanji.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8472: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8473: \"$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:8499: checking for canna/jrkanji.h" >&5
+echo "configure:8500: checking for canna/jrkanji.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 8502 "configure"
+#line 8503 "configure"
#include "confdefs.h"
#include <canna/jrkanji.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8507: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8508: \"$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:8535: checking for canna/RK.h" >&5
+echo "configure:8536: checking for canna/RK.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 8538 "configure"
+#line 8539 "configure"
#include "confdefs.h"
#include <canna/RK.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8543: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8544: \"$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:8566: checking for RkBgnBun in -lRKC" >&5
+echo "configure:8567: 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 8571 "configure"
+#line 8572 "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:8582: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8583: \"$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:8605: checking for jrKanjiControl in -lcanna" >&5
+echo "configure:8606: 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 8610 "configure"
+#line 8611 "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:8621: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8622: \"$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:8670: checking for layout_object_getvalue in -li18n" >&5
+echo "configure:8671: 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 8675 "configure"
+#line 8676 "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:8686: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8687: \"$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 gethostname getpagesize gettimeofday getcwd getwd logb lrand48 matherr mkdir mktime perror poll random rename res_init rint rmdir select setitimer setpgid setlocale setsid sigblock sighold sigprocmask snprintf strcasecmp strerror tzset ulimit usleep utimes waitpid vsnprintf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8772: checking for $ac_func" >&5
+echo "configure:8773: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 8775 "configure"
+#line 8776 "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:8798: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8799: \"$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 realpath
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8839: checking for $ac_func" >&5
+echo "configure:8840: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 8842 "configure"
+#line 8843 "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:8865: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8866: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
for ac_func in getloadavg
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8901: checking for $ac_func" >&5
+echo "configure:8902: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 8904 "configure"
+#line 8905 "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:8927: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8928: \"$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:8963: checking for kstat_open in -lkstat" >&5
+echo "configure:8964: 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 8968 "configure"
+#line 8969 "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:8979: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8980: \"$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:9013: checking for kvm_read in -lkvm" >&5
+echo "configure:9014: 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 9018 "configure"
+#line 9019 "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:9029: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9030: \"$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:9063: checking whether netdb declares h_errno" >&5
+echo "configure:9064: checking whether netdb declares h_errno" >&5
cat > conftest.$ac_ext <<EOF
-#line 9065 "configure"
+#line 9066 "configure"
#include "confdefs.h"
#include <netdb.h>
int main() {
return h_errno;
; return 0; }
EOF
-if { (eval echo configure:9072: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9073: \"$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:9092: checking for sigsetjmp" >&5
+echo "configure:9093: checking for sigsetjmp" >&5
cat > conftest.$ac_ext <<EOF
-#line 9094 "configure"
+#line 9095 "configure"
#include "confdefs.h"
#include <setjmp.h>
int main() {
sigjmp_buf bar; sigsetjmp (bar, 0);
; return 0; }
EOF
-if { (eval echo configure:9101: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9102: \"$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:9121: checking whether localtime caches TZ" >&5
+echo "configure:9122: checking whether localtime caches TZ" >&5
if test "$ac_cv_func_tzset" = "yes"; then
cat > conftest.$ac_ext <<EOF
-#line 9125 "configure"
+#line 9126 "configure"
#include "confdefs.h"
#include <time.h>
#if STDC_HEADERS
exit (0);
}
EOF
-if { (eval echo configure:9160: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:9161: \"$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:9190: checking whether gettimeofday accepts one or two arguments" >&5
+echo "configure:9191: checking whether gettimeofday accepts one or two arguments" >&5
cat > conftest.$ac_ext <<EOF
-#line 9192 "configure"
+#line 9193 "configure"
#include "confdefs.h"
#ifdef TIME_WITH_SYS_TIME
; return 0; }
EOF
-if { (eval echo configure:9214: \"$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*
echo "$ac_t""two" 1>&6
else
echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:9236: checking for inline" >&5
+echo "configure:9237: checking for inline" >&5
ac_cv_c_inline=no
for ac_kw in inline __inline__ __inline; do
cat > conftest.$ac_ext <<EOF
-#line 9241 "configure"
+#line 9242 "configure"
#include "confdefs.h"
int main() {
} $ac_kw foo() {
; return 0; }
EOF
-if { (eval echo configure:9248: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9249: \"$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:9298: checking for working alloca.h" >&5
+echo "configure:9299: checking for working alloca.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 9301 "configure"
+#line 9302 "configure"
#include "confdefs.h"
#include <alloca.h>
int main() {
char *p = alloca(2 * sizeof(int));
; return 0; }
EOF
-if { (eval echo configure:9308: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9309: \"$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:9332: checking for alloca" >&5
+echo "configure:9333: checking for alloca" >&5
cat > conftest.$ac_ext <<EOF
-#line 9335 "configure"
+#line 9336 "configure"
#include "confdefs.h"
#ifdef __GNUC__
char *p = (char *) alloca(1);
; return 0; }
EOF
-if { (eval echo configure:9363: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9364: \"$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:9402: checking whether alloca needs Cray hooks" >&5
+echo "configure:9403: checking whether alloca needs Cray hooks" >&5
cat > conftest.$ac_ext <<EOF
-#line 9405 "configure"
+#line 9406 "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:9429: checking for $ac_func" >&5
+echo "configure:9430: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 9432 "configure"
+#line 9433 "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:9455: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9456: \"$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:9485: checking stack direction for C alloca" >&5
+echo "configure:9486: checking stack direction for C alloca" >&5
cat > conftest.$ac_ext <<EOF
-#line 9488 "configure"
+#line 9489 "configure"
#include "confdefs.h"
find_stack_direction ()
{
exit (find_stack_direction() < 0);
}
EOF
-if { (eval echo configure:9507: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:9508: \"$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:9536: checking for vfork.h" >&5
+echo "configure:9537: checking for vfork.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 9539 "configure"
+#line 9540 "configure"
#include "confdefs.h"
#include <vfork.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9544: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9545: \"$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:9572: checking for working vfork" >&5
+echo "configure:9573: checking for working vfork" >&5
cat > conftest.$ac_ext <<EOF
-#line 9575 "configure"
+#line 9576 "configure"
#include "confdefs.h"
/* Thanks to Paul Eggert for this test. */
#include <stdio.h>
}
}
EOF
-if { (eval echo configure:9670: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:9671: \"$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:9696: checking for working strcoll" >&5
+echo "configure:9697: checking for working strcoll" >&5
cat > conftest.$ac_ext <<EOF
-#line 9699 "configure"
+#line 9700 "configure"
#include "confdefs.h"
#include <string.h>
main ()
strcoll ("123", "456") >= 0);
}
EOF
-if { (eval echo configure:9709: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:9710: \"$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:9737: checking for $ac_func" >&5
+echo "configure:9738: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 9740 "configure"
+#line 9741 "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:9763: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9764: \"$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:9791: checking whether getpgrp takes no argument" >&5
+echo "configure:9792: checking whether getpgrp takes no argument" >&5
cat > conftest.$ac_ext <<EOF
-#line 9794 "configure"
+#line 9795 "configure"
#include "confdefs.h"
/*
}
EOF
-if { (eval echo configure:9849: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:9850: \"$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:9876: checking for working mmap" >&5
+echo "configure:9877: checking for working mmap" >&5
case "$opsys" in ultrix* ) have_mmap=no ;; *)
cat > conftest.$ac_ext <<EOF
-#line 9879 "configure"
+#line 9880 "configure"
#include "confdefs.h"
#include <stdio.h>
#include <unistd.h>
return 1;
}
EOF
-if { (eval echo configure:9912: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:9913: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
have_mmap=yes
else
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:9937: checking for $ac_hdr" >&5
+echo "configure:9938: checking for $ac_hdr" >&5
cat > conftest.$ac_ext <<EOF
-#line 9940 "configure"
+#line 9941 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9945: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9946: \"$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 getpagesize
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:9977: checking for $ac_func" >&5
+echo "configure:9978: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 9980 "configure"
+#line 9981 "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:10003: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10004: \"$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 for working mmap""... $ac_c" 1>&6
-echo "configure:10031: checking for working mmap" >&5
+echo "configure:10032: checking for working mmap" >&5
cat > conftest.$ac_ext <<EOF
-#line 10034 "configure"
+#line 10035 "configure"
#include "confdefs.h"
/* Thanks to Mike Haertel and Jim Avera for this test.
}
EOF
-if { (eval echo configure:10174: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:10175: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
ac_cv_func_mmap_fixed_mapped=yes
else
ac_safe=`echo "termios.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for termios.h""... $ac_c" 1>&6
-echo "configure:10212: checking for termios.h" >&5
+echo "configure:10213: checking for termios.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 10215 "configure"
+#line 10216 "configure"
#include "confdefs.h"
#include <termios.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10220: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10221: \"$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:10263: checking for termio.h" >&5
+echo "configure:10264: checking for termio.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 10266 "configure"
+#line 10267 "configure"
#include "confdefs.h"
#include <termio.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10271: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10272: \"$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:10303: checking for socket" >&5
+echo "configure:10304: checking for socket" >&5
cat > conftest.$ac_ext <<EOF
-#line 10306 "configure"
+#line 10307 "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:10329: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10330: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_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:10344: checking for netinet/in.h" >&5
+echo "configure:10345: checking for netinet/in.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 10347 "configure"
+#line 10348 "configure"
#include "confdefs.h"
#include <netinet/in.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10352: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10353: \"$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:10369: checking for arpa/inet.h" >&5
+echo "configure:10370: checking for arpa/inet.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 10372 "configure"
+#line 10373 "configure"
#include "confdefs.h"
#include <arpa/inet.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10377: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10378: \"$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:10402: checking "for sun_len member in struct sockaddr_un"" >&5
+echo "configure:10403: checking "for sun_len member in struct sockaddr_un"" >&5
cat > conftest.$ac_ext <<EOF
-#line 10404 "configure"
+#line 10405 "configure"
#include "confdefs.h"
#include <sys/types.h>
static struct sockaddr_un x; x.sun_len = 1;
; return 0; }
EOF
-if { (eval echo configure:10415: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10416: \"$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:10433: checking "for ip_mreq struct in netinet/in.h"" >&5
+echo "configure:10434: checking "for ip_mreq struct in netinet/in.h"" >&5
cat > conftest.$ac_ext <<EOF
-#line 10435 "configure"
+#line 10436 "configure"
#include "confdefs.h"
#include <sys/types.h>
static struct ip_mreq x;
; return 0; }
EOF
-if { (eval echo configure:10445: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10446: \"$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:10476: checking for msgget" >&5
+echo "configure:10477: checking for msgget" >&5
cat > conftest.$ac_ext <<EOF
-#line 10479 "configure"
+#line 10480 "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:10502: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10503: \"$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:10517: checking for sys/ipc.h" >&5
+echo "configure:10518: checking for sys/ipc.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 10520 "configure"
+#line 10521 "configure"
#include "confdefs.h"
#include <sys/ipc.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10525: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10526: \"$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:10542: checking for sys/msg.h" >&5
+echo "configure:10543: checking for sys/msg.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 10545 "configure"
+#line 10546 "configure"
#include "confdefs.h"
#include <sys/msg.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10550: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10551: \"$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:10588: checking for dirent.h" >&5
+echo "configure:10589: checking for dirent.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 10591 "configure"
+#line 10592 "configure"
#include "confdefs.h"
#include <dirent.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10596: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10597: \"$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:10623: checking for sys/dir.h" >&5
+echo "configure:10624: checking for sys/dir.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 10626 "configure"
+#line 10627 "configure"
#include "confdefs.h"
#include <sys/dir.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10631: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10632: \"$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:10664: checking for nlist.h" >&5
+echo "configure:10665: checking for nlist.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 10667 "configure"
+#line 10668 "configure"
#include "confdefs.h"
#include <nlist.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10672: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10673: \"$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:10702: checking "for sound support"" >&5
+echo "configure:10703: checking "for sound support"" >&5
case "$with_sound" in
native | both ) with_native_sound=yes;;
nas | no ) with_native_sound=no;;
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:10713: checking for multimedia/audio_device.h" >&5
+echo "configure:10714: checking for multimedia/audio_device.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 10716 "configure"
+#line 10717 "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:10721: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10722: \"$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:10769: checking for ALopenport in -laudio" >&5
+echo "configure:10770: 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 10774 "configure"
+#line 10775 "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:10785: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10786: \"$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:10816: checking for AOpenAudio in -lAlib" >&5
+echo "configure:10817: 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 10821 "configure"
+#line 10822 "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:10832: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10833: \"$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:10870: checking for ${dir}/soundcard.h" >&5
+echo "configure:10871: checking for ${dir}/soundcard.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 10873 "configure"
+#line 10874 "configure"
#include "confdefs.h"
#include <${dir}/soundcard.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10878: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10879: \"$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
libs_x="-laudio $libs_x" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-laudio\" to \$libs_x"; fi
cat > conftest.$ac_ext <<EOF
-#line 10948 "configure"
+#line 10949 "configure"
#include "confdefs.h"
#include <audio/Xtutil.h>
EOF
if test "$with_tty" = "yes" ; then
echo "checking for TTY-related features" 1>&6
-echo "configure:10975: checking for TTY-related features" >&5
+echo "configure:10976: 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:10991: checking for tgetent in -lncurses" >&5
+echo "configure:10992: 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 10996 "configure"
+#line 10997 "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:11007: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11008: \"$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:11040: checking for ncurses/curses.h" >&5
+echo "configure:11041: checking for ncurses/curses.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 11043 "configure"
+#line 11044 "configure"
#include "confdefs.h"
#include <ncurses/curses.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11048: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11049: \"$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:11070: checking for ncurses/term.h" >&5
+echo "configure:11071: checking for ncurses/term.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 11073 "configure"
+#line 11074 "configure"
#include "confdefs.h"
#include <ncurses/term.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11078: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11079: \"$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:11108: checking for ncurses/curses.h" >&5
+echo "configure:11109: checking for ncurses/curses.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 11111 "configure"
+#line 11112 "configure"
#include "confdefs.h"
#include <ncurses/curses.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11116: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11117: \"$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:11151: checking for tgetent in -l$lib" >&5
+echo "configure:11152: 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 11156 "configure"
+#line 11157 "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:11167: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11168: \"$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:11198: checking for tgetent in -lcurses" >&5
+echo "configure:11199: 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 11203 "configure"
+#line 11204 "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:11214: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11215: \"$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:11232: checking for tgetent in -ltermcap" >&5
+echo "configure:11233: 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 11237 "configure"
+#line 11238 "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:11248: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11249: \"$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:11296: checking for gpm.h" >&5
+echo "configure:11297: checking for gpm.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 11299 "configure"
+#line 11300 "configure"
#include "confdefs.h"
#include <gpm.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11304: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11305: \"$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:11327: checking for Gpm_Open in -lgpm" >&5
+echo "configure:11328: 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 11332 "configure"
+#line 11333 "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:11343: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11344: \"$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_gnudbm $with_database_dbm $with_database_berkdb" \
!= "no no no" && echo "checking for database support" 1>&6
-echo "configure:11393: checking for database support" >&5
+echo "configure:11394: checking for database support" >&5
if test "$with_database_gnudbm $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:11398: checking for ndbm.h" >&5
+echo "configure:11399: checking for ndbm.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 11401 "configure"
+#line 11402 "configure"
#include "confdefs.h"
#include <ndbm.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11406: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11407: \"$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_gnudbm" != "no"; then
echo $ac_n "checking for dbm_open in -lgdbm""... $ac_c" 1>&6
-echo "configure:11436: checking for dbm_open in -lgdbm" >&5
+echo "configure:11437: 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 11441 "configure"
+#line 11442 "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:11452: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11453: \"$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:11480: checking for dbm_open" >&5
+echo "configure:11481: checking for dbm_open" >&5
cat > conftest.$ac_ext <<EOF
-#line 11483 "configure"
+#line 11484 "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:11506: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11507: \"$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:11525: checking for dbm_open in -ldbm" >&5
+echo "configure:11526: 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 11530 "configure"
+#line 11531 "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:11541: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11542: \"$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:11582: checking for Berkeley db.h" >&5
+echo "configure:11583: checking for Berkeley db.h" >&5
for path in "db/db.h" "db.h"; do
cat > conftest.$ac_ext <<EOF
-#line 11585 "configure"
+#line 11586 "configure"
#include "confdefs.h"
#ifdef HAVE_INTTYPES_H
#define __BIT_TYPES_DEFINED__
; return 0; }
EOF
-if { (eval echo configure:11603: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11604: \"$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:11619: checking for Berkeley DB version" >&5
+echo "configure:11620: checking for Berkeley DB version" >&5
cat > conftest.$ac_ext <<EOF
-#line 11621 "configure"
+#line 11622 "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:11640: checking for $dbfunc" >&5
+echo "configure:11641: checking for $dbfunc" >&5
cat > conftest.$ac_ext <<EOF
-#line 11643 "configure"
+#line 11644 "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:11666: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11667: \"$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:11685: checking for $dbfunc in -ldb" >&5
+echo "configure:11686: 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 11690 "configure"
+#line 11691 "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:11701: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11702: \"$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:11765: checking for SOCKSinit in -lsocks" >&5
+echo "configure:11766: 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 11770 "configure"
+#line 11771 "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:11781: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11782: \"$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
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:11838: checking for $ac_hdr" >&5
+echo "configure:11839: checking for $ac_hdr" >&5
cat > conftest.$ac_ext <<EOF
-#line 11841 "configure"
+#line 11842 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11846: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11847: \"$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_shlib" && test ! -z "$have_dlfcn" && {
echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:11885: checking for dlopen in -ldl" >&5
+echo "configure:11886: 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 11890 "configure"
+#line 11891 "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:11901: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11902: \"$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_shlib" && test ! -z "$have_dlfcn" && {
echo $ac_n "checking for _dlopen in -lc""... $ac_c" 1>&6
-echo "configure:11930: checking for _dlopen in -lc" >&5
+echo "configure:11931: 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 11935 "configure"
+#line 11936 "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:11946: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11947: \"$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_shlib" && test ! -z "$have_dlfcn" && {
echo $ac_n "checking for dlopen in -lc""... $ac_c" 1>&6
-echo "configure:11975: checking for dlopen in -lc" >&5
+echo "configure:11976: 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 11980 "configure"
+#line 11981 "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:11991: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11992: \"$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_shlib" && {
echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
-echo "configure:12020: checking for shl_load in -ldld" >&5
+echo "configure:12021: 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 12025 "configure"
+#line 12026 "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:12036: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12037: \"$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_shlib" && {
echo $ac_n "checking for dld_init in -ldld""... $ac_c" 1>&6
-echo "configure:12065: checking for dld_init in -ldld" >&5
+echo "configure:12066: 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 12070 "configure"
+#line 12071 "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:12081: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12082: \"$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:12120: checking how to build dynamic libraries for ${xehost}" >&5
+echo "configure:12121: 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:12148: checking checking whether we are using GNU C" >&5
+echo "configure:12149: checking checking whether we are using GNU C" >&5
cat > conftest.$ac_ext <<EOF
-#line 12150 "configure"
+#line 12151 "configure"
#include "confdefs.h"
#ifdef __GNUC__
fi
echo $ac_n "checking how to produce PIC code""... $ac_c" 1>&6
-echo "configure:12172: checking how to produce PIC code" >&5
+echo "configure:12173: 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:12265: checking if PIC flag ${dll_cflags} really works" >&5
+echo "configure:12266: checking if PIC flag ${dll_cflags} really works" >&5
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $dll_cflags -DPIC"
cat > conftest.$ac_ext <<EOF
-#line 12269 "configure"
+#line 12270 "configure"
#include "confdefs.h"
int main() {
int x=0;
; return 0; }
EOF
-if { (eval echo configure:12276: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12277: \"$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:12307: checking if C compiler can produce shared libraries" >&5
+echo "configure:12308: 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 12358 "configure"
+#line 12359 "configure"
#include "confdefs.h"
int main() {
int x=0;
; return 0; }
EOF
-if { (eval echo configure:12365: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12366: \"$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:12390: checking for ld used by GCC" >&5
+echo "configure:12391: 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:12415: checking for GNU ld" >&5
+echo "configure:12416: 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:12453: checking if the linker is GNU ld" >&5
+echo "configure:12454: 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:12480: checking whether the linker supports shared libraries" >&5
+echo "configure:12481: 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:12696: checking for $ac_func" >&5
+echo "configure:12697: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 12699 "configure"
+#line 12700 "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:12722: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12723: \"$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 12756 "configure"
+#line 12757 "configure"
#include "confdefs.h"
int main(int c,char *v[]){return 0;}
EOF
-if { (eval echo configure:12760: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:12761: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
:
else
: ${XEMACS_CC:=$CC}
+if test "$with_prefix" = "yes"; then
+ { test "$extra_verbose" = "yes" && cat << \EOF
+ Defining PREFIX_USER_DEFINED
+EOF
+cat >> confdefs.h <<\EOF
+#define PREFIX_USER_DEFINED 1
+EOF
+}
+
+fi
if test "$with_site_lisp" = "no"; then
{ test "$extra_verbose" = "yes" && cat << \EOF
lockdir='${statedir}/${PROGNAME}/lock'
archlibdir='${datadir}/${PROGNAME}-${version}/${configuration}'
docdir='${archlibdir}'
+with_prefix='yes'
with_site_lisp='no'
with_site_modules='yes'
with_menubars=''
with_scrollbars=''
+with_widgets=''
with_dialogs=''
with_file_coding=''
dnl const_is_losing is removed - we rely on AC_C_CONST instead.
dnl Process (many) boolean options
with_site_lisp | \
- with_site_modules | \
+ with_prefix | \
+ with_site_modules | \
with_x | \
with_x11 | \
with_msw | \
dnl You need to synchronize this with the way the
dnl default values are built.
case "$opt" in
- prefix ) AC_DEFINE(PREFIX_USER_DEFINED) ;;
+ dnl prefix is taken care of by --with-prefix
exec_prefix ) AC_DEFINE(EXEC_PREFIX_USER_DEFINED) ;;
lispdir ) AC_DEFINE(LISPDIR_USER_DEFINED) ;;
sitelispdir ) AC_DEFINE(SITELISPDIR_USER_DEFINED) ;;
dnl Has the user specified the toolkit(s) to use for GUI elements?
"with_menubars" | \
"with_scrollbars" | \
- "with_dialogs" )
+ "with_dialogs" | \
+ "with_widgets" )
case "$val" in
l | lu | luc | luci | lucid ) val=lucid ;;
m | mo | mot | moti | motif ) val=motif ;;
AC_DEFINE_UNQUOTED(EMACS_VERSION, "$version")
if test "$with_infodock" = "yes"; then
- if test ! -f ../ID-INSTALL; then
+ if test ! -f ../../ID-INSTALL; then
echo "Cannot build InfoDock without InfoDock sources"
with_infodock=no
fi
case "$with_scrollbars" in "" | "yes" )
with_scrollbars="lucid" ;;
esac
+case "$with_widgets" in "" | "yes" )
+ if test "$have_motif" = "yes"; then with_widgets="motif"
+ else with_widgets=no
+ fi ;;
+esac
-all_widgets="$with_menubars $with_scrollbars $with_dialogs $with_toolbars"
+all_widgets="$with_menubars $with_scrollbars $with_dialogs $with_toolbars $with_widgets"
case "$all_widgets" in *athena* )
AC_DEFINE(LWLIB_USES_ATHENA)
test "$with_scrollbars" != "no" && XE_ADD_OBJS(scrollbar-x.o)
test "$with_dialogs" != "no" && XE_ADD_OBJS(dialog-x.o)
test "$with_toolbars" != "no" && XE_ADD_OBJS(toolbar-x.o)
- test "$all_widgets" != "no no no no" && XE_ADD_OBJS(gui-x.o)
+ test "$all_widgets" != "no no no no no" && XE_ADD_OBJS(gui-x.o)
else
if test \( "$with_sound" = "nas" \) -o \( "$with_sound" = "both" \); then
echo "Attempt to Build NAS sound without X"
: ${XEMACS_CC:=$CC}
AC_SUBST(XEMACS_CC)
+dnl The default is yes
+if test "$with_prefix" = "yes"; then
+ AC_DEFINE(PREFIX_USER_DEFINED)
+fi
dnl The default is no
if test "$with_site_lisp" = "no"; then
Installation options:
--prefix=DIR Install files below DIR. Defaults to `/usr/local'.
+--with-prefix Compile the value of --prefix into the executable.
+ Defaults to `yes'.
+--without-prefix Don't compile the value of --prefix into the executable.
Window-system options:
--with-dialogs=TYPE Use TYPE dialog boxes (motif, athena, athena3d, or no).
Lucid menubars and scrollbars are the default.
Motif dialog boxes will be used if Motif can be found.
+--with-widgets=TYPE Use TYPE widgets (motif, athena, athena3d, or no).
+ Motif widgets will be used if Motif can be found.
+ Other widget types are currently unsupported.
--with-dragndrop (*) Compile in the generic drag and drop API. This is
automatically added if one of the drag and drop
protocols is found (currently CDE, OffiX, MSWindows).
* Mountain View, California 94043
*/
-#pragma ident "@(#) $Id: _dynodump.h,v 1.3 1997/05/29 04:22:29 steve Exp $ - SMI"
+#pragma ident "@(#) $Id: _dynodump.h,v 1.5 1996/05/23 18:39:07 georgn Exp $ - SMI"
#ifndef _DYNODUMP_DOT_H
#define _DYNODUMP_DOT_H
* N.B. The above commentary is not quite correct in the flags have been hardwired
* to RTLD_SAVREL.
*/
-#pragma ident "@(#) $Id: dynodump.c,v 1.6 1998/03/31 20:10:55 steve Exp $ - SMI"
+#pragma ident "@(#) $Id: dynodump.c,v 1.8 1996/05/23 18:39:21 georgn Exp $ - SMI"
#define __EXTENSIONS__ 1
* Mountain View, California 94043
*/
-#pragma ident "@(#) $Id: _relocate.c,v 1.3 1997/05/29 04:23:02 steve Exp $ - SMI"
+#pragma ident "@(#) $Id: _relocate.c,v 1.4 1995/06/26 20:12:41 georgn Exp $ - SMI"
/* LINTLIBRARY */
* Mountain View, California 94043
*/
-#pragma ident "@(#) $Id: machdep.h,v 1.3 1997/05/29 04:23:02 steve Exp $ - SMI"
+#pragma ident "@(#) $Id: machdep.h,v 1.2 1995/02/16 22:58:43 georgn Exp $ - SMI"
/*
* Global include file for all sgs Intel machine dependent macros, constants
* Mountain View, California 94043
*/
-#pragma ident "@(#) $Id: _relocate.c,v 1.4 1998/03/31 20:10:55 steve Exp $ - SMI"
+#pragma ident "@(#) $Id: _relocate.c,v 1.3 1995/06/26 20:16:39 georgn Exp $ - SMI"
/* LINTLIBRARY */
* Mountain View, California 94043
*/
-#pragma ident "@(#) $Id: machdep.h,v 1.3 1997/05/29 04:23:20 steve Exp $ - SMI"
+#pragma ident "@(#) $Id: machdep.h,v 1.2 1995/02/16 22:58:49 georgn Exp $ - SMI"
/*
* Global include file for all sgs PowerPC machine dependent macros, constants
/*
* Update the value of the `_edata' and `_end' symbols.
*/
-#pragma ident "@(#) $Id: _relocate.c,v 1.4 1998/03/31 20:10:55 steve Exp $ - SMI"
+#pragma ident "@(#) $Id: _relocate.c,v 1.4 1995/06/26 20:13:26 georgn Exp $ - SMI"
#include <libelf.h>
#include <string.h>
* Mountain View, California 94043
*/
-#pragma ident "@(#) $Id: machdep.h,v 1.3 1997/05/29 04:23:26 steve Exp $ - SMI"
+#pragma ident "@(#) $Id: machdep.h,v 1.2 1995/02/16 22:58:55 georgn Exp $ - SMI"
/*
* Global include file for all sgs SPARC machine dependent macros, constants
/*
* Update the value of the `_edata' and `_end' symbols.
*/
-#pragma ident "@(#) $Id: syms.c,v 1.3 1997/05/29 04:22:30 steve Exp $ - SMI"
+#pragma ident "@(#) $Id: syms.c,v 1.2 1995/03/06 22:39:22 georgn Exp $ - SMI"
#include <libelf.h>
#include <string.h>
** The font-menu is now available under MS-Windows
+** MS-Windows support for selection is much more robust
+
+Generally selection should now do what you would expect under
+MS-Windows: the middle mouse button will paste your current selection
+or the clipboard; conversions from different types of selection to the
+clipboard can be made; the kill-ring and friends will be updated as
+per X.
+
+The only thing selection doesn't do is set the clipboard automatically
+as this would break the MS-Windows model. If you want this behaviour
+then set `selection-sets-clipboard' to t
+
\f
* Lisp and internal changes in XEmacs 21.2
==========================================
writing, and sharing free software!
// ÚÁÍÅÞÁÎÉÑ, ÉÓÐÒÁ×ÌÅÎÉÑ ÏÛÉÂÏË Ó ÎÅÔÅÒÐÅÎÉÅÍ ÖÄÕ ÐÏ ÁÄÒÅÓÕ bor@vb.dn.ua
-// Vladimir Bormotov.
\ No newline at end of file
+// Vladimir Bormotov.
==============================
- GNUEMACS \e,T@RIR\e0-Uh\e1\e0;Xh\e19\e(B (Mule) \e,T`\e0:Wi\e1M'\e05i\e19\e(B
+ GNUEMACS ÀÒÉÒÕè»Øè¹ (Mule) àº×éͧµé¹
==============================
-\e,TKARB`K\e05X\e1\e(B: \e,T`M!JRC)\e0:Q\e1:`\e0:Wi\e1M'\e05i\e19\e09Ui\e1\e(B \e0\e,T6Y\e1!`\e0"U\e1B9\e0"Vi\e19b4B\e0BV\e14K\e0EQ\e1!\e07Uh\e1\e0Gh\e1R\e(B "\e,TEM'`\e0Eh\e19`EB\e04U\e1!\e0Gh\e1R`\e0CU\e1B9\e0CYi\e1\e(B"
- \e,T:CC\e07Q\e14\e07Uh\e1`\e0CTh\e1A\e05i\e19\e04i\e1GB\e(B ">>" \e,T(P\e0AU\e1$S\e0JQh\e1'\e0Gh\e1R\e(B \e0\e,T5h\e1Md;(Pc\e0Ki\e17SMPdC\e(B
+ËÁÒÂà˵Ø: àÍ¡ÊÒéºÑºàº×éͧµé¹¹Õé ¶Ù¡à¢Õ¹¢Öé¹â´ÂÂÖ´ËÅÑ¡·ÕèÇèÒ "ÅͧàÅè¹àÅ´աÇèÒàÃÕ¹ÃÙé"
+ ºÃ÷Ѵ·ÕèàÃÔèÁµé¹´éÇ ">>" ¨ÐÁÕ¤ÓÊÑè§ÇèÒ µèÍ仨ÐãËé·ÓÍÐäÃ
- \e,Tb4B\e07Qh\e1Gd;\e(B \e,T!RC\e0;i\e1M9$S\e0JQh\e1'c\e0Ki\e1\e0!Q\e1:\e(B Mule \e,T7Sd\e04i\e1b4Bc\e0*i\e1\e(B \e0\e,T;Xh\e1A$M9b7CE\e(B (\e0\e,T;Xh\e1A\e07Uh\e1:9K\e09i\e1R\e0JQ\e1A\e0<Q\e1J\e(B \e,T`\e0"U\e1B9d\e0Gi\e1\e(B
-\e0\e,TGh\e1R\e(B CTRL \e,TK\e0CW\e1M\e(B CTL) \e,TK\e0CW\e1M\e(B \e0\e,T;Xh\e1A\e(B META (\e,Tb4B;!\e05T\e1\e(B \e,TKARB\e06V\e1'\e0;Xh\e1A\e(B ESC) \e,Tc9\e07Uh\e1\e09Ui\e1\e(B \e,T`CR(Pc\e0*i\e1\e0JQ\e1-\e0EQ\e1!I\e03l\e1\e05h\e1Md;\e(B
-\e0\e,T9Ui\e1\e(B \e,Ta79!RC`\e0"U\e1B9`\e05g\e1A\e(B \e,Tf\e(B \e0\e,TGh\e1R\e(B CONTROL \e,TK\e0CW\e1M\e(B META
+ â´Â·ÑèÇä» ¡Òûé͹¤ÓÊÑè§ãËé¡Ñº Mule ·Óä´éâ´Âãªé »ØèÁ¤Í¹â·ÃÅ (»ØèÁ·Õ躹˹éÒÊÑÁ¼ÑÊ à¢Õ¹äÇé
+ÇèÒ CTRL ËÃ×Í CTL) ËÃ×Í »ØèÁ META (â´Â»¡µÔ ËÁÒ¶֧»ØèÁ ESC) ã¹·Õè¹Õé àÃÒ¨ÐãªéÊÑÅѡɳìµèÍä»
+¹Õé á·¹¡ÒÃà¢Õ¹àµçÁ æ ÇèÒ CONTROL ËÃ×Í META
-C-<\e0\e,T5Q\e1G\e0MQ\e1!IC\e(B> \e,TKARB\e06V\e1'\e(B \e,Tc\e0Ki\e1!4\e0;Xh\e1A$M9b7CE\e0$i\e1R'd\e0Gi\e1\e(B \e,Ta\e0Ei\e1G!4\e0;Xh\e1A\e(B <\e0\e,T5Q\e1G\e0MQ\e1!IC\e(B> \e0\e,T5Q\e1GM\e0Bh\e1R'`\e0*h\e19\e(B C-f
- \e,TKARB\e06V\e1'\e(B \e,Tc\e0Ki\e1!4\e0;Xh\e1A$M9b7CE\e0$i\e1R'd\e0Gi\e1\e(B \e,Ta\e0Ei\e1G!4\e0;Xh\e1A\e(B f
+C-<µÑÇÍÑ¡ÉÃ> ËÁÒ¶֧ ãËé¡´»ØèÁ¤Í¹â·ÃŤéÒ§äÇé áÅéÇ¡´»ØèÁ <µÑÇÍÑ¡ÉÃ> µÑÇÍÂèÒ§àªè¹ C-f
+ ËÁÒ¶֧ ãËé¡´»ØèÁ¤Í¹â·ÃŤéÒ§äÇé áÅéÇ¡´»ØèÁ f
<<Blank lines inserted here by startup of help-with-tutorial>>
- >> \e,T5M9\e09Ui\e1"Mc\e0Ki\e1EM'!4\e(B C-v (View Next Screen \e0\e,T4Y\e1K\e09i\e1R\e05h\e1Md;\e(B) \e0\e,T4Y\e1\e(B \e,T`\e0>Wh\e1M`\e0EWh\e1M9d;\e0Mh\e1R9K\e09i\e1R\e(B
- \e0\e,T5h\e1Md;\e(B
- \e0\e,T5h\e1M(R!\e09Ui\e1`\e0;g\e19\e05i\e19d;\e(B \e0\e,T7X\e1!$\e0CQi\e1'\e07Uh\e1\e0Mh\e1R9K\e09i\e1RK\e09Vh\e1'\e(B \e,Tf\e(B \e,T(:"Mc\e0Ki\e17Sc97S9M'`\e04U\e1BG\e0!Q\e19\e(B \e,T`\e0>Wh\e1M`\e0EWh\e1M9d;\e(B
- \e0\e,T4Y\e1K\e09i\e1R\e05h\e1Md;\e(B
+ >> µÍ¹¹Õé¢ÍãËéÅͧ¡´ C-v (View Next Screen ´Ù˹éÒµèÍä») ´Ù à¾×èÍàÅ×è͹ä»Íèҹ˹éÒ
+ µèÍä»
+ µèͨҡ¹Õéà»ç¹µé¹ä» ·Ø¡¤ÃÑ駷ÕèÍèҹ˹éÒ˹Öè§ æ ¨º¢ÍãËé·Ó㹷ӹͧà´ÕÂǡѹ à¾×èÍàÅ×è͹ä»
+ ´Ù˹éÒµèÍä»
-ESC <\e0\e,T5Q\e1G\e0MQ\e1!IC\e(B> \e,TKARB\e06V\e1'\e(B \e,Tc\e0Ki\e1!4\e0;Xh\e1A\e(B ESC \e,Ta\e0Ei\e1G;\e0Eh\e1MB\e(B \e,TK\e0EQ\e1'(R!\e09Qi\e19\e0(V\e1'!4\e0;Xh\e1A\e(B <\e0\e,T5Q\e1G\e0MQ\e1!IC\e(B> \e,T5RA\e(B
+ESC <µÑÇÍÑ¡ÉÃ> ËÁÒ¶֧ ãËé¡´»ØèÁ ESC áÅéÇ»ÅèÍ ËÅѧ¨Ò¡¹Ñ鹨֧¡´»ØèÁ <µÑÇÍÑ¡ÉÃ> µÒÁ
-\e,TKARB`K\e05X\e1\e(B: <\e0\e,T5Q\e1G\e0MQ\e1!IC\e(B> \e,Td\e0Ah\e1\e0Gh\e1R`\e0;g\e19\e05Q\e1GcK\e0-h\e1K\e0CW\e1M\e05Q\e1G`\e0Eg\e1!\e(B \e,T(Pc\e0Ki\e1$GRAKARB`K\e0AW\e1M9\e0!Q\e19`\e0AWh\e1M\e06Y\e1!c\e0*i\e1c9\e(B
- \e,T$S\e0JQh\e1'\e(B \e0\e,T6i\e1RKR!\e0AU\e1\e0;Xh\e1A\e(B META \e,Tc\e0Ki\e1!4\e(B \e0\e,T!g\e1(PJRARC6c\e0*i\e1!RC!4\e(B M-<\e0\e,T5Q\e1G\e0MQ\e1!IC\e(B> \e,Ta79\e(B
- \e,T!RC\e(B ESC <\e0\e,T5Q\e1G\e0MQ\e1!IC\e(B> \e,Td\e04i\e1\e(B (\e0\e,T$W\e1Mc\e0Ki\e1!4\e0;Xh\e1A\e(B META \e0\e,T$i\e1R'd\e0Gi\e1\e(B \e,Ta\e0Ei\e1G\e0(V\e1'!4\e(B <\e0\e,T5Q\e1G\e0MQ\e1!IC\e(B>)
+ËÁÒÂà˵Ø: <µÑÇÍÑ¡ÉÃ> äÁèÇèÒà»ç¹µÑÇãËèËÃ×͵ÑÇàÅç¡ ¨ÐãËé¤ÇÒÁËÁÒÂàËÁ×͹¡Ñ¹àÁ×èͶ١ãªéã¹
+ ¤ÓÊÑè§ ¶éÒËÒ¡ÁÕ»ØèÁ META ãËé¡´ ¡ç¨ÐÊÒÁÒöãªé¡Òá´ M-<µÑÇÍÑ¡ÉÃ> á·¹
+ ¡Òà ESC <µÑÇÍÑ¡ÉÃ> ä´é (¤×ÍãËé¡´»ØèÁ META ¤éÒ§äÇé áÅéǨ֧¡´ <µÑÇÍÑ¡ÉÃ>)
-\e0\e,T"i\e1MJS\e0$Q\e1-\e(B: \e,T`GER(P`\e0ET\e1!c\e0*i\e1\e(B Emacs \e,Tc\e0Ki\e1!4\e(B C-x C-c \e,TK\e0CW\e1Mc9!C\e03U\e1\e07Uh\e1\e0JQh\e1'\e(B Emacs \e,T(R!\e(B csh
- \e0\e,T!g\e1JRARC6c\e0*i\e1\e(B suspend (\e,TK\e0BX\e14\e0*Qh\e1G$CRG\e(B) \e,Td\e04i\e1\e(B \e,T!RC\e(B suspend Emacs \e,T7Sd\e04i\e1b4B\e(B
- \e,T!4\e(B C-z
+¢éÍÊÓ¤Ñ: àÇÅÒ¨ÐàÅÔ¡ãªé Emacs ãËé¡´ C-x C-c ËÃ×Í㹡óշÕèÊÑè§ Emacs ¨Ò¡ csh
+ ¡çÊÒÁÒöãªé suspend (ËÂØ´ªÑèǤÃÒÇ) ä´é ¡Òà suspend Emacs ·Óä´éâ´Â
+ ¡´ C-z
- \e0\e,T5h\e1M(R!\e09Ui\e1\e(B \e,T"Mc\e0Ki\e1\e0;i\e1M9$S\e0JQh\e1'\e(B C-v \e0\e,T7X\e1!\e(B \e,Tf\e(B \e,T$\e0CQi\e1'\e07Uh\e1\e0Mh\e1R9(:K\e09Vh\e1'K\e09i\e1R\e(B
+ µèͨҡ¹Õé ¢ÍãËé»é͹¤ÓÊÑè§ C-v ·Ø¡ æ ¤ÃÑ駷ÕèÍèÒ¹¨ºË¹Öè§Ë¹éÒ
- \e,T@RBc9K\e09i\e1R\e07Uh\e1a\e0Ei\e1G\e0!Q\e1:K\e09i\e1R\e06Q\e14d;\e(B \e,T(P\e0AU\e1`\e09Wi\e1MKR\e0+i\e1S\e0!Q\e19M\e0BYh\e1:R':CC\e07Q\e14\e(B \e0\e,T7Uh\e1`\e0;g\e19`\e0*h\e19\e09Ui\e1\e(B \e0\e,T!g\e1`\e0>Wh\e1Mc\e0Ki\e1JRARC6\e0CYi\e1\e(B
-\e,Td\e04i\e1\e0Gh\e1R\e(B \e,T`\e09Wi\e1MKR\e07Uh\e1aJ4'M\e0BYh\e1\e09Qi\e19\e(B \e0\e,T5h\e1M`\e09Wh\e1M'\e0!Q\e19M\e0BYh\e1\e(B
+ ÀÒÂã¹Ë¹éÒ·ÕèáÅéǡѺ˹éÒ¶Ñ´ä» ¨ÐÁÕà¹×éÍËÒ«éӡѹÍÂÙèºÒ§ºÃ÷Ѵ ·Õèà»ç¹àªè¹¹Õé ¡çà¾×èÍãËéÊÒÁÒöÃÙé
+ä´éÇèÒ à¹×éÍËÒ·ÕèáÊ´§ÍÂÙè¹Ñé¹ µèÍà¹×èͧ¡Ñ¹ÍÂÙè
- \e0\e,T!h\e1M9\e0MWh\e19\e(B \e,T(S`\e0;g\e19(P\e05i\e1M'\e0CYi\e1\e0GT\e1\e08U\e1!RCbB!\e0Bi\e1RB5SaK\e09h\e1'd;AR\e(B \e,T@RBc9a\e0?i\e1A\e0"i\e1M\e0AY\e1E`\e0JU\e1B\e0!h\e1M9\e(B \e,T5RA\e07Uh\e1:M!d;\e(B
-\e,Ta\e0Ei\e1G\e(B \e0\e,T!g\e1\e0$W\e1M\e(B C-v \e,Tc\e0*i\e1JSK\e0CQ\e1:`\e0EWh\e1M9d;\e0"i\e1R'K\e09i\e1R\e(B \e0\e,T6i\e1R(P`\e0EWh\e1M9!\e0EQ\e1:\e07Uh\e1`\e0!h\e1R\e(B \e0\e,T!g\e1c\e0Ki\e1!4\e(B ESC v
+ ¡è͹Í×è¹ ¨Óà»ç¹¨ÐµéͧÃÙéÇÔ¸Õ¡ÒÃâ¡ÂéÒµÓá˹è§ä»ÁÒ ÀÒÂã¹á¿éÁ¢éÍÁÙÅàÊÕ¡è͹ µÒÁ·ÕèºÍ¡ä»
+áÅéÇ ¡ç¤×Í C-v ãªéÊÓËÃѺàÅ×è͹仢éҧ˹éÒ ¶éÒ¨ÐàÅ×è͹¡ÅѺ·Õèà¡èÒ ¡çãËé¡´ ESC v
- >> \e,TEM'c\e0*i\e1\e(B ESC v \e,TaEP\e(B C-v \e,T`\e0>Wh\e1M`\e0EWh\e1M9d;AR\e04Y\e1\e(B \e0\e,TJQ\e1!JM'JRA$\e0CQi\e1'\e(B
+ >> Åͧãªé ESC v áÅÐ C-v à¾×èÍàÅ×è͹ä»ÁÒ´Ù ÊÑ¡ÊͧÊÒÁ¤ÃÑé§
-\e,TJ\e0CX\e1;\e(B
+ÊÃØ»
===
- \e,T$S\e0JQh\e1'\e(B \e,TJSK\e0CQ\e1:`\e0EWh\e1M9d;AR\e07U\e1EPK\e09i\e1R@RBc9a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B \e0\e,T$W\e1M\e(B
+ ¤ÓÊÑè§ ÊÓËÃѺàÅ×è͹ä»ÁÒ·ÕÅÐ˹éÒÀÒÂã¹á¿éÁ¢éÍÁÙÅ ¤×Í
- C-v \e,T`\e0EWh\e1M9d;\e0"i\e1R'K\e09i\e1R\e(B \e,TK\e09Vh\e1'K\e09i\e1R(M\e(B
- ESC v \e,T`\e0EWh\e1M9d;\e0"i\e1R'K\e0EQ\e1'\e(B \e,TK\e09Vh\e1'K\e09i\e1R(M\e(B
- C-l \e,T`\e0"U\e1B9K\e09i\e1R(McK\e0Ah\e1\e(B \e,TaEPc9"3P`\e04U\e1BG\e0!Q\e19\e(B \e0\e,T!g\e1c\e0Ki\e1`\e0EWh\e1M95SaK\e09h\e1'"M'`$M\e0Cl\e1`+M\e0Cl\e1\e(B (cursor)
- \e,Td;M\e0BYh\e15C'!ER'(M\e(B
+ C-v àÅ×è͹仢éҧ˹éÒ Ë¹Öè§Ë¹éÒ¨Í
+ ESC v àÅ×è͹仢éÒ§ËÅѧ ˹Öè§Ë¹éÒ¨Í
+ C-l à¢Õ¹˹éÒ¨ÍãËÁè áÅÐã¹¢³Ðà´ÕÂǡѹ ¡çãËéàÅ×è͹µÓá˹觢ͧà¤ÍÃìà«ÍÃì (cursor)
+ ä»ÍÂÙèµÃ§¡ÅÒ§¨Í
- >> \e,T"Mc\e0Ki\e1\e0JQ\e1'`!5\e04Y\e1\e0Gh\e1R\e(B \e,Tc9"3P\e09Ui\e1`$M\e0Cl\e1`+M\e0Cl\e1M\e0BYh\e1\e07Uh\e1dK9\e(B \e,T>\e0Ci\e1MA\e07Qi\e1'(S\e0"i\e1M$GRA\e07Uh\e1M\e0BYh\e1CM:\e0"i\e1R'"M'\e(B
- \e,T`$M\e0Cl\e1`+M\e0Cl\e1\e04i\e1GB\e(B \e,Ta\e0Ei\e1GEM'!4\e(B C-l \e0\e,T4Y\e1\e(B \e,T5CG(JM:\e04Y\e1\e0Gh\e1R\e(B \e,T`$M\e0Cl\e1`+M\e0Cl\e1`\e0EWh\e1M9d;M\e0BYh\e1\e07Uh\e1dK9\e(B
- \e0\e,T"i\e1M$GRA\e07Uh\e1M\e0BYh\e1CM:\e0"i\e1R'`;\e0EUh\e1B9d;M\e0Bh\e1R'dC\e(B
+ >> ¢ÍãËéÊѧࡵ´ÙÇèÒ ã¹¢³Ð¹Õéà¤ÍÃìà«ÍÃìÍÂÙè·Õèä˹ ¾ÃéÍÁ·Ñ駨ӢéͤÇÒÁ·ÕèÍÂÙèÃͺ¢éÒ§¢Í§
+ à¤ÍÃìà«ÍÃì´éÇ áÅéÇÅͧ¡´ C-l ´Ù µÃǨÊͺ´ÙÇèÒ à¤ÍÃìà«ÍÃìàÅ×è͹ä»ÍÂÙè·Õèä˹
+ ¢éͤÇÒÁ·ÕèÍÂÙèÃͺ¢éÒ§à»ÅÕè¹ä»ÍÂèÒ§äÃ
-\e0\e,TGT\e1\e08U\e1bB!\e0Bi\e1RB`$M\e0Cl\e1`+M\e0Cl\e1\e0"Qi\e19\e0>Wi\e190R9\e(B
+ÇÔ¸Õâ¡ÂéÒÂà¤ÍÃìà«ÍÃì¢Ñé¹¾×é¹°Ò¹
=======================
- \e,T5M9\e09Ui\e1\e(B \e,T`CR\e0!g\e1\e0CYi\e1\e0GT\e1\e08U\e1bB!\e0Bi\e1RBd;ARa::\e07U\e1EPK\e09i\e1Ra\e0Ei\e1G\e(B \e0\e,T5h\e1Md;\e(B \e0\e,T!g\e1AR`\e0CU\e1B9\e0CYi\e1\e0GT\e1\e08U\e1bB!\e0Bi\e1RBd;\e07Uh\e15SaK\e09h\e1'c4\e(B
-\e,T5SaK\e09h\e1'K\e09Vh\e1'@RBc9K\e09i\e1R`\e04U\e1BG\e0!Q\e19\e(B \e0\e,T+Vh\e1'JRARC67Sd\e04i\e1KERB\e0GT\e1\e08U\e1\e(B \e0\e,TGT\e1\e08U\e1K\e09Vh\e1'\e0!g\e1\e0$W\e1Mc\e0Ki\e1c\e0*i\e1$S\e0JQh\e1'\e(B \e,Td;:CC\e07Q\e14\e0!h\e1M9K\e09i\e1R\e(B
-(previous) \e,Td;:CC\e07Q\e14\e05h\e1Md;\e(B (next) \e,Td;\e04i\e1R9K\e09i\e1R\e(B (forward) \e,Td;\e04i\e1R9K\e0EQ\e1'\e(B (backward) \e,T$S\e0JQh\e1'\e(B
-\e,T`K\e0Eh\e1R\e09Ui\e1\e(B \e0\e,T6Y\e1!\e05Qi\e1'd\e0Gi\e1\e07Uh\e1\e(B C-p C-n C-f \e,TaEP\e(B C-b \e,T5RAES\e04Q\e1:\e(B \e0\e,T+Vh\e1'(P7Sc\e0Ki\e1bB!\e0Bi\e1RBd;ARd\e04i\e1\e(B \e,Tb4B`\e07U\e1B:\e0!Q\e1:\e(B
-\e,T5SaK\e09h\e1'\e0;Q\e1(\e0(X\e1\e0:Q\e19\e(B \e,TJ\e0CX\e1;`\e0"U\e1B9`\e0;g\e19a<9@R>d\e04i\e1\e04Q\e1'\e09Ui\e1\e(B
+ µÍ¹¹Õé àÃÒ¡çÃÙéÇÔ¸Õâ¡ÂéÒÂä»ÁÒẺ·ÕÅÐ˹éÒáÅéÇ µèÍä» ¡çÁÒàÃÕ¹ÃÙéÇÔ¸Õâ¡ÂéÒÂä»·ÕèµÓá˹è§ã´
+µÓá˹è§Ë¹Öè§ÀÒÂã¹Ë¹éÒà´ÕÂǡѹ «Öè§ÊÒÁÒö·Óä´éËÅÒÂÇÔ¸Õ ÇÔ¸Õ˹Ö觡ç¤×ÍãËéãªé¤ÓÊÑè§ ä»ºÃ÷Ѵ¡è͹˹éÒ
+(previous) 仺Ã÷ѴµèÍä» (next) ä»´éҹ˹éÒ (forward) ä»´éÒ¹ËÅѧ (backward) ¤ÓÊÑè§
+àËÅèÒ¹Õé ¶Ù¡µÑé§äÇé·Õè C-p C-n C-f áÅÐ C-b µÒÁÅӴѺ «Ö觨зÓãËéâ¡ÂéÒÂä»ÁÒä´é â´Âà·Õº¡Ñº
+µÓá˹觻Ѩ¨ØºÑ¹ ÊÃØ»à¢Õ¹à»ç¹á¼¹ÀÒ¾ä´é´Ñ§¹Õé
- \e,T:CC\e07Q\e14\e07Uh\e1a\e0Ei\e1G\e(B C-p
+ ºÃ÷Ѵ·ÕèáÅéÇ C-p
:
:
- \e0\e,T5Q\e1G\e0MQ\e1!IC\e04i\e1R9K\e0EQ\e1'\e(B C-b .... \e,T5SaK\e09h\e1'`$M\e0Cl\e1`+M\e0Cl\e1\e0;Q\e1(\e0(X\e1\e0:Q\e19\e(B .... \e0\e,T5Q\e1G\e0MQ\e1!IC\e04i\e1R9K\e09i\e1R\e(B C-f
+ µÑÇÍÑ¡ÉôéÒ¹ËÅѧ C-b .... µÓá˹è§à¤ÍÃìà«ÍÃì»Ñ¨¨ØºÑ¹ .... µÑÇÍÑ¡Éôéҹ˹éÒ C-f
:
:
- \e,T:CC\e07Q\e14\e05h\e1Md;\e(B C-n
+ ºÃ÷ѴµèÍä» C-n
- \e,T$S\e0JQh\e1'`K\e0Eh\e1R\e09Ui\e1\e(B \e,T`MRAR(R!\e05Q\e1G\e0MQ\e1!IC\e05Q\e1GaC!"M'\e(B \e,T$S\e0Gh\e1R\e(B Previous Next Backward Forward
-\e0\e,T+Vh\e1'(P\e0*h\e1GBc\e0Ki\e1(Sd\e04i\e1d\e0Ah\e1BR!\e(B \e,T$S\e0JQh\e1'`K\e0Eh\e1R\e09Ui\e1`\e0;g\e19$S\e0JQh\e1'JSK\e0CQ\e1:!RCbB!\e0Bi\e1RB\e0"Qi\e19\e0>Wi\e190R9\e(B \e0\e,T+Vh\e1'\e05i\e1M'c\e0*i\e1M\e0BYh\e1`JAM\e(B
+ ¤ÓÊÑè§àËÅèÒ¹Õé àÍÒÁÒ¨Ò¡µÑÇÍÑ¡ÉõÑÇáá¢Í§ ¤ÓÇèÒ Previous Next Backward Forward
+«Ö觨ЪèÇÂãËé¨Óä´éäÁèÂÒ¡ ¤ÓÊÑè§àËÅèÒ¹Õéà»ç¹¤ÓÊÑè§ÊÓËÃѺ¡ÒÃâ¡ÂéÒ¢Ñé¹¾×é¹°Ò¹ «Ö觵éͧãªéÍÂÙèàÊÁÍ
- >> \e,TEM'!4\e(B C-n \e0\e,T4Y\e1KERB\e(B \e,Tf\e(B \e,T$\e0CQi\e1'\e(B \e,T`\e0>Wh\e1M`\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1AR\e0BQ\e1':CC\e07Q\e14\e09Ui\e1\e(B (\e,T:CC\e07Q\e14\e07Uh\e1!S\e0EQ\e1'\e0Mh\e1R9\e(B
- \e,TM\e0BYh\e1\e09Ui\e1\e(B)
+ >> Åͧ¡´ C-n ´ÙËÅÒÂ æ ¤ÃÑé§ à¾×èÍàÅ×è͹à¤ÍÃìà«ÍÃìÁÒÂѧºÃ÷Ѵ¹Õé (ºÃ÷Ѵ·Õè¡ÓÅѧÍèÒ¹
+ ÍÂÙè¹Õé)
- >> \e,TEM'!4\e(B C-f \e0\e,T4Y\e1KERB\e(B \e,Tf\e(B \e,T$\e0CQi\e1'\e(B \e,T`\e0>Wh\e1M`\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1d;\e0BQ\e1'5C'!ER'"M':CC\e07Q\e14\e(B \e,Ta\e0Ei\e1GEM'\e(B
- \e,T!4\e(B C-p \e,T`\e0EWh\e1M9\e0"Vi\e19\e0"i\e1R':9\e04Y\e1\e(B \e0\e,TJQ\e1'`!5\e04Y\e1\e04i\e1GB\e0Gh\e1R\e(B \e,T5SaK\e09h\e1'"M'`$M\e0Cl\e1`+M\e0Cl\e1`;\e0EUh\e1B9d;M\e0Bh\e1R'dC\e(B
+ >> Åͧ¡´ C-f ´ÙËÅÒÂ æ ¤ÃÑé§ à¾×èÍàÅ×è͹à¤ÍÃìà«ÍÃìä»ÂѧµÃ§¡ÅÒ§¢Í§ºÃ÷Ѵ áÅéÇÅͧ
+ ¡´ C-p àÅ×è͹¢Öé¹¢éÒ§º¹´Ù Êѧࡵ´Ù´éÇÂÇèÒ µÓá˹觢ͧà¤ÍÃìà«ÍÃìà»ÅÕè¹ä»ÍÂèÒ§äÃ
- >> \e,TEM'!4\e(B C-b \e,T"3P\e07Uh\e1M\e0BYh\e1\e07Uh\e15SaK\e09h\e1'K\e09i\e1R\e0JX\e14"M':CC\e07Q\e14\e04Y\e1\e(B \e0\e,TJQ\e1'`!5\e04Y\e1\e04i\e1GB\e0Gh\e1R\e(B \e,T`$M\e0Cl\e1`+M\e0Cl\e1`$\e0EWh\e1M9\e(B
- \e,Td;M\e0Bh\e1R'dC\e(B \e,T(R!\e09Qi\e19c\e0Ki\e1!4\e(B C-b \e0\e,TMU\e1!JM'JRA$\e0CQi\e1'\e(B \e,Ta\e0Ei\e1G!4\e(B C-f \e,T`\e0>Wh\e1M`\e0EWh\e1M9d;\e0BQ\e1'\e07i\e1RB\e0JX\e14\e(B
- \e,T"M':CC\e07Q\e14\e04Y\e1\e(B \e,T`$M\e0Cl\e1`+M\e0Cl\e1(P`\e0;g\e19M\e0Bh\e1R'dC\e(B \e0\e,T6i\e1R!4(9`EB\e07i\e1RB:CC\e07Q\e14d;\e(B
+ >> Åͧ¡´ C-b ¢³Ð·ÕèÍÂÙè·ÕèµÓá˹è§Ë¹éÒÊØ´¢Í§ºÃ÷Ѵ´Ù Êѧࡵ´Ù´éÇÂÇèÒ à¤ÍÃìà«ÍÃìà¤Å×è͹
+ ä»ÍÂèÒ§äà ¨Ò¡¹Ñé¹ãËé¡´ C-b ÍÕ¡ÊͧÊÒÁ¤ÃÑé§ áÅéÇ¡´ C-f à¾×èÍàÅ×è͹ä»Âѧ·éÒÂÊØ´
+ ¢Í§ºÃ÷Ѵ´Ù à¤ÍÃìà«ÍÃì¨Ðà»ç¹ÍÂèÒ§äà ¶éÒ¡´¨¹àÅ·éÒºÃ÷Ѵä»
- \e,T`GER\e07Uh\e1`\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1\e(B \e,T(9`EB:CC\e07Q\e14aC!\e0JX\e14K\e0CW\e1M:CC\e07Q\e14\e07i\e1RB\e0JX\e14"M'K\e09i\e1Rd;\e(B \e,T`$M\e0Cl\e1`+M\e0Cl\e1(P\e(B
-\e,T`\e0EWh\e1M9d;\e0BQ\e1':CC\e07Q\e14\e05h\e1Md;c9\e07T\e1H7R'\e09Qi\e19\e(B \e,Tf\e(B \e,TaEP;\e0CQ\e1:c\e0Ki\e1`$M\e0Cl\e1`+M\e0Cl\e1!\e0EQ\e1:ARM\e0BYh\e1:9K\e09i\e1R(M`JAM\e(B
+ àÇÅÒ·ÕèàÅ×è͹à¤ÍÃìà«ÍÃì ¨¹àźÃ÷ѴááÊØ´ËÃ×ͺÃ÷Ѵ·éÒÂÊØ´¢Í§Ë¹éÒä» à¤ÍÃìà«ÍÃì¨Ð
+àÅ×è͹ä»ÂѧºÃ÷ѴµèÍä»ã¹·ÔÈ·Ò§¹Ñé¹ æ áÅлÃѺãËéà¤ÍÃìà«ÍÃì¡ÅѺÁÒÍÂÙ躹˹éÒ¨ÍàÊÁÍ
- >> \e,TEM'!4\e(B C-n \e,T`\e0>Wh\e1M`\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1c\e0Ki\e1`EB:CC\e07Q\e14\e0Eh\e1R'\e0JX\e14"M'K\e09i\e1R(M\e04Y\e1\e(B \e,Ta\e0Ei\e1G\e0JQ\e1'`!5\e04Y\e1\e0Gh\e1R\e(B
- \e,T`\e0!T\e14MPdC\e0"Vi\e19\e(B \e,TaEP5SaK\e09h\e1'"M'`$M\e0Cl\e1`+M\e0Cl\e1`;\e0EUh\e1B9d;M\e0Bh\e1R'dC\e(B
+ >> Åͧ¡´ C-n à¾×èÍàÅ×è͹à¤ÍÃìà«ÍÃìãËéàźÃ÷ѴÅèÒ§ÊØ´¢Í§Ë¹éҨʹ٠áÅéÇÊѧࡵ´ÙÇèÒ
+ à¡Ô´ÍÐäâÖé¹ áÅеÓá˹觢ͧà¤ÍÃìà«ÍÃìà»ÅÕè¹ä»ÍÂèÒ§äÃ
- \e0\e,T6i\e1R\e0CYi\e1\e0JV\e1!\e0Gh\e1R!RC"\e0BQ\e1:d;\e07U\e1EP\e05Q\e1G\e0MQ\e1!IC\e09Qi\e19\e0MW\e14MR4\e0BW\e14BR4\e(B \e0\e,T!g\e1JRARC6c\e0*i\e1!RC`\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1d;\e07U\e1EP$S\e(B
-\e,Td\e04i\e1\e(B \e,T!4\e(B ESC f \e,T`\e0>Wh\e1Mc\e0Ki\e1`\e0EWh\e1M9d;\e0"i\e1R'K\e09i\e1RK\e09Vh\e1'$S\e(B \e,TaEP\e(B ESC b \e,T`\e0>Wh\e1Mc\e0Ki\e1`\e0EWh\e1M9d;\e0"i\e1R'K\e0EQ\e1'K\e09Vh\e1'$S\e(B
+ ¶éÒÃÙéÊÖ¡ÇèÒ¡ÒâÂѺ价ÕÅеÑÇÍÑ¡ÉùÑé¹Í×´ÍÒ´Â×´ÂÒ´ ¡çÊÒÁÒöãªé¡ÒÃàÅ×è͹à¤ÍÃìà«ÍÃìä»·ÕÅФÓ
+ä´é ¡´ ESC f à¾×èÍãËéàÅ×è͹仢éҧ˹éÒ˹Öè§¤Ó áÅÐ ESC b à¾×èÍãËéàÅ×è͹仢éÒ§ËÅѧ˹Ö觤Ó
-\e,TKARB`K\e05X\e1\e(B: \e,TJSK\e0CQ\e1:@RIRd7B\e(B \e0\e,TBQ\e1'd\e0Ah\e1JRARC6a\e0:h\e1'aB!5SaK\e09h\e1'"M'$Sd\e04i\e1\e06Y\e1!\e05i\e1M'\e(B \e0\e,T(V\e1'd\e0Ah\e1\e(B
- \e,TJRARC6c\e0*i\e1JM'$S\e0JQh\e1'\e09Ui\e1d\e04i\e1\e(B
+ËÁÒÂà˵Ø: ÊÓËÃѺÀÒÉÒä·Â ÂѧäÁèÊÒÁÒöáºè§á¡µÓá˹觢ͧ¤Óä´é¶Ù¡µéͧ ¨Ö§äÁè
+ ÊÒÁÒöãªéÊͧ¤ÓÊÑ觹Õéä´é
- >> \e,TEM'!4\e(B ESC f \e,TaEP\e(B ESC b \e,TEM'\e04Y\e1KERB\e(B \e,Tf\e(B \e,T$\e0CQi\e1'\e(B \e,TaEPEM'c\e0*i\e1\e0Ch\e1GA\e0!Q\e1:\e(B C-f \e0\e,T!Q\e1:\e(B C-b \e0\e,T4Y\e1\e(B
- \e0\e,T4i\e1GB\e(B
+ >> Åͧ¡´ ESC f áÅÐ ESC b Åͧ´ÙËÅÒÂ æ ¤ÃÑé§ áÅÐÅͧãªéÃèÇÁ¡Ñº C-f ¡Ñº C-b ´Ù
+ ´éÇÂ
- \e,T(P\e0JQ\e1'`!5`\e0Kg\e19d\e04i\e1\e0Gh\e1R\e(B ESC f \e,TaEP\e(B ESC b \e0\e,TAU\e1\e0CY\e1;a::$\e0Ei\e1RB$\e0EV\e1'\e0!Q\e1:\e(B C-f \e,TaEP\e(B C-b \e,Tb4B\e0Jh\e1G9cK\e0-h\e1\e(B
-ESC <\e0\e,T5Q\e1G\e0MQ\e1!IC\e(B> \e,T(Pc\e0*i\e1`\e0!Uh\e1BG\e0!Q\e1:!RC\e0(Q\e14!RC\e0"i\e1M$GRA\e(B \e0\e,TJh\e1G9\e(B C-<\e0\e,T5Q\e1G\e0MQ\e1!IC\e(B> \e,T(Pc\e0*i\e1\e0!Q\e1:\e0JTh\e1'\e07Uh\e1`\e0;g\e19\e0>Wi\e190R9AR!\e(B
-\e,T!\e0Gh\e1R\e(B (\e,T`\e0*h\e19\e(B \e0\e,T5Q\e1G\e0MQ\e1!IC\e(B \e,TK\e0CW\e1M\e(B \e,T:CC\e07Q\e14\e(B)
+ ¨ÐÊѧࡵàËç¹ä´éÇèÒ ESC f áÅÐ ESC b ÁÕÃٻẺ¤ÅéÒ¤ÅÖ§¡Ñº C-f áÅÐ C-b â´ÂÊèǹãËè
+ESC <µÑÇÍÑ¡ÉÃ> ¨Ðãªéà¡ÕèÂǡѺ¡ÒèѴ¡ÒâéͤÇÒÁ Êèǹ C-<µÑÇÍÑ¡ÉÃ> ¨Ðãªé¡ÑºÊÔ觷Õèà»ç¹¾×é¹°Ò¹ÁÒ¡
+¡ÇèÒ (àªè¹ µÑÇÍÑ¡Éà ËÃ×Í ºÃ÷Ѵ)
- C-a \e0\e,T!Q\e1:\e(B C-e \e,T`\e0;g\e19$S\e0JQh\e1'\e09h\e1R(P\e0CYi\e1d\e0Gi\e1\e(B \e,T`>CRP\e0$h\e1M9\e0"i\e1R'JP4G!\e04U\e1\e07U\e1`\e04U\e1BG\e(B C-a \e,Tc\e0*i\e1JSK\e0CQ\e1:`\e0EWh\e1M9\e(B
-\e,T`$M\e0Cl\e1`+M\e0Cl\e1d;\e07Uh\e15SaK\e09h\e1'K\e09i\e1R\e0JX\e14"M':CC\e07Q\e14\e(B C-e \e,TJSK\e0CQ\e1:`\e0EWh\e1M9d;\e07Uh\e15SaK\e09h\e1'\e07i\e1RB\e0JX\e14"M':CC\e07Q\e14\e(B
+ C-a ¡Ñº C-e à»ç¹¤ÓÊÑ觹èÒ¨ÐÃÙéäÇé à¾ÃÒФè͹¢éÒ§Êдǡ´Õ·Õà´ÕÂÇ C-a ãªéÊÓËÃѺàÅ×è͹
+à¤ÍÃìà«ÍÃìä»·ÕèµÓá˹è§Ë¹éÒÊØ´¢Í§ºÃ÷Ѵ C-e ÊÓËÃѺàÅ×è͹价ÕèµÓá˹觷éÒÂÊØ´¢Í§ºÃ÷Ѵ
- >> \e,TEM'!4\e(B C-a \e0\e,T4Y\e1JM'$\e0CQi\e1'\e(B \e,TK\e0EQ\e1'(R!\e09Qi\e19c\e0Ki\e1!4\e(B C-e \e0\e,T4Y\e1JM'$\e0CQi\e1'\e(B \e,Ta\e0Ei\e1GEM'\e0JQ\e1'`!5\e04Y\e1\e0Gh\e1R\e(B \e,T!RC\e(B
- \e,T!4$S\e0JQh\e1'\e09Ui\e1AR!!\e0Gh\e1RJM'$\e0CQi\e1'\e(B \e,T(Pd\e0Ah\e1\e0*h\e1GBc\e0Ki\e1`\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1d;dK9d\e04i\e1AR!!\e0Gh\e1R\e09Qi\e19\e0MU\e1!\e(B
+ >> Åͧ¡´ C-a ´ÙÊͧ¤ÃÑé§ ËÅѧ¨Ò¡¹Ñé¹ãËé¡´ C-e ´ÙÊͧ¤ÃÑé§ áÅéÇÅͧÊѧࡵ´ÙÇèÒ ¡ÒÃ
+ ¡´¤ÓÊÑ觹ÕéÁÒ¡¡ÇèÒÊͧ¤ÃÑé§ ¨ÐäÁèªèÇÂãËéàÅ×è͹à¤ÍÃìà«ÍÃìä»ä˹ä´éÁÒ¡¡ÇèÒ¹Ñé¹ÍÕ¡
- \e0\e,TBQ\e1'\e0AU\e1\e0MU\e1!JM'$S\e0JQh\e1'\e(B \e,TJSK\e0CQ\e1:!RC`\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1a::\e0'h\e1RB\e(B \e,Tf\e(B \e0\e,T$W\e1M\e(B \e,T$S\e0JQh\e1'\e(B ESC < \e,TJSK\e0CQ\e1:!RC`\e0EWh\e1M9\e(B
-\e,T`$M\e0Cl\e1`+M\e0Cl\e1d;\e07Uh\e15SaK\e09h\e1'aC!\e0JX\e14"M'a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B \e,TaEP$S\e0JQh\e1'\e(B ESC > \e,TJSK\e0CQ\e1:!RC`\e0EWh\e1M9d;5SaK\e09h\e1'\e07i\e1RB\e0JX\e14\e(B
+ ÂѧÁÕÍÕ¡Êͧ¤ÓÊÑè§ ÊÓËÃѺ¡ÒÃàÅ×è͹à¤ÍÃìà«ÍÃìẺ§èÒÂ æ ¤×Í ¤ÓÊÑè§ ESC < ÊÓËÃѺ¡ÒÃàÅ×è͹
+à¤ÍÃìà«ÍÃìä»·ÕèµÓá˹è§ááÊØ´¢Í§á¿éÁ¢éÍÁÙÅ áÅФÓÊÑè§ ESC > ÊÓËÃѺ¡ÒÃàÅ×è͹仵Óá˹觷éÒÂÊØ´
- \e,T`CR`\e0CU\e1B!5SaK\e09h\e1'"M'\e0"i\e1M$GRA\e(B \e0\e,T7Uh\e1\e0AU\e1`$M\e0Cl\e1`+M\e0Cl\e1M\e0BYh\e1\e0Gh\e1R\e(B "\e0\e,T(X\e14\e(B (point)" \e,TK\e0CW\e1M\e0>Y\e14\e0MU\e1!M\e0Bh\e1R'K\e09Vh\e1'd\e04i\e1\e(B
-\e0\e,TGh\e1R\e(B \e,T`$M\e0Cl\e1`+M\e0Cl\e1\e(B \e,T`\e0;g\e19\e0JTh\e1'\e07Uh\e1:M!c\e0Ki\e1`CR\e0CYi\e1\e0Gh\e1R\e(B \e0\e,T(X\e14\e(B \e,TM\e0BYh\e15C'dK9"M'K\e09i\e1R(M\e(B
+ àÃÒàÃÕ¡µÓá˹觢ͧ¢éͤÇÒÁ ·ÕèÁÕà¤ÍÃìà«ÍÃìÍÂÙèÇèÒ "¨Ø´ (point)" ËÃ×;ٴÍÕ¡ÍÂèҧ˹Öè§ä´é
+ÇèÒ à¤ÍÃìà«ÍÃì à»ç¹ÊÔ觷ÕèºÍ¡ãËéàÃÒÃÙéÇèÒ ¨Ø´ ÍÂÙèµÃ§ä˹¢Í§Ë¹éÒ¨Í
- \e,TJ\e0CX\e1;$S\e0JQh\e1'JSK\e0CQ\e1:!RC`$\e0EWh\e1M9d;AR\e(B \e0\e,T+Vh\e1'CGA!RC`$\e0EWh\e1M9\e07Uh\e1c9K\e09h\e1GB"M'$S\e(B \e,TK\e09h\e1GB"M':CC\e07Q\e14d\e0Gi\e1\e04i\e1GB\e(B
-\e,Td\e04i\e1\e04Q\e1'\e09Ui\e1\e(B
+ ÊÃØ»¤ÓÊÑè§ÊÓËÃѺ¡ÒÃà¤Å×è͹ä»ÁÒ «Öè§ÃÇÁ¡ÒÃà¤Å×è͹·Õèã¹Ë¹èÇ¢ͧ¤Ó ˹èÇ¢ͧºÃ÷ѴäÇé´éÇÂ
+ä´é´Ñ§¹Õé
- C-f \e,Td;\e0"i\e1R'K\e09i\e1RK\e09Vh\e1'\e05Q\e1G\e0MQ\e1!IC\e(B
- C-b \e,T!\e0EQ\e1:\e0"i\e1R'K\e0EQ\e1'K\e09Vh\e1'\e05Q\e1G\e0MQ\e1!IC\e(B
+ C-f 仢éҧ˹éÒ˹Ö觵ÑÇÍÑ¡ÉÃ
+ C-b ¡ÅѺ¢éÒ§ËÅѧ˹Ö觵ÑÇÍÑ¡ÉÃ
- ESC f \e,Td;\e0"i\e1R'K\e09i\e1RK\e09Vh\e1'$S\e(B
- ESC b \e,T!\e0EQ\e1:\e0"i\e1R'K\e0EQ\e1'K\e09Vh\e1'$S\e(B
+ ESC f 仢éҧ˹éÒ˹Ö觤Ó
+ ESC b ¡ÅѺ¢éÒ§ËÅѧ˹Ö觤Ó
- C-n \e,T`\e0EWh\e1M9d;:CC\e07Q\e14\e05h\e1Md;\e(B
- C-p \e,T`\e0EWh\e1M9d;:CC\e07Q\e14\e07Uh\e1a\e0Ei\e1G\e(B
+ C-n àÅ×è͹仺Ã÷ѴµèÍä»
+ C-p àÅ×è͹仺Ã÷Ѵ·ÕèáÅéÇ
- ESC ] \e,T`\e0EWh\e1M9d;5SaK\e09h\e1'\e07i\e1RB\e0JX\e14"M'\e0Bh\e1MK\e09i\e1R\e(B (paragraph)
- ESC [ \e,T`\e0EWh\e1M9d;5SaK\e09h\e1'aC!\e0JX\e14"M'\e0Bh\e1MK\e09i\e1R\e(B
+ ESC ] àÅ×è͹仵Óá˹觷éÒÂÊØ´¢Í§ÂèÍ˹éÒ (paragraph)
+ ESC [ àÅ×è͹仵Óá˹è§ááÊØ´¢Í§ÂèÍ˹éÒ
- C-a \e,T`\e0EWh\e1M9d;5SaK\e09h\e1'aC!\e0JX\e14"M':CC\e07Q\e14\e(B
- C-e \e,T`\e0EWh\e1M9d;5SaK\e09h\e1'\e07i\e1RB\e0JX\e14"M':CC\e07Q\e14\e(B
+ C-a àÅ×è͹仵Óá˹è§ááÊØ´¢Í§ºÃ÷Ѵ
+ C-e àÅ×è͹仵Óá˹觷éÒÂÊØ´¢Í§ºÃ÷Ѵ
- ESC < \e,T`\e0EWh\e1M9d;5SaK\e09h\e1'aC!\e0JX\e14"M'a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B
- ESC > \e,T`\e0EWh\e1M9d;5SaK\e09h\e1'\e07i\e1RB\e0JX\e14"M'a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B
+ ESC < àÅ×è͹仵Óá˹è§ááÊØ´¢Í§á¿éÁ¢éÍÁÙÅ
+ ESC > àÅ×è͹仵Óá˹觷éÒÂÊØ´¢Í§á¿éÁ¢éÍÁÙÅ
- >> \e,TEM'c\e0*i\e1$S\e0JQh\e1'a\e05h\e1EP$S\e0JQh\e1'\e04Y\e1\e(B \e,T$S\e0JQh\e1'`K\e0Eh\e1R\e09Ui\e1`\e0;g\e19$S\e0JQh\e1'\e07Uh\e1c\e0*i\e1\e0!Q\e19\e0:h\e1MB\e0JX\e14\e(B \e,T$S\e0JQh\e1'JM'$S\e0JQh\e1'K\e0EQ\e1'\e(B
- \e,T(P`\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1\e(B \e,Td;\e0BQ\e1'\e07Uh\e1\e07Uh\e1\e0$h\e1M9\e0"i\e1R'd!E\e(B \e,Tc\e0Ki\e1EM'c\e0*i\e1$S\e0JQh\e1'\e(B C-v \e,TaEP\e(B ESC v \e,T`\e0>Wh\e1M\e(B
- \e,T`\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1!\e0EQ\e1:AR\e07Uh\e15C'\e09Ui\e1\e(B
+ >> Åͧãªé¤ÓÊÑè§áµèÅФÓÊÑ觴٠¤ÓÊÑè§àËÅèÒ¹Õéà»ç¹¤ÓÊÑ觷Õèãªé¡Ñ¹ºèÍÂÊØ´ ¤ÓÊÑè§Êͧ¤ÓÊÑè§ËÅѧ
+ ¨ÐàÅ×è͹à¤ÍÃìà«ÍÃì ä»Âѧ·Õè·Õè¤è͹¢éÒ§ä¡Å ãËéÅͧãªé¤ÓÊÑè§ C-v áÅÐ ESC v à¾×èÍ
+ àÅ×è͹à¤ÍÃìà«ÍÃì¡ÅѺÁÒ·ÕèµÃ§¹Õé
- \e,TJSK\e0CQ\e1:$S\e0JQh\e1'\e0MWh\e19\e(B \e,Tf\e(B \e,T"M'\e(B Emacs \e0\e,T!g\e1`\e0*h\e19\e0!Q\e19\e(B \e,T$S\e0JQh\e1'`K\e0Eh\e1R\e09Ui\e1(PJRARC6`\e0>Th\e1A\e05Q\e1G`\e0EW\e1M!\e(B (argument)
-\e,T`\e0>Wh\e1M!SK94\e(B \e,T(S9G9$\e0CQi\e1'\e(B \e,Tc9!RC;\e0/T\e1\e0:Q\e1\e05T\e1'R9d\e04i\e1\e(B \e,T!RC!SK94(S9G9$\e0CQi\e1'\e(B \e,T7Sd\e04i\e1b4B!4\e(B C-u \e,Ta\e0Ei\e1G5RA\e(B
-\e0\e,T4i\e1GB(S9G9$\e0CQi\e1'\e07Uh\e1\e05i\e1M'!RC\e0!h\e1M9\e(B \e,Ta\e0Ei\e1G\e0(V\e1'\e0$h\e1MB!4$S\e0JQh\e1'5RA\e(B
+ ÊÓËÃѺ¤ÓÊÑè§Í×è¹ æ ¢Í§ Emacs ¡çàªè¹¡Ñ¹ ¤ÓÊÑè§àËÅèÒ¹Õé¨ÐÊÒÁÒöà¾ÔèÁµÑÇàÅ×Í¡ (argument)
+à¾×èÍ¡Ó˹´ ¨Ó¹Ç¹¤ÃÑé§ ã¹¡Òû¯ÔºÑµÔ§Ò¹ä´é ¡ÒáÓ˹´¨Ó¹Ç¹¤ÃÑé§ ·Óä´éâ´Â¡´ C-u áÅéǵÒÁ
+´éǨӹǹ¤ÃÑ駷Õèµéͧ¡Òáè͹ áÅéǨ֧¤èÍ¡´¤ÓÊÑ觵ÒÁ
- \e0\e,T5Q\e1GM\e0Bh\e1R'`\e0*h\e19\e(B \e,T$S\e0JQh\e1'\e(B C-u 8 C-f \e,TKARB\e06V\e1'\e(B \e,Tc\e0Ki\e1`\e0EWh\e1M9d;\e0"i\e1R'K\e09i\e1R\e(B 8 \e0\e,T5Q\e1G\e0MQ\e1!IC\e(B
+ µÑÇÍÂèÒ§àªè¹ ¤ÓÊÑè§ C-u 8 C-f ËÁÒ¶֧ ãËéàÅ×è͹仢éҧ˹éÒ 8 µÑÇÍÑ¡ÉÃ
- >> \e,Tc\e0Ki\e1EM'!SK94(S9G9$\e0CQi\e1'\e07Uh\e1`KARPJAJSK\e0CQ\e1:$S\e0JQh\e1'\e(B C-n \e,TK\e0CW\e1M\e(B C-p \e,T`\e0>Wh\e1M`\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1\e(B
- \e,Tc\e0Ki\e1ARM\e0BYh\e1c!\e0Ei\e1:CC\e07Q\e14\e09Ui\e1c\e0Ki\e1AR!\e07Uh\e1\e0JX\e14`\e07h\e1R\e07Uh\e1(P7Sd\e04i\e1\e(B \e,Tc9!RC`\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1$\e0CQi\e1'`\e04U\e1BG\e(B
+ >> ãËéÅͧ¡Ó˹´¨Ó¹Ç¹¤ÃÑ駷ÕèàËÁÒÐÊÁÊÓËÃѺ¤ÓÊÑè§ C-n ËÃ×Í C-p à¾×èÍàÅ×è͹à¤ÍÃìà«ÍÃì
+ ãËéÁÒÍÂÙèã¡ÅéºÃ÷Ѵ¹ÕéãËéÁÒ¡·ÕèÊØ´à·èÒ·Õè¨Ð·Óä´é 㹡ÒÃàÅ×è͹à¤ÍÃìà«ÍÃì¤ÃÑé§à´ÕÂÇ
- \e,TJSK\e0CQ\e1:\e(B C-v \e,TaEP\e(B ESC v \e,T(Pd\e04i\e1<Ea5!\e05h\e1R'd;\e0JQ\e1!`\e0Eg\e1!\e09i\e1MB\e(B \e,Tc9!C\e03U\e1\e09Ui\e1\e(B \e,T(P`\e0;g\e19!RC`\e0EWh\e1M9K\e09i\e1R(M\e(B
-\e0\e,T"Vi\e19E'\e(B \e,T5RA(S9G9:CC\e07Q\e14a79\e(B
+ ÊÓËÃѺ C-v áÅÐ ESC v ¨Ðä´é¼ÅᵡµèÒ§ä»ÊÑ¡àÅ硹éÍ 㹡óչÕé ¨Ðà»ç¹¡ÒÃàÅ×è͹˹éÒ¨Í
+¢Öé¹Å§ µÒÁ¨Ó¹Ç¹ºÃ÷Ѵ᷹
- >> \e,TEM'!4\e(B C-u 3 C-v \e0\e,T4Y\e1\e(B
+ >> Åͧ¡´ C-u 3 C-v ´Ù
- \e,T`\e0EWh\e1M9!\e0EQ\e1:\e07Uh\e1`\e0!h\e1Rd\e04i\e1b4B\e(B C-u 3 ESC v
+ àÅ×è͹¡ÅѺ·Õèà¡èÒä´éâ´Â C-u 3 ESC v
-\e,T$S\e0JQh\e1'B!`\e0ET\e1!\e(B
+¤ÓÊÑè§Â¡àÅÔ¡
=========
- \e,T$S\e0JQh\e1'\e(B C-g \e,Tc\e0*i\e1JSK\e0CQ\e1:\e0JQh\e1'B!`\e0ET\e1!$S\e0JQh\e1'\e05h\e1R'\e(B \e,Tf\e(B \e0\e,T7Uh\e1\e05i\e1M'!RC!RC\e0;i\e1M9\e0"i\e1M\e0AY\e1E`\e0>Th\e1A`\e05T\e1A\e(B \e0\e,T5Q\e1GM\e0Bh\e1R'`\e0*h\e19\e(B
-\e,TCPK\e0Gh\e1R'\e07Uh\e1c\e0Jh\e1\e05Q\e1G`\e0EW\e1M!\e(B (argument) \e,TM\e0BYh\e1\e(B \e,TK\e0CW\e1MCPK\e0Gh\e1R'$S\e0JQh\e1'\e07Uh\e1\e05i\e1M'!RC!4\e0;Xh\e1AAR!!\e0Gh\e1R\e(B 2 \e0\e,T;Xh\e1A\e0"Vi\e19d;\e(B \e0\e,T6i\e1R\e(B
-\e,TKR!\e05i\e1M'!RCB!`\e0ET\e1!\e(B \e0\e,T!g\e1c\e0Ki\e1!4\e(B C-g
+ ¤ÓÊÑè§ C-g ãªéÊÓËÃѺÊÑè§Â¡àÅÔ¡¤ÓÊÑ觵èÒ§ æ ·Õèµéͧ¡ÒáÒûé͹¢éÍÁÙÅà¾ÔèÁàµÔÁ µÑÇÍÂèÒ§àªè¹
+ÃÐËÇèÒ§·ÕèãÊèµÑÇàÅ×Í¡ (argument) ÍÂÙè ËÃ×ÍÃÐËÇèÒ§¤ÓÊÑ觷Õèµéͧ¡Òá´»ØèÁÁÒ¡¡ÇèÒ 2 »ØèÁ¢Öé¹ä» ¶éÒ
+ËÒ¡µéͧ¡ÒáàÅÔ¡ ¡çãËé¡´ C-g
- >> \e,TEM'!SK94(S9G9$\e0CQi\e1'c\e0Ki\e1`\e0;g\e19\e(B 100 \e,Tb4B!RC!4\e(B C-u 100 \e,Ta\e0Ei\e1G!4\e(B C-g \e0\e,T4Y\e1\e(B \e,TK\e0EQ\e1'(R!\e09Qi\e19\e(B
- \e,Tc\e0Ki\e1EM'!4\e(B C-f \e0\e,T4Y\e1\e(B \e,Ta\e0Ei\e1G\e0JQ\e1'`!5\e04Y\e1\e0Gh\e1R`$M\e0Cl\e1`+M\e0Cl\e1`\e0EWh\e1M9d;\e0!Uh\e1\e05Q\e1G\e0MQ\e1!IC\e(B \e,TK\e0CW\e1M5M9\e07Uh\e1>ER4d;!4\e(B
- ESC \e,Tb4Bd\e0Ah\e1\e05Qi\e1'c(\e(B \e0\e,T!g\e1JRARC6!4\e(B C-g \e,TB!`\e0ET\e1!d\e04i\e1\e(B
+ >> Åͧ¡Ó˹´¨Ó¹Ç¹¤ÃÑé§ãËéà»ç¹ 100 â´Â¡Òá´ C-u 100 áÅéÇ¡´ C-g ´Ù ËÅѧ¨Ò¡¹Ñé¹
+ ãËéÅͧ¡´ C-f ´Ù áÅéÇÊѧࡵ´ÙÇèÒà¤ÍÃìà«ÍÃìàÅ×è͹仡ÕèµÑÇÍÑ¡Éà ËÃ×͵͹·Õè¾ÅҴ仡´
+ ESC â´ÂäÁèµÑé§ã¨ ¡çÊÒÁÒö¡´ C-g ¡àÅÔ¡ä´é
-\e0\e,T"i\e1M\e0<T\e14>ER4\e(B (Error)
+¢éͼԴ¾ÅÒ´ (Error)
================
- \e,Tc9:R'$\e0CQi\e1'\e(B \e,TMR((P\e0AU\e1!RC\e0JQh\e1';\e0/T\e1\e0:Q\e1\e05T\e1'R9:R'M\e0Bh\e1R'\e(B \e0\e,T7Uh\e1\e(B Emacs \e,TBMA\e0CQ\e1:d\e0Ah\e1d\e04i\e1`\e0!T\e14\e0"Vi\e19\e(B \e0\e,T5Q\e1GM\e0Bh\e1R'`\e0*h\e19\e(B
-\e,T!RC!4$S\e0JQh\e1'$M9b7CE:R'$S\e0JQh\e1'\e(B \e0\e,T7Uh\e1d\e0Ah\e1d\e04i\e1!SK94d\e0Gi\e1c9\e(B Emacs \e0\e,T!g\e1(P7Sc\e0Ki\e1\e(B Emacs \e0\e,TJh\e1'`\e0JU\e1B'`\e05W\e1M9\e(B
-\e,TaEPaJ4'<E\e07Uh\e1:CC\e07Q\e14\e0Eh\e1R'\e0JX\e14"M'(M\e(B \e,T:M!\e0Gh\e1R\e0<T\e14>ER4M\e0Bh\e1R'dC\e(B
+ 㹺ҧ¤ÃÑé§ ÍÒ¨¨ÐÁÕ¡ÒÃÊÑ觻¯ÔºÑµÔ§Ò¹ºÒ§ÍÂèÒ§ ·Õè Emacs ÂÍÁÃѺäÁèä´éà¡Ô´¢Öé¹ µÑÇÍÂèÒ§àªè¹
+¡Òá´¤ÓÊÑ觤͹â·Ãźҧ¤ÓÊÑè§ ·ÕèäÁèä´é¡Ó˹´äÇéã¹ Emacs ¡ç¨Ð·ÓãËé Emacs Êè§àÊÕ§àµ×͹
+áÅÐáÊ´§¼Å·ÕèºÃ÷ѴÅèÒ§ÊØ´¢Í§¨Í ºÍ¡ÇèÒ¼Ô´¾ÅÒ´ÍÂèÒ§äÃ
- \e,T$S\e0JQh\e1':R'$S\e0JQh\e1'\e07Uh\e1`\e0"U\e1B9d\e0Gi\e1c9`M!JRC)\e0:Q\e1:\e09Ui\e1\e(B \e,TMR(c\e0*i\e1d\e0Ah\e1d\e04i\e1\e0!Q\e1:\e(B Emacs \e,T:R'\e0CXh\e19\e(B (version) \e0\e,T+Vh\e1'(P\e(B
-\e,T7Sc\e0Ki\e1\e0AU\e1!RCaJ4'<E\e0"i\e1M\e0<T\e14>ER4\e(B (error) \e0\e,T"Vi\e19\e(B \e,Tc9!C\e03U\e1\e09Ui\e1\e(B \e,T"Mc\e0Ki\e1!4\e0;Xh\e1AMPdC\e0!g\e1d\e04i\e1\e(B \e,T`\e0>Wh\e1M`\e0EWh\e1M9d;\e0BQ\e1'\e0Jh\e1G9\e(B
-\e0\e,T5h\e1Md;\e(B
+ ¤ÓÊÑ觺ҧ¤ÓÊÑ觷Õèà¢Õ¹äÇéã¹àÍ¡ÊÒéºÑº¹Õé ÍÒ¨ãªéäÁèä´é¡Ñº Emacs ºÒ§ÃØè¹ (version) «Ö觨Ð
+·ÓãËéÁÕ¡ÒÃáÊ´§¼Å¢éͼԴ¾ÅÒ´ (error) ¢Öé¹ ã¹¡Ã³Õ¹Õé ¢ÍãËé¡´»ØèÁÍÐäáçä´é à¾×èÍàÅ×è͹ä»ÂѧÊèǹ
+µèÍä»
-\e0\e,TGT\e19b4\e0Gl\e1\e(B (Window)
+ÇÔ¹â´Çì (Window)
==============
- Emacs \e,TJRARC6`\e0;T\e14\e0GT\e19b4\e0Gl\e1d\e04i\e1>\e0Ci\e1MA\e0!Q\e19KERB\e0GT\e19b4\e0Gl\e1\e(B \e,TaEPc\e0*i\e1\e0GT\e19b4\e0Gl\e1`K\e0Eh\e1R\e09Qi\e19aJ4'<E\e0"i\e1M$GRA\e(B
-\e0\e,T5h\e1R'\e(B \e,Tf\e(B \e,T5RA\e05i\e1M'!RCd\e04i\e1\e(B \e0\e,T!h\e1M9\e0MWh\e19\e(B \e0\e,T!g\e1$GC(P7S$GRA\e0CYi\e1\e0(Q\e1!\e0!Q\e1:$S\e0JQh\e1'\e(B \e0\e,T7Uh\e1c\e0*i\e1JSK\e0CQ\e1:!RCE:\e0GT\e19b4\e0Gl\e1\e0Jh\e1G9`\e0!T\e19\e(B
-\e,Tc9`GER\e07Uh\e1aJ4'<E\e0EQ\e1>\e08l\e1"M'$S\e0JQh\e1':R'$S\e0JQh\e1'\e(B \e,TK\e0CW\e1M\e(B Help \e,TMM!`\e0JU\e1B\e0!h\e1M9\e(B
+ Emacs ÊÒÁÒöà»Ô´ÇÔ¹â´Çìä´é¾ÃéÍÁ¡Ñ¹ËÅÒÂÇÔ¹â´Çì áÅÐãªéÇÔ¹â´ÇìàËÅèÒ¹Ñé¹áÊ´§¼Å¢éͤÇÒÁ
+µèÒ§ æ µÒÁµéͧ¡ÒÃä´é ¡è͹Í×è¹ ¡ç¤ÇèзӤÇÒÁÃÙé¨Ñ¡¡Ñº¤ÓÊÑè§ ·ÕèãªéÊÓËÃѺ¡ÒÃźÇÔ¹â´ÇìÊèǹà¡Ô¹
+ã¹àÇÅÒ·ÕèáÊ´§¼ÅÅѾ¸ì¢Í§¤ÓÊÑ觺ҧ¤ÓÊÑè§ ËÃ×Í Help ÍÍ¡àÊÕ¡è͹
- C-x 1 \e,T7Sc\e0Ki\e1`\e0;g\e19\e0GT\e19b4\e0Gl\e1`\e04U\e1BG\e(B
+ C-x 1 ·ÓãËéà»ç¹ÇÔ¹â´Çìà´ÕÂÇ
- \e,T$S\e0JQh\e1'\e(B C-x 1 \e,Tc\e0*i\e1JSK\e0CQ\e1:E:\e0GT\e19b4\e0Gl\e1\e0MWh\e19\e(B \e,Ta\e0Ei\e1G"BRB\e0GT\e19b4\e0Gl\e1\e07Uh\e1\e0AU\e1`$M\e0Cl\e1`+M\e0Cl\e1M\e0BYh\e1\e(B \e,Tc\e0Ki\e1`\e05g\e1A(M`\e0;g\e19\e(B
-\e0\e,TGT\e19b4\e0Gl\e1`\e04U\e1BG\e(B
+ ¤ÓÊÑè§ C-x 1 ãªéÊÓËÃѺźÇÔ¹â´ÇìÍ×è¹ áÅéÇ¢ÂÒÂÇÔ¹â´Çì·ÕèÁÕà¤ÍÃìà«ÍÃìÍÂÙè ãËéàµçÁ¨Íà»ç¹
+ÇÔ¹â´Çìà´ÕÂÇ
- >> \e,Tc\e0Ki\e1`\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1AR\e07Uh\e1:CC\e07Q\e14\e09Ui\e1\e(B \e,Ta\e0Ei\e1G!4\e(B C-u 0 C-l
+ >> ãËéàÅ×è͹à¤ÍÃìà«ÍÃìÁÒ·ÕèºÃ÷Ѵ¹Õé áÅéÇ¡´ C-u 0 C-l
- >> \e,TEM'!4\e(B C-h k C-f \e0\e,T4Y\e1\e(B \e,Ta\e0Ei\e1G\e0JQ\e1'`!5\e04Y\e1\e0Gh\e1R\e0GT\e19b4\e0Gl\e1\e09Ui\e1`;\e0EUh\e1B9d;M\e0Bh\e1R'dC\e(B \e,T`\e0AWh\e1M\e0AU\e1\e0GT\e19b4\e0Gl\e1cK\e0Ah\e1\e0+Vh\e1'\e(B
- \e,TM\e08T\e1:RB\e0GT\e1\e08U\e1c\e0*i\e1$S\e0JQh\e1'\e(B C-f \e,T;CR!/\e0"Vi\e19\e(B
+ >> Åͧ¡´ C-h k C-f ´Ù áÅéÇÊѧࡵ´ÙÇèÒÇÔ¹â´Çì¹Õéà»ÅÕè¹ä»ÍÂèÒ§äà àÁ×èÍÁÕÇÔ¹â´ÇìãËÁè«Öè§
+ ͸ԺÒÂÇÔ¸Õãªé¤ÓÊÑè§ C-f »ÃÒ¡¯¢Öé¹
- >> \e,TEM'!4\e(B C-x 1 \e,T`\e0>Wh\e1ME:\e0GT\e19b4\e0Gl\e1\e07Uh\e1b<\e0Eh\e1\e0"Vi\e19ARcK\e0Ah\e1\e(B \e,TMM!\e(B
+ >> Åͧ¡´ C-x 1 à¾×èÍźÇÔ¹â´Çì·Õèâ¼Åè¢Öé¹ÁÒãËÁè ÍÍ¡
-\e,T!RCa7C!\e(B (insert) \e,TaEP\e(B \e,T!RCE:\e(B (delete)
+¡ÒÃá·Ã¡ (insert) áÅÐ ¡ÒÃź (delete)
===================================
- \e,T:9\e(B Emacs \e,T`CR(PJRARC6\e0>T\e1A\e0>l\e1\e05Q\e1G\e0MQ\e1!IC`\e0"i\e1Rd;d\e04i\e1`EB\e(B \e,T`\e0AWh\e1M\e05i\e1M'!RC\e0>T\e1A\e0>l\e1\e0"i\e1M$GRA\e(B Emacs \e,T(P\e(B
-\e0\e,T6W\e1M\e0Gh\e1R\e05Q\e1GK\e09Q\e1'\e0JW\e1M\e07Uh\e1AM'`\e0Kg\e19d\e04i\e1\e07X\e1!\e05Q\e1G\e(B (\e,T`\e0*h\e19\e(B 'A' '7' '*' '\e,T!\e(B' \e,TaEP\e0MWh\e19\e(B \e,Tf\e(B) \e,T`\e0;g\e19\e0"i\e1M$GRA\e07Uh\e1\e05i\e1M'!RC(P\e(B
-\e,Ta7C!\e(B (insert) \e,T`\e0"i\e1Rd;5C'\e(B \e,Tf\e(B \e,T`\e0AWh\e1M(P(::CC\e07Q\e14\e(B \e,Tc\e0Ki\e1!4\e(B <Return> \e,T`\e0>Wh\e1M`\e05T\e1A\e0MQ\e1!IC\e0"Vi\e19:CC\e07Q\e14cK\e0Ah\e1\e(B
-(linefeed character) \e,Ta7C!`\e0"i\e1Rd;\e(B
+ º¹ Emacs àÃÒ¨ÐÊÒÁÒö¾ÔÁ¾ìµÑÇÍÑ¡ÉÃà¢éÒä»ä´éàÅ àÁ×è͵éͧ¡ÒþÔÁ¾ì¢éͤÇÒÁ Emacs ¨Ð
+¶×ÍÇèÒµÑÇ˹ѧÊ×Í·ÕèÁͧàËç¹ä´é·Ø¡µÑÇ (àªè¹ 'A' '7' '*' '¡' áÅÐÍ×è¹ æ) à»ç¹¢éͤÇÒÁ·Õèµéͧ¡ÒèÐ
+á·Ã¡ (insert) à¢éÒ仵ç æ àÁ×èͨШººÃ÷Ѵ ãËé¡´ <Return> à¾×èÍàµÔÁÍÑ¡ÉâÖ鹺Ã÷ѴãËÁè
+(linefeed character) á·Ã¡à¢éÒä»
- \e,Tc\e0Ki\e1!4\e(B <Delete> \e,T`\e0AWh\e1M\e05i\e1M'!RC(PE:\e05Q\e1G\e0MQ\e1!IC\e07Uh\e1`\e0>Th\e1'\e0>T\e1A\e0>l\e1`\e0"i\e1Rd;\e(B <Delete> \e,TKARB\e06V\e1'\e0;Xh\e1A`\e0"U\e1B9\e(B
-\e,T:9\e0<T\e1GK\e09i\e1Rd\e0Gi\e1\e0Gh\e1R\e(B "Delete" \e,TK\e0CW\e1M:R'\e07U\e1MR((P`\e0"U\e1B9d\e0Gi\e1\e(B "Rubout" \e0\e,T!g\e1d\e04i\e1\e(B \e,Tb4B\e07Qh\e1Gd;\e(B <Delete>
-\e,Tc\e0*i\e1JSK\e0CQ\e1:E:\e05Q\e1G\e0MQ\e1!IC\e07Uh\e1M\e0BYh\e1\e0!h\e1M9K\e09i\e1R5SaK\e09h\e1'`$M\e0Cl\e1`+M\e0Cl\e1\e0;Q\e1(\e0(X\e1\e0:Q\e19\e(B
+ ãËé¡´ <Delete> àÁ×è͵éͧ¡ÒèÐźµÑÇÍÑ¡É÷Õèà¾Ô觾ÔÁ¾ìà¢éÒä» <Delete> ËÁÒ¶֧»ØèÁà¢Õ¹
+º¹¼ÔÇ˹éÒäÇéÇèÒ "Delete" ËÃ×ͺҧ·ÕÍÒ¨¨Ðà¢Õ¹äÇé "Rubout" ¡çä´é â´Â·ÑèÇä» <Delete>
+ãªéÊÓËÃѺźµÑÇÍÑ¡É÷ÕèÍÂÙè¡è͹˹éÒµÓá˹è§à¤ÍÃìà«ÍÃì»Ñ¨¨ØºÑ¹
- >> \e,TEM'\e0>T\e1A\e0>l\e1\e05Q\e1G\e0MQ\e1!IC`\e0"i\e1Rd;KERB\e(B \e,Tf\e(B \e0\e,T5Q\e1G\e(B \e,Ta\e0Ei\e1Gc\e0*i\e1\e(B <Delete> \e,TE:\e05Q\e1G\e0MQ\e1!IC`K\e0Eh\e1R\e09Qi\e19\e07Ti\e1'\e(B
+ >> Åͧ¾ÔÁ¾ìµÑÇÍÑ¡ÉÃà¢éÒä»ËÅÒÂ æ µÑÇ áÅéÇãªé <Delete> źµÑÇÍÑ¡ÉÃàËÅèÒ¹Ñé¹·Ôé§
- >> \e,TEM'\e0>T\e1A\e0>l\e1\e0"i\e1M$GRAE'd;c\e0Ki\e1`\e0!T\e19"M:"GR\e(B (right margin) \e,T`GER\e07Uh\e1\e0>T\e1A\e0>l\e1\e0"i\e1M$GRA`\e0"i\e1Rd;\e(B
- \e,TBRG`\e0!T\e19$GRA!\e0Gi\e1R'"M'K\e09Vh\e1':CC\e07Q\e14\e(B \e,T:CC\e07Q\e14\e09Qi\e19\e0!g\e1(P\e(B "\e0\e,T6Y\e1!\e05h\e1M\e(B" \e,Tc\e0Ki\e1BRG`\e0!T\e19K\e09Vh\e1'K\e09i\e1R(M\e(B
- \e,Tb4Bc\e0Jh\e1`$\e0CWh\e1M'KARB\e(B '\' \e,Td\e0Gi\e1\e07Uh\e1"M:"GR\e0JX\e14\e(B \e,T`\e0>Wh\e1M:M!c\e0Ki\e1\e0CYi\e1\e0Gh\e1R:CC\e07Q\e14\e09Ui\e1\e0BQ\e1'\e0AU\e1\e05h\e1M\e(B Emacs \e,T(P\e(B
- \e,T`\e0EWh\e1M9\e(B (scroll) \e,TK\e09i\e1R(M`\e0>Wh\e1Mc\e0Ki\e1`\e0Kg\e195SaK\e09h\e1'\e07Uh\e1!S\e0EQ\e1'a\e0!i\e1d"M\e0BYh\e1d\e04i\e1M\e0Bh\e1R'\e0*Q\e14`(9\e(B \e0\e,T6i\e1RKR!\e(B
- \e,T"M:"GRK\e0CW\e1M"M:\e0+i\e1RB"M'\e0AU\e1`$\e0CWh\e1M'KARB\e(B '\' \e,TM\e0BYh\e1\e(B \e0\e,T!g\e1`\e0;g\e19!RC:M!c\e0Ki\e1\e0CYi\e1\e0Gh\e1R\e(B \e,T:CC\e07Q\e14\e09Qi\e19\e0BQ\e1'\e0AU\e1\e05h\e1M\e(B
- \e,Td;c9\e07T\e1H7R'\e09Qi\e19\e(B \e,Tf\e(B
+ >> Åͧ¾ÔÁ¾ì¢éͤÇÒÁŧä»ãËéà¡Ô¹¢Íº¢ÇÒ (right margin) àÇÅÒ·Õè¾ÔÁ¾ì¢éͤÇÒÁà¢éÒä»
+ ÂÒÇà¡Ô¹¤ÇÒÁ¡ÇéÒ§¢Í§Ë¹Ö觺Ã÷Ѵ ºÃ÷Ѵ¹Ñ鹡ç¨Ð "¶Ù¡µèÍ" ãËéÂÒÇà¡Ô¹Ë¹Öè§Ë¹éÒ¨Í
+ â´ÂãÊèà¤Ã×èͧËÁÒ '\' äÇé·Õè¢Íº¢ÇÒÊØ´ à¾×èͺ͡ãËéÃÙéÇèÒºÃ÷Ѵ¹ÕéÂѧÁÕµèÍ Emacs ¨Ð
+ àÅ×è͹ (scroll) ˹éÒ¨Íà¾×èÍãËéàËç¹µÓá˹觷Õè¡ÓÅѧá¡éä¢ÍÂÙèä´éÍÂèÒ§ªÑ´à¨¹ ¶éÒËÒ¡
+ ¢Íº¢ÇÒËÃ×͢ͺ«éÒ¢ͧÁÕà¤Ã×èͧËÁÒ '\' ÍÂÙè ¡çà»ç¹¡Òú͡ãËéÃÙéÇèÒ ºÃ÷Ѵ¹Ñé¹ÂѧÁÕµèÍ
+ ä»ã¹·ÔÈ·Ò§¹Ñé¹ æ
- \e,TEM';\e0/T\e1\e0:Q\e1\e05T\e1\e04Y\e1`EB\e(B \e,T$'(P\e0*h\e1GBc\e0Ki\e1`\e0"i\e1Rc(\e0'h\e1RB!\e0Gh\e1R!RCM\e08T\e1:RB\e04i\e1GB\e05Q\e1GK\e09Q\e1'\e0JW\e1M\e(B
+ Åͧ»¯ÔºÑµÔ´ÙàÅ ¤§¨ÐªèÇÂãËéà¢éÒ㨧èÒ¡ÇèÒ¡ÒÃ͸ԺÒ´éǵÑÇ˹ѧÊ×Í
- >> \e,Tc\e0Ki\e1"\e0BQ\e1:`$M\e0Cl\e1`+M\e0Cl\e1d;d\e0Gi\e1:9:CC\e07Q\e14\e0+Vh\e1'\e06Y\e1!\e05h\e1Mc\e0Ki\e1BRG`\e0!T\e19K\e09Vh\e1'K\e09i\e1R(M\e(B \e0\e,T7Uh\e1`\e0>Th\e1'\e0;i\e1M9`\e0"i\e1Rd;`\e0AWh\e1M\e(B
- \e0\e,TJQ\e1!$\e0CYh\e1\e09Ui\e1\e(B \e,Ta\e0Ei\e1Gc\e0*i\e1\e(B C-d \e,TE:\e0"i\e1M$GRAMM!:R'\e0Jh\e1G9\e(B \e,T(9$GRABRG"M'\e0"i\e1M$GRAM\e0BYh\e1@RBc9K\e09Vh\e1'\e(B
- \e,T:CC\e07Q\e14\e(B \e0\e,TJQ\e1'`!5\e04Y\e1\e0Gh\e1R`$\e0CWh\e1M'KARB\e(B '\' \e,T(PKRBd;\e(B
+ >> ãËé¢ÂѺà¤ÍÃìà«ÍÃìä»äÇ麹ºÃ÷Ѵ«Ö觶١µèÍãËéÂÒÇà¡Ô¹Ë¹Öè§Ë¹éÒ¨Í ·Õèà¾Ô觻é͹à¢éÒä»àÁ×èÍ
+ ÊÑ¡¤ÃÙè¹Õé áÅéÇãªé C-d ź¢éͤÇÒÁÍÍ¡ºÒ§Êèǹ ¨¹¤ÇÒÁÂÒǢͧ¢éͤÇÒÁÍÂÙèÀÒÂã¹Ë¹Öè§
+ ºÃ÷Ѵ Êѧࡵ´ÙÇèÒà¤Ã×èͧËÁÒ '\' ¨ÐËÒÂä»
- >> \e,Tc\e0Ki\e1`\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1d;d\e0Gi\e1\e07Uh\e15SaK\e09h\e1'aC!\e0JX\e14"M':CC\e07Q\e14\e(B \e,Ta\e0Ei\e1G!4\e(B <Delete> \e0\e,T4Y\e1\e(B \e,T!RC7S\e(B
- \e,Ta::\e09Ui\e1\e(B \e,T(P7Sc\e0Ki\e1\e0JQ\e1-\e0EQ\e1!I\e03l\e1\e0$Qh\e19CPK\e0Gh\e1R':CC\e07Q\e14\e06Y\e1!E:MM!d;\e(B \e,T:CC\e07Q\e14\e09Qi\e19\e0!g\e1(P\e06Y\e1!`MRd;\e05h\e1M\e0!Q\e1:\e(B
- \e,T:CC\e07Q\e14\e0!h\e1M9K\e09i\e1R\e09Qi\e19\e(B \e,TCGA\e0!Q\e19`\e0;g\e19:CC\e07Q\e14BRG:CC\e07Q\e14`\e04U\e1BG\e(B \e,TaEPMR((P\e0AU\e1\e0JQ\e1-\e0EQ\e1!I\e03l\e1\e05h\e1M:CC\e07Q\e14\e(B
- \e,T;CR!/\e0"Vi\e19\e(B
+ >> ãËéàÅ×è͹à¤ÍÃìà«ÍÃìä»äÇé·ÕèµÓá˹è§ááÊØ´¢Í§ºÃ÷Ѵ áÅéÇ¡´ <Delete> ´Ù ¡Ò÷Ó
+ Ẻ¹Õé ¨Ð·ÓãËéÊÑÅѡɳì¤Ñè¹ÃÐËÇèÒ§ºÃ÷Ѵ¶Ù¡ÅºÍÍ¡ä» ºÃ÷Ѵ¹Ñ鹡ç¨Ð¶Ù¡àÍÒ仵è͡Ѻ
+ ºÃ÷Ѵ¡è͹˹éÒ¹Ñé¹ ÃÇÁ¡Ñ¹à»ç¹ºÃ÷ѴÂÒǺÃ÷Ѵà´ÕÂÇ áÅÐÍÒ¨¨ÐÁÕÊÑÅѡɳìµèͺÃ÷Ѵ
+ »ÃÒ¡¯¢Öé¹
- >> \e,Tc\e0Ki\e1!4\e(B <Return> \e,T`\e0>Wh\e1M`\e0>Th\e1A\e(B \e0\e,T5Q\e1G\e0MQ\e1!IC\e0"Vi\e19:CC\e07Q\e14cK\e0Ah\e1\e(B \e,T!\e0EQ\e1:d;M\e0Bh\e1R'`\e04T\e1A\e(B
+ >> ãËé¡´ <Return> à¾×èÍà¾ÔèÁ µÑÇÍÑ¡ÉâÖ鹺Ã÷ѴãËÁè ¡ÅѺä»ÍÂèÒ§à´ÔÁ
- \e,T$S\e0JQh\e1'\e0Jh\e1G9cK\e0-h\e1"M'\e(B Emacs \e,T(PJRARC6!SK94(S9G9$\e0CQi\e1'\e07Uh\e1\e05i\e1M'!RCc\e0Ki\e1;\e0/T\e1\e0:Q\e1\e05T\e1d\e04i\e1\e(B \e,TCGA\e07Qi\e1'!RC\e(B
-\e,Ta7C!\e(B (insert) \e0\e,T5Q\e1G\e0MQ\e1!IC\e04i\e1GB\e(B
+ ¤ÓÊÑè§ÊèǹãËè¢Í§ Emacs ¨ÐÊÒÁÒö¡Ó˹´¨Ó¹Ç¹¤ÃÑ駷Õèµéͧ¡ÒÃãË黯ԺѵÔä´é ÃÇÁ·Ñ駡ÒÃ
+á·Ã¡ (insert) µÑÇÍÑ¡ÉôéÇÂ
- >> \e,TEM'\e0;i\e1M9$S\e0JQh\e1'\e(B C-u 8 * \e0\e,T4Y\e1\e(B \e0\e,TJQ\e1'`!5\e04Y\e1\e0Gh\e1R`\e0!T\e14MPdC\e0"Vi\e19\e(B
+ >> Åͧ»é͹¤ÓÊÑè§ C-u 8 * ´Ù Êѧࡵ´ÙÇèÒà¡Ô´ÍÐäâÖé¹
- \e0\e,T6i\e1R\e05i\e1M'!RC(P`\e0>Th\e1A:CC\e07Q\e14\e0Gh\e1R'\e(B \e,Tf\e(B (blank line) \e,TCPK\e0Gh\e1R'JM':CC\e07Q\e14\e(B \e,Tc\e0Ki\e1`\e0EWh\e1M9d;\e07Uh\e15SaK\e09h\e1'\e(B
-\e,TaC!\e0JX\e14"M':CC\e07Q\e14\e07Uh\e1JM'\e(B \e,Ta\e0Ei\e1G!4\e(B C-o
+ ¶éÒµéͧ¡ÒèÐà¾ÔèÁºÃ÷ѴÇèÒ§ æ (blank line) ÃÐËÇèÒ§ÊͧºÃ÷Ѵ ãËéàÅ×è͹价ÕèµÓá˹è§
+ááÊØ´¢Í§ºÃ÷Ѵ·ÕèÊͧ áÅéÇ¡´ C-o
- >> \e,Tc\e0Ki\e1`\e0EWh\e1M9d;\e07Uh\e15SaK\e09h\e1'aC!\e0JX\e14"M':CC\e07Q\e14c4\e0!g\e1d\e04i\e1\e(B \e,Ta\e0Ei\e1GEM'!4\e(B C-o \e0\e,T4Y\e1\e(B
+ >> ãËéàÅ×è͹价ÕèµÓá˹è§ááÊØ´¢Í§ºÃ÷Ѵ㴡çä´é áÅéÇÅͧ¡´ C-o ´Ù
- \e0\e,T6V\e1'5C'\e09Ui\e1\e(B \e,T`CR\e0!g\e1d\e04i\e1`\e0CU\e1B9\e0GT\e1\e08U\e1\e0>Wi\e190R9JSK\e0CQ\e1:!RC\e0;i\e1M9\e0"i\e1M$GRA\e(B \e,TaEP!RCa\e0!i\e1\e07Uh\e1\e0<T\e14a\e0Ei\e1G\e(B \e,T9M!(R!(P\e(B
-\e,TE:d\e04i\e1\e07U\e1EP\e05Q\e1G\e0MQ\e1!ICa\e0Ei\e1G\e(B \e0\e,TBQ\e1'\e0AU\e1$S\e0JQh\e1'\e0+Vh\e1'JRARC6c\e0*i\e1E:d\e04i\e1c9`\e0;g\e19$S\e(B \e,Tf\e(B \e,TK\e0CW\e1M`\e0;g\e19:CC\e07Q\e14\e(B \e,Tf\e(B \e0\e,TMU\e1!\e04i\e1GB\e(B \e,TJ\e0CX\e1;\e(B
-\e,T$S\e0JQh\e1'JSK\e0CQ\e1:!RCE:d\e04i\e1\e04Q\e1'\e09Ui\e1\e(B
+ ¶Ö§µÃ§¹Õé àÃÒ¡çä´éàÃÕ¹ÇÔ¸Õ¾×é¹°Ò¹ÊÓËÃѺ¡Òûé͹¢éͤÇÒÁ áÅСÒÃá¡é·Õè¼Ô´áÅéÇ ¹Í¡¨Ò¡¨Ð
+źä´é·ÕÅеÑÇÍÑ¡ÉÃáÅéÇ ÂѧÁÕ¤ÓÊÑ觫Öè§ÊÒÁÒöãªéźä´éã¹à»ç¹¤Ó æ ËÃ×Íà»ç¹ºÃ÷Ѵ æ ÍÕ¡´éÇ ÊÃØ»
+¤ÓÊÑè§ÊÓËÃѺ¡ÒÃźä´é´Ñ§¹Õé
- <Delete> \e,TE:\e05Q\e1G\e0MQ\e1!IC\e07Uh\e1M\e0BYh\e1K\e09i\e1R`$M\e0Cl\e1`+M\e0Cl\e1\e(B
- C-d \e,TE:\e05Q\e1G\e0MQ\e1!IC\e07Uh\e1M\e0BYh\e1\e07Uh\e1`$M\e0Cl\e1`+M\e0Cl\e1\e(B
+ <Delete> źµÑÇÍÑ¡É÷ÕèÍÂÙè˹éÒà¤ÍÃìà«ÍÃì
+ C-d źµÑÇÍÑ¡É÷ÕèÍÂÙè·Õèà¤ÍÃìà«ÍÃì
- ESC <Delete> \e,TE:$S\e07Uh\e1M\e0BYh\e1K\e09i\e1R`$M\e0Cl\e1`+M\e0Cl\e1\e(B
- ESC d \e,TE:$S\e05Qi\e1'a\e05h\e15SaK\e09h\e1'\e07Uh\e1`$M\e0Cl\e1`+M\e0Cl\e1M\e0BYh\e1\e(B
+ ESC <Delete> ź¤Ó·ÕèÍÂÙè˹éÒà¤ÍÃìà«ÍÃì
+ ESC d ź¤ÓµÑé§áµèµÓá˹觷Õèà¤ÍÃìà«ÍÃìÍÂÙè
- C-k \e,TE::CC\e07Q\e14\e05Qi\e1'a\e05h\e15SaK\e09h\e1'\e07Uh\e1`$M\e0Cl\e1`+M\e0Cl\e1M\e0BYh\e1\e(B
+ C-k źºÃ÷ѴµÑé§áµèµÓá˹觷Õèà¤ÍÃìà«ÍÃìÍÂÙè
- \e,Tc9:R'$\e0CQi\e1'\e(B \e,T`CRMR(\e05i\e1M'!RC(P`MR\e0Jh\e1G9\e07Uh\e1E:d;!\e0EQ\e1:\e0$W\e19AR\e(B \e,Tb;Ca!CA\e(B Emacs \e,T(P(S\e0Jh\e1G9\e07Uh\e1E:\e(B
-\e,TMM!d\e0Gi\e1\e(B \e,T`GER\e07Uh\e1E:\e0"i\e1M$GRAc9K\e09h\e1GB\e07Uh\e1AR!!\e0Gh\e1RK\e09Vh\e1'\e05Q\e1G\e0MQ\e1!IC\e(B \e,Tc\e0Ki\e1c\e0*i\e1$S\e0JQh\e1'\e(B C-y \e,T`GER\e07Uh\e1\e05i\e1M'!RC(P`MR\e(B
-\e0\e,T"i\e1M$GRA!\e0EQ\e1:\e0$W\e19\e(B \e0\e,TJTh\e1'\e07Uh\e1$GCCP\e0GQ\e1'\e0!g\e1\e0$W\e1M\e(B C-y \e,Td\e0Ah\e1c\e0*h\e1c\e0*i\e1d\e04i\e1`\e0>U\e1B'a\e0$h\e15SaK\e09h\e1'\e07Uh\e1E:\e0"i\e1M$GRAMM!`\e07h\e1R\e09Qi\e19\e(B \e,Ta\e05h\e1(P\e(B
-\e,Tc\e0*i\e1\e0!Q\e1:5SaK\e09h\e1'c4\e0!g\e1d\e04i\e1\e(B C-y \e,T`\e0;g\e19$S\e0JQh\e1'JSK\e0CQ\e1:a7C!\e0"i\e1M$GRA\e07Uh\e1`\e0!g\e1:d\e0Gi\e1\e(B \e,TE'c95SaK\e09h\e1'\e07Uh\e1\e0AU\e1`$M\e0Cl\e1`+M\e0Cl\e1M\e0BYh\e1\e(B
-\e,T`CRJRARC6c\e0*i\e1$GRAJRARC6\e09Ui\e1c9!RC`$\e0EWh\e1M9\e0Bi\e1RB\e0"i\e1M$GRAd\e04i\e1\e(B
+ 㹺ҧ¤ÃÑé§ àÃÒÍÒ¨µéͧ¡ÒèÐàÍÒÊèǹ·Õèź仡ÅѺ¤×¹ÁÒ â»Ãá¡ÃÁ Emacs ¨Ð¨ÓÊèǹ·Õèź
+ÍÍ¡äÇé àÇÅÒ·Õèź¢éͤÇÒÁã¹Ë¹èÇ·ÕèÁÒ¡¡ÇèÒ˹Ö觵ÑÇÍÑ¡Éà ãËéãªé¤ÓÊÑè§ C-y àÇÅÒ·Õèµéͧ¡ÒèÐàÍÒ
+¢éͤÇÒÁ¡ÅѺ¤×¹ ÊÔ觷Õè¤ÇÃÃÐÇѧ¡ç¤×Í C-y äÁèãªèãªéä´éà¾Õ§á¤èµÓá˹觷Õèź¢éͤÇÒÁÍÍ¡à·èÒ¹Ñé¹ áµè¨Ð
+ãªé¡ÑºµÓá˹è§ã´¡çä´é C-y à»ç¹¤ÓÊÑè§ÊÓËÃѺá·Ã¡¢éͤÇÒÁ·Õèà¡çºäÇé ŧ㹵Óá˹觷ÕèÁÕà¤ÍÃìà«ÍÃìÍÂÙè
+àÃÒÊÒÁÒöãªé¤ÇÒÁÊÒÁÒö¹Õé㹡ÒÃà¤Å×è͹ÂéÒ¢éͤÇÒÁä´é
- \e,T$S\e0JQh\e1'JSK\e0CQ\e1:!RCE:\e0AU\e1M\e0BYh\e1JM'a::\e0$W\e1M\e(B \e,T$S\e0JQh\e1'\e(B "Delete" \e0\e,T!Q\e1:\e(B \e,T$S\e0JQh\e1'\e(B "Kill" \e,T$S\e0JQh\e1'\e(B "Kill"
-\e,T(P`\e0!g\e1:\e0Jh\e1G9E:MM!d\e0Gi\e1\e(B \e,Ta\e05h\e1$S\e0JQh\e1'\e(B "Delete" \e,T(Pd\e0Ah\e1`\e0!g\e1:\e(B \e,Ta\e05h\e1\e06i\e1RKR!c\e0*i\e1$S\e0JQh\e1'\e09Ui\e1KERB\e(B \e,Tf\e(B \e,T$\e0CQi\e1'\e(B \e0\e,T!g\e1(P`\e0!g\e1:\e(B
-\e0\e,TJh\e1G9\e07Uh\e1E:MM!d\e0Gi\e1c\e0Ki\e1\e(B
+ ¤ÓÊÑè§ÊÓËÃѺ¡ÒÃźÁÕÍÂÙèÊͧẺ¤×Í ¤ÓÊÑè§ "Delete" ¡Ñº ¤ÓÊÑè§ "Kill" ¤ÓÊÑè§ "Kill"
+¨Ðà¡çºÊèǹźÍÍ¡äÇé áµè¤ÓÊÑè§ "Delete" ¨ÐäÁèà¡çº áµè¶éÒËÒ¡ãªé¤ÓÊÑ觹ÕéËÅÒÂ æ ¤ÃÑé§ ¡ç¨Ðà¡çº
+Êèǹ·ÕèźÍÍ¡äÇéãËé
- >> \e,Tc\e0Ki\e1!4\e(B C-n \e0\e,TJQ\e1!JM'JRA$\e0CQi\e1'\e(B \e,T`\e0>Wh\e1M`\e0EWh\e1M9d;\e0BQ\e1'\e07Uh\e1\e07Uh\e1`KARPJA:9K\e09i\e1R(M\e(B \e,Ta\e0Ei\e1GEM'!4\e(B C-k \e,T`\e0>Wh\e1M\e(B
- \e,TE::CC\e07Q\e14\e09Qi\e19MM!\e04Y\e1\e(B
+ >> ãËé¡´ C-n ÊÑ¡ÊͧÊÒÁ¤ÃÑé§ à¾×èÍàÅ×è͹ä»Âѧ·Õè·ÕèàËÁÒÐÊÁº¹Ë¹éÒ¨Í áÅéÇÅͧ¡´ C-k à¾×èÍ
+ źºÃ÷Ѵ¹Ñé¹ÍÍ¡´Ù
- \e,T`\e0AWh\e1M!4\e(B C-k \e,T$\e0CQi\e1'aC!\e(B \e0\e,T"i\e1M$GRAc9:CC\e07Q\e14\e09Qi\e19(P\e06Y\e1!E:MM!\e(B \e,TaEP`\e0AWh\e1M!4\e0MU\e1!\e(B C-k \e0\e,TMU\e1!$\e0CQi\e1'\e(B \e,T:CC\e07Q\e14\e(B
-\e0\e,T9Qi\e19`M'\e07Qi\e1':CC\e07Q\e14\e0!g\e1(P\e06Y\e1!E:MM!d;\e04i\e1GB\e(B \e,Ta\e05h\e1\e06i\e1R!SK94(S9G9$\e0CQi\e1'c\e0Ki\e1\e0!Q\e1:$S\e0JQh\e1'\e(B C-k \e0\e,T!g\e1(PKARB\e06V\e1'\e(B \e,Tc\e0Ki\e1E:\e(B
-\e,T:CC\e07Q\e14MM!\e(B (\e0\e,T7Qi\e1'`\e09Wi\e1MKRaEP\e05Q\e1G:CC\e07Q\e14\e(B) \e,T`\e0;g\e19(S9G9:CC\e07Q\e14\e(B \e,T`\e07h\e1R\e0!Q\e1:(S9G9$\e0CQi\e1'\e07Uh\e1!SK94\e(B
+ àÁ×èÍ¡´ C-k ¤ÃÑé§áá ¢éͤÇÒÁ㹺Ã÷Ѵ¹Ñ鹨ж١źÍÍ¡ áÅÐàÁ×èÍ¡´ÍÕ¡ C-k ÍÕ¡¤ÃÑé§ ºÃ÷Ѵ
+¹Ñé¹àͧ·Ñ駺Ã÷Ѵ¡ç¨Ð¶Ù¡ÅºÍÍ¡ä»´éÇ áµè¶éÒ¡Ó˹´¨Ó¹Ç¹¤ÃÑé§ãËé¡Ñº¤ÓÊÑè§ C-k ¡ç¨ÐËÁÒ¶֧ ãËéź
+ºÃ÷ѴÍÍ¡ (·Ñé§à¹×éÍËÒáÅеÑǺÃ÷Ѵ) à»ç¹¨Ó¹Ç¹ºÃ÷Ѵ à·èҡѺ¨Ó¹Ç¹¤ÃÑ駷Õè¡Ó˹´
- \e,T:CC\e07Q\e14\e07Uh\e1`\e0>Th\e1'E:MM!d;\e(B \e,T(P\e06Y\e1!`\e0!g\e1:d\e0Gi\e1\e(B \e,TaEPJRARC69S!\e0EQ\e1:\e0$W\e19ARd\e04i\e1\e(B \e,Tb4Bc\e0*i\e1$S\e0JQh\e1'\e(B C-y
+ ºÃ÷Ѵ·Õèà¾Ôè§ÅºÍÍ¡ä» ¨Ð¶Ù¡à¡çºäÇé áÅÐÊÒÁÒö¹Ó¡ÅѺ¤×¹ÁÒä´é â´Âãªé¤ÓÊÑè§ C-y
- >> \e,TEM'!4\e(B C-y \e0\e,T4Y\e1\e(B
+ >> Åͧ¡´ C-y ´Ù
- \e0\e,T"i\e1M$GRA\e07Uh\e1\e06Y\e1!E:MM!\e(B \e,Tb4B!RC!4\e(B C-k \e,TKERB\e(B \e,Tf\e(B \e,T$\e0CQi\e1'\e(B \e,T(P\e06Y\e1!`\e0!g\e1:CG:CGAd\e0Gi\e1\e(B \e,TaEPJRARC69S\e(B
-\e,T!\e0EQ\e1:AR\e07Qi\e1'KA4d\e04i\e1c9$\e0CQi\e1'`\e04U\e1BG\e(B \e,Tb4B!RC!4\e(B C-y
+ ¢éͤÇÒÁ·Õè¶Ù¡ÅºÍÍ¡ â´Â¡Òá´ C-k ËÅÒÂ æ ¤ÃÑé§ ¨Ð¶Ù¡à¡çºÃǺÃÇÁäÇé áÅÐÊÒÁÒö¹Ó
+¡ÅѺÁÒ·Ñé§ËÁ´ä´é㹤ÃÑé§à´ÕÂÇ â´Â¡Òá´ C-y
- >> \e,TEM'!4\e(B C-k \e0\e,T4Y\e1KERB\e(B \e,Tf\e(B \e,T$\e0CQi\e1'\e(B
+ >> Åͧ¡´ C-k ´ÙËÅÒÂ æ ¤ÃÑé§
- >> \e,T$S\e0JQh\e1'JSK\e0CQ\e1:`\e0CU\e1B!\e0"i\e1M$GRA!\e0EQ\e1:AR\e(B \e0\e,T$W\e1M\e(B C-y \e0\e,T!h\e1M9\e0MWh\e19c\e0Ki\e1`\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1E'd;\e0"i\e1R'\e0Eh\e1R'\e(B
- \e0\e,TJQ\e1!JM'JRA:CC\e07Q\e14\e(B \e,Ta\e0Ei\e1GEM'!4\e(B C-y \e0\e,T4Y\e1\e(B \e0\e,T!g\e1(PJRARC6\e0$Q\e14EM!\e(B (copy) \e0\e,T"i\e1M$GRAd\e04i\e1\e(B
+ >> ¤ÓÊÑè§ÊÓËÃѺàÃÕ¡¢éͤÇÒÁ¡ÅѺÁÒ ¤×Í C-y ¡è͹Í×è¹ãËéàÅ×è͹à¤ÍÃìà«ÍÃìŧ仢éÒ§ÅèÒ§
+ ÊÑ¡ÊͧÊÒÁºÃ÷Ѵ áÅéÇÅͧ¡´ C-y ´Ù ¡ç¨ÐÊÒÁÒö¤Ñ´ÅÍ¡ (copy) ¢éͤÇÒÁä´é
- \e0\e,T6i\e1R5M9\e09Ui\e1`\e0!g\e1:\e0"i\e1M$GRAMPdC:R'M\e0Bh\e1R'd\e0Gi\e1\e(B \e,Ta\e0Ei\e1GE:\e0"i\e1M$GRA\e0MWh\e19`\e0>Th\e1A`\e0"i\e1Rd;\e0MU\e1!\e(B \e,T(P`\e0!T\e14MPdC\e0"Vi\e19\e(B
-\e,T<E\e0EQ\e1>\e08l\e1\e0$W\e1M\e(B C-y \e,T(P`\e0CU\e1B!\e0$W\e19d\e04i\e1a\e0$h\e1`\e0>U\e1B'\e0"i\e1M$GRA\e07Uh\e1E:MM!$\e0CQi\e1'\e0Eh\e1R\e0JX\e14`\e07h\e1R\e09Qi\e19\e(B
+ ¶éҵ͹¹Õéà¡çº¢éͤÇÒÁÍÐäúҧÍÂèÒ§äÇé áÅéÇź¢éͤÇÒÁÍ×è¹à¾ÔèÁà¢éÒä»ÍÕ¡ ¨Ðà¡Ô´ÍÐäâÖé¹
+¼ÅÅѾ¸ì¤×Í C-y ¨ÐàÃÕ¡¤×¹ä´éá¤èà¾Õ§¢éͤÇÒÁ·ÕèźÍÍ¡¤ÃÑé§ÅèÒÊØ´à·èÒ¹Ñé¹
- >> \e,TEM'E::CC\e07Q\e14\e04Y\e1K\e09Vh\e1':CC\e07Q\e14\e(B \e,Ta\e0Ei\e1G`\e0EWh\e1M9`$M\e0Cl\e1`+M\e0Cl\e1d;\e07Uh\e1\e0MWh\e19\e(B \e,Ta\e0Ei\e1GE::CC\e07Q\e14MM!\e04Y\e1\e0MU\e1!K\e09Vh\e1'\e(B
- \e,T:CC\e07Q\e14\e(B \e,TEM'!4\e(B C-y \e0\e,T4Y\e1\e(B \e,Ta\e0Ei\e1G\e0JQ\e1'`!5\e04Y\e1\e0Gh\e1R(Pd\e04i\e1a\e0$h\e1`\e0>U\e1B':CC\e07Q\e14\e07Uh\e1JM'\e0$W\e19`\e07h\e1R\e09Qi\e19\e(B
+ >> ÅͧźºÃ÷Ѵ´Ù˹Ö觺Ã÷Ѵ áÅéÇàÅ×è͹à¤ÍÃìà«ÍÃìä»·ÕèÍ×è¹ áÅéÇźºÃ÷ѴÍÍ¡´ÙÍա˹Öè§
+ ºÃ÷Ѵ Åͧ¡´ C-y ´Ù áÅéÇÊѧࡵ´ÙÇèÒ¨Ðä´éá¤èà¾Õ§ºÃ÷Ѵ·ÕèÊͧ¤×¹à·èÒ¹Ñé¹
-\e,T!RC\e0MQ\e19\e04Y\e1\e(B (UNDO)
+¡ÒÃÍѹ´Ù (UNDO)
=============
- \e,T`GER\e07Uh\e1a\e0!i\e1d"\e0"i\e1M$GRA:R'M\e0Bh\e1R'\e(B \e,Ta\e0Ei\e1G\e05i\e1M'!RC(P`;\e0EUh\e1B9!\e0EQ\e1:c\e0Ki\e1`\e0;g\e19M\e0Bh\e1R'`\e04T\e1A\e(B \e0\e,T!g\e1JRARC67Sd\e04i\e1\e07X\e1!\e(B
-\e,T`\e0AWh\e1M\e04i\e1GB$S\e0JQh\e1'\e(B C-x u \e,Tb4B;!\e05T\e1\e(B \e,T(Pc\e0*i\e1JSK\e0CQ\e1:B!`\e0ET\e1!$S\e0JQh\e1'\e(B \e0\e,T7Uh\e1\e0;i\e1M9`\e0"i\e1Rd;b4Bd\e0Ah\e1\e05Qi\e1'c(\e(B \e,TJRARC6c\e0*i\e1\e(B
-\e,T$S\e0JQh\e1'\e09Ui\e1\e0!Uh\e1$\e0CQi\e1'\e0!g\e1d\e04i\e15RA\e05i\e1M'!RC\e(B
+ àÇÅÒ·Õèá¡é䢢éͤÇÒÁºÒ§ÍÂèÒ§ áÅéǵéͧ¡ÒèÐà»ÅÕ蹡ÅѺãËéà»ç¹ÍÂèÒ§à´ÔÁ ¡çÊÒÁÒö·Óä´é·Ø¡
+àÁ×èÍ´éǤÓÊÑè§ C-x u â´Â»¡µÔ ¨ÐãªéÊÓËÃѺ¡àÅÔ¡¤ÓÊÑè§ ·Õè»é͹à¢éÒä»â´ÂäÁèµÑé§ã¨ ÊÒÁÒöãªé
+¤ÓÊÑ觹Õé¡Õè¤ÃÑ駡çä´éµÒÁµéͧ¡ÒÃ
- >> \e,TEM'E::CC\e07Q\e14\e09Ui\e1MM!\e04Y\e1\e(B \e0\e,T4i\e1GB$S\e0JQh\e1'\e(B C-k \e,Ta\e0Ei\e1G`\e0CU\e1B!!\e0EQ\e1:\e0$W\e19AR\e04i\e1GB\e(B C-x u
+ >> ÅͧźºÃ÷Ѵ¹ÕéÍÍ¡´Ù ´éǤÓÊÑè§ C-k áÅéÇàÃÕ¡¡ÅѺ¤×¹ÁÒ´éÇ C-x u
- \e,T$S\e0JQh\e1'\e(B C-_ \e0\e,T!g\e1`\e0;g\e19$S\e0JQh\e1'\e0MQ\e19\e04Y\e1\e0MU\e1!\e0MQ\e19K\e09Vh\e1'\e(B \e,T$GRAJRARC6`K\e0AW\e1M9\e0!Q\e1:$S\e0JQh\e1'\e(B C-x u
+ ¤ÓÊÑè§ C-_ ¡çà»ç¹¤ÓÊÑè§Íѹ´ÙÍÕ¡Íѹ˹Öè§ ¤ÇÒÁÊÒÁÒöàËÁ×͹¡Ñº¤ÓÊÑè§ C-x u
- \e,TJRARC6!SK94(S9G9$\e0CQi\e1'c\e0Ki\e1$S\e0JQh\e1'\e(B C-_ \e,TaEP\e(B C-x u \e,Td\e04i\e1\e(B
+ ÊÒÁÒö¡Ó˹´¨Ó¹Ç¹¤ÃÑé§ãËé¤ÓÊÑè§ C-_ áÅÐ C-x u ä´é
-\e,Ta\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B (File)
+á¿éÁ¢éÍÁÙÅ (File)
==============
- \e,T`CR(S`\e0;g\e19\e05i\e1M'`\e0!g\e1:\e0CQ\e1!IR\e(B (save) \e0\e,T"i\e1M$GRA\e07Uh\e1a\e0!i\e1d"d\e0Gi\e1c9a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B \e0\e,T6i\e1R\e05i\e1M'!RC(Pc\e0Ki\e1\e0JTh\e1'\e07Uh\e1\e(B
-\e,Ta\e0!i\e1d"`;\e0EUh\e1B9d;M\e0Bh\e1R'6RGC\e(B \e,Td\e0Ah\e1`\e0*h\e19\e09Qi\e19\e(B \e0\e,TJTh\e1'\e07Uh\e1a\e0!i\e1d"d;\e0!g\e1(PKRBd;\e(B \e0\e,T7Q\e19\e07U\e1\e07Uh\e1`\e0ET\e1!!RCc\e0*i\e1\e(B Emacs
+ àÃÒ¨Óà»ç¹µéͧà¡çºÃÑ¡ÉÒ (save) ¢éͤÇÒÁ·Õèá¡éä¢äÇéã¹á¿éÁ¢éÍÁÙÅ ¶éÒµéͧ¡ÒèÐãËéÊÔ觷Õè
+á¡éä¢à»ÅÕè¹ä»ÍÂèÒ§¶ÒÇà äÁèàªè¹¹Ñé¹ ÊÔ觷Õèá¡éä¢ä»¡ç¨ÐËÒÂä» ·Ñ¹·Õ·ÕèàÅÔ¡¡ÒÃãªé Emacs
- \e,Ta\e0?i\e1A\e0"i\e1M\e0AY\e1E\e07Uh\e1AM'`\e0Kg\e19M\e0BYh\e1\e(B \e0\e,T$W\e1M\e0JTh\e1'\e07Uh\e1\e0:Q\e19\e07V\e1!\e0JTh\e1'\e07Uh\e1!S\e0EQ\e1'a\e0!i\e1d"M\e0BYh\e1\e(B \e,TK\e0CW\e1M\e0>Y\e14\e0'h\e1RB\e(B \e,Tf\e(B \e0\e,T!g\e1\e0$W\e1Ma\e0?i\e1A\e0"i\e1M\e0AY\e1E\e07Uh\e1AM'`\e0Kg\e19\e(B
-\e,TM\e0BYh\e1\e0$W\e1M\e05Q\e1Ga\e0?i\e1A\e0"i\e1M\e0AY\e1E\e07Uh\e1!S\e0EQ\e1'a\e0!i\e1d"M\e0BYh\e1\e(B
+ á¿éÁ¢éÍÁÙÅ·ÕèÁͧàËç¹ÍÂÙè ¤×ÍÊÔ觷ÕèºÑ¹·Ö¡ÊÔ觷Õè¡ÓÅѧá¡éä¢ÍÂÙè ËÃ×;ٴ§èÒÂ æ ¡ç¤×Íá¿éÁ¢éÍÁÙÅ·ÕèÁͧàËç¹
+ÍÂÙè¤×͵ÑÇá¿éÁ¢éÍÁÙÅ·Õè¡ÓÅѧá¡éä¢ÍÂÙè
- \e,Ta\e05h\e1(9!\e0Gh\e1Ra\e0?i\e1A\e0"i\e1M\e0AY\e1E(P\e06Y\e1!`\e0!g\e1:\e0CQ\e1!IR\e(B (save) \e,TE'd;\e(B \e,Ta\e0?i\e1A\e0"i\e1M\e0AY\e1E\e07Uh\e1\e06Y\e1!a\e0!i\e1d"M\e0BYh\e1\e(B \e,T(Pd\e0Ah\e1\e06Y\e1!`\e0"U\e1B9\e07Q\e1:\e(B
-\e,TE'd;M\e0Bh\e1R'`\e04g\e14"R4\e(B \e0\e,TMQ\e19\e09Ui\e1`\e0>Wh\e1M`\e0;g\e19!RC\e0;i\e1M'\e0!Q\e19!RC`\e0"U\e1B9\e07Q\e1:a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e07Uh\e1a\e0!i\e1d"d;a::$\e0CVh\e1'\e(B \e,Tf\e(B \e,T!ER'\e(B \e,Tf\e(B
-\e,Tb4Bd\e0Ah\e1d\e04i\e1\e05Qi\e1'c(\e(B
+ áµè¨¹¡ÇèÒá¿éÁ¢éÍÁÙŨж١à¡çºÃÑ¡ÉÒ (save) Å§ä» á¿éÁ¢éÍÁÙÅ·Õè¶Ù¡á¡éä¢ÍÂÙè ¨ÐäÁè¶Ù¡à¢Õ¹·Ñº
+ŧä»ÍÂèÒ§à´ç´¢Ò´ Íѹ¹Õéà¾×èÍà»ç¹¡Òûéͧ¡Ñ¹¡ÒÃà¢Õ¹·Ñºá¿éÁ¢éÍÁÙÅ·Õèá¡éä¢ä»áºº¤ÃÖè§ æ ¡ÅÒ§ æ
+â´ÂäÁèä´éµÑé§ã¨
- \e,T9M!(R!\e09Ui\e1\e(B \e,T`\e0>Wh\e1M`\e0;g\e19!RC\e0;i\e1M'\e0!Q\e19!RC`\e0!g\e1:\e0CQ\e1!IR\e(B (save) \e0\e,TJTh\e1'\e07Uh\e1a\e0!i\e1d"\e0<T\e14d;b4Bd\e0Ah\e1\e05Qi\e1'c(\e(B Emacs
-\e,T(P`;\e0EUh\e1B9\e0*Wh\e1Ma\e0?i\e1A\e0"i\e1M\e0AY\e1E\e05i\e19)\e0:Q\e1:`\e0!g\e1:d\e0Gi\e1c\e0Ki\e1\e(B \e0\e,T!h\e1M9!RC`\e0!g\e1:\e0CQ\e1!IR\e(B
+ ¹Í¡¨Ò¡¹Õé à¾×èÍà»ç¹¡Òûéͧ¡Ñ¹¡ÒÃà¡çºÃÑ¡ÉÒ (save) ÊÔ觷Õèá¡é䢼Դä»â´ÂäÁèµÑé§ã¨ Emacs
+¨Ðà»ÅÕ蹪×èÍá¿éÁ¢éÍÁÙŵ鹩ºÑºà¡çºäÇéãËé ¡è͹¡ÒÃà¡çºÃÑ¡ÉÒ
-\e,TKARB`K\e05X\e1\e(B: Emacs \e0\e,TBQ\e1'\e0AU\e1!RC\e0;i\e1M'\e0!Q\e19\e0MX\e1\e0:Q\e1\e05T\e1`K\e05X\e1\e07Uh\e1$R4d\e0Ah\e1\e06V\e1'\e(B \e,Tb4B!RC`\e0!g\e1:\e0CQ\e1!IRa\e0?i\e1A\e0"i\e1M\e0AY\e1E\e07Uh\e1!S\e0EQ\e1'\e(B
- \e,Ta\e0!i\e1d"M\e0BYh\e1`\e0;g\e19CPBP\e(B \e,Tf\e(B \e,Tb4Bc\e0*i\e1\e0*Wh\e1Ma\e0?i\e1A\e0"i\e1M\e0AY\e1E\e05h\e1R'\e0!Q\e19\e(B \e0\e,T4i\e1GB\e0GT\e1\e08U\e1\e09Ui\e1\e(B \e,T(P7Sc\e0Ki\e1JRARC6E4\e(B
- \e,T$GRA`\e0JU\e1BKRB\e07Uh\e1MR(`\e0!T\e14\e0"Vi\e19d\e04i\e1\e(B \e,Tc\e0Ki\e1\e09i\e1MB\e07Uh\e1\e0JX\e14`\e07h\e1R\e07Uh\e1(P7Sd\e04i\e1\e(B
+ËÁÒÂà˵Ø: Emacs ÂѧÁÕ¡Òûéͧ¡Ñ¹ÍغѵÔà˵طÕè¤Ò´äÁè¶Ö§ â´Â¡ÒÃà¡çºÃÑ¡ÉÒá¿éÁ¢éÍÁÙÅ·Õè¡ÓÅѧ
+ á¡éä¢ÍÂÙèà»ç¹ÃÐÂÐ æ â´Âãªéª×èÍá¿éÁ¢éÍÁÙŵèÒ§¡Ñ¹ ´éÇÂÇÔ¸Õ¹Õé ¨Ð·ÓãËéÊÒÁÒöŴ
+ ¤ÇÒÁàÊÕÂËÒ·ÕèÍÒ¨à¡Ô´¢Öé¹ä´é ãËé¹éÍ·ÕèÊØ´à·èÒ·Õè¨Ð·Óä´é
- \e,T5C'\e0Jh\e1G9\e0Eh\e1R'"M'(M\e(B \e,T(P\e0AU\e1:CC\e07Q\e14bKA4\e(B (mode line) \e,Tc9\e0EQ\e1!I3P\e0"i\e1R'\e0Eh\e1R'aJ4'M\e0BYh\e1\e(B
+ µÃ§ÊèǹÅèÒ§¢Í§¨Í ¨ÐÁÕºÃ÷ѴâËÁ´ (mode line) ã¹ÅѡɳТéÒ§ÅèÒ§áÊ´§ÍÂÙè
-(\e0\e,T5Q\e1GM\e0Bh\e1R'\e(B) [--]J:--**-Mule: TUTORIAL.th (Fundamental) ---55%--------------
+(µÑÇÍÂèÒ§) [--]J:--**-Mule: TUTORIAL.th (Fundamental) ---55%--------------
- \e,T)\e0:Q\e1:JS`9R"M'\e(B Tutorial \e,T"M'\e(B Emacs \e0\e,T7Uh\e1!S\e0EQ\e1'\e0Mh\e1R9M\e0BYh\e1\e09Ui\e1\e0*Wh\e1M\e(B TUTORIAL.th \e,T`GER\e07Uh\e1\e0JQh\e1'c\e0Ki\e1KR\e(B
-\e,Ta\e0?i\e1A\e0"i\e1M\e0AY\e1EK\e0CW\e1M\e(B find-file (\e0\e,T$i\e19KRa\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B \e,Ta\e0Ei\e1G\e0Mh\e1R9`\e0"i\e1RARc9\e0:Q\e1?`?M\e0Cl\e1\e(B) \e0\e,T!g\e1(PaJ4'\e0*Wh\e1Ma\e0?i\e1A\e0"i\e1M\e0AY\e1Ed\e0Gi\e1\e(B
-\e,T5C'\e0Jh\e1G9\e(B TUTORIAL.th \e0\e,T5Q\e1GM\e0Bh\e1R'`\e0*h\e19\e(B \e0\e,T6i\e1R\e0JQh\e1'c\e0Ki\e1KRa\e0?i\e1A\e0"i\e1M\e0AY\e1E\e0*Wh\e1M\e(B new-file \e,T:CC\e07Q\e14bKA4\e0!g\e1(PaJ4'\e(B
-\e,T<E\e0Gh\e1R\e(B "Mule: new-file"
+ ©ºÑºÊÓà¹Ò¢Í§ Tutorial ¢Í§ Emacs ·Õè¡ÓÅѧÍèÒ¹ÍÂÙè¹Õéª×èÍ TUTORIAL.th àÇÅÒ·ÕèÊÑè§ãËéËÒ
+á¿éÁ¢éÍÁÙÅËÃ×Í find-file (¤é¹ËÒá¿éÁ¢éÍÁÙÅ áÅéÇÍèÒ¹à¢éÒÁÒ㹺ѿà¿ÍÃì) ¡ç¨ÐáÊ´§ª×èÍá¿éÁ¢éÍÁÙÅäÇé
+µÃ§Êèǹ TUTORIAL.th µÑÇÍÂèÒ§àªè¹ ¶éÒÊÑè§ãËéËÒá¿éÁ¢éÍÁÙŪ×èÍ new-file ºÃ÷ѴâËÁ´¡ç¨ÐáÊ´§
+¼ÅÇèÒ "Mule: new-file"
-\e,TKARB`K\e05X\e1\e(B: \e,T(P\e0AU\e1$SM\e08T\e1:RB`\e0>Th\e1A`\e05T\e1A`\e0!Uh\e1BG\e0!Q\e1::CC\e07Q\e14bKA4\e(B (mode line) \e,Tc95M9K\e0EQ\e1'\e(B
+ËÁÒÂà˵Ø: ¨ÐÁÕ¤Ó͸ԺÒÂà¾ÔèÁàµÔÁà¡ÕèÂǡѺºÃ÷ѴâËÁ´ (mode line) 㹵͹ËÅѧ
- \e,T$S\e0JQh\e1'c\e0Ki\e1KRa\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B \e,TaEP$S\e0JQh\e1'c\e0Ki\e1`\e0!g\e1:\e0CQ\e1!IRa\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B \e0\e,TAU\e1\e0EQ\e1!I3Pa5!\e05h\e1R'(R!$S\e0JQh\e1'\e07Uh\e1\e0<h\e1R9\e(B \e,Tf\e(B \e,TAR\e(B
-\e,T5C'\e07Uh\e1\e(B \e,T;CP!M:d;\e04i\e1GB\e(B 2 \e0\e,T5Q\e1G\e0MQ\e1!IC\e(B \e0\e,T$W\e1M\e05i\e1M'!4$S\e0JQh\e1':R'M\e0Bh\e1R'\e(B \e,T5RAK\e0EQ\e1'$S\e0JQh\e1'\e(B C-x \e0\e,T+Vh\e1'KARB\e06V\e1'$S\e0JQh\e1'\e(B
-\e,T`\e0!Uh\e1BG\e0!Q\e1:a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B
+ ¤ÓÊÑè§ãËéËÒá¿éÁ¢éÍÁÙÅ áÅФÓÊÑè§ãËéà¡çºÃÑ¡ÉÒá¿éÁ¢éÍÁÙÅ ÁÕÅѡɳÐᵡµèÒ§¨Ò¡¤ÓÊÑ觷Õè¼èÒ¹ æ ÁÒ
+µÃ§·Õè »ÃСͺ仴éÇ 2 µÑÇÍÑ¡Éà ¤×͵éͧ¡´¤ÓÊÑ觺ҧÍÂèÒ§ µÒÁËÅѧ¤ÓÊÑè§ C-x «Öè§ËÁÒ¶֧¤ÓÊÑè§
+à¡ÕèÂǡѺá¿éÁ¢éÍÁÙÅ
- \e,TaEP\e0MU\e1!\e0(X\e14K\e09Vh\e1'\e(B \e,Ta\e05h\e1a5!\e05h\e1R'(R!$S\e0JQh\e1'\e07Uh\e1\e0<h\e1R9AR\e0$W\e1M\e(B \e,T`GER\e0JQh\e1'c\e0Ki\e1\e0$i\e19KRa\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B \e,T`CR(P\e06Y\e1!\e(B Emacs
-\e,T6RA\e0*Wh\e1M"M'a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e09Qi\e19\e(B \e,Tf\e(B \e,T`CR`\e0CU\e1B!$S\e0JQh\e1'`K\e0Eh\e1R\e09Qi\e19\e0Gh\e1R\e(B \e,T$S\e0JQh\e1';CP`@7\e07Uh\e16RA\e05Q\e1G`\e0EW\e1M!\e(B (argument)
-\e,T(R!`7M\e0Cl\e1\e0AT\e1\e09Q\e1E\e(B
+ áÅÐÍÕ¡¨Ø´Ë¹Öè§ áµèᵡµèÒ§¨Ò¡¤ÓÊÑ觷Õè¼èÒ¹ÁÒ¤×Í àÇÅÒÊÑè§ãËé¤é¹ËÒá¿éÁ¢éÍÁÙÅ àÃҨж١ Emacs
+¶ÒÁª×èͧ͢á¿éÁ¢éÍÁÙŹÑé¹ æ àÃÒàÃÕ¡¤ÓÊÑè§àËÅèÒ¹Ñé¹ÇèÒ ¤ÓÊÑ觻ÃÐàÀ··Õè¶ÒÁµÑÇàÅ×Í¡ (argument)
+¨Ò¡à·ÍÃìÁÔ¹ÑÅ
-\e,TKARB`K\e05X\e1\e(B: \e,Tc9\e07Uh\e1\e09Ui\e1\e(B \e0\e,T5Q\e1G`\e0EW\e1M!\e(B (argument) \e0\e,T$W\e1M\e0*Wh\e1Ma\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B
+ËÁÒÂà˵Ø: ã¹·Õè¹Õé µÑÇàÅ×Í¡ (argument) ¤×ͪ×èÍá¿éÁ¢éÍÁÙÅ
- C-x C-f \e0\e,TJQh\e1'c\e0Ki\e1KR\e(B (find) \e,Ta\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B
+ C-x C-f ÊÑè§ãËéËÒ (find) á¿éÁ¢éÍÁÙÅ
- \e,Ta\e0Ei\e1G\e(B Emacs \e,T(P6RA\e0*Wh\e1M"M'a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B \e,Tb4B;CR!/\e0"Vi\e19\e07Uh\e1\e0Jh\e1G9\e0Eh\e1R'"M'(M\e(B \e,T`CR`\e0CU\e1B!\e0Jh\e1G9\e07Uh\e1c\e0Ki\e1\e0;i\e1M9\e(B
-\e0\e,T*Wh\e1Ma\e0?i\e1A\e0"i\e1M\e0AY\e1E\e09Qi\e19\e0Gh\e1R\e(B \e0\e,TAT\e1\e09T\e1\e0:Q\e1?`?M\e0Cl\e1\e(B (mini buffer) \e0\e,TAT\e1\e09T\e1\e0:Q\e1?`?M\e0Cl\e1(P\e06Y\e1!c\e0*i\e1'R9c9\e0EQ\e1!I3P\e09Ui\e1\e(B \e0\e,TAT\e1\e09T\e1\e0:Q\e1?`?M\e0Cl\e1\e(B
-\e,T(PKA4K\e09i\e1R\e07Uh\e1aEPKRBd;\e(B \e,TK\e0EQ\e1'(R!\e07Uh\e1\e0;i\e1M9\e0*Wh\e1Ma\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B \e,Ta\e0Ei\e1G!4\e0;Xh\e1A\e(B <Return>
+ áÅéÇ Emacs ¨Ð¶ÒÁª×èͧ͢á¿éÁ¢éÍÁÙÅ â´Â»ÃÒ¡¯¢Öé¹·ÕèÊèǹÅèÒ§¢Í§¨Í àÃÒàÃÕ¡Êèǹ·ÕèãËé»é͹
+ª×èÍá¿éÁ¢éÍÁÙŹÑé¹ÇèÒ ÁԹԺѿà¿ÍÃì (mini buffer) ÁԹԺѿà¿ÍÃì¨Ð¶Ù¡ãªé§Ò¹ã¹ÅѡɳйÕé ÁԹԺѿà¿ÍÃì
+¨ÐËÁ´Ë¹éÒ·ÕèáÅÐËÒÂä» ËÅѧ¨Ò¡·Õè»é͹ª×èÍá¿éÁ¢éÍÁÙÅ áÅéÇ¡´»ØèÁ <Return>
- >> \e,TEM'!4\e(B C-x C-f \e,Ta\e0Ei\e1G5RA\e04i\e1GB\e(B C-g \e0\e,T4Y\e1\e(B \e,T`\e0;g\e19!RC\e0JQh\e1'B!`\e0ET\e1!`\e09Wi\e1MKRc9\e0AT\e1\e09T\e1\e0:Q\e1?`?M\e0Cl\e1\e(B \e,TK\e0CW\e1M\e(B
- \e,TB!`\e0ET\e1!$S\e0JQh\e1'\e(B C-x C-f \e0\e,T4Q\e1'\e09Qi\e19\e(B Emacs \e,T(Pd\e0Ah\e1\e0$i\e19KRa\e0?i\e1A\e0"i\e1M\e0AY\e1Ec4\e(B \e,Tf\e(B
+ >> Åͧ¡´ C-x C-f áÅéǵÒÁ´éÇ C-g ´Ù à»ç¹¡ÒÃÊÑè§Â¡àÅÔ¡à¹×éÍËÒã¹ÁԹԺѿà¿ÍÃì ËÃ×Í
+ ¡àÅÔ¡¤ÓÊÑè§ C-x C-f ´Ñ§¹Ñé¹ Emacs ¨ÐäÁè¤é¹ËÒá¿éÁ¢éÍÁÙÅã´ æ
- \e,T$CRG\e09Ui\e1\e(B \e,TAREM'`\e0!g\e1:\e0CQ\e1!IRa\e0?i\e1A\e0"i\e1M\e0AY\e1E\e04Y\e1\e(B \e,T`GER\e07Uh\e1\e05i\e1M'!RC`\e0!g\e1:\e0CQ\e1!IR\e0JTh\e1'\e07Uh\e1a\e0!i\e1d"AR(9\e06V\e1'5M9\e09Ui\e1\e(B \e0\e,T!g\e1c\e0Ki\e1c\e0*i\e1\e(B
-\e,T$S\e0JQh\e1'\e04Q\e1'\e09Ui\e1\e(B
+ ¤ÃÒǹÕé ÁÒÅͧà¡çºÃÑ¡ÉÒá¿éÁ¢éÍÁÙÅ´Ù àÇÅÒ·Õèµéͧ¡ÒÃà¡çºÃÑ¡ÉÒÊÔ觷Õèá¡éä¢ÁÒ¨¹¶Ö§µÍ¹¹Õé ¡çãËéãªé
+¤ÓÊÑ觴ѧ¹Õé
- C-x C-s \e,T`\e0!g\e1:\e0CQ\e1!IR\e(B (save) \e,Ta\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B
+ C-x C-s à¡çºÃÑ¡ÉÒ (save) á¿éÁ¢éÍÁÙÅ
- \e,Ta\e0Ei\e1G`\e09Wi\e1MKR\e07Uh\e1M\e0BYh\e1c9\e(B Emacs \e0\e,T!g\e1(P\e06Y\e1!`\e0"U\e1B9E'd;\e07Uh\e1a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B \e,T`GER`\e0!g\e1:\e0CQ\e1!IRa\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B \e,Ta\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B
-\e0\e,T5i\e19)\e0:Q\e1:(Pd\e0Ah\e1\e0JY\e1-KRBd;\e(B \e,Ta\e05h\e1(P\e06Y\e1!`\e0!g\e1:d\e0Gi\e1c9\e0*Wh\e1McK\e0Ah\e1\e(B \e0\e,T+Vh\e1'd\e04i\e1AR(R!\e0*Wh\e1M`\e0!h\e1R\e07Uh\e1\e05h\e1M\e07i\e1RB\e04i\e1GB\e(B '~'
+ áÅéÇà¹×éÍËÒ·ÕèÍÂÙèã¹ Emacs ¡ç¨Ð¶Ù¡à¢Õ¹ŧ价Õèá¿éÁ¢éÍÁÙÅ àÇÅÒà¡çºÃÑ¡ÉÒá¿éÁ¢éÍÁÙÅ á¿éÁ¢éÍÁÙÅ
+µé¹©ºÑº¨ÐäÁèÊÙËÒÂä» áµè¨Ð¶Ù¡à¡çºäÇé㹪×èÍãËÁè «Öè§ä´éÁÒ¨Ò¡ª×èÍà¡èÒ·ÕèµèÍ·éÒ´éÇ '~'
- \e,TK\e0EQ\e1'(R!\e07Uh\e1`\e0!g\e1:\e0CQ\e1!IRa\e0?i\e1A\e0"i\e1M\e0AY\e1E`J\e0Cg\e1(a\e0Ei\e1G\e(B Emacs \e0\e,T!g\e1(PaJ4'\e0*Wh\e1Ma\e0?i\e1A\e0"i\e1M\e0AY\e1E\e07Uh\e1`\e0!g\e1:c\e0Ki\e1\e04Y\e1\e(B
+ ËÅѧ¨Ò¡·Õèà¡çºÃÑ¡ÉÒá¿éÁ¢éÍÁÙÅàÊÃç¨áÅéÇ Emacs ¡ç¨ÐáÊ´§ª×èÍá¿éÁ¢éÍÁÙÅ·Õèà¡çºãËé´Ù
- >> \e,TEM'!4\e(B C-x C-x \e,T`\e0>Wh\e1M`\e0!g\e1:\e0CQ\e1!IRJS`9R"M'\e(B Tutorial \e0\e,T9Ui\e1\e04Y\e1\e(B \e0\e,T!g\e1(P`\e0Kg\e19\e0Gh\e1R\e(B \e0\e,T7Uh\e1\e0Jh\e1G9\e0Eh\e1R'\e(B
- \e,T"M'(M\e(B \e0\e,TAU\e1\e0"i\e1M$GRA\e0Gh\e1R\e(B "Wrote ...../TUTORIAL.th" \e,T;CR!/\e0"Vi\e19\e(B
+ >> Åͧ¡´ C-x C-x à¾×èÍà¡çºÃÑ¡ÉÒÊÓà¹Ò¢Í§ Tutorial ¹Õé´Ù ¡ç¨ÐàËç¹ÇèÒ ·ÕèÊèǹÅèÒ§
+ ¢Í§¨Í ÁÕ¢éͤÇÒÁÇèÒ "Wrote ...../TUTORIAL.th" »ÃÒ¡¯¢Öé¹
- \e,T`GER\e07Uh\e1(PJ\e0Ci\e1R'a\e0?i\e1A\e0"i\e1M\e0AY\e1EcK\e0Ah\e1\e(B \e0\e,T!g\e1c\e0Ki\e17SCRG\e0!Q\e1:\e0Gh\e1R(P\e0$i\e19KR\e(B (find-file) \e,Ta\e0?i\e1A\e0"i\e1M\e0AY\e1E`\e0!h\e1R\e0+Vh\e1'\e0AU\e1\e(B
-\e,TM\e0BYh\e1\e0!h\e1M9K\e09i\e1R\e09Ui\e1a\e0Ei\e1G\e(B \e,Ta\e0Ei\e1G\e0>T\e1A\e0>l\e1\e0"i\e1M$GRAE'd;c9a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e07Uh\e1KR`(M\e(B
+ àÇÅÒ·Õè¨ÐÊÃéÒ§á¿éÁ¢éÍÁÙÅãËÁè ¡çãËé·ÓÃÒǡѺÇèҨФé¹ËÒ (find-file) á¿éÁ¢éÍÁÙÅà¡èÒ«Öè§ÁÕ
+ÍÂÙè¡è͹˹éÒ¹ÕéáÅéÇ áÅéǾÔÁ¾ì¢éͤÇÒÁŧä»ã¹á¿éÁ¢éÍÁÙÅ·ÕèËÒà¨Í
- \e,TaEP`GER\e07Uh\e1\e0JQh\e1'`\e0!g\e1:\e0CQ\e1!IRa\e0?i\e1A\e0"i\e1M\e0AY\e1E`\e07h\e1R\e09Qi\e19\e(B \e0\e,T$W\e1M5M9\e07Uh\e1\e(B Emacs \e,T(P`\e0!g\e1:`\e09Wi\e1MKR\e07Uh\e1a\e0!i\e1d"AR\e07Qi\e1'KA4\e(B \e,TE'\e(B
-\e,Tc9a\e0?i\e1A\e0"i\e1M\e0AY\e1E`\e0;g\e19$\e0CQi\e1'aC!\e(B
+ áÅÐàÇÅÒ·ÕèÊÑè§à¡çºÃÑ¡ÉÒá¿éÁ¢éÍÁÙÅà·èÒ¹Ñé¹ ¤×͵͹·Õè Emacs ¨Ðà¡çºà¹×éÍËÒ·Õèá¡éä¢ÁÒ·Ñé§ËÁ´ ŧ
+ã¹á¿éÁ¢éÍÁÙÅà»ç¹¤ÃÑé§áá
-\e0\e,T:Q\e1?`?M\e0Cl\e1\e(B (Buffer)
+ºÑ¿à¿ÍÃì (Buffer)
===============
- \e0\e,T6i\e1RKR!\e0JQh\e1'c\e0Ki\e1KRa\e0?i\e1A\e0"i\e1M\e0AY\e1E\e0MQ\e19\e07Uh\e1JM'\e(B \e0\e,T4i\e1GB$S\e0JQh\e1'\e(B C-x C-f \e,T`\e09Wi\e1MKR"M'a\e0?i\e1A\e0"i\e1M\e0AY\e1EaC!\e(B \e0\e,T!g\e1(P\e0BQ\e1'$'\e(B
-\e0\e,T6Y\e1!`\e0!g\e1:\e0CQ\e1!IRM\e0BYh\e1c9\e(B Emacs \e0\e,TJTh\e1'\e07Uh\e1`\e0!g\e1:\e0CQ\e1!IRa\e0?i\e1A\e0"i\e1M\e0AY\e1E\e07Uh\e1\e0Mh\e1R9`\e0"i\e1RAR\e(B \e0\e,T+Vh\e1'M\e0BYh\e1@RBc9\e(B Emacs \e,T`\e0CU\e1B!\e0Gh\e1R\e(B
-\e0\e,T:Q\e1?`?M\e0Cl\e1\e(B (Buffer) \e,T`GER\e07Uh\e1\e0Mh\e1R9a\e0?i\e1A\e0"i\e1M\e0AY\e1EcK\e0Ah\e1`\e0"i\e1RAR\e(B Emacs \e0\e,T!g\e1(PJ\e0Ci\e1R'\e0:Q\e1?`?M\e0Cl\e1cK\e0Ah\e1\e(B \e0\e,T"Vi\e19AR@RBc9\e(B
+ ¶éÒËÒ¡ÊÑè§ãËéËÒá¿éÁ¢éÍÁÙÅÍѹ·ÕèÊͧ ´éǤÓÊÑè§ C-x C-f à¹×éÍËҢͧá¿éÁ¢éÍÁÙÅáá ¡ç¨ÐÂѧ¤§
+¶Ù¡à¡çºÃÑ¡ÉÒÍÂÙèã¹ Emacs ÊÔ觷Õèà¡çºÃÑ¡ÉÒá¿éÁ¢éÍÁÙÅ·ÕèÍèÒ¹à¢éÒÁÒ «Öè§ÍÂÙèÀÒÂã¹ Emacs àÃÕ¡ÇèÒ
+ºÑ¿à¿ÍÃì (Buffer) àÇÅÒ·ÕèÍèÒ¹á¿éÁ¢éÍÁÙÅãËÁèà¢éÒÁÒ Emacs ¡ç¨ÐÊÃéÒ§ºÑ¿à¿ÍÃìãËÁè ¢Öé¹ÁÒÀÒÂã¹
- \e0\e,T6i\e1R\e05i\e1M'!RC(P\e04Y\e1CRB!RC"M'\e0:Q\e1?`?M\e0Cl\e1\e(B \e0\e,T7Uh\e1\e06Y\e1!`\e0!g\e1:\e0CQ\e1!IRM\e0BYh\e1@RBc9\e(B Emacs \e0\e,T!g\e1c\e0Ki\e1!4$S\e0JQh\e1'\e(B
+ ¶éÒµéͧ¡ÒèдÙÃÒ¡ÒâͧºÑ¿à¿ÍÃì ·Õè¶Ù¡à¡çºÃÑ¡ÉÒÍÂÙèÀÒÂã¹ Emacs ¡çãËé¡´¤ÓÊÑè§
C-x C-b
- >> \e,TEM'!4\e(B C-x C-b \e0\e,T4Y\e1\e(B \e0\e,TJQ\e1'`!5\e04Y\e1\e0Gh\e1Ra\e05h\e1EP\e0:Q\e1?`?M\e0Cl\e1\e0AU\e1\e0*Wh\e1M\e0Gh\e1RMPdC\e(B \e,TaEP\e06Y\e1!\e05Qi\e1'\e0*Wh\e1Md\e0Gi\e1\e0Gh\e1R\e(B
- \e,TM\e0Bh\e1R'dC\e(B \e,Tc9\e(B Emacs
+ >> Åͧ¡´ C-x C-b ´Ù Êѧࡵ´ÙÇèÒáµèÅкѿà¿ÍÃìÁÕª×èÍÇèÒÍÐäà áÅж١µÑ駪×èÍäÇéÇèÒ
+ ÍÂèÒ§äà 㹠Emacs
- \e0\e,TAU\e1:R'\e0:Q\e1?`?M\e0Cl\e1\e(B \e0\e,T7Uh\e1d\e0Ah\e1\e0AU\e1\e0$Yh\e1\e0!Q\e1:a\e0?i\e1A\e0"i\e1M\e0AY\e1E(\e0CT\e1'\e(B \e,Tf\e(B \e0\e,T5Q\e1GM\e0Bh\e1R'`\e0*h\e19\e(B \e,Td\e0Ah\e1\e0AU\e1a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e07Uh\e1\e0AU\e1\e0*Wh\e1M\e0Gh\e1R\e(B "*Buffer
-List*" \e,TM\e0BYh\e1(\e0CT\e1'\e(B \e,Tf\e(B \e,Ta\e05h\e1`\e0;g\e19\e0:Q\e1?`?M\e0Cl\e1\e07Uh\e1J\e0Ci\e1R'\e0"Vi\e19AR`\e0>Wh\e1MaJ4'CRB!RC\e0:Q\e1?`?M\e0Cl\e1\e(B \e,Tb4B$S\e0JQh\e1'\e(B C-x C-b
+ ÁÕºÒ§ºÑ¿à¿ÍÃì ·ÕèäÁèÁÕ¤Ùè¡Ñºá¿éÁ¢éÍÁÙŨÃÔ§ æ µÑÇÍÂèÒ§àªè¹ äÁèÁÕá¿éÁ¢éÍÁÙÅ·ÕèÁÕª×èÍÇèÒ "*Buffer
+List*" ÍÂÙè¨ÃÔ§ æ áµèà»ç¹ºÑ¿à¿ÍÃì·ÕèÊÃéÒ§¢Öé¹ÁÒà¾×èÍáÊ´§ÃÒ¡Òúѿà¿ÍÃì â´Â¤ÓÊÑè§ C-x C-b
- \e0\e,T"i\e1M$GRA\e07X\e1!\e0"i\e1M$GRA\e07Uh\e1;CR!/M\e0BYh\e1c9\e0GT\e19b4\e0Gl\e1"M'\e(B Emacs \e0\e,T9Qi\e19\e(B \e,T(PM\e0BYh\e1c9\e0:Q\e1?`?M\e0Cl\e1c4\e0:Q\e1?`?M\e0Cl\e1K\e09Vh\e1'`JAM\e(B
+ ¢éͤÇÒÁ·Ø¡¢éͤÇÒÁ·Õè»ÃÒ¡¯ÍÂÙèã¹ÇÔ¹â´Çì¢Í§ Emacs ¹Ñé¹ ¨ÐÍÂÙè㹺ѿà¿ÍÃì㴺ѿà¿ÍÃì˹Öè§àÊÁÍ
- >> \e,TEM'!4\e(B C-x 1 \e,T`\e0>Wh\e1ME:CRB!RC\e0:Q\e1?`?M\e0Cl\e1MM!\e04Y\e1\e(B
+ >> Åͧ¡´ C-x 1 à¾×èÍźÃÒ¡Òúѿà¿ÍÃìÍÍ¡´Ù
- \e,T!RC`\e0CU\e1B!a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e0MWh\e19\e0"Vi\e19ARa\e0!i\e1d"\e(B \e,T5M9\e07Uh\e1!S\e0EQ\e1'a\e0!i\e1d"a\e0?i\e1A\e0"i\e1M\e0AY\e1EK\e09Vh\e1'M\e0BYh\e1\e09Qi\e19\e(B \e,T(Pd\e0Ah\e17Sc\e0Ki\e1a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B
-\e,TaC!\e06Y\e1!`\e0!g\e1:\e0CQ\e1!IR\e(B \e0\e,TJTh\e1'\e07Uh\e1a\e0!i\e1d"d;c9a\e0?i\e1A\e0"i\e1M\e0AY\e1EaC!(P\e06Y\e1!\e0:Q\e19\e07V\e1!d\e0Gi\e1c9\e0:Q\e1?`?M\e0Cl\e1"M'a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e09Qi\e19\e(B \e,T`\e07h\e1R\e09Qi\e19\e(B
+ ¡ÒÃàÃÕ¡á¿éÁ¢éÍÁÙÅÍ×è¹¢Öé¹ÁÒá¡éä¢ µÍ¹·Õè¡ÓÅѧá¡éä¢á¿éÁ¢éÍÁÙÅ˹Öè§ÍÂÙè¹Ñé¹ ¨ÐäÁè·ÓãËéá¿éÁ¢éÍÁÙÅ
+áá¶Ù¡à¡çºÃÑ¡ÉÒ ÊÔ觷Õèá¡éä¢ä»ã¹á¿éÁ¢éÍÁÙÅáá¨Ð¶Ù¡ºÑ¹·Ö¡äÇé㹺ѿà¿ÍÃì¢Í§á¿éÁ¢éÍÁÙŹÑé¹ à·èÒ¹Ñé¹
- \e,T!RCJ\e0Ci\e1R'\e0:Q\e1?`?M\e0Cl\e1cK\e0Ah\e1\e0"Vi\e19\e(B \e,TJSK\e0CQ\e1:a\e0!i\e1d"a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e0MQ\e19\e07Uh\e1JM'\e(B \e,Ta\e0Ei\e1Ga\e0!i\e1MPdC:R'M\e0Bh\e1R'c9\e0:Q\e1?`?M\e0Cl\e1\e09Qi\e19\e(B
-\e,T(Pd\e0Ah\e1\e0AU\e1<Ec4\e(B \e,Tf\e(B \e0\e,T5h\e1M\e0:Q\e1?`?M\e0Cl\e1"M'a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e0MQ\e19\e07Uh\e1K\e09Vh\e1'\e07Qi\e1'\e0JTi\e19\e(B \e0\e,T(X\e14\e09Ui\e17Sc\e0Ki\e1JRARC6`\e0!g\e1:a\e0?i\e1A\e0"i\e1M\e0AY\e1EaC!d\e0Gi\e1`\e0>Wh\e1M\e(B
-\e,Ta\e0!i\e1d"c95M9K\e0EQ\e1'\e(B
+ ¡ÒÃÊÃéÒ§ºÑ¿à¿ÍÃìãËÁè¢Öé¹ ÊÓËÃѺá¡éä¢á¿éÁ¢éÍÁÙÅÍѹ·ÕèÊͧ áÅéÇá¡éÍÐäúҧÍÂèҧ㹺ѿà¿ÍÃì¹Ñé¹
+¨ÐäÁèÁÕ¼Åã´ æ µèͺѿà¿ÍÃì¢Í§á¿éÁ¢éÍÁÙÅÍѹ·Õè˹Ö觷Ñé§ÊÔé¹ ¨Ø´¹Õé·ÓãËéÊÒÁÒöà¡çºá¿éÁ¢éÍÁÙÅááäÇéà¾×èÍ
+á¡éä¢ã¹µÍ¹ËÅѧ
- \e,Ta\e05h\e1`GER\e07Uh\e1\e05i\e1M'!RC(P`\e0!g\e1:\e0CQ\e1!IR\e(B (save) \e0\e,T:Q\e1?`?M\e0Cl\e1E'd;c9a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B \e0\e,T4i\e1GB$S\e0JQh\e1'\e(B C-x C-s \e0\e,T9Qi\e19\e(B
-\e,T(P\e05i\e1M'J\e0GT\e17\e0+l\e1d;\e0BQ\e1'\e0:Q\e1?`?M\e0Cl\e1\e07Uh\e1\e05i\e1M'!RC(P`\e0!g\e1:\e(B \e0\e,T4i\e1GB$S\e0JQh\e1'\e(B C-x C-f \e0\e,T+Vh\e1'\e0$h\e1M9\e0"i\e1R'\e0BXh\e1'BR!\e(B \e,T`CR\e0AU\e1$S\e0JQh\e1'\e0+Vh\e1'\e(B
-\e,Tc\e0*i\e1JSK\e0CQ\e1:!RC\e09Ui\e1b4B`)>RP\e(B \e0\e,T$W\e1M\e(B
+ áµèàÇÅÒ·Õèµéͧ¡ÒèÐà¡çºÃÑ¡ÉÒ (save) ºÑ¿à¿ÍÃìŧä»ã¹á¿éÁ¢éÍÁÙÅ ´éǤÓÊÑè§ C-x C-s ¹Ñé¹
+¨ÐµéͧÊÇÔ·«ìä»ÂѧºÑ¿à¿ÍÃì·Õèµéͧ¡ÒèÐà¡çº ´éǤÓÊÑè§ C-x C-f «Ö觤è͹¢éÒ§ÂØè§ÂÒ¡ àÃÒÁÕ¤ÓÊÑ觫Öè§
+ãªéÊÓËÃѺ¡ÒùÕéâ´Â੾ÒÐ ¤×Í
- C-x s \e,T`\e0!g\e1:\e0CQ\e1!IR\e(B (save) \e0\e,T7X\e1!\e0:Q\e1?`?M\e0Cl\e1\e07Uh\e1\e0AU\e1M\e0BYh\e1\e(B
+ C-x s à¡çºÃÑ¡ÉÒ (save) ·Ø¡ºÑ¿à¿ÍÃì·ÕèÁÕÍÂÙè
- C-x s \e,T(P`\e0!g\e1:\e0CQ\e1!IR\e07X\e1!\e0:Q\e1?`?M\e0Cl\e1\e07Uh\e1\e06Y\e1!a\e0!i\e1d"`\e09Wi\e1MKRd;\e(B \e,TE'c9a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B \e,Tb4B(P6RA\e0!h\e1M9\e0Gh\e1R(Pc\e0Ki\e1\e(B
-\e,T`\e0!g\e1:\e0:Q\e1?`?M\e0Cl\e1\e09Ui\e1dKA\e(B y \e,TK\e0CW\e1M\e(B n \e0\e,T!Q\e1:\e0:Q\e1?`?M\e0Cl\e1a\e05h\e1EP\e0:Q\e1?`?M\e0Cl\e1\e(B \e,T$S6RA(P;CR!/c9\e0Jh\e1G9\e0Eh\e1R'"M'K\e09i\e1R(M\e(B \e0\e,T4Q\e1'\e(B
-\e0\e,T5Q\e1GM\e0Bh\e1R'\e09Ui\e1\e(B
+ C-x s ¨Ðà¡çºÃÑ¡ÉÒ·Ø¡ºÑ¿à¿ÍÃì·Õè¶Ù¡á¡éä¢à¹×éÍËÒä» Å§ã¹á¿éÁ¢éÍÁÙÅ â´Â¨Ð¶ÒÁ¡è͹ÇèÒ¨ÐãËé
+à¡çººÑ¿à¿ÍÃì¹ÕéäËÁ y ËÃ×Í n ¡ÑººÑ¿à¿ÍÃìáµèÅкѿà¿ÍÃì ¤Ó¶ÒÁ¨Ð»ÃÒ¡¯ã¹ÊèǹÅèÒ§¢Í§Ë¹éÒ¨Í ´Ñ§
+µÑÇÍÂèÒ§¹Õé
Save file /usr/private/yours/TUTORIAL.th? (y or n)
-\e,T!RC"BRB$S\e0JQh\e1'\e(B (extension)
+¡ÒâÂÒ¤ÓÊÑè§ (extension)
=======================
- \e,Tc9b;Ca!CA\e(B Editor \e0\e,T9Ui\e1\e(B \e0\e,TAU\e1(S9G9$S\e0JQh\e1'AR!!\e0Gh\e1R\e(B \e,T(S9G9$S\e0JQh\e1'\e0+Vh\e1'JRARC6!4d\e04i\e1b4B\e0;Xh\e1A$M9b7CE\e(B
-\e,TK\e0CW\e1M\e0;Xh\e1A\e(B META \e,Td\e04i\e1KA4\e(B \e,T$S\e0JQh\e1'"BRB\e(B (eXtend) \e0\e,TAU\e1d\e0Gi\e1`\e0>Wh\e1Mc\e0Ki\e1JRARC6c\e0*i\e1$S\e0JQh\e1'`K\e0Eh\e1R\e09Ui\e1d\e04i\e1KA4\e(B \e0\e,TAU\e1M\e0BYh\e1\e(B 2
-\e,Ta::\e(B \e0\e,T4Q\e1'\e09Ui\e1\e(B
+ ã¹â»Ãá¡ÃÁ Editor ¹Õé Áըӹǹ¤ÓÊÑè§ÁÒ¡¡ÇèÒ ¨Ó¹Ç¹¤ÓÊÑ觫Öè§ÊÒÁÒö¡´ä´éâ´Â»ØèÁ¤Í¹â·ÃÅ
+ËÃ×Í»ØèÁ META ä´éËÁ´ ¤ÓÊÑ觢ÂÒ (eXtend) ÁÕäÇéà¾×èÍãËéÊÒÁÒöãªé¤ÓÊÑè§àËÅèÒ¹Õéä´éËÁ´ ÁÕÍÂÙè 2
+Ẻ ´Ñ§¹Õé
- C-x \e,T"BRB`\e0>Th\e1A\e04i\e1GB\e05Q\e1G\e0MQ\e1!IC\e(B \e,TJSK\e0CQ\e1:!4\e05Q\e1G\e0MQ\e1!IC5RA`\e0"i\e1Rd;\e(B 1 \e0\e,T5Q\e1G\e(B
- ESC x \e,T"BRB`\e0>Th\e1A\e04i\e1GB\e0*Wh\e1M$S\e0JQh\e1'\e(B \e,TJSK\e0CQ\e1:!4\e0*Wh\e1M$S\e0JQh\e1'5RA`\e0"i\e1Rd;\e07Qi\e1'KA4\e(B
+ C-x ¢ÂÒÂà¾ÔèÁ´éǵÑÇÍÑ¡Éà ÊÓËÃѺ¡´µÑÇÍÑ¡ÉõÒÁà¢éÒä» 1 µÑÇ
+ ESC x ¢ÂÒÂà¾ÔèÁ´éǪ×èͤÓÊÑè§ ÊÓËÃѺ¡´ª×èͤÓÊÑ觵ÒÁà¢éÒä»·Ñé§ËÁ´
- \e,T$S\e0JQh\e1';CP`@7\e09Ui\e1\e(B \e0\e,T!g\e1`\e0;g\e19$S\e0JQh\e1'\e07Uh\e1\e0AU\e1;CPbB*\e09l\e1\e(B \e,Ta\e05h\e1\e0Jh\e1G9cK\e0-h\e1(P\e06Y\e1!`\e0CU\e1B!c\e0*i\e1\e(B \e0\e,T9i\e1MB$\e0CQi\e1'!\e0Gh\e1R$S\e0JQh\e1'\e07Qh\e1Gd;\e(B
-\e0\e,T5Q\e1GM\e0Bh\e1R'`\e0*h\e19\e(B \e,T$S\e0JQh\e1'KRa\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B (find) C-x C-f \e,T$S\e0JQh\e1'`\e0!g\e1:\e0CQ\e1!IRa\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B (save) C-x C-s
-\e,T$S\e0JQh\e1'\e(B C-x C-c (\e,T`\e0ET\e1!\e(B Editor) \e0\e,T5h\e1R'\e0!g\e1`\e0;g\e19K\e09Vh\e1'c9$S\e0JQh\e1'`K\e0Eh\e1R\e09Ui\e1\e(B
+ ¤ÓÊÑ觻ÃÐàÀ·¹Õé ¡çà»ç¹¤ÓÊÑ觷ÕèÁÕ»ÃÐ⪹ì áµèÊèǹãËè¨Ð¶Ù¡àÃÕ¡ãªé ¹éͤÃÑ駡ÇèÒ¤ÓÊÑ觷ÑèÇä»
+µÑÇÍÂèÒ§àªè¹ ¤ÓÊÑè§ËÒá¿éÁ¢éÍÁÙÅ (find) C-x C-f ¤ÓÊÑè§à¡çºÃÑ¡ÉÒá¿éÁ¢éÍÁÙÅ (save) C-x C-s
+¤ÓÊÑè§ C-x C-c (àÅÔ¡ Editor) µèÒ§¡çà»ç¹Ë¹Öè§ã¹¤ÓÊÑè§àËÅèÒ¹Õé
- \e,T$S\e0JQh\e1'\e(B C-z \e,T`\e0;g\e19$S\e0JQh\e1'\e07Uh\e1c\e0*i\e1c9c9!RCMM!(R!\e(B Emacs \e0\e,T$h\e1M9\e0"i\e1R'\e0:h\e1MB\e(B \e,T$S\e0JQh\e1'\e09Ui\e1(Pd\e0Ah\e1B!`\e0ET\e1!\e(B
-Emacs \e,T`EB\e07U\e1`\e04U\e1BG\e(B \e,Ta\e05h\e1(PK\e0BX\e14\e(B Emacs \e,Td\e0Gi\e1\e0*Qh\e1G$CRG\e(B \e,T`\e0>Wh\e1Mc\e0Ki\e1JRARC6!\e0EQ\e1:d;c\e0*i\e1\e(B csh \e,Td\e04i\e1\e0MU\e1!\e(B \e,T!RC!4\e(B
-C-z \e0\e,T(V\e1'`\e0;g\e19!RCK\e0BX\e14\e(B Emacs \e,Td\e0Gi\e1\e0*Qh\e1G$CRG`\e07h\e1R\e09Qi\e19\e(B \e,T(Pd\e0Ah\e17S$GRA`\e0JU\e1BKRBc\e0Ki\e1\e0!Q\e1:`\e09Wi\e1MKR\e07Uh\e1a\e0!i\e1d"d;\e(B
+ ¤ÓÊÑè§ C-z à»ç¹¤ÓÊÑ觷Õèãªéã¹ã¹¡ÒÃÍÍ¡¨Ò¡ Emacs ¤è͹¢éÒ§ºèÍ ¤ÓÊÑ觹Õé¨ÐäÁè¡àÅÔ¡
+Emacs àÅ·Õà´ÕÂÇ áµè¨ÐËÂØ´ Emacs äÇéªÑèǤÃÒÇ à¾×èÍãËéÊÒÁÒö¡ÅѺä»ãªé csh ä´éÍÕ¡ ¡Òá´
+C-z ¨Ö§à»ç¹¡ÒÃËÂØ´ Emacs äÇéªÑèǤÃÒÇà·èÒ¹Ñé¹ ¨ÐäÁè·Ó¤ÇÒÁàÊÕÂËÒÂãËé¡Ñºà¹×éÍËÒ·Õèá¡éä¢ä»
-\e,TKARB`K\e05X\e1\e(B: \e,Ta\e05h\e17\e0Gh\e1R\e(B \e,Tc9!C\e03U\e1\e07Uh\e1c\e0*i\e1:9\e(B X-window \e,TK\e0CW\e1Mc\e0*i\e1\e(B sh \e,TM\e0BYh\e1\e(B \e0\e,T!g\e1(Pd\e0Ah\e1\e0AU\e1$GRAJRARC6\e09Ui\e1\e(B
+ËÁÒÂà˵Ø: áµè·ÇèÒ ã¹¡Ã³Õ·Õèãªéº¹ X-window ËÃ×Íãªé sh ÍÂÙè ¡ç¨ÐäÁèÁÕ¤ÇÒÁÊÒÁÒö¹Õé
- \e,T$S\e0JQh\e1';CP`@7\e(B C-x \e0\e,TAU\e1AR!ARBKERB$S\e0JQh\e1'\e(B \e,T$S\e0JQh\e1'\e07Uh\e1M\e08T\e1:RBd;a\e0Ei\e1G\e0AU\e1\e04Q\e1'\e09Ui\e1\e(B
+ ¤ÓÊÑ觻ÃÐàÀ· C-x ÁÕÁÒ¡ÁÒÂËÅÒ¤ÓÊÑè§ ¤ÓÊÑ觷Õè͸ԺÒÂä»áÅéÇÁմѧ¹Õé
- C-x C-f \e,TKRa\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B (find) \e,TJSK\e0CQ\e1:a\e0!i\e1d"\e(B
- C-x C-s \e,T`\e0!g\e1:\e0CQ\e1!IRa\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B (save)
- C-x C-b \e,TaJ4'CRB!RC\e0:Q\e1?`?M\e0Cl\e1\e(B (buffer list)
- C-x C-c \e,T`\e0ET\e1!!RCc\e0*i\e1\e(B Editor \e,TaEP`\e0!g\e1:\e0CQ\e1!IRa\e0?i\e1A\e0"i\e1M\e0AY\e1Eb4B\e0MQ\e15b9\e0AQ\e1\e05T\e1\e(B \e,Ta\e05h\e1\e06i\e1RKR!\e0AU\e1a\e0?i\e1A\e(B
- \e0\e,T"i\e1M\e0AY\e1E:R'\e0MQ\e19\e06Y\e1!a\e0!i\e1d"\e(B \e0\e,T!g\e1c\e0Ki\e16RA\e0Gh\e1R(P`\e0!g\e1:\e0CQ\e1!IRa\e0?i\e1A\e0"i\e1M\e0AY\e1E\e09Qi\e19dKA\e(B \e,Tb4B\e07Qh\e1Gd;\e(B
- \e,T!RCMM!(R!\e(B Emacs \e,T7Sd\e04i\e1b4B$S\e0JQh\e1'\e(B C-x C-s C-x C-c \e0\e,T$W\e1Mc\e0Ki\e1`\e0!g\e1:\e0CQ\e1!IR\e(B
- \e0\e,T!h\e1M9a\e0Ei\e1G\e0(V\e1'`\e0ET\e1!\e(B
+ C-x C-f ËÒá¿éÁ¢éÍÁÙÅ (find) ÊÓËÃѺá¡éä¢
+ C-x C-s à¡çºÃÑ¡ÉÒá¿éÁ¢éÍÁÙÅ (save)
+ C-x C-b áÊ´§ÃÒ¡Òúѿà¿ÍÃì (buffer list)
+ C-x C-c àÅÔ¡¡ÒÃãªé Editor áÅÐà¡çºÃÑ¡ÉÒá¿éÁ¢éÍÁÙÅâ´ÂÍѵâ¹ÁÑµÔ áµè¶éÒËÒ¡ÁÕá¿éÁ
+ ¢éÍÁÙźҧÍѹ¶Ù¡á¡éä¢ ¡çãËé¶ÒÁÇèÒ¨Ðà¡çºÃÑ¡ÉÒá¿éÁ¢éÍÁÙŹÑé¹äËÁ â´Â·ÑèÇä»
+ ¡ÒÃÍÍ¡¨Ò¡ Emacs ·Óä´éâ´Â¤ÓÊÑè§ C-x C-s C-x C-c ¤×ÍãËéà¡çºÃÑ¡ÉÒ
+ ¡è͹áÅéǨ֧àÅÔ¡
- \e,T$S\e0JQh\e1'"BRB`\e0>Th\e1Aa::\e0*Wh\e1M\e09Qi\e19\e(B \e,Tc\e0*i\e1JSK\e0CQ\e1:$S\e0JQh\e1'\e07Uh\e1d\e0Ah\e1\e0$h\e1MBd\e04i\e1c\e0*i\e1\e(B \e,TK\e0CW\e1M$S\e0JQh\e1'\e07Uh\e1c\e0*i\e1`)>RP\e0!Q\e1:bKA4\e0>T\e1`HI:R'\e(B
-\e,TbKA4\e(B \e0\e,T5Q\e1GM\e0Bh\e1R'`\e0*h\e19\e(B \e,T$S\e0JQh\e1'\e(B "command-apropos" \e0\e,T+Vh\e1'(P6RA\e(B \e0\e,T$U\e1\e0Bl\e1`\e0GT\e1\e0Cl\e14\e(B (keyword) \e,Ta\e0Ei\e1GaJ4'<E\e(B
-\e,T$S\e0JQh\e1'\e07X\e1!$S\e0JQh\e1'\e07Uh\e1\e0AU\e1\e0*Wh\e1M`\e0!Uh\e1BG\e0"i\e1M'\e0!Q\e1:\e0!Q\e1:\e0$U\e1\e0Bl\e1`\e0GT\e1\e0Cl\e14\e09Qi\e19\e(B \e,T`GER(P\e0JQh\e1'$S\e0JQh\e1'\e09Ui\e1\e(B \e0\e,T!g\e1c\e0Ki\e1!4\e(B ESC x \e,Ta\e0Ei\e1G(P\e0AU\e1\e05Q\e1G\e0MQ\e1!IC\e(B
-"M-x" \e,T;CR!/\e0"Vi\e19\e07Uh\e1\e0Jh\e1G9\e0Eh\e1R'"M'(M\e(B \e,T(R!\e09Qi\e19\e0!g\e1c\e0Ki\e1c\e0Jh\e1\e0*Wh\e1M$S\e0JQh\e1'\e07Uh\e1\e05i\e1M'!RC\e(B (\e,Tc9!C\e03U\e1\e09Ui\e1\e0$W\e1M\e(B
-"command-apropos") \e,T`\e0AWh\e1M\e0;i\e1M9\e0"i\e1M\e0AY\e1Ed;\e06V\e1'\e(B "command-a" \e,Ta\e0Ei\e1G!4\e(B SPACE BAR \e0\e,TJh\e1G9\e07Uh\e1`K\e0EW\e1M"M'\e(B
-\e0\e,T*Wh\e1M$S\e0JQh\e1'\e0!g\e1(P\e06Y\e1!`\e05T\e1A`\e05g\e1A\e(B (completion) \e,Tc\e0Ki\e1`M'b4B\e0MQ\e15b9\e0AQ\e1\e05T\e1\e(B \e,TK\e0EQ\e1'(R!\e09Qi\e19\e(B \e,T(P\e06Y\e1!6RA\e0$U\e1\e0Bl\e1`\e0GT\e1\e0Cl\e14\e(B \e0\e,T!g\e1c\e0Ki\e1\e(B
-\e,T!4JRB\e0MQ\e1!"CP\e(B (string) \e0\e,T7Uh\e1\e05i\e1M'!RC\e0CYi\e1E'd;\e(B \e0\e,T5i\e1M'd\e0Ah\e1c\e0Jh\e1\e0$U\e1\e0Bl\e1`\e0GT\e1\e0Cl\e14MPdC`EB\e(B \e0\e,T!g\e1(Pd\e04i\e1$S\e0JQh\e1'\e07Qi\e1'KA4\e07Uh\e1\e0AU\e1M\e0BYh\e1\e(B
+ ¤ÓÊÑ觢ÂÒÂà¾ÔèÁẺª×è͹Ñé¹ ãªéÊÓËÃѺ¤ÓÊÑ觷ÕèäÁè¤èÍÂä´éãªé ËÃ×ͤÓÊÑ觷Õèãªé੾ÒСѺâËÁ´¾ÔàÈɺҧ
+âËÁ´ µÑÇÍÂèÒ§àªè¹ ¤ÓÊÑè§ "command-apropos" «Ö觨жÒÁ ¤ÕÂìàÇÔÃì´ (keyword) áÅéÇáÊ´§¼Å
+¤ÓÊÑ觷ء¤ÓÊÑ觷ÕèÁÕª×èÍà¡ÕèÂÇ¢éͧ¡Ñº¡Ñº¤ÕÂìàÇÔÃì´¹Ñé¹ àÇÅÒ¨ÐÊÑ觤ÓÊÑ觹Õé ¡çãËé¡´ ESC x áÅéǨÐÁÕµÑÇÍÑ¡ÉÃ
+"M-x" »ÃÒ¡¯¢Öé¹·ÕèÊèǹÅèÒ§¢Í§¨Í ¨Ò¡¹Ñ鹡çãËéãÊèª×èͤÓÊÑ觷Õèµéͧ¡Òà (㹡óչÕé¤×Í
+"command-apropos") àÁ×èÍ»é͹¢éÍÁÙÅ件֧ "command-a" áÅéÇ¡´ SPACE BAR Êèǹ·ÕèàËÅ×ͧ͢
+ª×èͤÓÊÑ觡ç¨Ð¶Ù¡àµÔÁàµçÁ (completion) ãËéàͧâ´ÂÍѵâ¹ÁÑµÔ ËÅѧ¨Ò¡¹Ñé¹ ¨Ð¶Ù¡¶ÒÁ¤ÕÂìàÇÔÃì´ ¡çãËé
+¡´ÊÒÂÍÑ¡¢ÃÐ (string) ·Õèµéͧ¡ÒÃÃÙéÅ§ä» µéͧäÁèãÊè¤ÕÂìàÇÔÃì´ÍÐäÃàÅ ¡ç¨Ðä´é¤ÓÊÑ觷Ñé§ËÁ´·ÕèÁÕÍÂÙè
- >> \e,TEM'!4\e(B ESC x \e,T5RA\e04i\e1GB\e(B "command-apropos<Return>" \e,TK\e0CW\e1M\e(B
- "command-a<Space><Return>" \e,TK\e0EQ\e1'(R!\e09Qi\e19\e0!g\e1!4\e(B "kanji<Return>" \e0\e,T4Y\e1\e(B
+ >> Åͧ¡´ ESC x µÒÁ´éÇ "command-apropos<Return>" ËÃ×Í
+ "command-a<Space><Return>" ËÅѧ¨Ò¡¹Ñ鹡硴 "kanji<Return>" ´Ù
- \e,Tc\e0Ki\e1!4\e(B C-x 1 \e,T`GER\e05i\e1M'!RC(PE:\e(B "\e0\e,TGT\e19b4\e0Gl\e1\e(B" \e0\e,T7Uh\e1b<\e0Eh\e1\e0"Vi\e19ARcK\e0Ah\e1\e(B
+ ãËé¡´ C-x 1 àÇÅÒµéͧ¡ÒèÐź "ÇÔ¹â´Çì" ·Õèâ¼Åè¢Öé¹ÁÒãËÁè
-\e,T:CC\e07Q\e14bKA4\e(B (Mode Line)
+ºÃ÷ѴâËÁ´ (Mode Line)
=====================
- \e,T`GER\e07Uh\e1\e0>T\e1A\e0>l\e1$S\e0JQh\e1'`\e0"i\e1Rd;\e0*i\e1R\e(B \e,Tf\e(B Emacs \e,T(PaJ4'\e0JTh\e1'\e07Uh\e1\e0>T\e1A\e0>l\e1E'd;5C':CC\e07Q\e14\e0Eh\e1R'\e0JX\e14"M'(M\e0+Vh\e1'`\e0CU\e1B!\e(B
-\e0\e,TGh\e1R\e(B echo area \e,T:CC\e07Q\e14\e0+Vh\e1'M\e0BYh\e1\e06Q\e14\e0"Vi\e19ARK\e09Vh\e1':CC\e07Q\e14\e(B \e,T`\e0CU\e1B!\e0Gh\e1R:CC\e07Q\e14bKA4\e(B (mode line) \e,T:CC\e07Q\e14\e(B
-\e,TbKA4\e0AU\e1\e0EQ\e1!I3P\e04Q\e1'\e09Ui\e1\e(B
+ àÇÅÒ·Õè¾ÔÁ¾ì¤ÓÊÑè§à¢éÒ仪éÒ æ Emacs ¨ÐáÊ´§ÊÔ觷Õè¾ÔÁ¾ìŧ仵çºÃ÷ѴÅèÒ§ÊØ´¢Í§¨Í«Öè§àÃÕ¡
+ÇèÒ echo area ºÃ÷Ѵ«Öè§ÍÂÙè¶Ñ´¢Öé¹ÁÒ˹Ö觺Ã÷Ѵ àÃÕ¡ÇèÒºÃ÷ѴâËÁ´ (mode line) ºÃ÷Ѵ
+âËÁ´ÁÕÅѡɳдѧ¹Õé
[--]J:--**-Mule: TUTORIAL.th (Fundamental) ---NN%--------------
-\e,TKARB`K\e05X\e1\e(B: \e,T5C'\e0Jh\e1G9\e(B NN \e,T"M'\e(B NN% \e,T(P\e0AU\e1\e05Q\e1G`E"c\e0Jh\e1M\e0BYh\e1\e(B \e,T:CC\e07Q\e14bKA4\e07Uh\e1aJ4'M\e0BYh\e1MR((Pa5!\e05h\e1R'\e(B
- \e,Td;(R!\e05Q\e1GM\e0Bh\e1R'\e0:i\e1R'\e(B \e,Ta\e05h\e1\e0!g\e1d\e0Ah\e1`\e0;g\e19dC\e(B \e0\e,T5Q\e1GM\e0Bh\e1R'`\e0*h\e19\e(B \e,TMR((P\e0AU\e1`GERK\e0CW\e1M\e(B uptime
- \e,TaJ4'<EM\e0BYh\e1\e(B \e0\e,TMQ\e19\e09Ui\e1`\e0;g\e19$GRAJRARC6"M'b;Ca!CA\e(B display-time
+ËÁÒÂà˵Ø: µÃ§Êèǹ NN ¢Í§ NN% ¨ÐÁÕµÑÇàÅ¢ãÊèÍÂÙè ºÃ÷ѴâËÁ´·ÕèáÊ´§ÍÂÙèÍÒ¨¨ÐᵡµèÒ§
+ 仨ҡµÑÇÍÂèÒ§ºéÒ§ áµè¡çäÁèà»ç¹äà µÑÇÍÂèÒ§àªè¹ ÍÒ¨¨ÐÁÕàÇÅÒËÃ×Í uptime
+ áÊ´§¼ÅÍÂÙè Íѹ¹Õéà»ç¹¤ÇÒÁÊÒÁÒö¢Í§â»Ãá¡ÃÁ display-time
- \e,T:CC\e07Q\e14\e09Ui\e1\e0AU\e1\e0"i\e1M\e0AY\e1E\e07Uh\e1`\e0;g\e19;CPbB*\e09l\e1M\e0BYh\e1KERBM\e0Bh\e1R'\e(B
+ ºÃ÷Ѵ¹ÕéÁÕ¢éÍÁÙÅ·Õèà»ç¹»ÃÐ⪹ìÍÂÙèËÅÒÂÍÂèÒ§
- \e0\e,T"i\e1M\e0AY\e1EaC!\e0$W\e1M\e(B \e0\e,T*Wh\e1Ma\e0?i\e1A\e0"i\e1M\e0AY\e1E\e07Uh\e1!S\e0EQ\e1'\e0Mh\e1R9M\e0BYh\e1\e(B \e0\e,T5Q\e1G`E"\e(B NN% \e,T(PaJ4'c\e0Ki\e1\e0CYi\e1\e0Gh\e1R!S\e0EQ\e1'aJ4'<E\e0Jh\e1G9dK9\e(B
-\e,T"M'a\e0?i\e1A\e0"i\e1M\e0AY\e1EM\e0BYh\e1\e(B \e,Tb4B\e0$T\e14`\e0;g\e19`;M\e0Cl\e1`+9\e05l\e1\e(B \e0\e,T6i\e1R`\e0;g\e19\e0Jh\e1G9:9\e0JX\e14"M'a\e0?i\e1A\e0"i\e1M\e0AY\e1EM\e0BYh\e1\e0!g\e1(P\e0AU\e1\e0"i\e1M$GRA\e0Gh\e1R\e(B
---Top-- \e,TaJ4'M\e0BYh\e1\e(B \e0\e,T6i\e1R`\e0;g\e19\e0Jh\e1G9\e0Eh\e1R'\e0JX\e14\e0!g\e1(P\e0AU\e1\e0"i\e1M$GRA\e0Gh\e1R\e(B --Bot-- \e0\e,T6i\e1RKR!JRARC6aJ4'a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B
-\e0\e,T7Qi\e1'KA4:9K\e09i\e1R(Md\e04i\e1\e(B \e0\e,T!g\e1(P\e0AU\e1\e0"i\e1M$GRA\e0Gh\e1R\e(B --All-- \e,TaJ4'M\e0BYh\e1\e(B
+ ¢éÍÁÙÅáá¤×Í ª×èÍá¿éÁ¢éÍÁÙÅ·Õè¡ÓÅѧÍèÒ¹ÍÂÙè µÑÇàÅ¢ NN% ¨ÐáÊ´§ãËéÃÙéÇèÒ¡ÓÅѧáÊ´§¼ÅÊèǹä˹
+¢Í§á¿éÁ¢éÍÁÙÅÍÂÙè â´Â¤Ô´à»ç¹à»ÍÃìૹµì ¶éÒà»ç¹Êèǹº¹ÊØ´¢Í§á¿éÁ¢éÍÁÙÅÍÂÙè¡ç¨ÐÁÕ¢éͤÇÒÁÇèÒ
+--Top-- áÊ´§ÍÂÙè ¶éÒà»ç¹ÊèǹÅèÒ§ÊØ´¡ç¨ÐÁÕ¢éͤÇÒÁÇèÒ --Bot-- ¶éÒËÒ¡ÊÒÁÒöáÊ´§á¿éÁ¢éÍÁÙÅ
+·Ñé§ËÁ´º¹Ë¹éÒ¨Íä´é ¡ç¨ÐÁÕ¢éͤÇÒÁÇèÒ --All-- áÊ´§ÍÂÙè
- \e,T@RBc9G'`\e0Eg\e1:"M':CC\e07Q\e14bKA4\e(B \e,T(PaJ4'c\e0Ki\e1\e0CYi\e1\e0Gh\e1R5M9\e09Ui\e1M\e0BYh\e1c9bKA4\e(B (mode) \e,TMPdC\e(B \e,Tc9\e05Q\e1GM\e0Bh\e1R'\e(B
-\e0\e,T"i\e1R':9\e0$W\e1M\e(B \e,TM\e0BYh\e1c9bKA4\e(B Fundamental \e0\e,T+Vh\e1'`\e0;g\e19bKA4`\e0CTh\e1A\e05i\e19\e(B (default) \e,TbKA4\e09Ui\e1`\e0;g\e19K\e09Vh\e1'c9bKA4\e(B
-\e,TK\e0EQ\e1!\e(B (Major Mode)
+ ÀÒÂã¹Ç§àÅ红ͧºÃ÷ѴâËÁ´ ¨ÐáÊ´§ãËéÃÙéÇèҵ͹¹ÕéÍÂÙèã¹âËÁ´ (mode) ÍÐäà 㹵ÑÇÍÂèÒ§
+¢éÒ§º¹¤×Í ÍÂÙèã¹âËÁ´ Fundamental «Öè§à»ç¹âËÁ´àÃÔèÁµé¹ (default) âËÁ´¹Õéà»ç¹Ë¹Öè§ã¹âËÁ´
+ËÅÑ¡ (Major Mode)
- Emacs \e0\e,TAU\e1bKA4K\e0EQ\e1!\e(B (Major Mode) \e,TJSK\e0CQ\e1:!RCb;Ca!CA@RIR\e(B \e,TK\e0CW\e1M!RCa\e0!i\e1\e0"i\e1M$GRA\e(B \e,T`\e0*h\e19\e(B
-Lisp mode Text mode \e,TaEPbKA4\e0MWh\e19\e(B \e,Tf\e(B \e0\e,TMU\e1!KERBbKA4\e(B \e,Tb4B;!\e05T\e1\e(B Emacs \e,T(PM\e0BYh\e1c9bKA4K\e0EQ\e1!\e(B
-\e,TbKA4c4bKA4K\e09Vh\e1'`JAM\e(B
+ Emacs ÁÕâËÁ´ËÅÑ¡ (Major Mode) ÊÓËÃѺ¡ÒÃâ»Ãá¡ÃÁÀÒÉÒ ËÃ×Í¡ÒÃá¡é¢éͤÇÒÁ àªè¹
+Lisp mode Text mode áÅÐâËÁ´Í×è¹ æ ÍÕ¡ËÅÒÂâËÁ´ â´Â»¡µÔ Emacs ¨ÐÍÂÙèã¹âËÁ´ËÅÑ¡
+âËÁ´ã´âËÁ´Ë¹Öè§àÊÁÍ
- \e,T$S\e0JQh\e1':R'$S\e0JQh\e1'(P\e0AU\e1>D\e05T\e1!CCA\e07Uh\e1a5!\e05h\e1R'\e0!Q\e19b4B\e0JTi\e19`\e0*T\e1'\e(B \e,T`\e0AWh\e1MM\e0BYh\e1c9bKA4K\e0EQ\e1!\e07Uh\e1\e05h\e1R'\e0!Q\e19\e(B \e0\e,T5Q\e1GM\e0Bh\e1R'\e(B
-\e,T`\e0*h\e19\e(B \e,T`GERb;Ca!CA@RIR\e(B \e,T(P\e0AU\e1$S\e0JQh\e1'JSK\e0CQ\e1:J\e0Ci\e1R'\e(B \e,TKARB`K\e05X\e1\e(B (comment) \e,TM\e0BYh\e1\e(B \e,T`\e09Wh\e1M'(R!\e0GT\e1\e08U\e1c\e0Jh\e1\e(B
-\e,TKARB`K\e05X\e1"M'@RIRa\e05h\e1EP@RIRa5!\e05h\e1R'\e0!Q\e19\e(B \e,T$S\e0JQh\e1'\e09Ui\e1\e0!g\e1(Pa5!\e05h\e1R'\e0!Q\e19d;c9a\e05h\e1EPbKA4K\e0EQ\e1!\e(B \e,T`\e0>Wh\e1Mc\e0Ki\e1\e(B
-\e,TJRARC6c\e0Jh\e1KARB`K\e05X\e1c9a\e05h\e1EP@RIRd\e04i\e1M\e0Bh\e1R'\e06Y\e1!\e05i\e1M'\e(B
+ ¤ÓÊÑ觺ҧ¤ÓÊÑ觨ÐÁվĵԡÃÃÁ·ÕèᵡµèÒ§¡Ñ¹â´ÂÊÔé¹àªÔ§ àÁ×èÍÍÂÙèã¹âËÁ´ËÅÑ¡·ÕèµèÒ§¡Ñ¹ µÑÇÍÂèÒ§
+àªè¹ àÇÅÒâ»Ãá¡ÃÁÀÒÉÒ ¨ÐÁÕ¤ÓÊÑè§ÊÓËÃѺÊÃéÒ§ ËÁÒÂà赯 (comment) ÍÂÙè à¹×èͧ¨Ò¡ÇÔ¸ÕãÊè
+ËÁÒÂà˵آͧÀÒÉÒáµèÅÐÀÒÉÒᵡµèÒ§¡Ñ¹ ¤ÓÊÑ觹Õé¡ç¨ÐᵡµèÒ§¡Ñ¹ä»ã¹áµèÅÐâËÁ´ËÅÑ¡ à¾×èÍãËé
+ÊÒÁÒöãÊèËÁÒÂà˵Øã¹áµèÅÐÀÒÉÒä´éÍÂèÒ§¶Ù¡µéͧ
- \e,T$S\e0JQh\e1'JSK\e0CQ\e1:!RC`;\e0EUh\e1B9bKA4c\e0Ki\e1`\e0;g\e19bKA4K\e0EQ\e1!\e0MWh\e19\e(B \e0\e,T$W\e1M$S\e0JQh\e1'"BRB\e(B (extend) \e0\e,T+Vh\e1'\e0*Wh\e1M$S\e0JQh\e1'`\e0;g\e19\e0*Wh\e1M\e(B
-\e,TbKA4\e(B \e0\e,T5Q\e1GM\e0Bh\e1R'`\e0*h\e19\e(B \e,T$S\e0JQh\e1'\e(B M-x fundamental-mode \e0\e,T$W\e1M$S\e0JQh\e1'JSK\e0CQ\e1:`;\e0EUh\e1B9bKA4`\e0;g\e19bKA4\e(B
+ ¤ÓÊÑè§ÊÓËÃѺ¡ÒÃà»ÅÕè¹âËÁ´ãËéà»ç¹âËÁ´ËÅÑ¡Í×è¹ ¤×ͤÓÊÑ觢ÂÒ (extend) «Ö觪×èͤÓÊÑè§à»ç¹ª×èÍ
+âËÁ´ µÑÇÍÂèÒ§àªè¹ ¤ÓÊÑè§ M-x fundamental-mode ¤×ͤÓÊÑè§ÊÓËÃѺà»ÅÕè¹âËÁ´à»ç¹âËÁ´
Fundamental
- \e,T`GER\e07Uh\e1(Pa\e0!i\e1d"a\e0?i\e1A\e0"i\e1M\e0AY\e1E@RIR\e0MQ\e1'!DI\e(B \e0\e,T!g\e1c\e0Ki\e1c\e0*i\e1\e(B Text mode
+ àÇÅÒ·Õè¨Ðá¡éä¢á¿éÁ¢éÍÁÙÅÀÒÉÒÍѧ¡ÄÉ ¡çãËéãªé Text mode
- >> \e,TEM'\e0;i\e1M9$S\e0JQh\e1'\e(B M-x text-mode<Return>
+ >> Åͧ»é͹¤ÓÊÑè§ M-x text-mode<Return>
- \e0\e,T6i\e1R\e05i\e1M'!RCKR\e0"i\e1M\e0AY\e1E`\e0>Th\e1A`\e0!Uh\e1BG\e0!Q\e1:bKA4K\e0EQ\e1!\e07Uh\e1c\e0*i\e1M\e0BYh\e1c9\e0;Q\e1(\e0(X\e1\e0:Q\e19\e(B \e0\e,T!g\e1c\e0Ki\e1\e0;i\e1M9$S\e0JQh\e1'\e(B C-h m
+ ¶éÒµéͧ¡ÒÃËÒ¢éÍÁÙÅà¾ÔèÁà¡ÕèÂǡѺâËÁ´ËÅÑ¡·ÕèãªéÍÂÙè㹻Ѩ¨ØºÑ¹ ¡çãËé»é͹¤ÓÊÑè§ C-h m
- >> \e,Tc\e0Ki\e1!4\e(B C-h m \e,T`\e0>Wh\e1M\e0HV\e1!IR\e0"i\e1Ma5!\e05h\e1R'CPK\e0Gh\e1R'\e(B Text mode \e0\e,T!Q\e1:\e(B Fundamental mode
+ >> ãËé¡´ C-h m à¾×èÍÈÖ¡ÉÒ¢éÍᵡµèÒ§ÃÐËÇèÒ§ Text mode ¡Ñº Fundamental mode
- >> \e,Tc\e0Ki\e1!4\e(B C-x 1 \e,T`\e0>Wh\e1ME:`M!JRCMM!(R!(M\e(B
+ >> ãËé¡´ C-x 1 à¾×èÍźàÍ¡ÊÒÃÍÍ¡¨Ò¡¨Í
- \e,T5C'\e0Jh\e1G9\e0+i\e1RB"M':CC\e07Q\e14bKA4\e(B \e,T(P\e0AU\e1\e0JQ\e1-\e0EQ\e1!I\e03l\e1\e(B '[--]' \e,T`\e0>Wh\e1MaJ4'bKA4JSK\e0CQ\e1:!RC\e0;i\e1M9\e0"i\e1M\e0AY\e1E\e(B
-(input mode) \e,TM\e0BYh\e1\e(B \e0\e,TJQ\e1-\e0EQ\e1!I\e03l\e1\e(B [--] \e,TKARB\e06V\e1'JRARC6\e0;i\e1M9\e0"i\e1M\e0AY\e1Ed\e04i\e1\e04i\e1GB\e05Q\e1G\e0MQ\e1!IC@RIR\e0MQ\e1'!DI\e(B
-(English alphabets) \e,T!\e0CX\e13R\e0Mh\e1R9\e0$Yh\e1\e0AW\e1M"M'\e(B "Tamago" \e,TJSK\e0CQ\e1:CRBEP`\e0MU\e1B4"M'\e0GT\e1\e08U\e1c\e0*i\e1\e(B
+ µÃ§Êèǹ«éÒ¢ͧºÃ÷ѴâËÁ´ ¨ÐÁÕÊÑÅѡɳì '[--]' à¾×èÍáÊ´§âËÁ´ÊÓËÃѺ¡Òûé͹¢éÍÁÙÅ
+(input mode) ÍÂÙè ÊÑÅѡɳì [--] ËÁÒ¶֧ÊÒÁÒö»é͹¢éÍÁÙÅä´é´éǵÑÇÍÑ¡ÉÃÀÒÉÒÍѧ¡ÄÉ
+(English alphabets) ¡ÃسÒÍèÒ¹¤ÙèÁ×ͧ͢ "Tamago" ÊÓËÃѺÃÒÂÅÐàÍÕ´¢Í§ÇÔ¸Õãªé
- \e,TaEP5C'\e04i\e1R9"GR"M'\e0JQ\e1-\e0EQ\e1!I\e03l\e1\e09Qi\e19\e(B \e,T(P\e0AU\e1`$\e0CWh\e1M'KARBaJ4'J6R9P"M'\e(B flag \e,T"M'CP::C\e0KQ\e1J\e(B
-(coding-system) \e,TM\e0BYh\e1\e(B Mule \e,TJRARC6!SK94CP::C\e0KQ\e1JaB!`)>RPJSK\e0CQ\e1:\e(B \e,T!RC`\e0!g\e1:\e0Mh\e1R9a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B
-\e,T!RC\e0;i\e1M9\e0"i\e1M\e0AY\e1E(R!\e0$U\e1\e0Bl\e1:M\e0Cl\e14\e(B \e,T!RCaJ4'<EMM!7R'(M\e(B \e,Td\e04i\e1\e0MT\e1JCP(R!\e0!Q\e19\e(B \e,Ta\e05h\e1b4B;!\e05T\e1(PaJ4'`)>RP\e(B
-\e0\e,TJQ\e1-\e0EQ\e1!I\e03l\e1\e0*h\e1GB(S\e(B (mnemonic) \e,T"M'CP::C\e0KQ\e1JJSK\e0CQ\e1:!RC`\e0!g\e1:\e0Mh\e1R9a\e0?i\e1A\e0"i\e1M\e0AY\e1E\e(B \e,T`\e07h\e1R\e09Qi\e19\e(B
+ áÅеç´éÒ¹¢ÇҢͧÊÑÅѡɳì¹Ñé¹ ¨ÐÁÕà¤Ã×èͧËÁÒÂáÊ´§Ê¶Ò¹Ð¢Í§ flag ¢Í§ÃкºÃËÑÊ
+(coding-system) ÍÂÙè Mule ÊÒÁÒö¡Ó˹´ÃкºÃËÑÊá¡੾ÒÐÊÓËÃѺ ¡ÒÃà¡çºÍèÒ¹á¿éÁ¢éÍÁÙÅ
+¡Òûé͹¢éÍÁÙŨҡ¤ÕÂìºÍÃì´ ¡ÒÃáÊ´§¼ÅÍÍ¡·Ò§¨Í ä´éÍÔÊÃШҡ¡Ñ¹ áµèâ´Â»¡µÔ¨ÐáÊ´§à©¾ÒÐ
+ÊÑÅѡɳìªèÇÂ¨Ó (mnemonic) ¢Í§ÃкºÃËÑÊÊÓËÃѺ¡ÒÃà¡çºÍèÒ¹á¿éÁ¢éÍÁÙÅ à·èÒ¹Ñé¹
- >> \e,T5CG(\e04Y\e1\e0Gh\e1R\e0AU\e1\e0JQ\e1-\e0EQ\e1!I\e03l\e1\e(B \e,T$\e0Ei\e1RB$\e0EV\e1'\e0!Q\e1:\e(B "J:" "S:" "E:" \e,TaJ4'M\e0BYh\e1\e07Uh\e1:CC\e07Q\e14bKA4K\e0CW\e1Md\e0Ah\e1\e(B
+ >> µÃǨ´ÙÇèÒÁÕÊÑÅÑ¡É³ì ¤ÅéÒ¤ÅÖ§¡Ñº "J:" "S:" "E:" áÊ´§ÍÂÙè·ÕèºÃ÷ѴâËÁ´ËÃ×ÍäÁè
- \e0\e,T5Q\e1G\e0MQ\e1!IC\e05Q\e1GaC!\e0$W\e1M\e(B \e0\e,TJQ\e1-\e0EQ\e1!I\e03l\e1\e0*h\e1GB(S\e(B (mnemonic) \e,T"M'CP::C\e0KQ\e1J\e07Uh\e1c\e0*i\e1M\e0BYh\e1\e(B \e0\e,T5Q\e1G\e(B ':' \e,TaJ4'c\e0Ki\e1\e0CYi\e1\e(B
-\e0\e,TGh\e1R\e0AU\e1\e05Q\e1G\e0MQ\e1!IC"M'@RIR\e0MWh\e19\e(B \e,T9M!(R!@RIR\e0MQ\e1'!DIaJ4'M\e0BYh\e1\e(B (\e,T`\e0*h\e19\e(B \e,T@RIR\e0(U\e19\e(B \e,T@RIR\e0-Uh\e1\e0;Xh\e19\e(B \e,T`\e0;g\e19\e05i\e19\e(B) \e0\e,T5Q\e1G\e(B J
-\e,TKARB\e06V\e1'\e(B \e,TC\e0KQ\e1J\e07Uh\e1c\e0*i\e1\e0!Q\e1:\e(B JUNET \e0\e,T$W\e1M\e(B \e,TC\e0KQ\e1J\e(B JIS \e0\e,T5Q\e1G\e(B S \e,TKARB\e06V\e1'\e(B Shift-JIS \e,TaEP\e(B \e0\e,T5Q\e1G\e(B E \e,TKARB\e06V\e1'\e(B
-\e,TC\e0KQ\e1J\e(B EUC \e,T@RIR\e0-Uh\e1\e0;Xh\e19\e(B \e,T(PJ\e0EQ\e1:`;\e0EUh\e1B9\e(B (toggle) \e,T!RCaJ4'<E@RIR9R9R*R\e05T\e1d\e04i\e1b4B\e(B C-x C-k t
+ µÑÇÍÑ¡ÉõÑÇáá¤×Í ÊÑÅѡɳìªèÇÂ¨Ó (mnemonic) ¢Í§ÃкºÃËÑÊ·ÕèãªéÍÂÙè µÑÇ ':' áÊ´§ãËéÃÙé
+ÇèÒÁÕµÑÇÍÑ¡ÉâͧÀÒÉÒÍ×è¹ ¹Í¡¨Ò¡ÀÒÉÒÍѧ¡ÄÉáÊ´§ÍÂÙè (àªè¹ ÀÒÉÒ¨Õ¹ ÀÒÉÒÕè»Øè¹ à»ç¹µé¹) µÑÇ J
+ËÁÒ¶֧ ÃËÑÊ·Õèãªé¡Ñº JUNET ¤×Í ÃËÑÊ JIS µÑÇ S ËÁÒ¶֧ Shift-JIS áÅÐ µÑÇ E ËÁÒ¶֧
+ÃËÑÊ EUC ÀÒÉÒÕè»Øè¹ ¨ÐÊÅѺà»ÅÕè¹ (toggle) ¡ÒÃáÊ´§¼ÅÀÒÉÒ¹Ò¹ÒªÒµÔä´éâ´Â C-x C-k t
- \e0\e,T5Q\e1GM\e0Bh\e1R'\e0"i\e1R'\e0Eh\e1R'\e(B \e0\e,T$W\e1M!RCJ\e0EQ\e1:`;\e0EUh\e1B9d\e0Ah\e1c\e0Ki\e1aJ4'@RIR9R9R*R\e05T\e1\e(B \e,Ta\e0Ei\e1GJ\e0EQ\e1:!\e0EQ\e1:\e0MU\e1!$\e0CQi\e1'K\e09Vh\e1'\e(B
+ µÑÇÍÂèÒ§¢éÒ§ÅèÒ§ ¤×Í¡ÒÃÊÅѺà»ÅÕè¹äÁèãËéáÊ´§ÀÒÉÒ¹Ò¹ÒªÒµÔ áÅéÇÊÅѺ¡ÅѺÍÕ¡¤ÃÑé§Ë¹Öè§
- >> \e,TEM'\e0;i\e1M9$S\e0JQh\e1'\e(B C-x C-k t \e0\e,T4Y\e1JM'$\e0CQi\e1'\e(B
+ >> Åͧ»é͹¤ÓÊÑè§ C-x C-k t ´ÙÊͧ¤ÃÑé§
- \e0\e,T6i\e1R`7M\e0Cl\e1\e0AT\e1\e09Q\e1E\e07Uh\e1c\e0*i\e1M\e0BYh\e1\e0AU\e1\e0;Xh\e1A\e(B META \e,TaEPbKA4\e07Uh\e1c\e0*i\e1M\e0BYh\e1`\e0;g\e19C\e0KQ\e1J\e(B JIS \e,T`CR\e0!g\e1(PJRARC6c\e0*i\e1\e0;Xh\e1A\e(B META
-\e,Ta79!RC!4\e0;Xh\e1A\e(B ESCAPE \e,Td\e04i\e1\e(B \e0\e,TGT\e1\e08U\e1c\e0*i\e1(P`K\e0AW\e1M9\e0!Q\e1:!RCc\e0*i\e1\e0;Xh\e1A$M9b7CE\e(B \e0\e,T$W\e1Mc\e0Ki\e1!4\e0;Xh\e1A\e(B META \e0\e,T$i\e1R'd\e0Gi\e1a\e0Ei\e1G\e0(V\e1'\e(B
-\e,T!4\e05Q\e1G\e0MQ\e1!IC5RA\e(B M-<\e0\e,T5Q\e1G\e0MQ\e1!IC\e(B> \e,T(P7SK\e09i\e1R\e07Uh\e1`K\e0AW\e1M9\e0!Q\e1:\e(B ESC <\e0\e,T5Q\e1G\e0MQ\e1!IC\e(B> \e0\e,T9Qh\e19\e0$W\e1M\e(B \e0\e,T7X\e1!M\e0Bh\e1R'\e07Uh\e1M\e08T\e1:RBAR\e(B
-\e,T(9\e06V\e1'\e0(X\e14\e09Ui\e1\e(B \e,T(P\e0BQ\e1'$'\e0AU\e1<E`K\e0AW\e1M9`\e04T\e1A\e(B \e,TK\e0EQ\e1'(R!`;\e0EUh\e1B9\e(B ESC <\e0\e,T5Q\e1G\e0MQ\e1!IC\e(B> \e,Tc\e0Ki\e1`\e0;g\e19\e(B M-<\e0\e,T5Q\e1G\e0MQ\e1!IC\e(B> \e,Ta\e05h\e1\e0"i\e1M\e(B
-\e,T$GCCP\e0GQ\e1'\e0!g\e1\e0$W\e1M\e(B \e0\e,T;Xh\e1A\e(B META \e,T(Pd\e0Ah\e1JRARC6c\e0*i\e1d\e04i\e1\e0!Q\e1:C\e0KQ\e1J\e(B Shift-JIS \e,TaEP\e(B EUC
+ ¶éÒà·ÍÃìÁÔ¹ÑÅ·ÕèãªéÍÂÙèÁÕ»ØèÁ META áÅÐâËÁ´·ÕèãªéÍÂÙèà»ç¹ÃËÑÊ JIS àÃÒ¡ç¨ÐÊÒÁÒöãªé»ØèÁ META
+á·¹¡Òá´»ØèÁ ESCAPE ä´é ÇÔ¸Õãªé¨ÐàËÁ×͹¡Ñº¡ÒÃãªé»ØèÁ¤Í¹â·ÃÅ ¤×ÍãËé¡´»ØèÁ META ¤éÒ§äÇéáÅéǨ֧
+¡´µÑÇÍÑ¡ÉõÒÁ M-<µÑÇÍÑ¡ÉÃ> ¨Ð·Ó˹éÒ·ÕèàËÁ×͹¡Ñº ESC <µÑÇÍÑ¡ÉÃ> ¹Ñ蹤×Í ·Ø¡ÍÂèÒ§·Õè͸ԺÒÂÁÒ
+¨¹¶Ö§¨Ø´¹Õé ¨ÐÂѧ¤§ÁÕ¼ÅàËÁ×͹à´ÔÁ ËÅѧ¨Ò¡à»ÅÕè¹ ESC <µÑÇÍÑ¡ÉÃ> ãËéà»ç¹ M-<µÑÇÍÑ¡ÉÃ> áµè¢éÍ
+¤ÇÃÃÐÇѧ¡ç¤×Í »ØèÁ META ¨ÐäÁèÊÒÁÒöãªéä´é¡ÑºÃËÑÊ Shift-JIS áÅÐ EUC
- \e,T!RC`;\e0EUh\e1B9CP::C\e0KQ\e1J(P\e0AU\e1<Ea\e0$h\e1`\e0>U\e1B'\e0!Q\e1:a\e05h\e1EP\e0:Q\e1?`?M\e0Cl\e1`\e07h\e1R\e09Qi\e19\e(B \e,TJRARC6\e04Y\e1$S\e0JQh\e1'`\e0!Uh\e1BG\e0!Q\e1:CP::C\e0KQ\e1J\e(B
-\e,Td\e04i\e1b4B$S\e0JQh\e1'\e(B C-h a coding-system <Return>
+ ¡ÒÃà»ÅÕè¹ÃкºÃËÑʨÐÁÕ¼Åá¤èà¾Õ§¡ÑºáµèÅкѿà¿ÍÃìà·èÒ¹Ñé¹ ÊÒÁÒö´Ù¤ÓÊÑè§à¡ÕèÂǡѺÃкºÃËÑÊ
+ä´éâ´Â¤ÓÊÑè§ C-h a coding-system <Return>
- >> \e,Tc\e0Ki\e1\e0;i\e1M9$S\e0JQh\e1'\e(B C-h a coding-system <Return> \e,Ta\e0Ei\e1G\e0Mh\e1R9CRBEP`\e0MU\e1B4"M'$S\e0JQh\e1'\e(B
- set-display-coding-system set-file-coding-system \e,TaEP\e(B
- set-process-coding-system \e,T(R!`M!JRC\e07Uh\e1;CR!/\e0"Vi\e19\e(B
+ >> ãËé»é͹¤ÓÊÑè§ C-h a coding-system <Return> áÅéÇÍèÒ¹ÃÒÂÅÐàÍÕ´¢Í§¤ÓÊÑè§
+ set-display-coding-system set-file-coding-system áÅÐ
+ set-process-coding-system ¨Ò¡àÍ¡ÊÒ÷Õè»ÃÒ¡¯¢Öé¹
-\e,T!RC\e0$i\e19KR\e(B (search)
+¡Òäé¹ËÒ (search)
================
- Emacs \e,TJRARC6\e0$i\e19KRJRB\e0MQ\e1!"CP\e(B (string) \e,T@RBc9a\e0?i\e1A\e0"i\e1M\e0AY\e1Ed;7R'\e0"i\e1R'K\e09i\e1RK\e0CW\e1M\e0"i\e1R'K\e0EQ\e1'd\e04i\e1\e(B
-\e0\e,T6i\e1R\e05i\e1M'!RC\e0$i\e19KRd;7R'\e0"i\e1R'K\e09i\e1R"M'5SaK\e09h\e1'`$M\e0Cl\e1`+M\e0Cl\e1\e(B (cursor) \e0\e,T!g\e1c\e0Ki\e1!4\e(B C-s \e0\e,T6i\e1R\e05i\e1M'!RC\e0$i\e19KR\e(B
-\e,Td;7R'\e0"i\e1R'K\e0EQ\e1'"M'5SaK\e09h\e1'`$M\e0Cl\e1`+M\e0Cl\e1\e(B \e0\e,T!g\e1c\e0Ki\e1!4\e(B C-r \e,TK\e0EQ\e1'(R!\e09Qi\e19(P\e0AU\e1\e0"i\e1M$GRA\e0Gh\e1R\e(B "I-search:"
-\e,T;CR!/\e0"Vi\e195C'\e(B echo area \e,TB!`\e0ET\e1!!RC\e0$i\e19KRd\e04i\e1\e04i\e1GB!RC!4\e(B ESC
+ Emacs ÊÒÁÒö¤é¹ËÒÊÒÂÍÑ¡¢ÃÐ (string) ÀÒÂã¹á¿éÁ¢éÍÁÙÅä»·Ò§¢éҧ˹éÒËÃ×Í¢éÒ§ËÅѧä´é
+¶éÒµéͧ¡Òäé¹ËÒä»·Ò§¢éҧ˹éҢͧµÓá˹è§à¤ÍÃìà«ÍÃì (cursor) ¡çãËé¡´ C-s ¶éÒµéͧ¡Òäé¹ËÒ
+ä»·Ò§¢éÒ§ËÅѧ¢Í§µÓá˹è§à¤ÍÃìà«ÍÃì ¡çãËé¡´ C-r ËÅѧ¨Ò¡¹Ñ鹨ÐÁÕ¢éͤÇÒÁÇèÒ "I-search:"
+»ÃÒ¡¯¢Ö鹵ç echo area ¡àÅÔ¡¡Òäé¹ËÒä´é´éÇ¡Òá´ ESC
- >> \e,T!4\e(B C-s \e,T`\e0>Wh\e1M`\e0CTh\e1A!RC\e0$i\e19KR\e(B \e,Ta\e0Ei\e1G!4\e05Q\e1G\e0MQ\e1!IC"M'$S\e0Gh\e1R\e(B "cursor" \e,TE'd;\e07U\e1EP\e05Q\e1GM\e0Bh\e1R'\e(B
- \e0\e,T*i\e1R\e(B \e,Ta\e0Ei\e1G\e0JQ\e1'`!5\e04Y\e1\e0Gh\e1R`$M\e0Cl\e1`+M\e0Cl\e1"\e0BQ\e1:d;M\e0Bh\e1R'dC\e(B
+ >> ¡´ C-s à¾×èÍàÃÔèÁ¡Òäé¹ËÒ áÅéÇ¡´µÑÇÍÑ¡Éâͧ¤ÓÇèÒ "cursor" ŧ价ÕÅеÑÇÍÂèÒ§
+ ªéÒ áÅéÇÊѧࡵ´ÙÇèÒà¤ÍÃìà«ÍÃì¢ÂѺä»ÍÂèÒ§äÃ
- >> \e,TEM'!4\e(B C-s \e0\e,T4Y\e1\e0MU\e1!K\e09Vh\e1'$\e0CQi\e1'`\e0>Wh\e1M\e0$i\e19KR$S\e0Gh\e1R\e(B "cursor" \e0\e,T5Q\e1G\e05h\e1Md;\e(B
+ >> Åͧ¡´ C-s ´ÙÍա˹Ö觤ÃÑé§à¾×èͤé¹ËÒ¤ÓÇèÒ "cursor" µÑǵèÍä»
- >> \e,T!4\e(B <Delete> \e0\e,T4Y\e1\e(B 4 \e,T$\e0CQi\e1'\e(B \e,Ta\e0Ei\e1G\e0JQ\e1'`!5\e04Y\e1\e0Gh\e1R!RC`$\e0EWh\e1M9\e07Uh\e1"M'`$M\e0Cl\e1`+M\e0Cl\e1\e(B
+ >> ¡´ <Delete> ´Ù 4 ¤ÃÑé§ áÅéÇÊѧࡵ´ÙÇèÒ¡ÒÃà¤Å×è͹·Õè¢Í§à¤ÍÃìà«ÍÃì
- >> \e,T!4\e(B ESC \e,T`\e0>Wh\e1MB!`\e0ET\e1!!RC\e0$i\e19KR\e(B
+ >> ¡´ ESC à¾×èÍ¡àÅÔ¡¡Òäé¹ËÒ
- \e,T!RC\e0$i\e19KR(P`\e0CTh\e1A\e0"Vi\e19\e07Q\e19\e07U\e1\e(B \e,Tc9CPK\e0Gh\e1R'\e07Uh\e1\e0>T\e1A\e0>l\e1JRB\e0MQ\e1!"CP\e07Uh\e1\e05i\e1M'!RC(P\e0$i\e19KR\e(B \e,T`\e0"i\e1Rd;`\e0>U\e1B':R'\e0Jh\e1G9\e(B
-\e0\e,T6i\e1R\e05i\e1M'!RC(P\e0$i\e19KR\e05Q\e1G\e05h\e1Md;\e(B \e0\e,T!g\e1c\e0Ki\e1!4\e(B C-s \e0\e,TMU\e1!K\e09Vh\e1'$\e0CQi\e1'\e(B \e0\e,T6i\e1RKR!\e0$i\e19KRJRB\e0MQ\e1!"CP\e07Uh\e1\e0;i\e1M9`\e0"i\e1Rd;d\e0Ah\e1>:\e(B \e0\e,T!g\e1\e(B
-\e,T(P\e0AU\e1\e0"i\e1M$GRA;CR!/\e0"Vi\e19\e(B \e,Tc\e0Ki\e1!4\e(B C-g \e,T`\e0>Wh\e1MB!`\e0ET\e1!\e(B
+ ¡Òäé¹ËÒ¨ÐàÃÔèÁ¢Ö鹷ѹ·Õ ã¹ÃÐËÇèÒ§·Õè¾ÔÁ¾ìÊÒÂÍÑ¡¢ÃзÕèµéͧ¡ÒèФé¹ËÒ à¢éÒä»à¾Õ§ºÒ§Êèǹ
+¶éÒµéͧ¡ÒèФé¹ËÒµÑǵèÍä» ¡çãËé¡´ C-s Íա˹Ö觤ÃÑé§ ¶éÒËÒ¡¤é¹ËÒÊÒÂÍÑ¡¢ÃзÕè»é͹à¢éÒä»äÁ辺 ¡ç
+¨ÐÁÕ¢éͤÇÒÁ»ÃÒ¡¯¢Öé¹ ãËé¡´ C-g à¾×èÍ¡àÅÔ¡
- \e,TCPK\e0Gh\e1R'\e07Uh\e1\e0$i\e19KRM\e0BYh\e1\e(B \e0\e,T6i\e1R!4\e(B <Delete> \e0\e,T5Q\e1G\e0MQ\e1!IC\e05Q\e1G\e0JX\e14\e07i\e1RBc9JRB\e0MQ\e1!"CP\e0!g\e1(P\e06Y\e1!E:d;\e(B \e,Ta\e0Ei\e1G\e(B
-\e,T`$M\e0Cl\e1`+M\e0Cl\e1\e0!g\e1(P!\e0EQ\e1:d;5SaK\e09h\e1'\e0!h\e1M9K\e09i\e1R\e(B \e0\e,T5Q\e1GM\e0Bh\e1R'`\e0*h\e19\e(B \e0\e,T6i\e1R!4\e(B "cu" \e0\e,T!g\e1(P\e0$i\e19KRd;\e06V\e1'5SaK\e09h\e1'\e07Uh\e1\e0AU\e1$S\e0Gh\e1R\e(B
-"cu" \e,Ta\e05h\e1\e06i\e1R!4\e(B <Delete> \e,Tc9\e0(Q\e1'KGP\e09Ui\e1\e(B \e0\e,T5Q\e1G\e(B 'u' \e,Tc9\e(B search line \e0\e,T!g\e1(PKRBd;\e(B \e,Ta\e0Ei\e1G`$M\e0Cl\e1`+M\e0Cl\e1\e(B
-\e,T(P"\e0BQ\e1:!\e0EQ\e1:d;\e07Uh\e15SaK\e09h\e1'\e07Uh\e1\e0AU\e1\e05Q\e1G\e(B 'c' \e,TM\e0BYh\e1\e(B
+ ÃÐËÇèÒ§·Õè¤é¹ËÒÍÂÙè ¶éÒ¡´ <Delete> µÑÇÍÑ¡ÉõÑÇÊØ´·éÒÂã¹ÊÒÂÍÑ¡¢ÃСç¨Ð¶Ù¡Åºä» áÅéÇ
+à¤ÍÃìà«ÍÃì¡ç¨Ð¡ÅѺ仵Óá˹觡è͹˹éÒ µÑÇÍÂèÒ§àªè¹ ¶éÒ¡´ "cu" ¡ç¨Ð¤é¹ËÒ件֧µÓá˹觷ÕèÁÕ¤ÓÇèÒ
+"cu" áµè¶éÒ¡´ <Delete> 㹨ѧËÇйÕé µÑÇ 'u' ã¹ search line ¡ç¨ÐËÒÂä» áÅéÇà¤ÍÃìà«ÍÃì
+¨Ð¢ÂѺ¡ÅѺ价ÕèµÓá˹觷ÕèÁÕµÑÇ 'c' ÍÂÙè
- \e0\e,T6i\e1R!4\e05Q\e1G\e0MQ\e1!IC$M9b7CE\e(B (control character) \e0\e,T5Q\e1G\e0MWh\e19\e(B \e,T9M!`K\e09W\e1M(R!\e(B C-s \e,TK\e0CW\e1M\e(B C-r
-\e,T!RC\e0$i\e19KR\e0!g\e1(P\e0JTi\e19\e0JX\e14E'\e(B
+ ¶éÒ¡´µÑÇÍÑ¡Éä͹â·ÃÅ (control character) µÑÇÍ×è¹ ¹Í¡à˹×ͨҡ C-s ËÃ×Í C-r
+¡Òäé¹ËÒ¡ç¨ÐÊÔé¹Êشŧ
- \e,T$S\e0JQh\e1'\e(B C-s \e,T(P\e0$i\e19KRJRB\e0MQ\e1!"CP\e07Uh\e1\e05i\e1M'!RC\e(B \e,Td;7R'\e0"i\e1R'K\e09i\e1R"M'5SaK\e09h\e1'`$M\e0Cl\e1`+M\e0Cl\e1\e(B \e0\e,T6i\e1R\e05i\e1M'!RC\e(B
-\e0\e,T$i\e19KRd;7R'\e07T\e1HK\e0EQ\e1'\e(B \e0\e,T!g\e1c\e0Ki\e1!4\e(B C-r \e0\e,T9Qh\e19\e0$W\e1M\e(B \e,TJRARC6c\e0*i\e1\e(B C-s \e,TaEP\e(B C-r \e,TJ\e0EQ\e1:\e0!Q\e19`\e0>Wh\e1M\e0$i\e19KRd;d\e04i\e1c9\e07Qi\e1'\e(B
-\e,TJM'\e07T\e1H7R'\e(B C-s \e,TaEP\e(B C-r \e,T7SK\e09i\e1R\e07Uh\e1`K\e0AW\e1M9\e0!Q\e19\e07X\e1!;CP!RC\e(B \e,T(P\e05h\e1R'\e0!Q\e19\e0!g\e15C'\e07T\e1H7R'!RC\e0$i\e19KR`\e07h\e1R\e09Qi\e19\e(B
+ ¤ÓÊÑè§ C-s ¨Ð¤é¹ËÒÊÒÂÍÑ¡¢ÃзÕèµéͧ¡Òà 价ҧ¢éҧ˹éҢͧµÓá˹è§à¤ÍÃìà«ÍÃì ¶éÒµéͧ¡ÒÃ
+¤é¹ËÒä»·Ò§·ÔÈËÅѧ ¡çãËé¡´ C-r ¹Ñ蹤×Í ÊÒÁÒöãªé C-s áÅÐ C-r ÊÅѺ¡Ñ¹à¾×èͤé¹ËÒä»ä´éã¹·Ñé§
+Êͧ·ÔÈ·Ò§ C-s áÅÐ C-r ·Ó˹éÒ·ÕèàËÁ×͹¡Ñ¹·Ø¡»ÃСÒà ¨ÐµèÒ§¡Ñ¹¡çµÃ§·ÔÈ·Ò§¡Òäé¹ËÒà·èÒ¹Ñé¹
Recursive Editing Level
- \e,T:R'\e07U\e1\e(B \e,T`CRMR((PK\e0EX\e14`\e0"i\e1Rd;M\e0BYh\e1c9J6R9P\e07Uh\e1`\e0CU\e1B!\e0Gh\e1R\e(B Recursive Editing Level \e,Td\e04i\e1b4B\e(B
-\e,Td\e0Ah\e1\e05Qi\e1'c(\e(B \e,Tc9bKA4\e09Ui\e1\e(B \e,T`$\e0CWh\e1M'KARBG'`\e0Eg\e1:\e(B '()' \e0\e,T7Uh\e1aJ4'\e0*Wh\e1MbKA4K\e0EQ\e1!\e(B (major mode) \e,TM\e0BYh\e1(P\e0AU\e1G'`\e0Eg\e1:\e(B
-'[]' \e0\e,TEi\e1MA\e(B \e,T`\e0>Th\e1A\e0"Vi\e19\e0MU\e1!K\e09Vh\e1'\e0*Qi\e19\e(B \e0\e,T5Q\e1GM\e0Bh\e1R'`\e0*h\e19\e(B \e0\e,T6i\e1R`\e04T\e1A`\e0;g\e19\e(B (Fundamental) \e,TM\e0BYh\e1\e(B \e0\e,T!g\e1(P`;\e0EUh\e1B9`\e0;g\e19\e(B
-[(Fundamental)] \e,Ta79\e(B
+ ºÒ§·Õ àÃÒÍÒ¨¨ÐËÅØ´à¢éÒä»ÍÂÙèã¹Ê¶Ò¹Ð·ÕèàÃÕ¡ÇèÒ Recursive Editing Level ä´éâ´Â
+äÁèµÑé§ã¨ ã¹âËÁ´¹Õé à¤Ã×èͧËÁÒÂǧàÅçº '()' ·ÕèáÊ´§ª×èÍâËÁ´ËÅÑ¡ (major mode) ÍÂÙè¨ÐÁÕǧàÅçº
+'[]' ÅéÍÁ à¾ÔèÁ¢Öé¹Íա˹Ö觪Ñé¹ µÑÇÍÂèÒ§àªè¹ ¶éÒà´ÔÁà»ç¹ (Fundamental) ÍÂÙè ¡ç¨Ðà»ÅÕè¹à»ç¹
+[(Fundamental)] ᷹
-\e,TKARB`K\e05X\e1\e(B: \e,T`CR(Pd\e0Ah\e1M\e08T\e1:RB`\e0!Uh\e1BG\e0!Q\e1:\e(B Recursive Editing Level \e,Tc9\e07Uh\e1\e09Ui\e1\e(B
+ËÁÒÂà˵Ø: àÃÒ¨ÐäÁè͸ԺÒÂà¡ÕèÂǡѺ Recursive Editing Level ã¹·Õè¹Õé
- \e,Tc\e0Ki\e1!4\e(B M-x top-level <Return> \e,T`\e0>Wh\e1M\e07Uh\e1(PMM!(R!\e(B Recursive Editing Level
+ ãËé¡´ M-x top-level <Return> à¾×èÍ·Õè¨ÐÍÍ¡¨Ò¡ Recursive Editing Level
- >> \e,TEM'!4\e04Y\e1\e(B \e,T5C'\e0Jh\e1G9\e0Eh\e1R'"M'(M(P\e0AU\e1\e0"i\e1M$GRA\e0Gh\e1R\e(B "Back to top level" \e,T;CR!/\e0"Vi\e19\e(B
+ >> Åͧ¡´´Ù µÃ§ÊèǹÅèÒ§¢Í§¨Í¨ÐÁÕ¢éͤÇÒÁÇèÒ "Back to top level" »ÃÒ¡¯¢Öé¹
- \e,T`\e09Wh\e1M'(R!\e(B \e,T`CRM\e0BYh\e1c9CP\e04Q\e1::9\e0JX\e14\e(B (top level) \e,TM\e0BYh\e1a\e0Ei\e1G\e(B \e,T$S\e0JQh\e1'\e09Ui\e1\e0(V\e1'd\e0Ah\e1\e0AU\e1<Ec4\e(B \e,Tf\e(B
+ à¹×èͧ¨Ò¡ àÃÒÍÂÙèã¹ÃдѺº¹ÊØ´ (top level) ÍÂÙèáÅéÇ ¤ÓÊÑ觹Õé¨Ö§äÁèÁÕ¼Åã´ æ
- \e,Td\e0Ah\e1JRARC6c\e0*i\e1\e(B \e,T$S\e0JQh\e1'\e(B C-g \e,T`\e0>Wh\e1M\e07Uh\e1(PMM!(R!\e(B Recursive Editing Level \e,Td\e04i\e1\e(B
+ äÁèÊÒÁÒöãªé ¤ÓÊÑè§ C-g à¾×èÍ·Õè¨ÐÍÍ¡¨Ò¡ Recursive Editing Level ä´é
Help
====
- Emacs \e0\e,TAU\e1$GRAJRARC6\e07Uh\e1\e0AU\e1;CPbB*\e09l\e1\e(B \e,TAR!ARBKERBM\e0Bh\e1R'\e(B \e0\e,T+Vh\e1'd\e0Ah\e1JRARC6M\e08T\e1:RBd\e04i\e1KA4c9\e07Uh\e1\e09Ui\e1\e(B
-\e,Ta\e05h\e1`CR(PJRARC6`\e0CU\e1B!c\e0*i\e1\e(B <HELP> \e,T`\e0>Wh\e1M\e07Uh\e1(P`\e0CU\e1B9\e0CYi\e1$GRAJRARC6`K\e0Eh\e1R\e09Ui\e1\e(B \e,Td\e04i\e1b4B!RC!4\e(B C-h \e0\e,T+Vh\e1'(P\e(B
-\e0\e,T*h\e1GBc\e0Ki\e1`CRd\e04i\e1\e0CQ\e1:\e0CYi\e1\e0"i\e1M\e0AY\e1E`\e0>Th\e1A`\e05T\e1AKERBM\e0Bh\e1R'\e(B
+ Emacs ÁÕ¤ÇÒÁÊÒÁÒö·ÕèÁÕ»ÃÐ⪹ì ÁÒ¡ÁÒÂËÅÒÂÍÂèÒ§ «Öè§äÁèÊÒÁÒö͸ԺÒÂä´éËÁ´ã¹·Õè¹Õé
+áµèàÃÒ¨ÐÊÒÁÒöàÃÕ¡ãªé <HELP> à¾×èÍ·Õè¨ÐàÃÕ¹ÃÙé¤ÇÒÁÊÒÁÒöàËÅèÒ¹Õé ä´éâ´Â¡Òá´ C-h «Ö觨Ð
+ªèÇÂãËéàÃÒä´éÃѺÃÙé¢éÍÁÙÅà¾ÔèÁàµÔÁËÅÒÂÍÂèÒ§
- \e0\e,TGT\e1\e08U\e1c\e0*i\e1\e0$W\e1Mc\e0Ki\e1!4\e(B C-h \e,Ta\e0Ei\e1G5RA\e04i\e1GB\e05Q\e1G`\e0EW\e1M!\e(B (option) \e0\e,TMU\e1!K\e09Vh\e1'\e05Q\e1G\e0MQ\e1!IC\e(B \e0\e,T6i\e1Rd\e0Ah\e1\e0CYi\e1\e0Gh\e1R(P\e05i\e1M'c\e0*i\e1\e(B
-\e0\e,T5Q\e1G`\e0EW\e1M!MPdC\e(B \e0\e,T!g\e1c\e0Ki\e1!4\e(B C-h ? \e,Ta\e0Ei\e1G(P\e0AU\e1$SM\e08T\e1:RB`\e0!Uh\e1BG\e0!Q\e1:\e05Q\e1G`\e0EW\e1M!;CR!/\e0"Vi\e19\e(B \e,Td\e04i\e1KR!`;\e0EUh\e1B9c((P\e(B
-\e,Td\e0Ah\e1`\e0CU\e1B!\e(B HELP \e,TK\e0EQ\e1'(R!!4\e(B C-h \e0\e,T!g\e1c\e0Ki\e1!4\e(B C-g \e,T`\e0>Wh\e1MB!`\e0ET\e1!d\e04i\e1\e(B
+ ÇÔ¸Õãªé¤×ÍãËé¡´ C-h áÅéǵÒÁ´éǵÑÇàÅ×Í¡ (option) Íա˹Ö觵ÑÇÍÑ¡Éà ¶éÒäÁèÃÙéÇèҨеéͧãªé
+µÑÇàÅ×Í¡ÍÐäà ¡çãËé¡´ C-h ? áÅéǨÐÁÕ¤Ó͸ԺÒÂà¡ÕèÂǡѺµÑÇàÅ×Í¡»ÃÒ¡¯¢Öé¹ ä´éËÒ¡à»ÅÕè¹㨨Ð
+äÁèàÃÕ¡ HELP ËÅѧ¨Ò¡¡´ C-h ¡çãËé¡´ C-g à¾×èÍ¡àÅÔ¡ä´é
- \e,T$S\e0JQh\e1'\e(B HELP \e0\e,T>Wi\e190R9\e07Uh\e1\e0JX\e14\e0MQ\e19K\e09Vh\e1'\e0!g\e1\e0$W\e1M\e(B C-h c \e,Ta\e0Ei\e1G5RA\e04i\e1GB!RC!4$S\e0JQh\e1':R'$S\e0JQh\e1'\e(B \e0\e,T+Vh\e1'(Pc\e0Ki\e1$S\e(B
-\e,TM\e08T\e1:RB\e0JQi\e19\e(B \e,Tf\e(B \e,T`\e0!Uh\e1BG\e0!Q\e1:$S\e0JQh\e1'\e09Qi\e19\e(B
+ ¤ÓÊÑè§ HELP ¾×é¹°Ò¹·ÕèÊØ´Íѹ˹Ö觡ç¤×Í C-h c áÅéǵÒÁ´éÇ¡Òá´¤ÓÊÑ觺ҧ¤ÓÊÑè§ «Ö觨ÐãËé¤Ó
+͸ԺÒÂÊÑé¹ æ à¡ÕèÂǡѺ¤ÓÊÑ觹Ñé¹
- >> \e,TEM'!4\e(B C-h c C-p \e0\e,T4Y\e1\e(B \e0\e,T+Vh\e1'(Pc\e0Ki\e1\e0"i\e1M$GRA\e0Gh\e1R\e(B
+ >> Åͧ¡´ C-h c C-p ´Ù «Ö觨ÐãËé¢éͤÇÒÁÇèÒ
"C-p runs the command previous-line"
- \e,T$S\e0JQh\e1'\e09Ui\e1(P\e0*h\e1GB\e0CWi\e1M\e0?Wi\e19$GRA(S\e(B \e,T`\e0!Uh\e1BG\e0!Q\e1:$S\e0JQh\e1'\e07Uh\e1`$B\e0<h\e1R95Ra\e0Ei\e1G\e(B \e,Ta\e05h\e1(Sd\e0Ah\e1d\e04i\e1\e(B \e,Td\e04i\e1`\e0;g\e19M\e0Bh\e1R'\e04U\e1\e(B \e,T$S\e0JQh\e1'\e(B
-\e0\e,T7Uh\e1\e0AU\e1AR!!\e0Gh\e1RK\e09Vh\e1'\e05Q\e1G\e0MQ\e1!IC\e(B \e,T`\e0*h\e19\e(B C-x C-s \e0\e,T!g\e1JRARC6!45RAK\e0EQ\e1'\e(B C-h c \e,Td\e04i\e1\e(B
+ ¤ÓÊÑ觹Õé¨ÐªèÇÂÃ×éÍ¿×鹤ÇÒÁ¨Ó à¡ÕèÂǡѺ¤ÓÊÑ觷Õèà¤Â¼èÒ¹µÒáÅéÇ áµè¨ÓäÁèä´é ä´éà»ç¹ÍÂèÒ§´Õ ¤ÓÊÑè§
+·ÕèÁÕÁÒ¡¡ÇèÒ˹Ö觵ÑÇÍÑ¡Éà àªè¹ C-x C-s ¡çÊÒÁÒö¡´µÒÁËÅѧ C-h c ä´é
- \e0\e,T6i\e1RKR!\e05i\e1M'!RC\e0CYi\e1CRBEP`\e0MU\e1B4AR!!\e0Gh\e1R\e09Ui\e1\e(B \e0\e,T!g\e1c\e0Ki\e1c\e0*i\e1\e(B k \e,Ta79\e05Q\e1G\e(B c
+ ¶éÒËÒ¡µéͧ¡ÒÃÃÙéÃÒÂÅÐàÍÕ´ÁÒ¡¡ÇèÒ¹Õé ¡çãËéãªé k á·¹µÑÇ c
- >> \e,TEM'!4\e(B C-h k C-p \e0\e,T4Y\e1\e(B
+ >> Åͧ¡´ C-h k C-p ´Ù
- \e0\e,T!g\e1(P\e0AU\e1\e0GT\e19b4\e0Gl\e1`\e0>Th\e1Ac9\e(B Emacs \e0\e,TMU\e1!K\e09Vh\e1'\e0MQ\e19\e(B \e,T`\e0>Wh\e1MaJ4'CRBEP`\e0MU\e1B4"M'$S\e0JQh\e1'\e09Qi\e19\e(B \e,T`\e0AWh\e1M\e0Mh\e1R9(:a\e0Ei\e1G\e(B
-\e0\e,T!g\e1c\e0Ki\e1!4\e(B C-x 1 \e,T`\e0>Th\e1AE:\e0GT\e19b4\e0Gl\e1MM!\e(B
+ ¡ç¨ÐÁÕÇÔ¹â´Çìà¾ÔèÁã¹ Emacs Íա˹Öè§Íѹ à¾×èÍáÊ´§ÃÒÂÅÐàÍÕ´¢Í§¤ÓÊÑ觹Ñé¹ àÁ×èÍÍèÒ¹¨ºáÅéÇ
+¡çãËé¡´ C-x 1 à¾ÔèÁźÇÔ¹â´ÇìÍÍ¡
- \e0\e,T5Q\e1G`\e0EW\e1M!\e0MWh\e19\e07Uh\e1\e0AU\e1;CPbB*\e09l\e1\e(B \e0\e,TAU\e1\e04Q\e1'\e09Ui\e1\e(B
+ µÑÇàÅ×Í¡Í×è¹·ÕèÁÕ»ÃÐ⪹ì Áմѧ¹Õé
- C-h f \e,Tc\e0Ki\e1c\e0Jh\e1\e0*Wh\e1M"M'$S\e0JQh\e1'\e(B \e,T`\e0>Wh\e1MaJ4'CRBEP`\e0MU\e1B4`\e0!Uh\e1BG\e0!Q\e1:$S\e0JQh\e1'\e09Qi\e19\e(B
+ C-h f ãËéãÊèª×èͧ͢¤ÓÊÑè§ à¾×èÍáÊ´§ÃÒÂÅÐàÍÕ´à¡ÕèÂǡѺ¤ÓÊÑ觹Ñé¹
- >> \e,Tc\e0Ki\e1!4\e(B C-h f previous-line \e,Ta\e0Ei\e1G5RA\e04i\e1GB\e(B <Return> \e,T`\e0>Wh\e1MaJ4'CRBEP`\e0MU\e1B4`\e0!Uh\e1BG\e(B
- \e0\e,T!Q\e1:$S\e0JQh\e1'\e0+Vh\e1'`\e0CU\e1B!c\e0*i\e1d\e04i\e1(R!!RC!4\e(B C-p
+ >> ãËé¡´ C-h f previous-line áÅéǵÒÁ´éÇ <Return> à¾×èÍáÊ´§ÃÒÂÅÐàÍÕ´à¡ÕèÂÇ
+ ¡Ñº¤ÓÊÑ觫Öè§àÃÕ¡ãªéä´é¨Ò¡¡Òá´ C-p
- C-h a \e,Ta\e0Ei\e1G5RA\e04i\e1GB\e0$U\e1\e0Bl\e1`\e0GT\e1\e0Cl\e14\e(B (keyword) \e,T`\e0>Wh\e1MaJ4'$S\e0JQh\e1'\e07X\e1!$S\e0JQh\e1'\e(B \e0\e,T7Uh\e1\e0AU\e1\e0$U\e1\e0Bl\e1`\e0GT\e1\e0Cl\e14\e(B \e,TCGAM\e0BYh\e1\e(B
- \e,T$S\e0JQh\e1'`K\e0Eh\e1R\e09Ui\e1JRARC6`\e0CU\e1B!c\e0*i\e1d\e04i\e1b4B!RC!4\e(B ESC x
+ C-h a áÅéǵÒÁ´éǤÕÂìàÇÔÃì´ (keyword) à¾×èÍáÊ´§¤ÓÊÑ觷ء¤ÓÊÑè§ ·ÕèÁÕ¤ÕÂìàÇÔÃì´ ÃÇÁÍÂÙè
+ ¤ÓÊÑè§àËÅèÒ¹ÕéÊÒÁÒöàÃÕ¡ãªéä´éâ´Â¡Òá´ ESC x
- >> \e,TEM'!4\e(B C-h a file \e,Ta\e0Ei\e1G5RA\e04i\e1GB\e(B <Return> \e,T`\e0>Wh\e1MaJ4'\e0*Wh\e1M$S\e0JQh\e1'\e07X\e1!$S\e0JQh\e1'\e07Uh\e1\e0AU\e1$S\e0Gh\e1R\e(B
- "file" \e,TCGAM\e0BYh\e1\e(B \e0\e,T+Vh\e1'(P\e0AU\e1\e(B find-file \e,TaEP\e(B write-file \e0\e,T7Uh\e1`\e0CU\e1B!c\e0*i\e1d\e04i\e1b4B!RC!4\e(B
- C-x C-f \e,TaEP\e(B C-x C-w \e,TCGAM\e0BYh\e1\e04i\e1GB\e(B
+ >> Åͧ¡´ C-h a file áÅéǵÒÁ´éÇ <Return> à¾×èÍáÊ´§ª×èͤÓÊÑ觷ء¤ÓÊÑ觷ÕèÁÕ¤ÓÇèÒ
+ "file" ÃÇÁÍÂÙè «Ö觨ÐÁÕ find-file áÅÐ write-file ·ÕèàÃÕ¡ãªéä´éâ´Â¡Òá´
+ C-x C-f áÅÐ C-x C-w ÃÇÁÍÂÙè´éÇÂ
-\e0\e,T7i\e1RB\e0JX\e14\e09Ui\e1\e(B
+·éÒÂÊØ´¹Õé
======
-\e,TM\e0Bh\e1R\e0EW\e1A\e(B: \e,T$S\e0JQh\e1'JSK\e0CQ\e1:!RC`\e0ET\e1!\e(B Emacs \e0\e,T$W\e1M\e(B C-x C-c
+ÍÂèÒÅ×Á: ¤ÓÊÑè§ÊÓËÃѺ¡ÒÃàÅÔ¡ Emacs ¤×Í C-x C-c
- \e,T`M!JRC)\e0:Q\e1:`\e0:Wi\e1M'\e05i\e19\e09Ui\e1\e(B \e0\e,T5Qi\e1'c(`\e0"U\e1B9\e0"Vi\e19JSK\e0CQ\e1:\e0<Yi\e1\e07Uh\e1`\e0CTh\e1A\e0KQ\e14cK\e0Ah\e1\e(B \e,Tb4B`)>RP\e(B \e0\e,T6i\e1RKR!\e0AU\e1\e0(X\e14dK9\e07Uh\e1d\e0Ah\e1\e(B
-\e,T`\e0"i\e1Rc(\e(B \e0\e,T!g\e1M\e0Bh\e1R\e0AQ\e1Ga\e05h\e1b7I\e05Q\e1G`M'\e(B \e,Ta\e05h\e1"Mc\e0Ki\e1bB9$GRA\e0<T\e14AR\e0BQ\e1'\e0<Yi\e1`\e0"U\e1B9a79\e(B
+ àÍ¡ÊÒéºÑºàº×éͧµé¹¹Õé µÑé§ã¨à¢Õ¹¢Öé¹ÊÓËÃѺ¼Ùé·ÕèàÃÔèÁËÑ´ãËÁè â´Â੾ÒÐ ¶éÒËÒ¡Áըشä˹·ÕèäÁè
+à¢éÒ㨠¡çÍÂèÒÁÑÇáµèâ·ÉµÑÇàͧ áµè¢ÍãËé⹤ÇÒÁ¼Ô´ÁÒÂѧ¼Ùéà¢Õ¹᷹
- \e,TK\e0EQ\e1'(R!c\e0*i\e1\e(B EMACS \e0\e,T4Y\e1\e0JQ\e1!JM'JRA\e0GQ\e19\e(B \e0\e,T!g\e1$'(P\e0*T\e19d;`M'\e(B \e,Tc95M9aC!\e(B \e,TMR((P\e0AU\e1\e0(X\e14\e07Uh\e1\e0CYi\e1\e0JV\e1!\e0JQ\e1:J9aEP\e(B
-\e,Td\e0Ah\e1`\e0"i\e1Rc(M\e0BYh\e1\e0:i\e1R'\e(B \e,Ta\e05h\e1\e0JTh\e1'\e09Ui\e1\e0Bh\e1MA`\e0!T\e14\e0"Vi\e19`JAM\e(B \e,T`GERa\e05h\e1`\e0CTh\e1Ac\e0*i\e1\e(B Editor \e,TcK\e0Ah\e1c4\e(B \e,Tf\e(B \e0\e,T!g\e15RA\e(B \e,Tb4B`)>RP\e(B
-\e,TM\e0Bh\e1R'\e0BTh\e1'\e0!Q\e1:\e(B EMACS \e,T`\e09Wh\e1M'(R!`\e0;g\e19b;Ca!CA\e07Uh\e1\e0AU\e1$GRAJRARC6KER!KERBAR!\e(B \e0\e,TMQ\e19\e07Uh\e1(\e0CT\e1'a\e0Ei\e1G\e(B EMACS
-\e,T7Sd\e04i\e1\e07X\e1!\e0JTh\e1'\e07X\e1!M\e0Bh\e1R'\e(B
+ ËÅѧ¨Ò¡ãªé EMACS ´ÙÊÑ¡ÊͧÊÒÁÇѹ ¡ç¤§¨ÐªÔ¹ä»àͧ 㹵͹áá ÍÒ¨¨ÐÁըش·ÕèÃÙéÊÖ¡ÊѺʹáÅÐ
+äÁèà¢éÒã¨ÍÂÙèºéÒ§ áµèÊÔ觹ÕéÂèÍÁà¡Ô´¢Öé¹àÊÁÍ àÇÅÒáµèàÃÔèÁãªé Editor ãËÁèã´ æ ¡çµÒÁ â´Â੾ÒÐ
+ÍÂèÒ§ÂÔ觡Ѻ EMACS à¹×èͧ¨Ò¡à»ç¹â»Ãá¡ÃÁ·ÕèÁÕ¤ÇÒÁÊÒÁÒöËÅÒ¡ËÅÒÂÁÒ¡ Íѹ·Õè¨ÃÔ§áÅéÇ EMACS
+·Óä´é·Ø¡ÊÔ觷ءÍÂèÒ§
-\e,T"M"M:\e0$X\e13\e(B
+¢Í¢Íº¤Ø³
=======
- \e,T`M!JRC)\e0:Q\e1:\e09Ui\e1\e(B \e0\e,T4Q\e14a;E'AR(R!\e(B "MicroEMACS (kemacs) \e,T@RIR\e0-Uh\e1\e0;Xh\e19\e(B \e,T`\e0:Wi\e1M'\e05i\e19\e(B" \e0\e,T+Vh\e1'd\e04i\e1AR(R!\e(B
-JUNET \e,T`\e0>Wh\e1Mc\e0Ki\e1c\e0*i\e1`\e0;g\e19\e(B Tutorial \e,TJSK\e0CQ\e1:\e(B GNUEmacs (Nemacs)
+ àÍ¡ÊÒéºÑº¹Õé ´Ñ´á»Å§ÁÒ¨Ò¡ "MicroEMACS (kemacs) ÀÒÉÒÕè»Øè¹ àº×éͧµé¹" «Öè§ä´éÁÒ¨Ò¡
+JUNET à¾×èÍãËéãªéà»ç¹ Tutorial ÊÓËÃѺ GNUEmacs (Nemacs)
- \e,T`M!JRC\e09Ui\e1\e(B \e0\e,T4Q\e14a;E'AR(R!\e(B "JOVE Tutorial" (19 \e,TA!CR$A\e(B 86) \e,T"M'\e(B Jonathan Payne
- \e0\e,T+Vh\e1'\e04Q\e14a;E'AR(R!`M!JRC"M'\e(B Steve Zimmerman \e,Ta\e0Kh\e1'\e(B CCA-UNIX \e0\e,T+Vh\e1'\e04Q\e14a;E'\e(B (\e0\e,TMU\e1!\e07U\e1\e(B) \e,TAR\e(B
- \e,T(R!`M!JRC\e(B "Teach-Emacs" \e,T)\e0:Q\e1:`\e0:Wi\e1M'\e05i\e19\e(B (31 \e0\e,T5X\e1ER$A\e(B 85) \e,T"M'\e(B MIT
+ àÍ¡ÊÒùÕé ´Ñ´á»Å§ÁÒ¨Ò¡ "JOVE Tutorial" (19 Á¡ÃÒ¤Á 86) ¢Í§ Jonathan Payne
+ «Ö觴Ѵá»Å§ÁÒ¨Ò¡àÍ¡ÊÒâͧ Steve Zimmerman áËè§ CCA-UNIX «Ö觴Ѵá»Å§ (ÍÕ¡·Õ) ÁÒ
+ ¨Ò¡àÍ¡ÊÒà "Teach-Emacs" ©ºÑºàº×éͧµé¹ (31 µØÅÒ¤Á 85) ¢Í§ MIT
Update - February 1986 by Dana Hoggatt.
Update/Translate - July 1987 by SANETO Takanori
-\e,T"M"M:\e0$X\e13`\e0;g\e19\e0>T\e1`HI\e(B
+¢Í¢Íº¤Ø³à»ç¹¾ÔàÈÉ
==============
- \e0\e,T$X\e13\e(B SANETO Takanori (\e,T+R`9b5P\e(B \e,T7R!Rb9\e0CT\e1\e(B) \e0\e,T<Yi\e1a;E@RIR\e0-Uh\e1\e0;Xh\e19)\e0:Q\e1:aC!\e0JX\e14\e(B \e,T`M!JRC)\e0:Q\e1:\e09Ui\e1\e(B
-\e,T`\e0"U\e1B9\e04i\e1GB\e(B GMW + Wnn + Nemacs \e,T"MaJ4'$GRA"M:\e0$X\e13\e(B \e,Ta\e04h\e1\e0<Yi\e1\e07Uh\e1J\e0Ci\e1R'b;Ca!CA\e0JX\e14\e0GT\e1`HI`K\e0Eh\e1R\e09Ui\e1\e0"Vi\e19\e(B
-\e,TaEP"M"M:\e0$X\e13\e(B \e0\e,T$X\e13\e(B Fujiwara Shoko \e0\e,T7Uh\e1c\e0Ki\e1$GRA\e0*h\e1GB`K\e0EW\e1Mc9!RCa;E\e(B \e,T!RC\e0;i\e1M9\e0"i\e1M\e0AY\e1E\e(B \e,TaEPM\e0Bh\e1R'\e0MWh\e19\e0MU\e1!\e(B
-\e,TKERB\e(B \e,Tf\e(B \e,TM\e0Bh\e1R'\e(B
+ ¤Ø³ SANETO Takanori («Òà¹âµÐ ·Ò¡Òâ¹ÃÔ) ¼Ùéá»ÅÀÒÉÒÕè»Ø蹩ºÑºááÊØ´ àÍ¡ÊÒéºÑº¹Õé
+à¢Õ¹´éÇ GMW + Wnn + Nemacs ¢ÍáÊ´§¤ÇÒÁ¢Íº¤Ø³ á´è¼Ùé·ÕèÊÃéÒ§â»Ãá¡ÃÁÊØ´ÇÔàÈÉàËÅèÒ¹Õé¢Öé¹
+áÅТ͢ͺ¤Ø³ ¤Ø³ Fujiwara Shoko ·ÕèãËé¤ÇÒÁªèÇÂàËÅ×Í㹡ÒÃá»Å ¡Òûé͹¢éÍÁÙÅ áÅÐÍÂèÒ§Í×è¹ÍÕ¡
+ËÅÒÂ æ ÍÂèÒ§
-\e,T"M\e0CQ\e1:\e0<T\e14*M:\e(B \e,T!RCa;E\e07Uh\e1\e0<T\e14>ER4\e(B \e0\e,T"i\e1M\e0AY\e1E`\e07g\e1(\e(B \e,TaEP\e0MWh\e19\e(B \e,Tf\e(B \e,Td\e0Gi\e1a\e05h\e1`\e0>U\e1B'\e0<Yi\e1`\e04U\e1BG\e(B
+¢ÍÃѺ¼Ô´ªÍº ¡ÒÃá»Å·Õè¼Ô´¾ÅÒ´ ¢éÍÁÙÅà·ç¨ áÅÐÍ×è¹ æ äÇéáµèà¾Õ§¼Ùéà´ÕÂÇ
- \e0\e,T+X\e1\e0+Y\e1\e0!T\e1\e(B \e0\e,TNT\e1bCb9\e0:X\e1\e(B@sra.co.jp
+ «Ø«Ù¡Ô ÎÔâÃ⹺Ø@sra.co.jp
Update/Add - December 1987 by Hironobu Suzuki
+1999-07-13 XEmacs Build Bot <builds@cvs.xemacs.org>
+
+ * XEmacs 21.2.18 is released
+
1999-06-22 XEmacs Build Bot <builds@cvs.xemacs.org>
* XEmacs 21.2.17 is released
Report bugs to <bug-gnu-emacs@prep.ai.mit.edu>.'
-Id='$Id: rcs2log,v 1.2 1997/07/09 04:31:03 steve Exp $'
+Id='$Id: rcs2log,v 1.37 1997/03/21 22:19:30 eggert Exp $'
# Copyright 1992, 1993, 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
* mule/vietnamese.el (leading-code-private-11): Deleted [defined
as builtin variable].
+1999-07-06 MORIOKA Tomohiko <tomo@etl.go.jp>
+
+ * mule/mule-cmds.el (reset-language-environment): Regard
+ coding-category `utf-8' and `ucs-4' if they are available.
+
+1999-07-06 MORIOKA Tomohiko <tomo@etl.go.jp>
+
+ * mule/mule-cmds.el (set-default-coding-systems): Fix DOC-string.
+ (prefer-coding-system): Fix DOC-string.
+
+ * mule/mule-cmds.el (coding-system-change-eol-conversion): Fix
+ DOC-string too.
+
+ * mule/mule-cmds.el (mule-keymap): Change keymap name from MULE to
+ Mule.
+ (coding-system-change-eol-conversion): Fix DOC-string.
+
+1999-06-30 MORIOKA Tomohiko <tomo@etl.go.jp>
+
+ * mule/mule-cmds.el (mule-keymap): Use `describe-coding-system'
+ instead of `list-coding-system'.
+
+1999-06-29 MORIOKA Tomohiko <tomo@etl.go.jp>
+
+ * menubar-items.el (default-menubar): `select-input-method' was
+ renamed to `set-input-method'.
+
+ * mule/mule-cmds.el (set-language-info-alist): Fix setting for
+ "Set Language Environment" menu.
+
+ * mule/mule-cmds.el (set-language-info-alist): Fix setting for
+ "Describe Language Support" menu.
+
+1999-06-29 MORIOKA Tomohiko <tomo@etl.go.jp>
+
+ * mule/chinese.el ("Chinese-GB"): Rename
+ `chinese-gb-environment-setup-function' to
+ `setup-chinese-gb-environment-internal'.
+
+1999-06-29 MORIOKA Tomohiko <tomo@etl.go.jp>
+
+ * mule/korean.el: Use `define-coding-system-alias' instead of
+ `copy-coding-system'.
+
+1999-06-29 MORIOKA Tomohiko <tomo@etl.go.jp>
+
+ * mule/mule-cmds.el (set-language-environment-coding-systems):
+ Treat duplicated coding-categories.
+
+1999-06-29 MORIOKA Tomohiko <tomo@etl.go.jp>
+
+ * mule/japanese.el: Use `define-coding-system-alias' instead of
+ `copy-coding-system'.
+
+1999-06-29 MORIOKA Tomohiko <tomo@etl.go.jp>
+
+ * mule/vietnamese.el: Specify `iso-8-1' as a category of
+ coding-system `viscii'.
+
+1999-06-29 MORIOKA Tomohiko <tomo@etl.go.jp>
+
+ * mule/cyrillic.el:
+ - Specify `iso-8-1' as a category of coding-system `koi8-r'.
+ (cyrillic-alternativnyj-decode-table): New variable.
+ (cyrillic-alternativnyj-encode-table): New variable.
+ - Specify `iso-8-1' as a category of coding-system
+ `alternativnyj'.
+ - Abolish general Cyrillic environment.
+
+1999-06-29 MORIOKA Tomohiko <tomo@etl.go.jp>
+
+ * mule/chinese.el:
+ - Use `define-coding-system-alias' instead of `copy-coding-system'.
+ - Register `chinese-gb-environment-setup-function' as a
+ `setup-function' of "Chinese-GB" environment.
+
+1999-06-29 MORIOKA Tomohiko <tomo@etl.go.jp>
+
+ * mule/mule-cmds.el (set-language-info-alist): Allow dummy
+ optional argument `parents'.
+
+ * mule/thai-xtis.el: Specify `tis-620' as `tutorial-coding-system'
+ property for Thai-XTIS.
+
+ * mule/mule-help.el (help-with-tutorial): Use property
+ `tutorial-coding-system' of language-info as a coding-system to
+ read tutorial file.
+
+1999-06-29 MORIOKA Tomohiko <tomo@etl.go.jp>
+
+ * mule/thai-xtis.el: Don't setup `setup-function' and
+ `exit-function'.
+
+ * mule/mule-cmds.el (set-language-environment-coding-systems): Use
+ `set-coding-category-system' to set up coding-system for
+ coding-category.
+
+ * mule/mule-cmds.el (prefer-coding-system): Use
+ `set-coding-category-system' to set up coding-system for
+ coding-category.
+
+1999-06-29 MORIOKA Tomohiko <tomo@etl.go.jp>
+
+ * mule/thai-xtis.el: Specify TUTORIAL.th as the tutorial file for
+ Thai-XTIS environment.
+
+ * mule/mule-cmds.el (prefer-coding-system): Use
+ `find-coding-system' instead of `coding-system-p'.
+
+1999-06-28 MORIOKA Tomohiko <tomo@etl.go.jp>
+
+ * mule/mule-cmds.el (set-language-environment-coding-systems):
+ Modify eol-type for XEmacs.
+
+ * mule/thai-xtis.el: Delete unused local variable `category'.
+
+ * mule/mule-cmds.el (coding-system-change-eol-conversion): New
+ function.
+ (prefer-coding-system): Don't call
+ `update-coding-systems-internal'; use function
+ `coding-category-list' instead of variable `coding-category-list';
+ use `set-coding-priority-list' instead of `set-coding-priority';
+ modify `eol-type' for XEmacs.
+
+ * mule/mule-misc.el (string-width): Use `charset-width' instead of
+ `charset-columns'.
+ (char-width): Likewise.
+
+1999-06-28 MORIOKA Tomohiko <tomo@etl.go.jp>
+
+ * mule/thai-xtis.el: Specify `iso-8-1' as coding-category of
+ `tis-620'.
+
+ * mule/mule-cmds.el (set-language-environment-coding-systems): Use
+ `set-coding-priority-list' instead of `set-coding-priority'; don't
+ call `update-coding-systems-internal'.
+
+ * mule/mule-misc.el (coding-system-get): New function.
+ (coding-system-put): New function.
+ (coding-system-category): New function.
+
+1999-06-28 MORIOKA Tomohiko <tomo@etl.go.jp>
+
+ * dumped-lisp.el (preloaded-file-list): Load "thai-xtis-chars"
+ when Mule is running; load "mule/thai-xtis" instead of "thai-xtis"
+ to avoid conflict with leim/quail/thai-xtis.
+
+ * mule/thai-xtis.el: Split definition of the charset `thai-xtis'
+ to thai-xtis-chars.el.
+
+ * mule/thai-xtis-chars.el: New file (split from
+ mule/thai-xtis.el).
+
+1999-06-28 MORIOKA Tomohiko <tomo@etl.go.jp>
+
+ * mule/thai-xtis.el:
+ - Change category for the charset `thai-xtis' to `?x' from `?T'.
+ - Add syntax entries.
+ - Put `preferred-coding-system' of the charset `thai-xtis' to
+ `tis-620'.
+
+1999-06-28 TAKAHASHI Naoto <ntakahas@etl.go.jp>
+
+ * mule/thai-xtis.el: ccl-decode-thai-xtis and subroutines
+ rewritten to use write-multibyte-character.
+
+1999-06-28 MORIOKA Tomohiko <tomo@etl.go.jp>
+
+ mule/mule-cmds.el (view-hello-file): Use `iso-2022-7bit' instead
+ of `iso-2022-7'.
+ (prefer-coding-system): Synced up with Emacs 20.3.11 but not
+ ported yet.
+ (read-input-method-name): Treat optional argument `default'.
+
+1999-06-28 MORIOKA Tomohiko <tomo@etl.go.jp>
+
+ * mule/mule-cmds.el (set-language-info): Don't set up menus at
+ all.
+ (set-language-info-alist): Set up menus here.
+
+1999-06-28 MORIOKA Tomohiko <tomo@etl.go.jp>
+
+ * minibuf.el (completing-read): Add new optional argument
+ `default'.
+ (read-coding-system): Add new optional argument
+ `default-coding-system'.
+
+1999-06-03 Ken'ichi Handa <handa@gnu.org>
+
+ * mule/vietnamese.el (ccl-encode-vscii): Typo fixed
+ (viet-viscii-...->viet-vscii...).
+
+1999-05-13 Ken'ichi Handa <handa@gnu.org>
+
+ * mule/mule-cmds.el: Change MULE to Mule in docstrings
+ and menus.
+
+1999-04-12 Richard M. Stallman <rms@gnu.org>
+
+ * mule/mule-cmds.el (input-method-function): Add permanent-local
+ property.
+
+1999-03-30 Dave Love <fx@gnu.org>
+
+ * mule/mule-cmds.el (current-language-environment): Doc fix.
+
+1999-02-06 Richard Stallman <rms@gnu.org>
+
+ * mule/european.el (setup-slovenian-environment): New function.
+ ("Slovenian"): New language environment.
+
+1999-01-27 Dave Love <fx@gnu.org>
+
+ * mule/mule-cmds.el (current-language-environment): Provide :link,
+ :type (choices) and appropriate :get.
+
+1999-01-14 Kenichi Handa <handa@etl.go.jp>
+
+ * mule/mule-cmds.el (describe-language-environment): Don't alter
+ input-method-alist.
+
+1999-01-06 Eli Zaretskii <eliz@gnu.org>
+
+ * mule/mule-cmds.el (prefer-coding-system): Call
+ set-coding-priority, so that the internal array of priorities is
+ also updated.
+
+1998-12-30 Eli Zaretskii <eliz@mescaline.gnu.org>
+
+ * mule/mule-cmds.el (prefer-coding-system): If the argument
+ requires specific EOL conversion type, make the default coding
+ systems use that.
+
+1998-12-17 Eli Zaretskii <eliz@mescaline.gnu.org>
+
+ * mule/mule-cmds.el (set-language-environment): Pass the default
+ eol-type to set-language-environment-coding-systems.
+ (set-default-coding-systems): Copy the eol-type property for the
+ new default values of {buffer-file,process}-coding-system from the
+ old defaults.
+ (set-language-environment-coding-systems): Accept an optional
+ argument EOL-TYPE, and set the eol-type property of the default
+ coding systems accordingly.
+
+1998-10-26 Kenichi Handa <handa@etl.go.jp>
+
+ * mule/chinese.el (pre-write-encode-hz): Cancel previous change,
+ use generate-new-buffer instead of get-buffer-create.
+
+1998-10-21 Kenichi Handa <handa@etl.go.jp>
+
+ * mule/chinese.el (pre-write-encode-hz): Use with-temp-buffer.
+
+1998-10-16 Markus Rost <rost@delysid.gnu.org>
+
+ * mule/mule-cmds.el (default-input-method): Fix custom type.
+
+1998-10-12 Richard Stallman <rms@psilocin.ai.mit.edu>
+
+ * mule/mule-cmds.el (setup-specified-language-environment):
+ Add apropos-inhibit property.
+ (describe-specified-language-support): Likewise.
+
+1998-09-06 Bill Richter <richter@math.nwu.edu>
+
+ * mule/mule-cmds.el: Doc fixes.
+
+1998-09-02 Kenichi Handa <handa@etl.go.jp>
+
+ * mule/mule-cmds.el (register-input-method): Doc-string
+ modified.
+
+1998-09-01 Dave Love <fx@gnu.org>
+
+ * mule/mule-cmds.el (current-language-environment): Fix
+ setter function.
+
+1998-08-31 Paul Eggert <eggert@twinsun.com>
+
+ * mule/chinese.el, mule/cyrillic.el, mule/ethiopic.el,
+ mule/european.el, mule/hebrew.el, mule/japanese.el,
+ mule/korean.el, mule/vietnamese.el: Add coding: local variable, to
+ avoid bootstrapping problem if you need to recompile all the Lisp
+ files using interpreted code.
+
+1998-08-26 Kenichi Handa <handa@etl.go.jp>
+
+ * mule/european.el ("Latin-1"): Modify `documentation' key value.
+ ("Latin-2"): Likewise.
+
+1998-08-18 Per Starback <starback@update.uu.se>
+
+ * mule/european.el (setup-latin2-environment): Fix typo.
+
+1998-08-18 Kenichi Handa <handa@etl.go.jp>
+
+ * mule/european.el: Give proper value of `input-method' key to all
+ lang. env.
+
+ * mule/mule-cmds.el (activate-input-method): Handle the case that
+ the arg INPUT-METHOD is nil correctly.
+ (read-multilingual-string): Activate the specified input method
+ before calling read-string. Afterward, activate the original
+ input method.
+
+1998-08-15 Kenichi HANDA <handa@etl.go.jp>
+
+ * mule/mule-cmds.el (language-info-alist): Doc-string modified.
+ (set-language-info-alist): Fix typo in doc-string.
+
+ * mule/hebrew.el ("Hebrew"): Delete describe-function key.
+
+1998-08-09 Kenichi HANDA <handa@etl.go.jp>
+
+ * mule/mule-cmds.el (language-info-alist): Doc-string modified.
+ (reset-language-environment): New function for the job that
+ setup-english-environment used to do.
+ (set-language-environment): Do more setups according to the info
+ in language-info-alist.
+ (read-language-name): Handle the case that the arg KEY is nil.
+ (describe-language-environment): Handle input-method property.
+
+ * mule/: All files under this directory, which related with
+ specific languages (such as mule/european.el, mule/greek.el,
+ mule/hebrew.el, mule/misc-lang.el), modified as below.
+ (setup-XXX-environment): Just call set-language-environment. If
+ they used to do some other jobs than what done by
+ set-language-environment, those jobs are done in
+ setup-XXX-environment-internal now.
+ ("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
+ the value to setup-XXX-environment-internal. Add properties
+ input-method and features.
+
+ * mule/english.el (setup-english-environment): Just call
+ reset-language-environment.
+
+ * mule/european.el (setup-8-bit-environment): Function deleted.
+
+1998-08-08 Richard Stallman <rms@psilocin.ai.mit.edu>
+
+ * mule/mule-cmds.el (input-method-exit-on-first-char)
+ (input-method-use-echo-area): Doc fixes.
+
+1998-08-06 Kenichi Handa <handa@etl.go.jp>
+
+ * mule/mule-cmds.el (input-method-exit-on-first-char): New
+ variable.
+ (input-method-use-echo-area): New variable.
+
+1998-08-01 Kenichi HANDA <handa@etl.go.jp>
+
+ * mule/mule-cmds.el (language-info-alist): Doc-string modified.
+
+1998-07-30 Ken'ichi Handa <handa@delysid.gnu.org>
+
+ * mule/mule-cmds.el (activate-input-method): Update mode line.
+ (inactivate-input-method): Likewise.
+
+1998-07-19 Kenichi Handa <handa@etl.go.jp>
+
+ * mule/mule-cmds.el (read-multilingual-string): Don't activate an
+ input method in the current buffer, but just bind
+ current-input-method.
+
+1998-07-08 Kenichi Handa <handa@etl.go.jp>
+
+ * mule/hebrew.el ("Hebrew"): Add coding-priority.
+
+ * mule/misc-lang.el ("IPA"): Add coding-priority and
+ coding-system.
+
+1998-06-26 Ken'ichi Handa <handa@melange.gnu.org>
+
+ * mule/greek.el: Add coding-priority.
+
+1998-05-23 Richard Stallman <rms@psilocin.ai.mit.edu>
+
+ * mule/mule-cmds.el (register-input-method): Rename arg ENV to
+ LANG-ENV.
+
+1998-05-20 Richard Stallman <rms@psilocin.ai.mit.edu>
+
+ * mule/mule-cmds.el (register-input-method): Fix previous change.
+ (setup-specified-language-environment): Doc fix.
+
+1998-05-19 Richard Stallman <rms@psilocin.ai.mit.edu>
+
+ * mule/mule-cmds.el: Several doc fixes.
+ (get-language-info, set-language-info): Rename argument.
+ (set-language-info-alist): Likewise.
+ (register-input-method): Rename argument.
+ (activate-input-method): If INPUT-METHOD is nil, deactivate.
+
+1998-05-04 Kenichi Handa <handa@etl.go.jp>
+
+ * mule/mule-cmds.el (toggle-input-method): Use a more appropriate
+ default value while reading an input method.
+
+1998-05-01 Kenichi Handa <handa@etl.go.jp>
+
+ * mule/mule-cmds.el (universal-coding-system-argument):
+ Use buffer-file-coding-system as default.
+
+1998-04-14 Andreas Schwab <schwab@mescaline.gnu.org>
+
+ * mule/korean.el ("Korean"): Doc fix.
+
+1998-04-11 Kenichi Handa <handa@etl.go.jp>
+
+ * mule/mule-cmds.el (describe-language-environment): Print the
+ languge environment at the head.
+
+1998-04-06 Kenichi Handa <handa@etl.go.jp>
+
+ * mule/japanese.el: Set exit-function to exit-japanese-environment
+ for Japanese environment.
+
+1998-03-20 Richard Stallman <rms@psilocin.gnu.org>
+
+ * mule/mule-cmds.el (set-language-environment): Doc fix.
+ (current-language-environment): Use defcustom.
+ (default-input-method): Specify :type.
+
+1998-03-02 Kenichi Handa <handa@etl.go.jp>
+
+ * mule/mule-cmds.el (set-default-coding-systems): Doc-string
+ modified.
+ (prefer-coding-system): Doc-string modified.
+
+1998-01-21 Kenichi Handa <handa@etl.go.jp>
+
+ * mule/mule-cmds.el (set-language-info): Doc-string
+ describes `coding-priority' KEY.
+ (set-language-environment-coding-systems): New function.
+ (select-safe-coding-system): New function.
+ (set-language-info): New optional args DESCRIBE-MAP and SETUP-MAP.
+ (set-language-info-alist): New optionla arg PARENTS. Call
+ set-language-info with apropriate DESCRIBE-MAP and SETUP-MAP args.
+ (set-language-environment-coding-systems): New function.
+
+ * mule/chinese.el: Remove setting up of
+ describe-chinese-environment-map and
+ setup-chinese-environment-map. Exclude them in args of calls to
+ set-language-info-alist. Register coding-priority key in
+ language-info-alist.
+
+ * mule/cyrillic.el: Remove setting up of
+ describe-cyrillic-environment-map and
+ setup-cyrillic-environment-map. Exclude them in args of calls to
+ set-language-info-alist. Register coding-priority key in
+ language-info-alist.
+
+ * mule/english.el: Register coding-priority key in
+ language-info-alist.
+
+ * mule/ethiopic.el: Register coding-priority key in
+ language-info-alist.
+
+ * mule/european.el: Remove setting up of
+ describe-european-environment-map and
+ setup-european-environment-map. Exclude them in args of calls to
+ set-language-info-alist. Register coding-priority key in
+ language-info-alist. Add "German" language env.
+ (setup-8-bit-environment): Delete CODING-SYSTEM arg.
+ (setup-german-environment): New function.
+
+ * mule/greek.el (setup-greek-environment): For Greek lang. env.,
+ change default input method to "greek-postfix".
+
+ * mule/japanese.el, mule/korean.el, mule/vietnamese.el: Register
+ coding-priority key in
+
+1997-12-19 Stephen Eglen <stephen@cns.ed.ac.uk>
+
+ * mule/mule-cmds.el (set-language-info): Doc fix.
+ (input-method-inactivate-hook): Doc fix.
+
+1997-11-20 Karl Heuer <kwzh@gnu.org>
+
+ * mule/mule-cmds.el (set-input-method): Renamed from
+ select-input-method.
+
+1997-11-07 Kenichi Handa <handa@etl.go.jp>
+
+ * mule/mule-cmds.el (set-language-environment): Run
+ exit-language-environment-hook before calling `exit-function'
+ which is specified for the language environment.
+
+1997-10-23 Kenichi Handa <handa@etl.go.jp>
+
+ * mule/mule-cmds.el (set-default-coding-systems): Doc-string
+ modified.
+ (prefer-coding-system): Likewise.
+ (describe-language-environment): Print aliases of each coding
+ system.
+ (set-language-environment-hook): New variable.
+ (exit-language-environment-hook): New variable.
+ (set-language-environment): Call these hooks. Before setting a
+ new language environment, exit from the
+ current-language-environment if necessary.
+ (input-method-verbose-flag): The value can be nil, t,
+ complex-only, or default.
+ (input-method-highlight-flag): Doc-string augmented.
+ (activate-input-method): Check if we can run the registered
+ function to activate an input method.
+
+ * mule/korean.el: Set exit-function for language environment
+ "Korean" to exit-korean-environment.
+ (setup-korean-environment): Moved to korea-util.el.
+
+1997-10-21 Kenichi Handa <handa@etl.go.jp>
+
+ * mule/mule-cmds.el (read-multilingual-string): Use
+ current-input-method prior to default-input-method. Don't bind
+ current-input-method by `let', instead, activate the specified
+ input method in the current buffer temporarily.
+
+1997-10-19 John F. Whitehead <jfw@cisco.com>
+
+ * mule/mule-cmds.el (describe-language-environment): Fix prompt.
+
+1997-10-21 Kenichi Handa <handa@etl.go.jp>
+
+ * mule/chinese.el (post-read-decode-hz): Return the result of
+ decode-hz-region.
+ (pre-write-encode-hz): Do not change the value of
+ last-coding-system.
+
+1998-09-06 Bill Richter <richter@math.nwu.edu>
+
+ * mule/mule-ccl.el: Doc fixes.
+
+1998-04-20 Kenichi Handa <handa@etl.go.jp>
+
+ * mule/mule-ccl.el (declare-ccl-program): New optional arg VECTOR.
+ (check-ccl-program): New macro.
+
+1998-01-21 Kenichi Handa <handa@etl.go.jp>
+
+ * mule/mule-ccl.el: Comment about CCL syntax modified.
+ (ccl-command-table): Add read-multibyte-character and
+ write-multibyte-character.
+ (ccl-code-table): Add ex-cmd.
+ (ccl-extended-code-table): New variable.
+ (ccl-embed-extended-command): New function.
+ (ccl-compile-read-multibyte-character,
+ ccl-compile-write-multibyte-character) New functions.
+ (ccl-dump-ex-cmd, ccl-dump-read-multibyte-character,
+ ccl-dump-write-multibyte-character): New functions.
+
1999-06-04 MORIOKA Tomohiko <tomo@etl.go.jp>
* files.el (insert-file-contents-literally): Treat file as binary;
call file-name-handlers. [sync with Emacs 20.3.10]
+1999-07-13 XEmacs Build Bot <builds@cvs.xemacs.org>
+
+ * XEmacs 21.2.18 is released
+
+1999-07-13 SL Baur <steve@miho>
+
+ * lib-complete.el (read-library-name): Revert previous change.
+ (read-library): Ditto.
+
+1999-06-24 Karl M. Hegbloom <karlheg@debian.org>
+
+ * packages.el (packages-package-list): Capitalize docstring.
+
+ * packages.el (packages-find-package-library-path): Use #'nconc
+ rather than #'append to reduce consing -- #'mapcar uses Flist,
+ which returns a freshly consed list. #'append would create yet
+ another fresh list, using Fmake_list in concat.
+
+ * packages.el (package-provide): Use setq with remassq like it
+ says in its docstring.
+
+1999-07-06 SL Baur <steve@miho.m17n.org>
+
+ * lib-complete.el (progn-with-message): Fix typo.
+
+1999-07-06 SL Baur <steve@miho.m17n.org>
+
+ * mule/mule-misc.el (char-octet): Make function match docstring.
+ From Katsumi Yamaoka <yamaoka@jpl.org>
+
+1999-06-15 Karl M. Hegbloom <karlheg@debian.org>
+
+ * wid-edit.el (widget-documentation): corrected spelling error.
+
+1999-06-23 Jonathan Marten <jonathan.marten@uk.sun.com>
+
+ * x-win-sun.el (x-win-init-sun): Don't rebind Find and Sh-find
+ keys if already bound
+
+1999-07-06 SL Baur <steve@miho.m17n.org>
+
+ * lib-complete.el (progn-with-message): Revert previous changes.
+
+1999-06-24 Bob Weiner <weiner@beopen.com>
+
+ * lib-complete.el (find-library):
+ (find-library-other-window):
+ (find-library-other-frame): Completely rewrote
+ so that these functions actually work when called non-interactively.
+ Also made them handle LIBRARY arguments which end with .el or .elc.
+
+1999-06-24 Bob Weiner <weiner@beopen.com>
+
+ * simple.el (indent-new-comment-line): Locally bound
+ `block-comment-start' to `comstart' or else when this is called
+ from do-auto-fill, e.g. in Lisp mode, it will insert any non-nil
+ `block-comment-start' value, ignoring any existing spacing after a
+ comment prefix in the previous line and producing ugly comments.
+
+1999-06-23 Bob Weiner <weiner@beopen.com>
+
+ * list-mode.el (mouse-choose-completion):
+ (choose-completion):
+ (completion-switch-to-minibuffer): Added.
+ ([Tab]): [Tab] previously switched to the minibuffer
+ but since [space] does that and since most applications in the
+ world use [Tab] to select the next item in a list, do that in the
+ *Completions* buffer too. This will cause the least confusion
+ among the largest population of users. -- Bob Weiner, BeOpen.com,
+ 06/23/1999.
+
+1999-06-22 Bob Weiner <weiner@beopen.com>
+
+ * help.el (help-buffer-name): Added support for a null value
+ of `help-buffer-prefix-string' since some buffers require no
+ prefix.
+
+1999-06-20 Bob Weiner <weiner@beopen.com>
+
+ * list-mode.el (completion-list-mode-quit): Added and bound to {q}
+ in the completion-list-mode-map to bury the completions buffer
+ even when the minibuffer is no longer active.
+
+1999-06-20 Bob Weiner <weiner@beopen.com>
+
+ * list-mode.el (list-mode): It is visually disconcerting to have
+ the text cursor disappear within list buffers, especially when
+ moving from window to window, so leave it visible.
+
+1999-07-01 SL Baur <steve@miho.m17n.org>
+
+ * menubar-items.el (default-menubar): Conditionalize the bug
+ report menu item (which may not be possible in this XEmacs).
+ Reported by: Ken'ichi Handa <handa@etl.go.jp>
+
+1999-06-30 SL Baur <steve@miho.m17n.org>
+
+ * subr.el (with-current-buffer): DOC string fix.
+ Suggested by Bob Weiner <weiner@altrasoft.com>
+
+1999-06-25 Charles G Waldman <cgw@fnal.gov>
+
+ * cus-face.el (custom-face-italic): insert missing args
+
+1999-06-24 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
+
+ * packages.el (package-locations): Changed default early package
+ hierarchies to ~/.xemacs/mule-packages and
+ ~/.xemacs/xemacs-packages.
+
1999-06-23 SL Baur <steve@miho.m17n.org>
* mule/mule-category.el (Top Level): ASCII is also latin-1.
(defun custom-face-italic (face &rest args)
"Return non-nil if the font of FACE is italic."
- (let* ((font (apply 'face-font-name face))
+ (let* ((font (apply 'face-font-name face args))
;; Gag
(fontobj (font-create-object font)))
(font-italic-p fontobj)))
(when-feature mule "japanese")
(when-feature mule "korean")
(when-feature mule "misc-lang")
- (when-feature mule "thai-xtis")
+ (when-feature mule "thai-xtis-chars")
+ (when-feature mule "mule/thai-xtis") ; overloaded in leim/quail
(when-feature mule "viet-chars")
(when-feature (and mule (not utf-2000)) "vietnamese")
(if (and (integerp help-max-help-buffers)
(> help-max-help-buffers 0)
(stringp name))
- (format "*%s: %s*" help-buffer-prefix-string name)
+ (if help-buffer-prefix-string
+ (format "*%s: %s*" help-buffer-prefix-string name)
+ (format "*%s*" name))
(format "*%s*" help-buffer-prefix-string)))
;; Use this function for displaying help when C-h something is pressed
;; Author: Oscar Figueiredo <Oscar.Figueiredo@di.epfl.ch>
;; Maintainer: Oscar Figueiredo <Oscar.Figueiredo@di.epfl.ch>
;; Created: Jan 1998
-;; Version: $Revision: 1.7.2.5 $
+;; Version: $Revision: 1.7.2.3 $
;; Keywords: help comm
;; This file is part of XEmacs
;; Last Modified By: Heiko M|nkel <muenkel@tnt.uni-hannover.de>
;; Additional XEmacs integration By: Chuck Thompson <cthomp@cs.uiuc.edu>
;; Last Modified On: Thu Jul 1 14:23:00 1994
-;; RCS Info : $Revision: 1.3.2.2 $ $Locker: $
;; ========================================================================
;; NOTE: XEmacs must be redumped if this file is changed.
;;
;;; ChangeLog:
;; 4/26/97: sb Mule-ize.
+;; 6/24/1999 much rewriting from Bob Weiner
;;; Code:
(if tail (setcdr tail nil)))))
;;=== Read a filename, with completion in a search path ===================
-(defvar read-library-internal-search-path)
(defun read-library-internal (FILE FILTER FLAG)
"Don't call this."
(cond
((equal library "") DEFAULT)
(FULL (locate-file library read-library-internal-search-path
- '(".el" ".el.gz" ".elc")))
+ '(".el" ".el.gz" ".elc")))
(t library))))
+(defun read-library-name (prompt)
+ "PROMPTs for and returns an existing Elisp library name (without any suffix) or the empty string."
+ (interactive)
+ (let ((read-library-internal-search-path load-path))
+ (completing-read prompt
+ 'read-library-internal
+ (lambda (fn)
+ (cond
+ ((string-match "\\.el\\(\\.gz\\|\\.Z\\)?$" fn)
+ (substring fn 0 (match-beginning 0)))))
+ t nil)))
+
;; NOTE: as a special case, read-library may be used to read a filename
;; relative to the current directory, returning a *relative* pathname
;; (read-file-name returns a full pathname).
;;
;; eg. (read-library "Local header: " '(nil) nil)
-(defun get-library-path ()
- "Front end to read-library"
- (read-library "Find Library file: " load-path nil t t
- (function (lambda (fn)
- (cond
- ;; decompression doesn't work with mule -slb
- ((string-match (if (featurep 'mule)
- "\\.el$"
- "\\.el\\(\\.gz\\)?$") fn)
- (substring fn 0 (match-beginning 0))))))
- ))
-
;;=== Replacement for load-library with completion ========================
(defun load-library (library)
"Load the library named LIBRARY.
This is an interface to the function `load'."
(interactive
- (list (read-library "Load Library: " load-path nil nil nil
- (function (lambda (fn)
- (cond
- ((string-match "\\.elc?$" fn)
- (substring fn 0 (match-beginning 0))))))
- )))
+ (list (read-library "Load library: " load-path nil nil nil
+ (function (lambda (fn)
+ (cond
+ ((string-match "\\.elc?$" fn)
+ (substring fn 0 (match-beginning 0))))))
+ )))
(load library))
-;;=== find-library with completion (Author: Heiko Muenkel) ===================
+;;=== find-library with completion (Author: Bob Weiner) ===================
-(defun find-library (library &optional codesys)
- "Find and edit the source for the library named LIBRARY.
-The extension of the LIBRARY must be omitted.
-Under XEmacs/Mule, the optional second argument specifies the
-coding system to use when decoding the file. Interactively,
-with a prefix argument, you will be prompted for the coding system."
+(defun find-library (library &optional codesys display-function)
+ "Find and display in the current window the source for the Elisp LIBRARY.
+LIBRARY should be a name without any path information and may include or omit
+the \".el\" suffix. Under XEmacs/Mule, the optional second argument CODESYS
+specifies the coding system to use when decoding the file. Interactively,
+with a prefix argument, this prompts for the coding system. Optional third
+argument DISPLAY-FUNCTION must take two arguments, the filename to display
+and CODESYS. The default for DISPLAY-FUNCTION is `find-file'."
(interactive
- (list (get-library-path)
+ (list (read-library-name "Find library: ")
(if current-prefix-arg
(read-coding-system "Coding System: "))))
- (find-file library codesys))
+ (let ((path (if (or (null library) (equal library ""))
+ nil
+ (locate-file library load-path
+ ;; decompression doesn't work with Mule -slb
+ (if (featurep 'mule)
+ ":.el:.elc"
+ ":.el:.el.gz:.el.Z:.elc")))))
+ (if path (funcall (if (fboundp display-function)
+ display-function 'find-file)
+ path codesys)
+ (error "(find-library): Cannot locate library `%s'" library))))
(defun find-library-other-window (library &optional codesys)
- "Load the library named LIBRARY in another window.
-Under XEmacs/Mule, the optional second argument specifies the
-coding system to use when decoding the file. Interactively,
-with a prefix argument, you will be prompted for the coding system."
+ "Find and display in another window the source for the Elisp LIBRARY.
+LIBRARY should be a name without any path information and may include or omit
+the \".el\" suffix. Under XEmacs/Mule, the optional second argument CODESYS
+specifies the coding system to use when decoding the file. Interactively,
+with a prefix argument, this prompts for the coding system."
(interactive
- (list (get-library-path)
+ (list (read-library-name "Find library in other window: ")
(if current-prefix-arg
- (read-coding-system "Coding System: "))))
- (find-file-other-window library codesys))
+ (read-coding-system "Coding System: "))))
+ (find-library library codesys 'find-file-other-window))
(defun find-library-other-frame (library &optional codesys)
- "Load the library named LIBRARY in a newly-created frame.
-Under XEmacs/Mule, the optional second argument specifies the
-coding system to use when decoding the file. Interactively,
-with a prefix argument, you will be prompted for the coding system."
+ "Find and display in another frame the source for the Elisp LIBRARY.
+LIBRARY should be a name without any path information and may include or omit
+the \".el\" suffix. Under XEmacs/Mule, the optional second argument CODESYS
+specifies the coding system to use when decoding the file. Interactively,
+with a prefix argument, this prompts for the coding system."
(interactive
- (list (get-library-path)
+ (list (read-library-name "Find library in other frame: ")
(if current-prefix-arg
(read-coding-system "Coding System: "))))
- (find-file-other-frame library codesys))
+ (find-library library codesys 'find-file-other-frame))
-; This conflicts with an existing binding
-;(define-key global-map "\C-xl" 'find-library)
+;; This conflicts with an existing binding.
+;;(define-key global-map "\C-xl" 'find-library)
(define-key global-map "\C-x4l" 'find-library-other-window)
(define-key global-map "\C-x5l" 'find-library-other-frame)
(make-local-variable 'next-line-add-newlines)
(setq next-line-add-newlines nil)
(setq list-mode-extent nil)
- (set-specifier text-cursor-visible-p nil (current-buffer))
+;; It is visually disconcerting to have the text cursor disappear within list
+;; buffers, especially when moving from window to window, so leave it
+;; visible. -- Bob Weiner, 06/20/1999
+; (set-specifier text-cursor-visible-p nil (current-buffer))
(setq buffer-read-only t)
(goto-char (point-min))
(run-hooks 'list-mode-hook))
(define-derived-mode completion-list-mode list-mode
"Completion List"
"Major mode for buffers showing lists of possible completions.
-Type \\<completion-list-mode-map>\\[choose-completion] in the completion list\
- to select the completion near point.
-Use \\<completion-list-mode-map>\\[mouse-choose-completion] to select one\
- with the mouse."
+\\{completion-list-mode-map}"
(make-local-variable 'completion-base-size)
(setq completion-base-size nil))
(let ((map completion-list-mode-map))
+ (define-key map 'button2up 'mouse-choose-completion)
+ (define-key map 'button2 'undefined)
+ (define-key map "\C-m" 'choose-completion)
(define-key map "\e\e\e" 'delete-completion-window)
(define-key map "\C-g" 'minibuffer-keyboard-quit)
- (define-key map "q" 'abort-recursive-edit)
- (define-key map " " (lambda () (interactive)
- (select-window (minibuffer-window))))
- (define-key map "\t" (lambda () (interactive)
- (select-window (minibuffer-window)))))
+ (define-key map "q" 'completion-list-mode-quit)
+ (define-key map " " 'completion-switch-to-minibuffer)
+ ;; [Tab] used to switch to the minibuffer but since [space] does that and
+ ;; since most applications in the world use [Tab] to select the next item
+ ;; in a list, do that in the *Completions* buffer too. -- Bob Weiner,
+ ;; BeOpen.com, 06/23/1999.
+ (define-key map "\t" 'next-list-mode-item))
(defvar completion-reference-buffer nil
"Record the buffer that was current when the completion list was requested.
If this is nil, it means to compare text to determine which part
of the tail end of the buffer's text is involved in completion.")
+;; These names are referenced in the doc string for `completion-list-mode'.
+(defalias 'choose-completion 'list-mode-item-keyboard-selected)
+(defalias 'mouse-choose-completion 'list-mode-item-mouse-selected)
+
(defun delete-completion-window ()
"Delete the completion list window.
Go to the window from which completion was requested."
(if (get-buffer-window buf)
(select-window (get-buffer-window buf)))))
+(defun completion-switch-to-minibuffer ()
+ "Move from a completions buffer to the active minibuffer window."
+ (interactive)
+ (select-window (minibuffer-window)))
+
+(defun completion-list-mode-quit ()
+ "Abort any recursive edit and bury the completions buffer."
+ (interactive)
+ (condition-case ()
+ (abort-recursive-edit)
+ (error nil))
+ ;; If there was no recursive edit to abort, simply bury the completions
+ ;; list buffer.
+ (if (eq major-mode 'completion-list-mode) (bury-buffer)))
+
(defun completion-do-in-minibuffer ()
(interactive "_")
(save-excursion
("Set language environment")
"--"
["Toggle input method" toggle-input-method]
- ["Select input method" select-input-method]
+ ["Select input method" set-input-method]
["Describe input method" describe-input-method]
"--"
["Describe current coding systems"
["No Warranty" describe-no-warranty]
["XEmacs License" describe-copying]
["The Latest Version" describe-distribution])
- ["Send Bug Report..." report-emacs-bug]))))
+ ["Send Bug Report..." report-emacs-bug
+ :active (fboundp 'report-emacs-bug)]))))
\f
(defun maybe-add-init-button ()
(defun completing-read (prompt table
&optional predicate require-match
- initial-contents history)
+ initial-contents history default)
"Read a string in the minibuffer, with completion.
Args: PROMPT, TABLE, PREDICATE, REQUIRE-MATCH, INITIAL-CONTENTS, HISTORY.
PROMPT is a string to prompt with; normally it ends in a colon and a space.
which INITIAL-CONTENTS corresponds to).
If HISTORY is `t', no history will be recorded.
Positions are counted starting from 1 at the beginning of the list.
+DEFAULT, if non-nil, is the default value.
Completion ignores case if the ambient value of
`completion-ignore-case' is non-nil."
(let ((minibuffer-completion-table table)
(minibuffer-completion-predicate predicate)
(minibuffer-completion-confirm (if (eq require-match 't) nil t))
- (last-exact-completion nil))
- (read-from-minibuffer prompt
- initial-contents
- (if (not require-match)
- minibuffer-local-completion-map
- minibuffer-local-must-match-map)
- nil
- history)))
+ (last-exact-completion nil)
+ ret)
+ (setq ret (read-from-minibuffer prompt
+ initial-contents
+ (if (not require-match)
+ minibuffer-local-completion-map
+ minibuffer-local-must-match-map)
+ nil
+ history))
+ (if (and (string= ret "")
+ default)
+ default
+ ret)))
\f
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;(if (featurep 'mule)
-(defun read-coding-system (prompt)
+(defun read-coding-system (prompt &optional default-coding-system)
"Read a coding-system (or nil) from the minibuffer.
-Prompting with string PROMPT."
- (intern (completing-read prompt obarray 'find-coding-system t)))
+Prompting with string PROMPT.
+If the user enters null input, return second argument DEFAULT-CODING-SYSTEM."
+ (intern (completing-read prompt obarray 'find-coding-system t nil nil
+ default-coding-system)))
(defun read-non-nil-coding-system (prompt)
"Read a non-nil coding-system from the minibuffer.
-;;; chinese.el --- Support for Chinese
+;;; chinese.el --- Support for Chinese -*- coding: iso-2022-7bit; -*-
;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
;; Licensed to the Free Software Foundation.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; (make-coding-system
-;; 'chinese-iso-7bit 2 ?C
+;; 'iso-2022-cn 2 ?C
;; "ISO 2022 based 7bit encoding for Chinese GB and CNS (MIME:ISO-2022-CN)"
;; '(ascii
;; (nil chinese-gb2312 chinese-cns11643-1)
;; (nil chinese-cns11643-2)
-;; (nil chinese-cns11643-3 chinese-cns11643-4 chinese-cns11643-5
-;; chinese-cns11643-6 chinese-cns11643-7)
+;; nil
;; nil ascii-eol ascii-cntl seven locking-shift single-shift nil nil nil
-;; init-bol))
+;; init-bol)
+;; '((safe-charsets ascii chinese-gb2312 chinese-cns11643-1 chinese-cns11643-2)
+;; (mime-charset . iso-2022-cn)))
-;; (define-coding-system-alias 'iso-2022-cn 'chinese-iso-7bit)
-;; (define-coding-system-alias 'iso-2022-cn-ext 'chinese-iso-7bit)
+;; (define-coding-system-alias 'chinese-iso-7bit 'iso-2022-cn)
-;; (define-prefix-command 'describe-chinese-environment-map)
-;; (define-key-after describe-language-environment-map [Chinese]
-;; '("Chinese" . describe-chinese-environment-map)
-;; t)
+;; (make-coding-system
+;; 'iso-2022-cn-ext 2 ?C
+;; "ISO 2022 based 7bit encoding for Chinese GB and CNS (MIME:ISO-2022-CN-EXT)"
+;; '(ascii
+;; (nil chinese-gb2312 chinese-cns11643-1)
+;; (nil chinese-cns11643-2)
+;; (nil chinese-cns11643-3 chinese-cns11643-4 chinese-cns11643-5
+;; chinese-cns11643-6 chinese-cns11643-7)
+;; nil ascii-eol ascii-cntl seven locking-shift single-shift nil nil nil
+;; init-bol)
+;; '((safe-charsets ascii chinese-gb2312 chinese-cns11643-1 chinese-cns11643-2
+;; chinese-cns11643-3 chinese-cns11643-4 chinese-cns11643-5
+;; chinese-cns11643-6 chinese-cns11643-7)
+;; (mime-charset . iso-2022-cn-ext)))
-;; (define-prefix-command 'setup-chinese-environment-map)
-;; (define-key-after setup-language-environment-map [Chinese]
-;; '("Chinese" . setup-chinese-environment-map)
-;; t)
\f
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Chinese GB2312 (simplified)
;; (make-coding-system
;; 'chinese-iso-8bit 2 ?c
;; "ISO 2022 based EUC encoding for Chinese GB2312 (MIME:CN-GB-2312)"
-;; '((ascii t) chinese-gb2312 chinese-sisheng nil
-;; nil ascii-eol ascii-cntl nil nil single-shift nil))
+;; '(ascii chinese-gb2312 nil nil
+;; nil ascii-eol ascii-cntl nil nil nil nil)
+;; '((safe-charsets ascii chinese-gb2312)
+;; (mime-charset . cn-gb-2312)))
(make-coding-system
'cn-gb-2312 'iso2022
;; (define-coding-system-alias 'cn-gb-2312 'chinese-iso-8bit)
;; (define-coding-system-alias 'euc-china 'chinese-iso-8bit)
+;; (define-coding-system-alias 'euc-cn 'chinese-iso-8bit)
-(copy-coding-system 'cn-gb-2312 'gb2312)
-(copy-coding-system 'cn-gb-2312 'chinese-euc)
+(define-coding-system-alias 'gb2312 'cn-gb-2312)
+(define-coding-system-alias 'chinese-euc 'cn-gb-2312)
;; (make-coding-system
;; 'chinese-hz 0 ?z
;; "Hz/ZW 7-bit encoding for Chinese GB2312 (MIME:HZ-GB-2312)"
-;; nil)
+;; nil
+;; '((safe-charsets ascii chinese-gb2312)
+;; (mime-charset . hz-gb-2312)
+;; (post-read-conversion . post-read-decode-hz)
+;; (pre-write-conversion . pre-write-encode-hz)))
;; (put 'chinese-hz 'post-read-conversion 'post-read-decode-hz)
;; (put 'chinese-hz 'pre-write-conversion 'pre-write-encode-hz)
;; (define-coding-system-alias 'hz-gb-2312 'chinese-hz)
;; (define-coding-system-alias 'hz 'chinese-hz)
-(copy-coding-system 'hz-gb-2312 'hz)
-(copy-coding-system 'hz-gb-2312 'chinese-hz)
+(define-coding-system-alias 'hz 'hz-gb-2312)
(defun post-read-decode-hz (len)
- (let ((pos (point)))
- (decode-hz-region pos (+ pos len))))
+ (let ((pos (point))
+ (buffer-modified-p (buffer-modified-p))
+ last-coding-system-used)
+ (prog1
+ (decode-hz-region pos (+ pos len))
+ (set-buffer-modified-p buffer-modified-p))))
(defun pre-write-encode-hz (from to)
- (let ((buf (current-buffer))
- (work (get-buffer-create " *pre-write-encoding-work*")))
- (set-buffer work)
- (erase-buffer)
+ (let ((buf (current-buffer)))
+ (set-buffer (generate-new-buffer " *temp*"))
(if (stringp from)
(insert from)
(insert-buffer-substring buf from to))
- (encode-hz-region 1 (point-max))
+ (let (last-coding-system-used)
+ (encode-hz-region 1 (point-max)))
nil))
(set-language-info-alist
- "Chinese-GB" '((setup-function . (setup-chinese-gb-environment
- . setup-chinese-environment-map))
- (charset . (chinese-gb2312 sisheng))
- (coding-system
- . (cn-gb-2312 iso-2022-7bit hz-gb-2312))
+ "Chinese-GB" '((setup-function . setup-chinese-gb-environment-internal)
+ (charset chinese-gb2312 sisheng)
+ (coding-system cn-gb-2312 iso-2022-7bit hz-gb-2312)
+ (coding-priority cn-gb-2312 big5 iso-2022-7bit)
+ (input-method . "chinese-py-punct")
+ (features china-util)
(sample-text . "Chinese (\e$AVPND\e(B,\e$AFUM(;0\e(B,\e$A::So\e(B) \e$ADc:C\e(B")
- (documentation . ("Support for Chinese GB2312 character set."
- . describe-chinese-environment-map))
- ))
+ (documentation . "Support for Chinese GB2312 character set."))
+ '("Chinese"))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Chinese BIG5 (traditional)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; (make-coding-system
-;; 'chinese-big5 3 ?B "BIG5 8-bit encoding for Chinese (MIME:CN-BIG5)")
+;; 'chinese-big5 3 ?B "BIG5 8-bit encoding for Chinese (MIME:CN-BIG5)"
+;; nil
+;; '((safe-charsets ascii chinese-big5-1 chinese-big5-2)
+;; (mime-charset . cn-big5)
+;; (charset-origin-alist (chinese-big5-1 "BIG5" encode-big5-char)
+;; (chinese-big5-2 "BIG5" encode-big5-char))))
(make-coding-system
'big5 'big5
;; (define-coding-system-alias 'big5 'chinese-big5)
;; (define-coding-system-alias 'cn-big5 'chinese-big5)
-(copy-coding-system 'big5 'cn-big5)
-(copy-coding-system 'big5 'chinese-big5)
+(define-coding-system-alias 'cn-big5 'big5)
;; Big5 font requires special encoding.
(define-ccl-program ccl-encode-big5-font
(set-charset-ccl-program 'chinese-big5-2 ccl-encode-big5-font)
(set-language-info-alist
- "Chinese-BIG5" '((setup-function . (setup-chinese-big5-environment
- . setup-chinese-environment-map))
- (charset . (chinese-big5-1 chinese-big5-2))
- (coding-system . (big5 iso-2022-7bit))
+ "Chinese-BIG5" '((charset chinese-big5-1 chinese-big5-2)
+ (coding-system big5 iso-2022-7bit)
+ (coding-priority big5 cn-gb-2312 iso-2022-7bit)
+ (input-method . "chinese-py-punct-b5")
+ (features china-util)
(sample-text . "Cantonese (\e$(0GnM$\e(B,\e$(0N]0*Hd\e(B) \e$(0*/=(\e(B, \e$(0+$)p\e(B")
- (documentation . ("Support for Chinese Big5 character set."
- . describe-chinese-environment-map))
- ))
+ (documentation . "Support for Chinese Big5 character set."))
+ '("Chinese"))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Chinese CNS11643 (traditional)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; (set-language-info-alist
-;; "Chinese-CNS" '((setup-function . (setup-chinese-cns-environment
-;; . setup-chinese-environment-map))
-;; (charset . (chinese-cns11643-1 chinese-cns11643-2
-;; chinese-cns11643-3 chinese-cns11643-4
-;; chinese-cns11643-5 chinese-cns11643-6
-;; chinese-cns11643-7))
-;; (coding-system . (chinese-iso-7bit))
-;; (documentation . ("Support for Chinese CNS character sets."
-;; . describe-chinese-environment-map))
-;; ))
+;; "Chinese-CNS" '((charset chinese-cns11643-1 chinese-cns11643-2
+;; chinese-cns11643-3 chinese-cns11643-4
+;; chinese-cns11643-5 chinese-cns11643-6
+;; chinese-cns11643-7)
+;; (coding-system iso-2022-cn)
+;; (coding-priority iso-2022-cn chinese-big5 chinese-iso-8bit)
+;; (features china-util)
+;; (input-method . "chinese-cns-quick")
+;; (documentation . "Support for Chinese CNS character sets."))
+;; '("Chinese"))
;;; chinese.el ends here
-;;; cyrillic.el --- Support for languages which use Cyrillic characters
+;;; cyrillic.el --- Support for Cyrillic -*- coding: iso-2022-7bit; -*-
;; Copyright (C) 1995,1999 Electrotechnical Laboratory, JAPAN.
;; Licensed to the Free Software Foundation.
;;; CYRILLIC
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; (define-prefix-command 'describe-cyrillic-environment-map)
-;; (define-key-after describe-language-environment-map [Cyrillic]
-;; '("Cyrillic" . describe-cyrillic-environment-map)
-;; t)
-
-;; (define-prefix-command 'setup-cyrillic-environment-map)
-;; (define-key-after setup-language-environment-map [Cyrillic]
-;; '("Cyrillic" . setup-cyrillic-environment-map)
-;; t)
-
-\f
;; ISO-8859-5 staff
;; (make-coding-system
;; 'cyrillic-iso-8bit 2 ?5
;; "ISO 2022 based 8-bit encoding for Cyrillic script (MIME:ISO-8859-5)"
-;; '((ascii t) (cyrillic-iso8859-5 t) nil nil
-;; nil ascii-eol ascii-cntl nil nil nil nil))
+;; '(ascii cyrillic-iso8859-5 nil nil
+;; nil nil nil nil nil nil nil)
+;; '((safe-charsets ascii cyrillic-iso8859-5)
+;; (mime-charset . iso-8859-5)))
;; (define-coding-system-alias 'iso-8859-5 'cyrillic-iso-8bit)
))
(set-language-info-alist
- "Cyrillic-ISO" '((setup-function . (setup-cyrillic-iso-environment
- . setup-cyrillic-environment-map))
- (charset . (cyrillic-iso8859-5))
+ "Cyrillic-ISO" '((charset cyrillic-iso8859-5)
(tutorial . "TUTORIAL.ru")
- (coding-system . (iso-8859-5))
+ (coding-system iso-8859-5)
+ (coding-priority iso-8859-5)
+ (input-method . "cyrillic-yawerty")
+ (features cyril-util)
(sample-text . "Russian (\e,L@caaZXY\e(B) \e,L7T`PRabRcYbU\e(B!")
- (documentation . ("Support for Cyrillic ISO-8859-5."
- . describe-cyrillic-environment-map))))
+ (documentation . "Support for Cyrillic ISO-8859-5."))
+ '("Cyrillic"))
;; KOI-8 staff
(write-read-repeat r0 , cyrillic-koi8-r-encode-table))))))
"CCL program to encode KOI8.")
-;(make-coding-system
-; 'cyrillic-koi8 4
-; ;; We used to use ?K. It is true that ?K is more strictly correct,
-; ;; but it is also used for Korean.
-; ;; So people who use koi8 for languages other than Russian
-; ;; will have to forgive us.
-; ?R "KOI8 8-bit encoding for Cyrillic (MIME: KOI8-R)"
-; (cons ccl-decode-koi8 ccl-encode-koi8))
-
-;(define-coding-system-alias 'koi8-r 'cyrillic-koi8)
-;(define-coding-system-alias 'koi8 'cyrillic-koi8)
+;; (make-coding-system
+;; 'cyrillic-koi8 4
+;; ;; We used to use ?K. It is true that ?K is more strictly correct,
+;; ;; but it is also used for Korean.
+;; ;; So people who use koi8 for languages other than Russian
+;; ;; will have to forgive us.
+;; ?R "KOI8 8-bit encoding for Cyrillic (MIME: KOI8-R)"
+;; '(ccl-decode-koi8 . ccl-encode-koi8)
+;; '((safe-charsets ascii cyrillic-iso8859-5)
+;; (mime-charset . koi8-r)
+;; (valid-codes (0 . 127) 163 179 (192 . 255))
+;; (charset-origin-alist (cyrillic-iso8859-5 "KOI8-R"
+;; cyrillic-encode-koi8-r-char))))
+
+;; (define-coding-system-alias 'koi8-r 'cyrillic-koi8)
+;; (define-coding-system-alias 'koi8 'cyrillic-koi8)
(make-coding-system
'koi8-r 'ccl
encode ,ccl-encode-koi8
mnemonic "KOI8"))
-;(define-coding-system-alias 'koi8-r 'koi8)
+;; it is not correct, but XEmacs doesn't have `ccl' category...
+(coding-system-put 'koi8-r 'category 'iso-8-1)
;; (define-ccl-program ccl-encode-koi8-font
-;; '(0
-;; ((r1 -= 160)
-;; (r1 = r1
-;; [ 32 179 32 32 32 32 32 32 32 32 32 32 32 32 32 32
-;; 225 226 247 231 228 229 246 250 233 234 235 236 237 238 239 240
-;; 242 243 244 245 230 232 227 254 251 253 255 249 248 252 224 241
-;; 193 194 215 199 196 197 214 218 201 202 203 204 205 206 207 208
-;; 210 211 212 213 198 200 195 222 219 221 223 217 216 220 192 209
-;; 32 163 32 32 32 32 32 32 32 32 32 32 32 32 32 32])
-;; ))
+;; `(0
+;; ((r1 |= 128)
+;; (r1 = r1 ,cyrillic-koi8-r-encode-table)))
;; "CCL program to encode Cyrillic chars to KOI font.")
;; (setq font-ccl-encoder-alist
;; (cons (cons "koi8" ccl-encode-koi8-font) font-ccl-encoder-alist))
+;; (defvar cyrillic-koi8-r-nonascii-translation-table
+;; (make-translation-table-from-vector cyrillic-koi8-r-decode-table)
+;; "Value of `nonascii-translation-table' in Cyrillic-KOI8 language environment..")
+
(set-language-info-alist
- "Cyrillic-KOI8" '((setup-function . (setup-cyrillic-koi8-environment
- . setup-cyrillic-environment-map))
- (charset . (cyrillic-iso8859-5))
- (coding-system . (koi8-r))
+ "Cyrillic-KOI8" '((charset cyrillic-iso8859-5)
+ (coding-system koi8-r)
+ (coding-priority koi8-r)
+ (input-method . "cyrillic-yawerty")
+ (features cyril-util)
(tutorial . "TUTORIAL.ru")
(sample-text . "Russian (\e,L@caaZXY\e(B) \e,L7T`PRabRcYbU\e(B!")
- (documentation . ("Support for Cyrillic KOI-8."
- . describe-cyrillic-environment-map))))
+ (documentation . "Support for Cyrillic KOI8-R."))
+ '("Cyrillic"))
;;; ALTERNATIVNYJ staff
+(eval-and-compile
+
+(defvar cyrillic-alternativnyj-decode-table
+ [
+ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
+ 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
+ 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
+ 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
+ 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
+ 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
+ 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
+ ?\e,L0\e(B ?\e,L1\e(B ?\e,L2\e(B ?\e,L3\e(B ?\e,L4\e(B ?\e,L5\e(B ?\e,L6\e(B ?\e,L7\e(B ?\e,L8\e(B ?\e,L9\e(B ?\e,L:\e(B ?\e,L;\e(B ?\e,L<\e(B ?\e,L=\e(B ?\e,L>\e(B ?\e,L?\e(B
+ ?\e,L@\e(B ?\e,LA\e(B ?\e,LB\e(B ?\e,LC\e(B ?\e,LD\e(B ?\e,LE\e(B ?\e,LF\e(B ?\e,LG\e(B ?\e,LH\e(B ?\e,LI\e(B ?\e,LJ\e(B ?\e,LK\e(B ?\e,LL\e(B ?\e,LM\e(B ?\e,LN\e(B ?\e,LO\e(B
+ ?\e,LP\e(B ?\e,LQ\e(B ?\e,LR\e(B ?\e,LS\e(B ?\e,LT\e(B ?\e,LU\e(B ?\e,LV\e(B ?\e,LW\e(B ?\e,LX\e(B ?\e,LY\e(B ?\e,LZ\e(B ?\e,L[\e(B ?\e,L\\e(B ?\e,L]\e(B ?\e,L^\e(B ?\e,L_\e(B
+ 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32
+ 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32
+ 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32
+ ?\e,L`\e(B ?\e,La\e(B ?\e,Lb\e(B ?\e,Lc\e(B ?\e,Ld\e(B ?\e,Le\e(B ?\e,Lf\e(B ?\e,Lg\e(B ?\e,Lh\e(B ?\e,Li\e(B ?\e,Lj\e(B ?\e,Lk\e(B ?\e,Ll\e(B ?\e,Lm\e(B ?\e,Ln\e(B ?\e,Lo\e(B
+ ?\e,L!\e(B ?\e,Lq\e(B 32 32 32 32 32 32 32 32 32 32 32 32 32 ?\e,Lp\e(B]
+ "Cyrillic ALTERNATIVNYJ decoding table.")
+
+(defvar cyrillic-alternativnyj-encode-table
+ (let ((table (make-vector 256 32))
+ (i 0))
+ (while (< i 256)
+ (let* ((ch (aref cyrillic-alternativnyj-decode-table i))
+ (split (split-char ch)))
+ (if (eq (car split) 'cyrillic-iso8859-5)
+ (aset table (logior (nth 1 split) 128) i)
+ (if (/= ch 32)
+ (aset table ch i))))
+ (setq i (1+ i)))
+ table)
+ "Cyrillic ALTERNATIVNYJ encoding table.")
+
+)
+
+
(define-ccl-program ccl-decode-alternativnyj
- '(3
+ `(3
((read r0)
(loop
- (write-read-repeat
- r0
- [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
- 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
- 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
- 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
- 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
- 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
- 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
- 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
- ?\e,L0\e(B ?\e,L1\e(B ?\e,L2\e(B ?\e,L3\e(B ?\e,L4\e(B ?\e,L5\e(B ?\e,L6\e(B ?\e,L7\e(B ?\e,L8\e(B ?\e,L9\e(B ?\e,L:\e(B ?\e,L;\e(B ?\e,L<\e(B ?\e,L=\e(B ?\e,L>\e(B ?\e,L?\e(B
- ?\e,L@\e(B ?\e,LA\e(B ?\e,LB\e(B ?\e,LC\e(B ?\e,LD\e(B ?\e,LE\e(B ?\e,LF\e(B ?\e,LG\e(B ?\e,LH\e(B ?\e,LI\e(B ?\e,LJ\e(B ?\e,LK\e(B ?\e,LL\e(B ?\e,LM\e(B ?\e,LN\e(B ?\e,LO\e(B
- ?\e,LP\e(B ?\e,LQ\e(B ?\e,LR\e(B ?\e,LS\e(B ?\e,LT\e(B ?\e,LU\e(B ?\e,LV\e(B ?\e,LW\e(B ?\e,LX\e(B ?\e,LY\e(B ?\e,LZ\e(B ?\e,L[\e(B ?\e,L\\e(B ?\e,L]\e(B ?\e,L^\e(B ?\e,L_\e(B
- 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32
- 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32
- 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32
- ?\e,L`\e(B ?\e,La\e(B ?\e,Lb\e(B ?\e,Lc\e(B ?\e,Ld\e(B ?\e,Le\e(B ?\e,Lf\e(B ?\e,Lg\e(B ?\e,Lh\e(B ?\e,Li\e(B ?\e,Lj\e(B ?\e,Lk\e(B ?\e,Ll\e(B ?\e,Lm\e(B ?\e,Ln\e(B ?\e,Lo\e(B
- ?\e,L!\e(B ?\e,Lq\e(B 32 32 32 32 32 32 32 32 32 32 32 32 32 ?\e,Lp\e(B]))))
+ (write-read-repeat r0 ,cyrillic-alternativnyj-decode-table))))
"CCL program to decode Alternativnyj.")
(define-ccl-program ccl-encode-alternativnyj
`(1
((read r0)
(loop
- (if (r0 != ,(charset-id 'cyrillic-iso8859-5))
- (write-read-repeat r0)
- ((read r0)
- (r0 -= 160)
- (write-read-repeat
- r0
- [ 32 240 32 32 32 32 32 32 32 32 32 32 32 32 32 32
- 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
- 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
- 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
- 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239
- 255 241 32 32 32 32 32 32 32 32 32 32 32 32 32 32])
- )))))
+ (if (r0 != ,(charset-id 'cyrillic-iso8859-5))
+ (write-read-repeat r0)
+ ((read r0)
+ (write-read-repeat r0 ,cyrillic-alternativnyj-encode-table))))))
"CCL program to encode Alternativnyj.")
;; (make-coding-system
-;; 'alternativnyj 4
-;; ?A "Coding-system used for Alternativnyj"
-;; (cons ccl-decode-alternativnyj ccl-encode-alternativnyj))
+;; 'cyrillic-alternativnyj 4 ?A
+;; "ALTERNATIVNYJ 8-bit encoding for Cyrillic"
+;; '(ccl-decode-alternativnyj . ccl-encode-alternativnyj)
+;; '((safe-charsets ascii cyrillic-iso8859-5)
+;; (valid-codes (0 . 175) (224 . 241) 255)
+;; (charset-origin-alist (cyrillic-iso8859-5 "ALTERNATIVNYJ"
+;; cyrillic-encode-koi8-r-char))))
+
+
+;; (define-coding-system-alias 'alternativnyj 'cyrillic-alternativnyj)
(make-coding-system
'alternativnyj 'ccl
encode ,ccl-encode-alternativnyj
mnemonic "Cy.Alt"))
+;; it is not correct, but XEmacs doesn't have `ccl' category...
+(coding-system-put 'alternativnyj 'category 'iso-8-1)
+
;; (define-ccl-program ccl-encode-alternativnyj-font
;; '(0
-;; ((r1 -= 160)
-;; (r1 = r1
-;; [ 32 240 32 32 32 32 32 32 32 32 32 32 32 32 32 32
-;; 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
-;; 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
-;; 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
-;; 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239
-;; 255 241 32 32 32 32 32 32 32 32 32 32 32 32 32 32])
-;; ))
+;; ((r1 |= 128)
+;; (r1 = r1 ,cyrillic-alternativnyj-encode-table)))
;; "CCL program to encode Cyrillic chars to Alternativnyj font.")
;; (setq font-ccl-encoder-alist
;; (cons (cons "alternativnyj" ccl-encode-alternativnyj-font)
;; font-ccl-encoder-alist))
+;; (defvar cyrillic-alternativnyj-nonascii-translation-table
+;; (make-translation-table-from-vector cyrillic-alternativnyj-decode-table)
+;; "Value of `nonascii-translation-table' in Cyrillic-ALT language environment.")
+
(set-language-info-alist
- "Cyrillic-ALT" '((setup-function . (setup-cyrillic-alternativnyj-environment
- . setup-cyrillic-environment-map))
- (charset . (cyrillic-iso8859-5))
- (coding-system . (alternativnyj))
+ "Cyrillic-ALT" '((charset cyrillic-iso8859-5)
+ (coding-system alternativnyj)
+ (coding-priority alternativnyj)
+ (input-method . "cyrillic-yawerty")
+ (features cyril-util)
(tutorial . "TUTORIAL.ru")
(sample-text . "Russian (\e,L@caaZXY\e(B) \e,L7T`PRabRcYbU\e(B!")
- (documentation . ("Support for Cyrillic ALTERNATIVNYJ."
- . describe-cyrillic-environment-map))))
-
-;;; GENERAL
-
-(defun setup-cyrillic-environment ()
- "Setup multilingual environment for Cyrillic users."
- (interactive)
- (setq primary-language "Cyrillic")
-
- (setq coding-category-iso-8-1 'iso-8859-5)
-
- (set-coding-priority
- '(coding-category-iso-7
- coding-category-iso-8-1))
-
- (setq-default buffer-file-coding-system 'iso-8859-5)
- (set-terminal-coding-system 'iso-8859-5)
- (set-keyboard-coding-system 'iso-8859-5)
-
- (setq default-input-method '("Cyrillic" . "quail-yawerty"))
- )
-
-(defun describe-cyrillic-support ()
- "Describe how Emacs support Cyrillic."
- (interactive)
- (describe-language-support-internal "Cyrillic"))
-
-(set-language-info-alist
- "Cyrillic" '((setup-function . setup-cyrillic-environment)
- (describe-function . describe-cyrillic-support)
- (charset . (cyrillic-iso8859-5))
- (tutorial . "TUTORIAL.ru")
- (coding-system . (iso-8859-5 koi8-r alternativnyj))
- (sample-text . "Russian (\e,L@caaZXY\e(B) \e,L7T`PRabRcYbU\e(B!")
- (documentation . nil)))
+ (documentation . "Support for Cyrillic ALTERNATIVNYJ."))
+ '("Cyrillic"))
;;; cyrillic.el ends here
;;; english.el --- English support
-;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
+;; Copyright (C) 1997,1999 Electrotechnical Laboratory, JAPAN.
;; Licensed to the Free Software Foundation.
-;; Copyright (C) 1997 MORIOKA Tomohiko
;; Keywords: multibyte character, character set, syntax, category
;; English as a language environment is one of the ways to reset
;; various multilingual environment to the original settting.
-;; modified for XEmacs by MORIOKA Tomohiko
-
;;; Code
(defun setup-english-environment ()
"Reset multilingual environment of Emacs to the default status.
-The default status is as follows.
-
- The default value of enable-multibyte-characters is t.
-
- The default value of buffer-file-coding-system is nil.
- The coding system for terminal output is nil.
- The coding system for keyboard input is nil.
-
- The order of priorities of coding categories and the coding system
- bound to each category are as follows
- coding category coding system
- --------------------------------------------------
- coding-category-iso-7 iso-2022-7bit
- coding-category-iso-8-1 iso-8859-1
- coding-category-iso-8-2 iso-8859-1
- coding-category-iso-7-else iso-2022-7bit-lock
- coding-category-iso-8-else iso-2022-8bit-ss2
- coding-category-emacs-mule no-conversion
- coding-category-sjis japanese-shift-jis
- coding-category-big5 chinese-big5
- coding-category-binarry no-conversion
-"
+See the function `reset-language-environment' for more detail."
(interactive)
- ;; (setq-default enable-multibyte-characters t)
-
- ;; (setq coding-category-iso-7 'iso-2022-7bit
- ;; coding-category-iso-8-1 'iso-8859-1
- ;; coding-category-iso-8-2 'iso-8859-1
- ;; coding-category-iso-7-else 'iso-2022-7bit-lock
- ;; coding-category-iso-8-else 'iso-2022-8bit-ss2
- ;; coding-category-emacs-mule 'no-conversion
- ;; coding-category-sjis 'japanese-shift-jis
- ;; coding-category-big5 'chinese-big5
- ;; coding-category-binary 'binary)
- (set-coding-category-system 'iso-7 'iso-2022-7bit)
- (set-coding-category-system 'iso-8-1 'iso-8859-1)
- (set-coding-category-system 'iso-8-2 'iso-8859-1)
- (set-coding-category-system 'iso-lock-shift 'iso-2022-lock)
- (set-coding-category-system 'iso-8-designate 'ctext)
- (set-coding-category-system 'no-conversion 'no-conversion)
- (set-coding-category-system 'shift-jis 'shift_jis)
- (set-coding-category-system 'big5 'big5)
-
- ;; (set-coding-priority
- ;; '(coding-category-iso-7
- ;; coding-category-iso-8-2
- ;; coding-category-iso-8-1
- ;; coding-category-iso-7-else
- ;; coding-category-iso-8-else
- ;; coding-category-emacs-mule
- ;; coding-category-raw-text
- ;; coding-category-sjis
- ;; coding-category-big5
- ;; coding-category-binary))
- (set-coding-priority-list
- '(iso-7
- iso-8-2
- iso-8-1
- iso-8-designate
- iso-lock-shift
- no-conversion
- shift-jis
- big5))
-
- (set-default-coding-systems nil)
- ;; Don't alter the terminal and keyboard coding systems here.
- ;; The terminal still supports the same coding system
- ;; that it supported a minute ago.
-;;; (set-terminal-coding-system-internal nil)
-;;; (set-keyboard-coding-system-internal nil)
-
- ;;(setq nonascii-insert-offset 0)
- )
+ (reset-language-environment))
(set-language-info-alist
- "English" '((setup-function . setup-english-environment)
- (tutorial . "TUTORIAL")
- (charset . (ascii))
+ "English" '((tutorial . "TUTORIAL")
+ (charset ascii)
(sample-text . "Hello!, Hi!, How are you?")
(documentation . "\
Nothing special is needed to handle English.")
-;;; ethiopic.el --- Support for Ethiopic
+;;; ethiopic.el --- Support for Ethiopic -*- coding: iso-2022-7bit; -*-
-;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
+;; Copyright (C) 1995,1999 Electrotechnical Laboratory, JAPAN.
;; Licensed to the Free Software Foundation.
;; Copyright (C) 1997 MORIOKA Tomohiko
-;;; european.el --- Support for European languages
+;;; european.el --- European languages -*- coding: iso-2022-7bit; -*-
;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
;; Licensed to the Free Software Foundation.
;;; EUROPEANS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; (define-prefix-command 'describe-european-environment-map)
-;; (define-key-after describe-language-environment-map [European]
-;; '("European" . describe-european-environment-map)
-;; t)
-
-;; (define-prefix-command 'setup-european-environment-map)
-;; (define-key-after setup-language-environment-map [European]
-;; '("European" . setup-european-environment-map)
-;; t)
-
-;; Setup for LANGAUGE which uses one-byte 8-bit CHARSET, one-byte
-;; 8-bit CODING-SYSTEM, and INPUT-METHOD.
-(defun setup-8-bit-environment (language charset coding-system input-method)
- (setup-english-environment)
- (set-default-coding-systems coding-system)
- ;; (setq coding-category-iso-8-1 coding-system
- ;; coding-category-iso-8-2 coding-system)
- (set-coding-category-system 'iso-8-1 coding-system)
- (set-coding-category-system 'iso-8-2 coding-system)
-
- ;; (if charset
- ;; (let ((nonascii-offset (- (make-char charset) 128)))
- ;; ;; Set up for insertion of characters in this character set
- ;; ;; when codes 0200 - 0377 are typed in.
- ;; (setq nonascii-insert-offset nonascii-offset)))
-
- (if input-method
- (setq default-input-method input-method))
-
- ;; If this is a Latin-N character set, set up syntax for it in
- ;; single-byte mode. We can't use require because the file
- ;; must be eval'd each time in case we change from one Latin-N to another.
- ;; (if (string-match "^Latin-\\([1-9]\\)$" language)
- ;; (load (downcase language) nil t))
- )
\f
;; Latin-1 (ISO-8859-1)
;; (make-coding-system
;; 'iso-latin-1 2 ?1
-;; "ISO 2022 based 8-bit encoding (MIME:ISO-8859-1, Compound Text Encoding)"
-;; '((ascii t) (latin-iso8859-1 t) nil nil
-;; nil ascii-eol ascii-cntl nil nil nil nil nil nil nil nil nil t))
+;; "ISO 2022 based 8-bit encoding for Latin-1 (MIME:ISO-8859-1)"
+;; '(ascii latin-iso8859-1 nil nil
+;; nil nil nil nil nil nil nil nil nil nil nil nil t)
+;; '((safe-charsets ascii latin-iso8859-1)
+;; (mime-charset . iso-8859-1)))
;; (define-coding-system-alias 'iso-8859-1 'iso-latin-1)
;; (define-coding-system-alias 'latin-1 'iso-latin-1)
-;; (define-coding-system-alias 'ctext 'iso-latin-1)
+
+;; (make-coding-system
+;; 'compound-text 2 ?1
+;; "ISO 2022 based encoding used in inter client communication of X"
+;; '((ascii t) (latin-iso8859-1 t) nil nil
+;; nil ascii-eol ascii-cntl nil nil nil nil nil nil nil nil nil t)
+;; '((safe-charsets . t)))
+
+;; (define-coding-system-alias 'ctext 'compound-text)
(defun setup-latin1-environment ()
"Set up multilingual environment (MULE) for European Latin-1 users."
(interactive)
- (setup-8-bit-environment "Latin-1" 'latin-iso8859-1 'iso-8859-1
- "latin-1-prefix"))
+ (set-language-environment "Latin-1"))
(set-language-info-alist
- "Latin-1" '((setup-function . (setup-latin1-environment
- . setup-european-environment-map))
- (charset . (ascii latin-iso8859-1))
- (coding-system . (iso-8859-1))
+ "Latin-1" '((charset ascii latin-iso8859-1)
+ (coding-system iso-8859-1)
+ (coding-priority iso-8859-1)
+ (input-method . "latin-1-prefix")
(sample-text
. "Hello, Hej, Tere, Hei, Bonjour, Gr\e,A|_\e(B Gott, Ciao, \e,A!\e(BHola!")
- (documentation . ("\
-These languages are supported with the Latin-1 (ISO-8859-1) character set:
+ (documentation . "\
+This language environment is a generic one for Latin-1 (ISO-8859-1)
+character set which supports the following languages:
Danish, Dutch, English, Faeroese, Finnish, French, German, Icelandic,
Irish, Italian, Norwegian, Portuguese, Spanish, and Swedish.
-" . describe-european-environment-map))
- ))
+We also have a German specific language environment \"German\"."))
+ '("European"))
(set-language-info-alist
- "German" '((setup-function . (setup-latin1-environment
- . setup-european-environment-map))
- (charset . (ascii latin-iso8859-1))
- (coding-system . (iso-8859-1))
- (tutorial . "TUTORIAL.de")
- (sample-text
- . "Hello, Hej, Tere, Hei, Bonjour, Gr\e,A|_\e(B Gott, Ciao, \e,A!\e(BHola!")
- (documentation . ("\
+ "French" '((charset ascii latin-iso8859-1)
+ (coding-system iso-8859-1)
+ (coding-priority iso-8859-1)
+ (tutorial . "TUTORIAL.fr")
+ (sample-text
+ . "Hello, Hej, Tere, Hei, Bonjour, Gr\e,A|_\e(B Gott, Ciao, \e,A!\e(BHola!")
+ (documentation . ("\
These languages are supported with the Latin-1 (ISO-8859-1) character set:
Danish, Dutch, English, Faeroese, Finnish, French, German, Icelandic,
Irish, Italian, Norwegian, Portuguese, Spanish, and Swedish.
-" . describe-european-environment-map))
- ))
+")))
+ '("European"))
(set-language-info-alist
- "French" '((setup-function . (setup-latin1-environment
- . setup-european-environment-map))
- (charset . (ascii latin-iso8859-1))
- (coding-system . (iso-8859-1))
- (tutorial . "TUTORIAL.fr")
- (sample-text
- . "Hello, Hej, Tere, Hei, Bonjour, Gr\e,A|_\e(B Gott, Ciao, \e,A!\e(BHola!")
- (documentation . ("\
+ "Norwegian" '((charset ascii latin-iso8859-1)
+ (coding-system iso-8859-1)
+ (coding-priority iso-8859-1)
+ (tutorial . "TUTORIAL.no")
+ (sample-text
+ . "Hello, Hej, Tere, Hei, Bonjour, Gr\e,A|_\e(B Gott, Ciao, \e,A!\e(BHola!")
+ (documentation . ("\
These languages are supported with the Latin-1 (ISO-8859-1) character set:
Danish, Dutch, English, Faeroese, Finnish, French, German, Icelandic,
Irish, Italian, Norwegian, Portuguese, Spanish, and Swedish.
-" . describe-european-environment-map))
- ))
+")))
+ '("European"))
-(set-language-info-alist
- "Norwegian" '((setup-function . (setup-latin1-environment
- . setup-european-environment-map))
- (charset . (ascii latin-iso8859-1))
- (coding-system . (iso-8859-1))
- (tutorial . "TUTORIAL.no")
- (sample-text
- . "Hello, Hej, Tere, Hei, Bonjour, Gr\e,A|_\e(B Gott, Ciao, \e,A!\e(BHola!")
- (documentation . ("\
-These languages are supported with the Latin-1 (ISO-8859-1) character set:
- Danish, Dutch, English, Faeroese, Finnish, French, German, Icelandic,
- Irish, Italian, Norwegian, Portuguese, Spanish, and Swedish.
-" . describe-european-environment-map))
- ))
\f
;; Latin-2 (ISO-8859-2)
;; (make-coding-system
;; 'iso-latin-2 2 ?2
;; "ISO 2022 based 8-bit encoding (MIME:ISO-8859-2)"
-;; '((ascii t) (latin-iso8859-2 t) nil nil
-;; nil ascii-eol ascii-cntl nil nil nil nil))
+;; '(ascii latin-iso8859-2 nil nil
+;; nil nil nil nil nil nil nil)
+;; '((safe-charsets ascii latin-iso8859-2)
+;; (mime-charset . iso-8859-2)))
;; (define-coding-system-alias 'iso-8859-2 'iso-latin-2)
;; (define-coding-system-alias 'latin-2 'iso-latin-2)
(defun setup-latin2-environment ()
"Set up multilingual environment (MULE) for European Latin-2 users."
(interactive)
- (setup-8-bit-environment "Latin-2" 'latin-iso8859-2 'iso-8859-2
- "latin-2-prefix"))
+ (set-language-environment "Latin-2"))
(set-language-info-alist
- "Latin-2" '((setup-function . (setup-latin2-environment
- . setup-european-environment-map))
- (charset . (ascii latin-iso8859-2))
- (coding-system . (iso-8859-2))
- (documentation . ("\
-These languages are supported with the Latin-2 (ISO-8859-2) character set:
+ "Latin-2" '((charset ascii latin-iso8859-2)
+ (coding-system iso-8859-2)
+ (coding-priority iso-8859-2)
+ (input-method . "latin-2-prefix")
+ (documentation . "\
+This language environment is a generic one for Latin-2 (ISO-8859-2)
+character set which supports the following languages:
Albanian, Czech, English, German, Hungarian, Polish, Romanian,
- Serbian, Croatian, Slovak, Slovene, and Swedish.
-" . describe-european-environment-map))
- ))
+ Serbian, Croatian, Slovak, Slovene, Sorbian (upper and lower),
+ and Swedish."))
+ '("European"))
(set-language-info-alist
- "Croatian" '((setup-function . (setup-latin2-environment
- . setup-european-environment-map))
- (charset . (ascii latin-iso8859-2))
+ "Croatian" '((charset ascii latin-iso8859-2)
+ (coding-system iso-8859-2)
+ (coding-priority iso-8859-2)
(tutorial . "TUTORIAL.hr")
- (coding-system . (iso-8859-2))
- (documentation . ("\
-These languages are supported with the Latin-2 (ISO-8859-2) character set:
+ (documentation . "\
+This language environment is a generic one for Latin-2 (ISO-8859-2)
+character set which supports the following languages:
Albanian, Czech, English, German, Hungarian, Polish, Romanian,
- Serbian, Croatian, Slovak, Slovene, and Swedish.
-" . describe-european-environment-map))
- ))
+ Serbian, Croatian, Slovak, Slovene, Sorbian (upper and lower),
+ and Swedish."))
+ '("European"))
(set-language-info-alist
- "Polish" '((setup-function . (setup-latin2-environment
- . setup-european-environment-map))
- (charset . (ascii latin-iso8859-2))
- (tutorial . "TUTORIAL.pl")
- (coding-system . (iso-8859-2))
- (documentation . ("\
-These languages are supported with the Latin-2 (ISO-8859-2) character set:
+ "Polish" '((charset ascii latin-iso8859-2)
+ (coding-system iso-8859-2)
+ (coding-priority iso-8859-2)
+ (tutorial . "TUTORIAL.pl")
+ (documentation . "\
+This language environment is a generic one for Latin-2 (ISO-8859-2)
+character set which supports the following languages:
Albanian, Czech, English, German, Hungarian, Polish, Romanian,
- Serbian, Croatian, Slovak, Slovene, and Swedish.
-" . describe-european-environment-map))
- ))
+ Serbian, Croatian, Slovak, Slovene, Sorbian (upper and lower),
+ and Swedish."))
+ '("European"))
;; Romanian support originally from romanian.el
(defun setup-romanian-environment ()
"Setup multilingual environment (MULE) for Romanian."
(interactive)
- (setup-8-bit-environment "Romanian" 'latin-iso8859-2 'iso-8859-2
- "romanian"))
+ (set-language-environment "Romanian"))
(set-language-info-alist
- "Romanian" '((setup-function . (setup-romanian-environment
- . setup-european-environment-map))
- (charset . (ascii latin-iso8859-2))
+ "Romanian" '((charset ascii latin-iso8859-2)
+ (coding-system iso-8859-2)
+ (coding-priority iso-8859-2)
+ (input-method . "latin-2-postfix")
(tutorial . "TUTORIAL.ro")
- (coding-system . (iso-8859-2))
- (documentation . ("\
-These languages are supported with the Latin-2 (ISO-8859-2) character set:
- Albanian, Czech, English, German, Hungarian, Polish, Romanian,
- Serbian, Croatian, Slovak, Slovene, and Swedish.
-" . describe-european-environment-map))
- ))
+ (sample-text . "Bun\e,Bc\e(B ziua, bine a\e,B~\e(Bi venit!")
+ (documentation . t))
+ '("European"))
+
+(provide 'romanian)
;; Czech support originally from czech.el
;; Author: Milan Zamazal <pdm@fi.muni.cz>
(defun setup-czech-environment ()
"Set up multilingual environment (MULE) for czech users."
(interactive)
- (setup-8-bit-environment "Czech" 'latin-iso8859-2 'iso-8859-2
- "czech"))
-
+ (set-language-environment "Czech"))
(set-language-info-alist
- "Czech"
- '((setup-function . (setup-czech-environment
- . setup-european-environment-map))
- (charset . (ascii latin-iso8859-2))
- (coding-system . (iso-8859-2))
- (tutorial . "TUTORIAL.cs")
- (documentation . ("\
-These languages are supported with the Latin-2 (ISO-8859-2) character set:
-Albanian, Czech, English, German, Hungarian, Polish, Romanian,
-Serbian, Croatian, Slovak, Slovene, and Swedish.
-" . describe-european-environment-map))
-))
+ "Czech" '((charset ascii latin-iso8859-2)
+ (coding-system iso-8859-2)
+ (coding-priority iso-8859-2)
+ (tutorial . "TUTORIAL.cs")
+ (sample-text . "P\e,Bx\e(Bejeme v\e,Ba\e(Bm hezk\e,B}\e(B den!")
+ (documentation . t))
+ '("European"))
+(provide 'czech)
\f
;; Latin-3 (ISO-8859-3)
;; (make-coding-system
;; 'iso-latin-3 2 ?3
;; "ISO 2022 based 8-bit encoding (MIME:ISO-8859-3)"
-;; '((ascii t) (latin-iso8859-3 t) nil nil
-;; nil ascii-eol ascii-cntl nil nil nil nil))
+;; '(ascii latin-iso8859-3 nil nil
+;; nil nil nil nil nil nil nil)
+;; '((safe-charsets ascii latin-iso8859-3)
+;; (mime-charset . iso-8859-3)))
;; (define-coding-system-alias 'iso-8859-3 'iso-latin-3)
;; (define-coding-system-alias 'latin-3 'iso-latin-3)
(defun setup-latin3-environment ()
"Set up multilingual environment (MULE) for European Latin-3 users."
(interactive)
- (setup-8-bit-environment "Latin-3" 'latin-iso8859-3 'iso-8859-3
- "latin-3-prefix"))
+ (set-language-environment "Latin-3"))
(set-language-info-alist
- "Latin-3" '((setup-function . (setup-latin3-environment
- . setup-european-environment-map))
- (charset . (ascii latin-iso8859-3))
- (coding-system . (iso-8859-3))
- (documentation . ("\
+ "Latin-3" '((charset ascii latin-iso8859-3)
+ (coding-system iso-8859-3)
+ (coding-priority iso-8859-3)
+ (input-method . "latin-3-prefix")
+ (documentation . "\
These languages are supported with the Latin-3 (ISO-8859-3) character set:
Afrikaans, Catalan, Dutch, English, Esperanto, French, Galician,
- German, Italian, Maltese, Spanish, and Turkish.
-" . describe-european-environment-map))
- ))
+ German, Italian, Maltese, Spanish, and Turkish."))
+ '("European"))
+
\f
;; Latin-4 (ISO-8859-4)
;; (make-coding-system
;; 'iso-latin-4 2 ?4
;; "ISO 2022 based 8-bit encoding (MIME:ISO-8859-4)"
-;; '((ascii t) (latin-iso8859-4 t) nil nil
-;; nil ascii-eol ascii-cntl nil nil nil nil))
+;; '(ascii latin-iso8859-4 nil nil
+;; nil nil nil nil nil nil nil)
+;; '((safe-charsets ascii latin-iso8859-4)
+;; (mime-charset . iso-8895-4)))
;; (define-coding-system-alias 'iso-8859-4 'iso-latin-4)
;; (define-coding-system-alias 'latin-4 'iso-latin-4)
(defun setup-latin4-environment ()
"Set up multilingual environment (MULE) for European Latin-4 users."
(interactive)
- (setup-8-bit-environment "Latin-4" 'latin-iso8859-4 'iso-8859-4
- "latin-4-prefix"))
+ (set-language-environment "Latin-4"))
(set-language-info-alist
- "Latin-4" '((setup-function . (setup-latin4-environment
- . setup-european-environment-map))
- (charset . (ascii latin-iso8859-4))
- (coding-system . (iso-8859-4))
- (documentation . ("\
+ "Latin-4" '((charset ascii latin-iso8859-4)
+ (coding-system iso-8859-4)
+ (coding-priority iso-8859-4)
+ (input-method . "latin-4-prefix")
+ (documentation . "\
These languages are supported with the Latin-4 (ISO-8859-4) character set:
Danish, English, Estonian, Finnish, German, Greenlandic, Lappish,
- Latvian, Lithuanian, and Norwegian.
-" . describe-european-environment-map))
- ))
+ Latvian, Lithuanian, and Norwegian."))
+ '("European"))
+
\f
;; Latin-5 (ISO-8859-9)
;; (make-coding-system
;; 'iso-latin-5 2 ?9
;; "ISO 2022 based 8-bit encoding (MIME:ISO-8859-9)"
-;; '((ascii t) (latin-iso8859-9 t) nil nil
-;; nil ascii-eol ascii-cntl nil nil nil nil))
+;; '(ascii latin-iso8859-9 nil nil
+;; nil nil nil nil nil nil nil)
+;; '((safe-charsets ascii latin-iso8859-9)
+;; (mime-charset . iso-8859-9)))
;; (define-coding-system-alias 'iso-8859-9 'iso-latin-5)
;; (define-coding-system-alias 'latin-5 'iso-latin-5)
(defun setup-latin5-environment ()
"Set up multilingual environment (MULE) for European Latin-5 users."
(interactive)
- (setup-8-bit-environment "Latin-5" 'latin-iso8859-9 'iso-8859-5
- "latin-5-prefix"))
+ (set-language-environment "Latin-5"))
+
+(set-language-info-alist
+ "Latin-5" '((charset ascii latin-iso8859-9)
+ (coding-system iso-8859-9)
+ (coding-priority iso-8859-9)
+ (input-method . "latin-5-prefix")
+ (documentation . "\
+These languages are supported with the Latin-5 (ISO-8859-9) character set."))
+ '("European"))
+
+\f
+(defun setup-german-environment ()
+ "Set up multilingual environment (MULE) for German users."
+ (interactive)
+ (set-language-environment "German"))
+
+(set-language-info-alist
+ "German" '((tutorial . "TUTORIAL.de")
+ (charset ascii latin-iso8859-1)
+ (coding-system iso-8859-1)
+ (coding-priority iso-8859-1)
+ (input-method . "german-postfix")
+ (sample-text . "\
+German (Deutsch Nord) Guten Tag
+German (Deutsch S\e,A|\e(Bd) Gr\e,A|_\e(B Gott")
+ (documentation . "\
+This language environment is almost the same as Latin-1,
+but default input method is set to \"german-postfix\"."))
+ '("European"))
+
+(defun setup-slovenian-environment ()
+ "Setup multilingual environment (MULE) for Slovenian."
+ (interactive)
+ (set-language-environment "Slovenian"))
(set-language-info-alist
- "Latin-5" '((setup-function . (setup-latin5-environment
- . setup-european-environment-map))
- (charset . (ascii latin-iso8859-9))
- (coding-system . (iso-8859-5))
- (documentation . ("\
-These languages are supported with the Latin-5 (ISO-8859-9) character set.
-" . describe-european-environment-map))
- ))
-
-;; (defun setup-european-environment ()
-;; "Setup multilingual environment (MULE) for European languages users.
-;; It actually reset MULE to the default status, and
-;; set quail-latin-1 as the default input method to be selected.
-;; See also the documentation of setup-english-environment."
-;; (setup-english-environment)
-;; (setq default-input-method '("European" . "quail-latin-1")))
-
-;; (defun describe-european-support ()
-;; "Describe how Emacs support European languages."
-;; (interactive)
-;; (describe-language-support-internal "European"))
-
-;; (set-language-info-alist
-;; "European" '((setup-function . setup-european-environment)
-;; (describe-function . describe-european-support)
-;; (charset . (ascii latin-iso8859-1 latin-iso8859-2
-;; latin-iso8859-3 latin-iso8859-4 latin-iso8859-9))
-;; (coding-system . (iso-8859-1 iso-8859-2 iso-8859-3
-;; iso-8859-4 iso-8859-9))
-;; (sample-text
-;; . "Hello, Hej, Tere, Hei, Bonjour, Gr\e,A|_\e(B Gott, Ciao, \e,A!\e(BHola!")
-;; (documentation . "\
-;; Almost all of European languages are supported by the character sets and
-;; coding systems listed below.
-;; To input them, LEIM (Libraries for Emacs Input Methods) should have been
-;; installed.")
-;; ))
+ "Slovenian" '((charset . (ascii latin-iso8859-2))
+ (coding-system . (iso-8859-2))
+ (coding-priority . (iso-8859-2))
+ (input-method . "latin-2-postfix")
+ (tutorial . "TUTORIAL.sl")
+ (sample-text . "\e,B.\e(Belimo vam uspe\e,B9\e(Ben dan!")
+ (documentation . t))
+ '("European"))
+
+(provide 'slovenian)
;;; european.el ends here
(loop for c from 54 to 126
do (modify-syntax-entry (make-char 'greek-iso8859-7 c) "w"))
(modify-syntax-entry (make-char 'greek-iso8859-7 32) "w") ; no-break space
-(modify-syntax-entry ?\e,F7\e(B ".")
-(modify-syntax-entry ?\e,F;\e(B ".")
-(modify-syntax-entry ?\e,F=\e(B ".")
+(modify-syntax-entry ?\e.F\eN7 ".")
+(modify-syntax-entry ?\eN; ".")
+(modify-syntax-entry ?\eN= ".")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; GREEK
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; (define-language-environment 'greek
-;; "Greek"
-;; (lambda ()
-;; (set-coding-category-system 'iso-8-designate 'iso-8859-7)
-;; (set-coding-priority-list '(iso-8-designate iso-8-1))
-;; (set-default-buffer-file-coding-system 'iso-8859-7)
-;; (setq terminal-coding-system 'iso-8859-7)
-;; (setq keyboard-coding-system 'iso-8859-7)
-;; ;; (setq-default quail-current-package
-;; ;; (assoc "greek" quail-package-alist))
-;; ))
\f
;; (make-coding-system
-;; 'iso-8859-7 2 ?7 "MIME ISO-8859-7"
-;; '((ascii t) (greek-iso8859-7 t) nil nil
-;; nil ascii-eol ascii-cntl nil nil nil nil))
+;; 'greek-iso-8bit 2 ?7
+;; "ISO 2022 based 8-bit encoding for Greek (MIME:ISO-8859-7)"
+;; '(ascii greek-iso8859-7 nil nil
+;; nil nil nil nil nil nil nil)
+;; '((safe-charsets ascii greek-iso8859-7)
+;; (mime-charset . iso-8859-7)))
+
+;; (define-coding-system-alias 'iso-8859-7 'greek-iso-8bit)
(make-coding-system
'iso-8859-7 'iso2022 "MIME ISO-8859-7"
(defun setup-greek-environment ()
"Setup multilingual environment (MULE) for Greek."
(interactive)
- (setup-8-bit-environment "Greek" 'greek-iso8859-7 'iso-8859-7 "greek")
- )
+ (set-language-environment "Greek"))
(set-language-info-alist
- "Greek" '((setup-function . setup-greek-environment)
- (charset . (greek-iso8859-7))
- (coding-system . (iso-8859-7))
- (sample-text . "Greek (\e,FGkk]mija\e(B) \e,FCei\\e(B \e,Fsar\e(B")
+ "Greek" '((charset greek-iso8859-7)
+ (coding-system iso-8859-7)
+ (coding-priority iso-8859-7)
+ (input-method . "greek")
+ (sample-text . "Greek (\eNG\eNk\eNk\eN]\eNm\eNi\eNj\eNa) \eNC\eNe\eNi\eN\ \eNs\eNa\eNr")
(documentation . t)))
;;; greek.el ends here
-;;; hebrew.el --- Support for Hebrew
+;;; hebrew.el --- Support for Hebrew -*- coding: iso-2022-7bit; -*-
;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
;; Licensed to the Free Software Foundation.
;; (make-coding-system
;; 'hebrew-iso-8bit 2 ?8
;; "ISO 2022 based 8-bit encoding for Hebrew (MIME:ISO-8859-8)"
-;; '((ascii t) (hebrew-iso8859-8 t) nil nil
-;; nil ascii-eol ascii-cntl nil nil nil nil nil t))
+;; '(ascii hebrew-iso8859-8 nil nil
+;; nil ascii-eol ascii-cntl nil nil nil nil nil t)
+;; '((safe-charsets ascii hebrew-iso8859-8)
+;; (mime-charset . iso-8859-8)))
;; (define-coding-system-alias 'iso-8859-8 'hebrew-iso-8bit)
charset-g3 t
no-iso6429 t
mnemonic "MIME/Hbrw"
-))
+ ))
(make-coding-system
'ctext-hebrew 'iso2022
"Setup multilingual environment (MULE) for Hebrew.
But, please note that right-to-left writing is not yet supported."
(interactive)
- (setup-8-bit-environment "Hebrew" 'hebrew-iso8859-8 'iso-8859-8
- "hebrew")
- (set-coding-category-system 'iso-8-designate 'iso-8859-8)
- (set-coding-priority-list
- '(iso-8-designate
- iso-8-1
- iso-7
- iso-8-2
- iso-lock-shift
- no-conversion
- shift-jis
- big5))
- )
+ (set-language-environment "Hebrew"))
(set-language-info-alist
- "Hebrew" '((setup-function . setup-hebrew-environment)
- (describe-function . describe-hebrew-support)
- (charset . (hebrew-iso8859-8))
- (coding-system . (iso-8859-8))
- (sample-text . "Hebrew \e,Hylem\e(B")
+ "Hebrew" '((charset hebrew-iso8859-8)
+ (coding-system iso-8859-8)
+ (coding-priority iso-8859-8)
+ (input-method . "hebrew")
+ (sample-text . "Hebrew \e[2]\e,Hylem\e[0]\e(B")
(documentation . "Right-to-left writing is not yet supported.")
))
-;;; japanese.el --- Japanese support
+;;; japanese.el --- Japanese support -*- coding: iso-2022-7bit; -*-
;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
;; Licensed to the Free Software Foundation.
;; 'iso-2022-jp 2 ?J
;; "ISO 2022 based 7bit encoding for Japanese (MIME:ISO-2022-JP)"
;; '((ascii japanese-jisx0208-1978 japanese-jisx0208
-;; latin-jisx0201 japanese-jisx0212 katakana-jisx0201 t) nil nil nil
-;; short ascii-eol ascii-cntl seven))
-
-;; (define-coding-system-alias 'junet 'iso-2022-jp)
+;; latin-jisx0201 japanese-jisx0212 katakana-jisx0201) nil nil nil
+;; short ascii-eol ascii-cntl seven)
+;; '((safe-charsets ascii japanese-jisx0208-1978 japanese-jisx0208
+;; latin-jisx0201 japanese-jisx0212 katakana-jisx0201)
+;; (mime-charset . iso-2022-jp)))
(make-coding-system
'iso-2022-jp 'iso2022
mnemonic "MULE/7bit"
))
-(copy-coding-system 'iso-2022-jp 'junet)
+(define-coding-system-alias 'junet 'iso-2022-jp)
+
+;; (make-coding-system
+;; 'iso-2022-jp-2 2 ?J
+;; "ISO 2022 based 7bit encoding for CJK, Latin-1, and Greek (MIME:ISO-2022-JP-2)"
+;; '((ascii japanese-jisx0208-1978 japanese-jisx0208
+;; latin-jisx0201 japanese-jisx0212 katakana-jisx0201
+;; chinese-gb2312 korean-ksc5601) nil
+;; (nil latin-iso8859-1 greek-iso8859-7) nil
+;; short ascii-eol ascii-cntl seven nil single-shift)
+;; '((safe-charsets ascii japanese-jisx0208-1978 japanese-jisx0208
+;; latin-jisx0201 japanese-jisx0212 katakana-jisx0201
+;; chinese-gb2312 korean-ksc5601
+;; latin-iso8859-1 greek-iso8859-7)
+;; (mime-charset . iso-2022-jp-2)))
;; (make-coding-system
-;; 'shift_jis 1 ?S
-;; "Coding-system of Shift-JIS used in Japan." t)
+;; 'japanese-shift-jis 1 ?S
+;; "Shift-JIS 8-bit encoding for Japanese (MIME:SHIFT_JIS)"
+;; nil
+;; '((safe-charsets ascii japanese-jisx0208 japanese-jisx0208-1978
+;; latin-jisx0201 katakana-jisx0201)
+;; (mime-charset . shift_jis)
+;; (charset-origin-alist (japanese-jisx0208 "SJIS" encode-sjis-char)
+;; (katakana-jisx0201 "SJIS" encode-sjis-char))))
(make-coding-system
'shift_jis 'shift-jis
"Coding-system of Shift-JIS used in Japan."
'(mnemonic "Ja/SJIS"))
-;;(define-coding-system-alias 'shift_jis 'sjis)
-
-(copy-coding-system 'shift_jis 'sjis)
+;; (define-coding-system-alias 'shift_jis 'japanese-shift-jis)
+;; (define-coding-system-alias 'sjis 'japanese-shift-jis)
;; (make-coding-system
-;; 'iso-2022-jp-1978-irv 2 ?J
-;; "Coding-system used for old jis terminal."
-;; '((ascii t) nil nil nil
-;; short ascii-eol ascii-cntl seven nil nil use-roman use-oldjis))
+;; 'japanese-iso-7bit-1978-irv 2 ?j
+;; "ISO 2022 based 7-bit encoding for Japanese JISX0208-1978 and JISX0201-Roman"
+;; '((ascii japanese-jisx0208-1978 japanese-jisx0208
+;; latin-jisx0201 japanese-jisx0212 katakana-jisx0201 t) nil nil nil
+;; short ascii-eol ascii-cntl seven nil nil use-roman use-oldjis)
+;; '(ascii japanese-jisx0208-1978 japanese-jisx0208 latin-jisx0201))
(make-coding-system
'iso-2022-jp-1978-irv 'iso2022
mnemonic "Ja-78/7bit"
))
-;;(define-coding-system-alias 'iso-2022-jp-1978-irv 'old-jis)
+;; (define-coding-system-alias 'iso-2022-jp-1978-irv 'japanese-iso-7bit-1978-irv)
+;; (define-coding-system-alias 'old-jis 'japanese-iso-7bit-1978-irv)
-(copy-coding-system 'iso-2022-jp-1978-irv 'old-jis)
+(define-coding-system-alias 'old-jis 'iso-2022-jp-1978-irv)
;; (make-coding-system
-;; 'euc-japan-1990 2 ?E
-;; "Coding-system of Japanese EUC (Extended Unix Code)."
+;; 'japanese-iso-8bit 2 ?E
+;; "ISO 2022 based EUC encoding for Japanese (MIME:EUC-JP)"
;; '(ascii japanese-jisx0208 katakana-jisx0201 japanese-jisx0212
-;; short ascii-eol ascii-cntl nil nil single-shift))
+;; short ascii-eol ascii-cntl nil nil single-shift)
+;; '((safe-charsets ascii latin-jisx0201 japanese-jisx0208 japanese-jisx0208-1978
+;; katakana-jisx0201 japanese-jisx0212)
+;; (mime-charset . euc-jp)))
(make-coding-system
'euc-jp 'iso2022
mnemonic "Ja/EUC"
))
-;;(define-coding-system-alias 'euc-japan-1990 'euc-japan)
+;; (define-coding-system-alias 'euc-japan-1990 'japanese-iso-8bit)
+;; (define-coding-system-alias 'euc-japan 'japanese-iso-8bit)
+;; (define-coding-system-alias 'euc-jp 'japanese-iso-8bit)
-(copy-coding-system 'euc-jp 'euc-japan) ; only for w3
-(copy-coding-system 'euc-jp 'japanese-euc)
+(define-coding-system-alias 'euc-japan 'euc-jp) ; only for w3
+(define-coding-system-alias 'japanese-euc 'euc-jp)
(set-language-info-alist
- "Japanese" '((setup-function . setup-japanese-environment)
+ "Japanese" '((setup-function . setup-japanese-environment-internal)
+ (exit-function . exit-japanese-environment)
(tutorial . "TUTORIAL.ja")
- (charset . (japanese-jisx0208 japanese-jisx0208-1978
- japanese-jisx0212 latin-jisx0201
- katakana-jisx0201))
- (coding-system . (iso-2022-jp euc-jp
- shift_jis iso-2022-jp-1978-irv))
- (sample-text . "Japanese (\e$BF|K\8l\e(B) \e$B$3$s$K$A$O\e(B, \e(I:]FAJ\e(B")
+ (charset japanese-jisx0208 japanese-jisx0208-1978
+ japanese-jisx0212 latin-jisx0201 katakana-jisx0201)
+ (coding-system iso-2022-jp euc-jp
+ shift_jis iso-2022-jp-2)
+ (coding-priority iso-2022-jp euc-jp
+ shift_jis iso-2022-jp-2)
+ (input-method . "japanese")
+ (features japan-util)
+ (sample-text . "Japanese (\e$BF|K\8l\e(B) \e$B$3$s$K$A$O\e(B, \e(I:]FAJ\e(B")
(documentation . t)))
;;; japanese.el ends here
-;;; korean.el --- Support for Korean
+;;; korean.el --- Support for Korean -*- coding: iso-2022-7bit; -*-
;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
;; Licensed to the Free Software Foundation.
(setq-default its:*current-map* (its:get-mode-map "hangul"))))
\f
;; (make-coding-system
-;; 'euc-kr 2 ?K
-;; "Coding-system of Korean EUC (Extended Unix Code)."
-;; '((ascii t) korean-ksc5601 nil nil
-;; nil ascii-eol ascii-cntl))
+;; 'korean-iso-8bit 2 ?K
+;; "ISO 2022 based EUC encoding for Korean KSC5601 (MIME:EUC-KR)"
+;; '(ascii korean-ksc5601 nil nil
+;; nil ascii-eol ascii-cntl)
+;; '((safe-charsets ascii korean-ksc5601)
+;; (mime-charset . euc-kr)))
(make-coding-system
'euc-kr 'iso2022
;;(define-coding-system-alias 'euc-kr 'euc-korea)
-(copy-coding-system 'euc-kr 'korean-euc)
+(define-coding-system-alias 'korean-euc 'euc-kr)
;; (make-coding-system
;; 'iso-2022-kr 2 ?k
-;; "MIME ISO-2022-KR"
+;; "ISO 2022 based 7-bit encoding for Korean KSC5601 (MIME:ISO-2022-KR)."
;; '(ascii (nil korean-ksc5601) nil nil
;; nil ascii-eol ascii-cntl seven locking-shift nil nil nil nil nil
-;; designation-bol))
+;; designation-bol)
+;; '((safe-charsets ascii korean-ksc5601)
+;; (mime-charset . iso-2022-kr)))
(make-coding-system
'iso-2022-kr 'iso2022
mnemonic "Ko/7bit"
eol-type lf))
-(defun setup-korean-environment ()
- "Setup multilingual environment (MULE) for Korean."
- (interactive)
- (setup-english-environment)
- ;; (setq coding-category-iso-8-2 'euc-kr)
- (set-coding-category-system 'iso-8-2 'euc-kr)
-
- ;; (set-coding-priority
- ;; '(coding-category-iso-7
- ;; coding-category-iso-8-2
- ;; coding-category-iso-8-1))
- (set-coding-priority-list
- '(iso-8-2
- iso-7
- iso-8-1
- iso-8-designate
- iso-lock-shift
- no-conversion
- shift-jis
- big5))
-
- (set-default-coding-systems 'euc-kr)
-
- ;; (when (eq 'x (device-type (selected-device)))
- ;; (x-use-halfwidth-roman-font 'korean-ksc5601 "ksc5636"))
-
- ;; EGG specific setup 97.02.05 jhod
- (when (featurep 'egg)
- (when (not (featurep 'egg-kor))
- (provide 'egg-kor)
- (load "its-hangul")
- (setq its:*standard-modes*
- (cons (its:get-mode-map "hangul") its:*standard-modes*)))
- (setq-default its:*current-map* (its:get-mode-map "hangul")))
-
- (setq default-input-method "korean-hangul"))
+;; (define-coding-system-alias 'korean-iso-7bit-lock 'iso-2022-kr)
(set-language-info-alist
- "Korean" '((setup-function . setup-korean-environment)
+ "Korean" '((setup-function . setup-korean-environment-internal)
+ (exit-function . exit-korean-environment)
(tutorial . "TUTORIAL.ko")
- (charset . (korean-ksc5601))
- (coding-system . (iso-2022-kr euc-kr))
+ (charset korean-ksc5601)
+ (coding-system euc-kr iso-2022-kr)
+ (coding-priority euc-kr iso-2022-kr)
+ (input-method . "korean-hangul")
+ (features korea-util)
(sample-text . "Hangul (\e$(CGQ1[\e(B) \e$(C>H3gGO<<?d\e(B, \e$(C>H3gGO=J4O1n\e(B")
- (documentation . t)))
+ (documentation . "\
+The following key bindings are available while using Korean input methods:
+ Shift-SPC: toggle-korean-input-mthod
+ Control-F9: quail-hangul-switch-symbol-ksc
+ F9: quail-hangul-switch-hanja")
+ ))
;;; korean.el ends here
;;; misc-lang.el --- support for miscellaneous languages (characters)
-;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
+;; Copyright (C) 1995,1999 Electrotechnical Laboratory, JAPAN.
;; Licensed to the Free Software Foundation.
;; Copyright (C) 1997 MORIOKA Tomohiko
(defun setup-ipa-environment ()
"Setup multilingual environment (MULE) for IPA."
(interactive)
- (setup-english-environment))
+ (set-language-environment "IPA"))
(set-language-info-alist
- "IPA" '((setup-function . setup-ipa-environment)
- (charset . (ipa))
+ "IPA" '((charset . (ipa))
+ (coding-priority iso-2022-7bit)
+ (coding-system iso-2022-7bit)
+ (input-method . "ipa")
(documentation . "\
IPA is International Phonetic Alphabet for English, French, German
and Italian.")))
;; (read REG ...)
;; | (read-if (REG OPERATOR ARG) CCL_BLOCK CCL_BLOCK)
;; | (read-branch REG CCL_BLOCK [CCL_BLOCK ...])
+;; | (read-multibyte-character REG {charset} REG {code-point})
;; WRITE :=
;; (write REG ...)
;; | (write EXPRESSION)
;; | (write integer) | (write string) | (write REG ARRAY)
;; | string
+;; | (write-multibyte-character REG(charset) REG(codepoint))
;; CALL := (call ccl-program-name)
;; END := (end)
;;
;; | < | > | == | <= | >= | != | de-sjis | en-sjis
;; ASSIGNMENT_OPERATOR :=
;; += | -= | *= | /= | %= | &= | '|=' | ^= | <<= | >>=
-;; ARRAY := '[' interger ... ']'
+;; ARRAY := '[' integer ... ']'
;;; Code:
(defconst ccl-command-table
[if branch loop break repeat write-repeat write-read-repeat
- read read-if read-branch write call end]
- "*Vector of CCL commands (symbols).")
+ read read-if read-branch write call end
+ read-multibyte-character write-multibyte-character]
+ "Vector of CCL commands (symbols).")
;; Put a property to each symbol of CCL commands for the compiler.
(let (op (i 0) (len (length ccl-command-table)))
jump-cond-expr-register
read-jump-cond-expr-const
read-jump-cond-expr-register
+ ex-cmd
]
- "*Vector of CCL compiled codes (symbols).")
+ "Vector of CCL compiled codes (symbols).")
+
+(defconst ccl-extended-code-table
+ [read-multibyte-character
+ write-multibyte-character
+ translate-character
+ translate-character-const-tbl
+ nil nil nil nil nil nil nil nil nil nil nil nil ; 0x04-0x0f
+ iterate-multiple-map
+ map-multiple
+ map-single
+ ]
+ "Vector of CCL extended compiled codes (symbols).")
;; Put a property to each symbol of CCL codes for the disassembler.
(let (code (i 0) (len (length ccl-code-table)))
(put code 'ccl-dump-function (intern (format "ccl-dump-%s" code)))
(setq i (1+ i))))
+(let (code (i 0) (len (length ccl-extended-code-table)))
+ (while (< i len)
+ (setq code (aref ccl-extended-code-table i))
+ (if code
+ (progn
+ (put code 'ccl-ex-code i)
+ (put code 'ccl-dump-function (intern (format "ccl-dump-%s" code)))))
+ (setq i (1+ i))))
+
(defconst ccl-jump-code-list
'(jump jump-cond write-register-jump write-register-read-jump
write-const-jump write-const-read-jump write-string-jump
(defconst ccl-register-table
[r0 r1 r2 r3 r4 r5 r6 r7]
- "*Vector of CCL registers (symbols).")
+ "Vector of CCL registers (symbols).")
;; Put a property to indicate register number to each symbol of CCL.
;; registers.
(defconst ccl-arith-table
[+ - * / % & | ^ << >> <8 >8 // nil nil nil
< > == <= >= != de-sjis en-sjis]
- "*Vector of CCL arithmetic/logical operators (symbols).")
+ "Vector of CCL arithmetic/logical operators (symbols).")
;; Put a property to each symbol of CCL operators for the compiler.
(let (arith (i 0) (len (length ccl-arith-table)))
(defconst ccl-assign-arith-table
[+= -= *= /= %= &= |= ^= <<= >>= <8= >8= //=]
- "*Vector of CCL assignment operators (symbols).")
+ "Vector of CCL assignment operators (symbols).")
;; Put a property to each symbol of CCL assignment operators for the compiler.
(let (arith (i 0) (len (length ccl-assign-arith-table)))
(aset ccl-program-vector ccl-current-ic code)
(setq ccl-current-ic (1+ ccl-current-ic))))
+;; extended ccl command format
+;; |- 14-bit -|- 3-bit --|- 3-bit --|- 3-bit --|- 5-bit -|
+;; |- EX-OP --|-- REG3 --|-- REG2 --|-- REG ---|-- OP ---|
+(defun ccl-embed-extended-command (ex-op reg reg2 reg3)
+ (let ((data (logior (ash (get ex-op 'ccl-ex-code) 3)
+ (if (symbolp reg3)
+ (get reg3 'ccl-register-number)
+ 0))))
+ (ccl-embed-code 'ex-cmd reg data reg2)))
+
;; Just advance `ccl-current-ic' by INC.
(defun ccl-increment-ic (inc)
(setq ccl-current-ic (+ ccl-current-ic inc)))
(let ((unconditional-jump (ccl-compile-1 true-cmds)))
(if (null false-cmds)
;; This is the place to jump to if condition is false.
- (ccl-embed-current-address jump-cond-address)
+ (progn
+ (ccl-embed-current-address jump-cond-address)
+ (setq unconditional-jump nil))
(let (end-true-part-address)
(if (not unconditional-jump)
(progn
(ccl-embed-code 'end 0 0)
t)
+;; Compile read-multibyte-character
+(defun ccl-compile-read-multibyte-character (cmd)
+ (if (/= (length cmd) 3)
+ (error "CCL: Invalid number of arguments: %s" cmd))
+ (let ((RRR (nth 1 cmd))
+ (rrr (nth 2 cmd)))
+ (ccl-check-register rrr cmd)
+ (ccl-check-register RRR cmd)
+ (ccl-embed-extended-command 'read-multibyte-character rrr RRR 0))
+ nil)
+
+;; Compile write-multibyte-character
+(defun ccl-compile-write-multibyte-character (cmd)
+ (if (/= (length cmd) 3)
+ (error "CCL: Invalid number of arguments: %s" cmd))
+ (let ((RRR (nth 1 cmd))
+ (rrr (nth 2 cmd)))
+ (ccl-check-register rrr cmd)
+ (ccl-check-register RRR cmd)
+ (ccl-embed-extended-command 'write-multibyte-character rrr RRR 0))
+ nil)
+
+;; Compile translate-character
+;; (defun ccl-compile-translate-character (cmd)
+;; (if (/= (length cmd) 4)
+;; (error "CCL: Invalid number of arguments: %s" cmd))
+;; (let ((Rrr (nth 1 cmd))
+;; (RRR (nth 2 cmd))
+;; (rrr (nth 3 cmd)))
+;; (ccl-check-register rrr cmd)
+;; (ccl-check-register RRR cmd)
+;; (cond ((and (symbolp Rrr) (not (get Rrr 'ccl-register-number)))
+;; (if (not (get Rrr 'translation-table))
+;; (error "CCL: Invalid translation table %s in %s" Rrr cmd))
+;; (ccl-embed-extended-command 'translate-character-const-tbl
+;; rrr RRR 0)
+;; (ccl-embed-data Rrr))
+;; (t
+;; (ccl-check-register Rrr cmd)
+;; (ccl-embed-extended-command 'translate-character rrr RRR Rrr))))
+;; nil)
+
+;; (defun ccl-compile-iterate-multiple-map (cmd)
+;; (ccl-compile-multiple-map-function 'iterate-multiple-map cmd)
+;; nil)
+
+;; (defun ccl-compile-map-multiple (cmd)
+;; (if (/= (length cmd) 4)
+;; (error "CCL: Invalid number of arguments: %s" cmd))
+;; (let ((func '(lambda (arg mp)
+;; (let ((len 0) result add)
+;; (while arg
+;; (if (consp (car arg))
+;; (setq add (funcall func (car arg) t)
+;; result (append result add)
+;; add (+ (-(car add)) 1))
+;; (setq result
+;; (append result
+;; (list (car arg)))
+;; add 1))
+;; (setq arg (cdr arg)
+;; len (+ len add)))
+;; (if mp
+;; (cons (- len) result)
+;; result))))
+;; arg)
+;; (setq arg (append (list (nth 0 cmd) (nth 1 cmd) (nth 2 cmd))
+;; (funcall func (nth 3 cmd) nil)))
+;; (ccl-compile-multiple-map-function 'map-multiple arg))
+;; nil)
+
+;; (defun ccl-compile-map-single (cmd)
+;; (if (/= (length cmd) 4)
+;; (error "CCL: Invalid number of arguments: %s" cmd))
+;; (let ((RRR (nth 1 cmd))
+;; (rrr (nth 2 cmd))
+;; (map (nth 3 cmd))
+;; id)
+;; (ccl-check-register rrr cmd)
+;; (ccl-check-register RRR cmd)
+;; (ccl-embed-extended-command 'map-single rrr RRR 0)
+;; (cond ((symbolp map)
+;; (if (get map 'code-conversion-map)
+;; (ccl-embed-data map)
+;; (error "CCL: Invalid map: %s" map)))
+;; (t
+;; (error "CCL: Invalid type of arguments: %s" cmd))))
+;; nil)
+
+;; (defun ccl-compile-multiple-map-function (command cmd)
+;; (if (< (length cmd) 4)
+;; (error "CCL: Invalid number of arguments: %s" cmd))
+;; (let ((RRR (nth 1 cmd))
+;; (rrr (nth 2 cmd))
+;; (args (nthcdr 3 cmd))
+;; map)
+;; (ccl-check-register rrr cmd)
+;; (ccl-check-register RRR cmd)
+;; (ccl-embed-extended-command command rrr RRR 0)
+;; (ccl-embed-data (length args))
+;; (while args
+;; (setq map (car args))
+;; (cond ((symbolp map)
+;; (if (get map 'code-conversion-map)
+;; (ccl-embed-data map)
+;; (error "CCL: Invalid map: %s" map)))
+;; ((numberp map)
+;; (ccl-embed-data map))
+;; (t
+;; (error "CCL: Invalid type of arguments: %s" cmd)))
+;; (setq args (cdr args)))))
+
+\f
;;; CCL dump staffs
;; To avoid byte-compiler warning.
(insert "\n"))
(setq i (1+ i)))))
+(defun ccl-dump-ex-cmd (rrr cc)
+ (let* ((RRR (logand cc ?\x7))
+ (Rrr (logand (ash cc -3) ?\x7))
+ (ex-op (aref ccl-extended-code-table (logand (ash cc -6) ?\x3fff))))
+ (insert (format "<%s> " ex-op))
+ (funcall (get ex-op 'ccl-dump-function) rrr RRR Rrr)))
+
+(defun ccl-dump-read-multibyte-character (rrr RRR Rrr)
+ (insert (format "read-multibyte-character r%d r%d\n" RRR rrr)))
+
+(defun ccl-dump-write-multibyte-character (rrr RRR Rrr)
+ (insert (format "write-multibyte-character r%d r%d\n" RRR rrr)))
+
+;; (defun ccl-dump-translate-character (rrr RRR Rrr)
+;; (insert (format "translation table(r%d) r%d r%d\n" Rrr RRR rrr)))
+
+;; (defun ccl-dump-translate-character-const-tbl (rrr RRR Rrr)
+;; (let ((tbl (ccl-get-next-code)))
+;; (insert (format "translation table(%S) r%d r%d\n" tbl RRR rrr))))
+
+;; (defun ccl-dump-iterate-multiple-map (rrr RRR Rrr)
+;; (let ((notbl (ccl-get-next-code))
+;; (i 0) id)
+;; (insert (format "iterate-multiple-map r%d r%d\n" RRR rrr))
+;; (insert (format "\tnumber of maps is %d .\n\t [" notbl))
+;; (while (< i notbl)
+;; (setq id (ccl-get-next-code))
+;; (insert (format "%S" id))
+;; (setq i (1+ i)))
+;; (insert "]\n")))
+
+;; (defun ccl-dump-map-multiple (rrr RRR Rrr)
+;; (let ((notbl (ccl-get-next-code))
+;; (i 0) id)
+;; (insert (format "map-multiple r%d r%d\n" RRR rrr))
+;; (insert (format "\tnumber of maps and separators is %d\n\t [" notbl))
+;; (while (< i notbl)
+;; (setq id (ccl-get-next-code))
+;; (if (= id -1)
+;; (insert "]\n\t [")
+;; (insert (format "%S " id)))
+;; (setq i (1+ i)))
+;; (insert "]\n")))
+
+;; (defun ccl-dump-map-single (rrr RRR Rrr)
+;; (let ((id (ccl-get-next-code)))
+;; (insert (format "map-single r%d r%d map(%S)\n" RRR rrr id))))
+
+\f
;; CCL emulation staffs
;; Not yet implemented.
\f
+;; Auto-loaded functions.
+
;;;###autoload
-(defmacro declare-ccl-program (name)
+(defmacro declare-ccl-program (name &optional vector)
"Declare NAME as a name of CCL program.
To compile a CCL program which calls another CCL program not yet
-defined, it must be declared as a CCL program in advance."
- `(put ',name 'ccl-program-idx (register-ccl-program ',name nil)))
+defined, it must be declared as a CCL program in advance.
+Optional arg VECTOR is a compiled CCL code of the CCL program."
+ `(put ',name 'ccl-program-idx (register-ccl-program ',name ,vector)))
;;;###autoload
(defmacro define-ccl-program (name ccl-program &optional doc)
nil))
;;;###autoload
+(defmacro check-ccl-program (ccl-program &optional name)
+ "Check validity of CCL-PROGRAM.
+If CCL-PROGRAM is a symbol denoting a valid CCL program, return
+CCL-PROGRAM, else return nil.
+If CCL-PROGRAM is a vector and optional arg NAME (symbol) is supplied,
+register CCL-PROGRAM by name NAME, and return NAME."
+ `(let ((result ,ccl-program))
+ (cond ((symbolp ,ccl-program)
+ (or (numberp (get ,ccl-program 'ccl-program-idx))
+ (setq result nil)))
+ ((vectorp ,ccl-program)
+ (setq result ,name)
+ (register-ccl-program result ,ccl-program))
+ (t
+ (setq result nil)))
+ result))
+
+;;;###autoload
(defun ccl-execute-with-args (ccl-prog &rest args)
"Execute CCL-PROGRAM with registers initialized by the remaining args.
-The return value is a vector of resulting CCL registeres."
+The return value is a vector of resulting CCL registers."
(let ((reg (make-vector 8 0))
(i 0))
(while (and args (< i 8))
;;; mule-cmds.el --- Commands for multilingual environment
-;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
+;; Copyright (C) 1995,1999 Electrotechnical Laboratory, JAPAN.
;; Licensed to the Free Software Foundation.
;; Copyright (C) 1997 MORIOKA Tomohiko
;;; MULE related key bindings and menus.
-(defvar mule-keymap (make-sparse-keymap "MULE")
- "Keymap for MULE (Multilingual environment) specific commands.")
+(defvar mule-keymap (make-sparse-keymap "Mule")
+ "Keymap for Mule (Multilingual environment) specific commands.")
;; Keep "C-x C-m ..." for mule specific commands.
(define-key ctl-x-map "\C-m" mule-keymap)
(define-key mule-keymap "t" 'set-terminal-coding-system)
(define-key mule-keymap "k" 'set-keyboard-coding-system)
(define-key mule-keymap "p" 'set-buffer-process-coding-system)
-(define-key mule-keymap "\C-\\" 'select-input-method)
+(define-key mule-keymap "x" 'set-selection-coding-system)
+(define-key mule-keymap "X" 'set-next-selection-coding-system)
+(define-key mule-keymap "\C-\\" 'set-input-method)
(define-key mule-keymap "c" 'universal-coding-system-argument)
;;(define-key mule-keymap "c" 'list-coding-system-briefly) ; XEmacs
-(define-key mule-keymap "C" 'list-coding-system) ; XEmacs
+(define-key mule-keymap "C" 'describe-coding-system) ; XEmacs
(define-key mule-keymap "r" 'toggle-display-direction) ; XEmacs
(define-key mule-keymap "l" 'set-language-environment)
;; but it won't be used that frequently.
(define-key global-map "\C-\\" 'toggle-input-method)
+;;; This is no good because people often type Shift-SPC
+;;; meaning to type SPC. -- rms.
+;;; ;; Here's an alternative key binding for X users (Shift-SPACE).
+;;; (define-key global-map [?\S- ] 'toggle-input-method)
+
+(defun coding-system-change-eol-conversion (coding-system eol-type)
+ "Return a coding system which differs from CODING-SYSTEM in eol conversion.
+The returned coding system converts end-of-line by EOL-TYPE
+but text as the same way as CODING-SYSTEM.
+EOL-TYPE should be `lf', `crlf', `cr' or nil.
+If EOL-TYPE is nil, the returned coding system detects
+how end-of-line is formatted automatically while decoding.
+
+EOL-TYPE can be specified by an symbol `unix', `dos' or `mac'.
+They means `lf', `crlf', and `cr' respectively."
+ (if (symbolp eol-type)
+ (setq eol-type (cond ((or (eq eol-type 'unix)
+ (eq eol-type 'lf))
+ 'eol-lf)
+ ((or (eq eol-type 'dos)
+ (eq eol-type 'crlf))
+ 'eol-crlf)
+ ((or (eq eol-type 'mac)
+ (eq eol-type 'cr))
+ 'eol-cr)
+ (t eol-type))))
+ (let ((orig-eol-type (coding-system-eol-type coding-system)))
+ (if (null orig-eol-type)
+ (if (not eol-type)
+ coding-system
+ (coding-system-property coding-system eol-type))
+ (let ((base (coding-system-base coding-system)))
+ (if (not eol-type)
+ base
+ (if (= eol-type orig-eol-type)
+ coding-system
+ (setq orig-eol-type (coding-system-eol-type base))
+ (if (null orig-eol-type)
+ (coding-system-property base eol-type))))))))
+
+;; (defun coding-system-change-text-conversion (coding-system coding)
+;; "Return a coding system which differs from CODING-SYSTEM in text conversion.
+;; The returned coding system converts text by CODING
+;; but end-of-line as the same way as CODING-SYSTEM.
+;; If CODING is nil, the returned coding system detects
+;; how text is formatted automatically while decoding."
+;; (if (not coding)
+;; (coding-system-base coding-system)
+;; (let ((eol-type (coding-system-eol-type coding-system)))
+;; (coding-system-change-eol-conversion
+;; coding
+;; (if (numberp eol-type) (aref [unix dos mac] eol-type))))))
+
(defun view-hello-file ()
"Display the HELLO file which list up many languages and characters."
(interactive)
;; We have to decode the file in any environment.
- (let ((coding-system-for-read 'iso-2022-7))
+ (let ((coding-system-for-read 'iso-2022-7bit))
(find-file-read-only (expand-file-name "HELLO" data-directory))))
(defun universal-coding-system-argument ()
"Execute an I/O command using the specified coding system."
(interactive)
- (let* ((coding-system
- (read-coding-system "Coding system for following command: "))
+ (let* ((default (and buffer-file-coding-system
+ (not (eq (coding-system-type buffer-file-coding-system)
+ t))
+ (coding-system-name buffer-file-coding-system)))
+ (coding-system
+ (read-coding-system
+ (if default
+ (format "Coding system for following command (default, %s): "
+ default)
+ "Coding system for following command: ")
+ default))
(keyseq (read-key-sequence
(format "Command to execute with %s:" coding-system)))
(cmd (key-binding keyseq)))
(defun set-default-coding-systems (coding-system)
"Set default value of various coding systems to CODING-SYSTEM.
-The follwing coding systems are set:
+This sets the following coding systems:
o coding system of a newly created buffer
o default coding system for terminal output
o default coding system for keyboard input
- o default coding system for subprocess I/O"
+ o default coding system for subprocess I/O
+ o default coding system for converting file names."
(check-coding-system coding-system)
;;(setq-default buffer-file-coding-system coding-system)
(set-default-buffer-file-coding-system coding-system)
- ;;(setq default-terminal-coding-system coding-system)
+ ;; (if default-enable-multibyte-characters
+ ;; (setq default-file-name-coding-system coding-system))
+ ;; If coding-system is nil, honor that on MS-DOS as well, so
+ ;; that they could reset the terminal coding system.
+ ;; (unless (and (eq window-system 'pc) coding-system)
+ ;; (setq default-terminal-coding-system coding-system))
(setq terminal-coding-system coding-system)
;;(setq default-keyboard-coding-system coding-system)
(setq keyboard-coding-system coding-system)
(defun prefer-coding-system (coding-system)
"Add CODING-SYSTEM at the front of the priority list for automatic detection.
-This also sets the following coding systems to CODING-SYSTEM:
+This also sets the following coding systems:
o coding system of a newly created buffer
o default coding system for terminal output
o default coding system for keyboard input
- o default coding system for subprocess I/O"
+ o default coding system for converting file names.
+
+If CODING-SYSTEM specifies a certain type of EOL conversion, the coding
+systems set by this function will use that type of EOL conversion.
+
+This command does not change the default value of terminal coding system
+for MS-DOS terminal, because DOS terminals only support a single coding
+system, and Emacs automatically sets the default to that coding system at
+startup."
(interactive "zPrefer coding system: ")
- (if (not (and coding-system (coding-system-p coding-system)))
+ (if (not (and coding-system (find-coding-system coding-system)))
(error "Invalid coding system `%s'" coding-system))
(let ((coding-category (coding-system-category coding-system))
- (parent (coding-system-parent coding-system)))
+ (base (coding-system-base coding-system))
+ (eol-type (coding-system-eol-type coding-system)))
(if (not coding-category)
;; CODING-SYSTEM is no-conversion or undecided.
(error "Can't prefer the coding system `%s'" coding-system))
- (set coding-category (or parent coding-system))
- (if (not (eq coding-category (car coding-category-list)))
+ (set-coding-category-system coding-category (or base coding-system))
+ ;; (update-coding-systems-internal)
+ (or (eq coding-category (car (coding-category-list)))
;; We must change the order.
- (setq coding-category-list
- (cons coding-category
- (delq coding-category coding-category-list))))
- (if (and parent (interactive-p))
- (message "Highest priority is set to %s (parent of %s)"
- parent coding-system))
- (set-default-coding-systems (or parent coding-system))))
-
+ (set-coding-priority-list (list coding-category)))
+ (if (and base (interactive-p))
+ (message "Highest priority is set to %s (base of %s)"
+ base coding-system))
+ ;; If they asked for specific EOL conversion, honor that.
+ (if (memq eol-type '(lf crlf mac))
+ (setq coding-system
+ (coding-system-change-eol-conversion base eol-type))
+ (setq coding-system base))
+ (set-default-coding-systems coding-system)))
+
+;; (defun find-coding-systems-region-subset-p (list1 list2)
+;; "Return non-nil if all elements in LIST1 are included in LIST2.
+;; Comparison done with EQ."
+;; (catch 'tag
+;; (while list1
+;; (or (memq (car list1) list2)
+;; (throw 'tag nil))
+;; (setq list1 (cdr list1)))
+;; t))
+
+;; (defun find-coding-systems-region (from to)
+;; "Return a list of proper coding systems to encode a text between FROM and TO.
+;; All coding systems in the list can safely encode any multibyte characters
+;; in the text.
+;;
+;; If the text contains no multibyte characters, return a list of a single
+;; element `undecided'."
+;; (find-coding-systems-for-charsets (find-charset-region from to)))
+
+;; (defun find-coding-systems-string (string)
+;; "Return a list of proper coding systems to encode STRING.
+;; All coding systems in the list can safely encode any multibyte characters
+;; in STRING.
+;;
+;; If STRING contains no multibyte characters, return a list of a single
+;; element `undecided'."
+;; (find-coding-systems-for-charsets (find-charset-string string)))
+
+;; (defun find-coding-systems-for-charsets (charsets)
+;; "Return a list of proper coding systems to encode characters of CHARSETS.
+;; CHARSETS is a list of character sets."
+;; (if (or (null charsets)
+;; (and (= (length charsets) 1)
+;; (eq 'ascii (car charsets))))
+;; '(undecided)
+;; (setq charsets (delq 'composition charsets))
+;; (let ((l (coding-system-list 'base-only))
+;; (charset-preferred-codings
+;; (mapcar (function
+;; (lambda (x)
+;; (if (eq x 'unknown)
+;; 'raw-text
+;; (get-charset-property x 'preferred-coding-system))))
+;; charsets))
+;; (priorities (mapcar (function (lambda (x) (symbol-value x)))
+;; coding-category-list))
+;; codings coding safe)
+;; (if (memq 'unknown charsets)
+;; ;; The region contains invalid multibyte characters.
+;; (setq l '(raw-text)))
+;; (while l
+;; (setq coding (car l) l (cdr l))
+;; (if (and (setq safe (coding-system-get coding 'safe-charsets))
+;; (or (eq safe t)
+;; (find-coding-systems-region-subset-p charsets safe)))
+;; ;; We put the higher priority to coding systems included
+;; ;; in CHARSET-PREFERRED-CODINGS, and within them, put the
+;; ;; higher priority to coding systems which support smaller
+;; ;; number of charsets.
+;; (let ((priority
+;; (+ (if (coding-system-get coding 'mime-charset) 4096 0)
+;; (lsh (length (memq coding priorities)) 7)
+;; (if (memq coding charset-preferred-codings) 64 0)
+;; (if (> (coding-system-type coding) 0) 32 0)
+;; (if (consp safe) (- 32 (length safe)) 0))))
+;; (setq codings (cons (cons priority coding) codings)))))
+;; (mapcar 'cdr
+;; (sort codings (function (lambda (x y) (> (car x) (car y))))))
+;; )))
+
+;; (defun find-multibyte-characters (from to &optional maxcount excludes)
+;; "Find multibyte characters in the region specified by FROM and TO.
+;; If FROM is a string, find multibyte characters in the string.
+;; The return value is an alist of the following format:
+;; ((CHARSET COUNT CHAR ...) ...)
+;; where
+;; CHARSET is a character set,
+;; COUNT is a number of characters,
+;; CHARs are found characters of the character set.
+;; Optional 3rd arg MAXCOUNT limits how many CHARs are put in the above list.
+;; Optional 4th arg EXCLUDE is a list of character sets to be ignored.
+;;
+;; For invalid characters, CHARs are actually strings."
+;; (let ((chars nil)
+;; charset char)
+;; (if (stringp from)
+;; (let ((idx 0))
+;; (while (setq idx (string-match "[^\000-\177]" from idx))
+;; (setq char (aref from idx)
+;; charset (char-charset char))
+;; (if (eq charset 'unknown)
+;; (setq char (match-string 0)))
+;; (if (or (eq charset 'unknown)
+;; (not (or (eq excludes t) (memq charset excludes))))
+;; (let ((slot (assq charset chars)))
+;; (if slot
+;; (if (not (memq char (nthcdr 2 slot)))
+;; (let ((count (nth 1 slot)))
+;; (setcar (cdr slot) (1+ count))
+;; (if (or (not maxcount) (< count maxcount))
+;; (nconc slot (list char)))))
+;; (setq chars (cons (list charset 1 char) chars)))))
+;; (setq idx (1+ idx))))
+;; (save-excursion
+;; (goto-char from)
+;; (while (re-search-forward "[^\000-\177]" to t)
+;; (setq char (preceding-char)
+;; charset (char-charset char))
+;; (if (eq charset 'unknown)
+;; (setq char (match-string 0)))
+;; (if (or (eq charset 'unknown)
+;; (not (or (eq excludes t) (memq charset excludes))))
+;; (let ((slot (assq charset chars)))
+;; (if slot
+;; (if (not (member char (nthcdr 2 slot)))
+;; (let ((count (nth 1 slot)))
+;; (setcar (cdr slot) (1+ count))
+;; (if (or (not maxcount) (< count maxcount))
+;; (nconc slot (list char)))))
+;; (setq chars (cons (list charset 1 char) chars))))))))
+;; (nreverse chars)))
+
+;; (defvar last-coding-system-specified nil
+;; "Most recent coding system explicitly specified by the user when asked.
+;; This variable is set whenever Emacs asks the user which coding system
+;; to use in order to write a file. If you set it to nil explicitly,
+;; then call `write-region', then afterward this variable will be non-nil
+;; only if the user was explicitly asked and specified a coding system.")
+
+;; (defun select-safe-coding-system (from to &optional default-coding-system)
+;; "Ask a user to select a safe coding system from candidates.
+;; The candidates of coding systems which can safely encode a text
+;; between FROM and TO are shown in a popup window.
+;;
+;; Optional arg DEFAULT-CODING-SYSTEM specifies a coding system to be
+;; checked at first. If omitted, buffer-file-coding-system of the
+;; current buffer is used.
+;;
+;; If the text can be encoded safely by DEFAULT-CODING-SYSTEM, it is
+;; returned without any user interaction.
+;;
+;; Kludgy feature: if FROM is a string, the string is the target text,
+;; and TO is ignored."
+;; (or default-coding-system
+;; (setq default-coding-system buffer-file-coding-system))
+;; (let* ((charsets (if (stringp from) (find-charset-string from)
+;; (find-charset-region from to)))
+;; (safe-coding-systems (find-coding-systems-for-charsets charsets)))
+;; (if (or (not enable-multibyte-characters)
+;; (eq (car safe-coding-systems) 'undecided)
+;; (eq default-coding-system 'no-conversion)
+;; (and default-coding-system
+;; (memq (coding-system-base default-coding-system)
+;; safe-coding-systems)))
+;; default-coding-system
+;;
+;; ;; At first, change each coding system to the corresponding
+;; ;; mime-charset name if it is also a coding system.
+;; (let ((l safe-coding-systems)
+;; mime-charset)
+;; (while l
+;; (setq mime-charset (coding-system-get (car l) 'mime-charset))
+;; (if (and mime-charset (coding-system-p mime-charset))
+;; (setcar l mime-charset))
+;; (setq l (cdr l))))
+;;
+;; (let ((non-safe-chars (find-multibyte-characters
+;; from to 3
+;; (and default-coding-system
+;; (coding-system-get default-coding-system
+;; 'safe-charsets))))
+;; show-position overlays)
+;; (save-excursion
+;; ;; Highlight characters that default-coding-system can't encode.
+;; (when (integerp from)
+;; (goto-char from)
+;; (let ((found nil))
+;; (while (and (not found)
+;; (re-search-forward "[^\000-\177]" to t))
+;; (setq found (assq (char-charset (preceding-char))
+;; non-safe-chars))))
+;; (forward-line -1)
+;; (setq show-position (point))
+;; (save-excursion
+;; (while (and (< (length overlays) 256)
+;; (re-search-forward "[^\000-\177]" to t))
+;; (let* ((char (preceding-char))
+;; (charset (char-charset char)))
+;; (when (assq charset non-safe-chars)
+;; (setq overlays (cons (make-overlay (1- (point)) (point))
+;; overlays))
+;; (overlay-put (car overlays) 'face 'highlight))))))
+;;
+;; ;; At last, ask a user to select a proper coding system.
+;; (unwind-protect
+;; (save-window-excursion
+;; (when show-position
+;; ;; At first, be sure to show the current buffer.
+;; (set-window-buffer (selected-window) (current-buffer))
+;; (set-window-start (selected-window) show-position))
+;; ;; Then, show a helpful message.
+;; (with-output-to-temp-buffer "*Warning*"
+;; (save-excursion
+;; (set-buffer standard-output)
+;; (insert "The target text contains the following non ASCII character(s):\n")
+;; (let ((len (length non-safe-chars))
+;; (shown 0))
+;; (while (and non-safe-chars (< shown 3))
+;; (when (> (length (car non-safe-chars)) 2)
+;; (setq shown (1+ shown))
+;; (insert (format "%25s: " (car (car non-safe-chars))))
+;; (let ((l (nthcdr 2 (car non-safe-chars))))
+;; (while l
+;; (if (or (stringp (car l)) (char-valid-p (car l)))
+;; (insert (car l)))
+;; (setq l (cdr l))))
+;; (if (> (nth 1 (car non-safe-chars)) 3)
+;; (insert "..."))
+;; (insert "\n"))
+;; (setq non-safe-chars (cdr non-safe-chars)))
+;; (if (< shown len)
+;; (insert (format "%27s\n" "..."))))
+;; (insert (format "\
+;; These can't be encoded safely by the coding system %s.
+;;
+;; Please select one from the following safe coding systems:\n"
+;; default-coding-system))
+;; (let ((pos (point))
+;; (fill-prefix " "))
+;; (mapcar (function (lambda (x) (princ " ") (princ x)))
+;; safe-coding-systems)
+;; (fill-region-as-paragraph pos (point)))))
+;;
+;; ;; Read a coding system.
+;; (let* ((safe-names (mapcar (lambda (x) (list (symbol-name x)))
+;; safe-coding-systems))
+;; (name (completing-read
+;; (format "Select coding system (default %s): "
+;; (car safe-coding-systems))
+;; safe-names nil t nil nil
+;; (car (car safe-names)))))
+;; (setq last-coding-system-specified (intern name))
+;; (if (integerp (coding-system-eol-type default-coding-system))
+;; (setq last-coding-system-specified
+;; (coding-system-change-eol-conversion
+;; last-coding-system-specified
+;; (coding-system-eol-type default-coding-system))))
+;; last-coding-system-specified))
+;; (kill-buffer "*Warning*")
+;; (while overlays
+;; (delete-overlay (car overlays))
+;; (setq overlays (cdr overlays)))))))))
+
+;; (setq select-safe-coding-system-function 'select-safe-coding-system)
+
+;; (defun select-message-coding-system ()
+;; "Return a coding system to encode the outgoing message of the current buffer.
+;; It at first tries the first coding system found in these variables
+;; in this order:
+;; (1) local value of `buffer-file-coding-system'
+;; (2) value of `sendmail-coding-system'
+;; (3) value of `default-buffer-file-coding-system'
+;; (4) value of `default-sendmail-coding-system'
+;; If the found coding system can't encode the current buffer,
+;; or none of them are bound to a coding system,
+;; it asks the user to select a proper coding system."
+;; (let ((coding (or (and (local-variable-p 'buffer-file-coding-system)
+;; buffer-file-coding-system)
+;; sendmail-coding-system
+;; default-buffer-file-coding-system
+;; default-sendmail-coding-system)))
+;; (if (eq coding 'no-conversion)
+;; ;; We should never use no-conversion for outgoing mails.
+;; (setq coding nil))
+;; (if (fboundp select-safe-coding-system-function)
+;; (funcall select-safe-coding-system-function
+;; (point-min) (point-max) coding)
+;; coding)))
\f
-;;; Language support staffs.
+;;; Language support stuff.
(defvar language-info-alist nil
- "Alist of language names vs the corresponding information of various kind.
+ "Alist of language environment definitions.
Each element looks like:
(LANGUAGE-NAME . ((KEY . INFO) ...))
-where LANGUAGE-NAME is a string,
-KEY is a symbol denoting the kind of information,
-INFO is any Lisp object which contains the actual information related
-to KEY.")
-
-(defun get-language-info (language-name key)
- "Return the information for LANGUAGE-NAME of the kind KEY.
-KEY is a symbol denoting the kind of required information."
- (if (symbolp language-name)
- (setq language-name (symbol-name language-name)))
- (let ((lang-slot (assoc-ignore-case language-name language-info-alist)))
+where LANGUAGE-NAME is a string, the name of the language environment,
+KEY is a symbol denoting the kind of information, and
+INFO is the data associated with KEY.
+Meaningful values for KEY include
+
+ documentation value is documentation of what this language environment
+ is meant for, and how to use it.
+ charset value is a list of the character sets used by this
+ language environment.
+ sample-text value is one line of text,
+ written using those character sets,
+ appropriate for this language environment.
+ setup-function value is a function to call to switch to this
+ language environment.
+ exit-function value is a function to call to leave this
+ language environment.
+ coding-system value is a list of coding systems that are good
+ for saving text written in this language environment.
+ This list serves as suggestions to the user;
+ in effect, as a kind of documentation.
+ coding-priority value is a list of coding systems for this language
+ environment, in order of decreasing priority.
+ This is used to set up the coding system priority
+ list when you switch to this language environment.
+ input-method value is a default input method for this language
+ environment.
+ features value is a list of features requested in this
+ language environment.
+ tutorial value is a tutorial file name written in the language.")
+
+(defun get-language-info (lang-env key)
+ "Return information listed under KEY for language environment LANG-ENV.
+KEY is a symbol denoting the kind of information.
+For a list of useful values for KEY and their meanings,
+see `language-info-alist'."
+ (if (symbolp lang-env)
+ (setq lang-env (symbol-name lang-env)))
+ (let ((lang-slot (assoc-ignore-case lang-env language-info-alist)))
(if lang-slot
(cdr (assq key (cdr lang-slot))))))
-(defun set-language-info (language-name key info)
- "Set for LANGUAGE-NAME the information INFO under KEY.
+(defun set-language-info (lang-env key info)
+ "Modify part of the definition of language environment LANG-ENV.
+Specifically, this stores the information INFO under KEY
+in the definition of this language environment.
KEY is a symbol denoting the kind of information.
-INFO is any Lisp object which contains the actual information.
-
-Currently, the following KEYs are used by Emacs:
-
-charset: list of symbols whose values are charsets specific to the language.
-
-coding-system: list of coding systems specific to the language.
-
-tutorial: a tutorial file name written in the language.
-
-sample-text: one line short text containing characters of the language.
-
-documentation: t or a string describing how Emacs supports the language.
- If a string is specified, it is shown before any other information
- of the language by the command `describe-language-environment'.
-
-setup-function: a function to call for setting up environment
- convenient for a user of the language.
-
-If KEY is documentation or setup-function, you can also specify
-a cons cell as INFO, in which case, the car part should be
-a normal value as INFO for KEY (as described above),
-and the cdr part should be a symbol whose value is a menu keymap
-in which an entry for the language is defined. But, only the car part
-is actually set as the information.
+INFO is the value for that information.
-We will define more KEYs in the future. To avoid conflict,
-if you want to use your own KEY values, make them start with `user-'."
- (if (symbolp language-name)
- (setq language-name (symbol-name language-name)))
+For a list of useful values for KEY and their meanings,
+see `language-info-alist'."
+ (if (symbolp lang-env)
+ (setq lang-env (symbol-name lang-env)))
(let (lang-slot key-slot)
- (setq lang-slot (assoc language-name language-info-alist))
+ (setq lang-slot (assoc lang-env language-info-alist))
(if (null lang-slot) ; If no slot for the language, add it.
- (setq lang-slot (list language-name)
+ (setq lang-slot (list lang-env)
language-info-alist (cons lang-slot language-info-alist)))
(setq key-slot (assq key lang-slot))
(if (null key-slot) ; If no slot for the key, add it.
(progn
(setq key-slot (list key))
(setcdr lang-slot (cons key-slot (cdr lang-slot)))))
- ;; Setup menu.
- (cond ((eq key 'documentation)
- ;; (define-key-after
- ;; (if (consp info)
- ;; (prog1 (symbol-value (cdr info))
- ;; (setq info (car info)))
- ;; describe-language-environment-map)
- ;; (vector (intern language-name))
- ;; (cons language-name 'describe-specified-language-support)
- ;; t)
- (if (consp info)
- (setq info (car info)))
- (when (featurep 'menubar)
- (eval-after-load
- "menubar-items.elc"
- `(add-menu-button
- '("Mule" "Describe Language Support")
- (vector ,language-name
- '(describe-language-environment ,language-name)
- t))))
- )
- ((eq key 'setup-function)
- ;; (define-key-after
- ;; (if (consp info)
- ;; (prog1 (symbol-value (cdr info))
- ;; (setq info (car info)))
- ;; setup-language-environment-map)
- ;; (vector (intern language-name))
- ;; (cons language-name 'setup-specified-language-environment)
- ;; t)
- (if (consp info)
- (setq info (car info)))
- (when (featurep 'menubar)
- (eval-after-load
- "menubar-items.elc"
- `(add-menu-button
- '("Mule" "Set Language Environment")
- (vector ,language-name
- '(set-language-environment ,language-name)
- t))))
- ))
-
- (setcdr key-slot info)
- ))
-
-(defun set-language-info-alist (language-name alist)
- "Set for LANGUAGE-NAME the information in ALIST.
-ALIST is an alist of KEY and INFO. See the documentation of
+ (setcdr key-slot info)))
+
+(defun set-language-info-alist (lang-env alist &optional parents)
+ "Store ALIST as the definition of language environment LANG-ENV.
+ALIST is an alist of KEY and INFO values. See the documentation of
`set-language-info' for the meanings of KEY and INFO."
- (if (symbolp language-name)
- (setq language-name (symbol-name language-name)))
- (while alist
- (set-language-info language-name (car (car alist)) (cdr (car alist)))
- (setq alist (cdr alist))))
+ (if (symbolp lang-env)
+ (setq lang-env (symbol-name lang-env)))
+ (let (; (describe-map describe-language-environment-map)
+ ; (setup-map setup-language-environment-map)
+ )
+ ;; (if parents
+ ;; (let ((l parents)
+ ;; map parent-symbol parent)
+ ;; (while l
+ ;; (if (symbolp (setq parent-symbol (car l)))
+ ;; (setq parent (symbol-name parent))
+ ;; (setq parent parent-symbol parent-symbol (intern parent)))
+ ;; (setq map (lookup-key describe-map (vector parent-symbol)))
+ ;; (if (not map)
+ ;; (progn
+ ;; (setq map (intern (format "describe-%s-environment-map"
+ ;; (downcase parent))))
+ ;; (define-prefix-command map)
+ ;; (define-key-after describe-map (vector parent-symbol)
+ ;; (cons parent map) t)))
+ ;; (setq describe-map (symbol-value map))
+ ;; (setq map (lookup-key setup-map (vector parent-symbol)))
+ ;; (if (not map)
+ ;; (progn
+ ;; (setq map (intern (format "setup-%s-environment-map"
+ ;; (downcase parent))))
+ ;; (define-prefix-command map)
+ ;; (define-key-after setup-map (vector parent-symbol)
+ ;; (cons parent map) t)))
+ ;; (setq setup-map (symbol-value map))
+ ;; (setq l (cdr l)))))
+
+ ;; Set up menu items for this language env.
+ (let ((doc (assq 'documentation alist)))
+ (when doc
+ ;; (define-key-after describe-map (vector (intern lang-env))
+ ;; (cons lang-env 'describe-specified-language-support) t)
+ (when (featurep 'menubar)
+ (eval-after-load
+ "menubar-items.elc"
+ `(add-menu-button
+ '("Mule" "Describe Language Support")
+ (vector ,lang-env
+ '(describe-language-environment ,lang-env)
+ t))))
+ ))
+ ;; (define-key-after setup-map (vector (intern lang-env))
+ ;; (cons lang-env 'setup-specified-language-environment) t)
+ (when (featurep 'menubar)
+ (eval-after-load
+ "menubar-items.elc"
+ `(add-menu-button
+ '("Mule" "Set Language Environment")
+ (vector ,lang-env
+ '(set-language-environment ,lang-env)
+ t))))
+
+ (while alist
+ (set-language-info lang-env (car (car alist)) (cdr (car alist)))
+ (setq alist (cdr alist)))))
(defun read-language-name (key prompt &optional default)
- "Read language name which has information for KEY, prompting with PROMPT.
-DEFAULT is the default choice of language.
-This returns a language name as a string."
+ "Read a language environment name which has information for KEY.
+If KEY is nil, read any language environment.
+Prompt with PROMPT. DEFAULT is the default choice of language environment.
+This returns a language environment name as a string."
(let* ((completion-ignore-case t)
(name (completing-read prompt
language-info-alist
- (function (lambda (elm) (assq key elm)))
- t nil default)))
+ (and key
+ (function (lambda (elm) (assq key elm))))
+ t nil nil default)))
(if (and (> (length name) 0)
- (get-language-info name key))
+ (or (not key)
+ (get-language-info name key)))
name)))
\f
;;; Multilingual input methods.
";;; %s -- list of LEIM (Library of Emacs Input Method)
;;
;; This file contains a list of LEIM (Library of Emacs Input Method)
-;; in the same directory as this file. Loading this file registeres
+;; in the same directory as this file. Loading this file registers
;; the whole input methods in Emacs.
;;
;; Each entry has the form:
(put 'current-input-method-title 'permanent-local t)
(defcustom default-input-method nil
- "*Default input method for multilingual text.
+ "*Default input method for multilingual text (a string).
This is the input method activated automatically by the command
`toggle-input-method' (\\[toggle-input-method])."
- :group 'mule)
+ :group 'mule
+ :type '(choice (const nil) string))
+
+(put 'input-method-function 'permanent-local t)
(defvar input-method-history nil
"History list for some commands that read input methods.")
(put 'describe-current-input-method-function 'permanent-local t)
(defvar input-method-alist nil
- "Alist of input method names vs the corresponding information to use it.
+ "Alist of input method names vs how to use them.
Each element has the form:
- (INPUT-METHOD LANGUAGE-NAME ACTIVATE-FUNC TITLE DESCRIPTION ...)
-See the function `register-input-method' for the meanings of each elements.")
+ (INPUT-METHOD LANGUAGE-ENV ACTIVATE-FUNC TITLE DESCRIPTION ARGS...)
+See the function `register-input-method' for the meanings of the elements.")
+
+(defun register-input-method (input-method lang-env &rest args)
+ "Register INPUT-METHOD as an input method for language environment ENV.
+INPUT-METHOD and LANG-ENV are symbols or strings.
-(defun register-input-method (input-method language-name &rest args)
- "Register INPUT-METHOD as an input method for LANGUAGE-NAME.
-INPUT-METHOD and LANGUAGE-NAME are symbols or strings.
The remaining arguments are:
- ACTIVATE-FUNC, TITLE, DESCRIPTION, and ARG ...
- where,
-ACTIVATE-FUNC is a function to call for activating this method.
-TITLE is a string shown in mode-line while this method is active,
-DESCRIPTION is a string describing about this method,
-Arguments to ACTIVATE-FUNC are INPUT-METHOD and ARGs."
- (if (symbolp language-name)
- (setq language-name (symbol-name language-name)))
+ ACTIVATE-FUNC, TITLE, DESCRIPTION, and ARGS...
+ACTIVATE-FUNC is a function to call to activate this method.
+TITLE is a string to show in the mode line when this method is active.
+DESCRIPTION is a string describing this method and what it is good for.
+The ARGS, if any, are passed as arguments to ACTIVATE-FUNC.
+All told, the arguments to ACTIVATE-FUNC are INPUT-METHOD and the ARGS.
+
+This function is mainly used in the file \"leim-list.el\" which is
+created at building time of emacs, registering all quail input methods
+contained in the emacs distribution.
+
+In case you want to register a new quail input method by yourself, be
+careful to use the same input method title as given in the third
+parameter of `quail-define-package' (if the values are different, the
+string specified in this function takes precedence).
+
+The commands `describe-input-method' and `list-input-methods' need
+this duplicated values to show some information about input methods
+without loading the affected quail packages."
+ (if (symbolp lang-env)
+ (setq lang-env (symbol-name lang-env)))
(if (symbolp input-method)
(setq input-method (symbol-name input-method)))
- (let ((info (cons language-name args))
+ (let ((info (cons lang-env args))
(slot (assoc input-method input-method-alist)))
(if slot
(setcdr slot info)
;; This binding is necessary because input-method-history is
;; buffer local.
(input-method (completing-read prompt input-method-alist
- nil t nil 'input-method-history)
- ;;default)
- ))
- (if (string-equal input-method "")
- (setq input-method default))
+ nil t nil 'input-method-history
+ default)))
(if (> (length input-method) 0)
input-method
(if inhibit-null
(error "No valid input method is specified")))))
(defun activate-input-method (input-method)
- "Turn INPUT-METHOD on.
-If some input method is already on, turn it off at first."
- (if (symbolp input-method)
+ "Switch to input method INPUT-METHOD for the current buffer.
+If some other input method is already active, turn it off first.
+If INPUT-METHOD is nil, deactivate any current input method."
+ (if (and input-method (symbolp input-method))
(setq input-method (symbol-name input-method)))
(if (and current-input-method
(not (string= current-input-method input-method)))
- (inactivate-input-method))
- (unless current-input-method
+ (inactivate-input-method))
+ (unless (or current-input-method (null input-method))
(let ((slot (assoc input-method input-method-alist)))
(if (null slot)
(error "Can't activate input method `%s'" input-method))
- (apply (nth 2 slot) input-method (nthcdr 5 slot))
+ (let ((func (nth 2 slot)))
+ (if (functionp func)
+ (apply (nth 2 slot) input-method (nthcdr 5 slot))
+ (if (and (consp func) (symbolp (car func)) (symbolp (cdr func)))
+ (progn
+ (require (cdr func))
+ (apply (car func) input-method (nthcdr 5 slot)))
+ (error "Can't activate input method `%s'" input-method))))
(setq current-input-method input-method)
(setq current-input-method-title (nth 3 slot))
- (run-hooks 'input-method-activate-hook))))
+ (unwind-protect
+ (run-hooks 'input-method-activate-hook)
+ (force-mode-line-update)))))
(defun inactivate-input-method ()
"Turn off the current input method."
(unwind-protect
(run-hooks 'input-method-inactivate-hook)
(setq current-input-method nil
- current-input-method-title nil)))))
+ current-input-method-title nil)
+ (force-mode-line-update)))))
-(defun select-input-method (input-method)
- "Select and turn on INPUT-METHOD.
-This sets the default input method to what you specify,
-and turn it on for the current buffer."
+(defun set-input-method (input-method)
+ "Select and activate input method INPUT-METHOD for the current buffer.
+This also sets the default input method to the one you specify."
(interactive
(let* ((default (or (car input-method-history) default-input-method)))
(list (read-input-method-name
(defun toggle-input-method (&optional arg)
"Turn on or off a multilingual text input method for the current buffer.
-With arg, read an input method from minibuffer and turn it on.
+With no prefix argument, if an input method is currently activated,
+turn it off. Otherwise, activate an input method -- the one most
+recently used, or the one specified in `default-input-method', or
+the one read from the minibuffer.
-Without arg, if some input method is currently activated, turn it off,
-else turn on an input method selected last time
-or the default input method (see `default-input-method').
+With a prefix argument, read an input method from the minibuffer and
+turn it on.
-When there's no input method to turn on, turn on what read from minibuffer."
+The default is to use the most recent input method specified
+\(not including the currently active input method, if any)."
(interactive "P")
- (let* ((default (or (car input-method-history) default-input-method)))
- (if (and current-input-method (not arg))
- (inactivate-input-method)
+ (if (and current-input-method (not arg))
+ (inactivate-input-method)
+ (let ((default (or (car input-method-history) default-input-method)))
+ (if (and arg default (equal current-input-method default)
+ (> (length input-method-history) 1))
+ (setq default (nth 1 input-method-history)))
(activate-input-method
(if (or arg (not default))
- (read-input-method-name
- (if default "Input method (default %s): " "Input method: " )
- default t)
+ (progn
+ (read-input-method-name
+ (if default "Input method (default %s): " "Input method: " )
+ default t))
default))
(or default-input-method
(setq default-input-method current-input-method)))))
(defun describe-input-method (input-method)
- "Describe input method INPUT-METHOD."
+ "Describe input method INPUT-METHOD."
(interactive
(list (read-input-method-name
"Describe input method (default, current choice): ")))
(fboundp describe-current-input-method-function))
(funcall describe-current-input-method-function)
(message "No way to describe the current input method `%s'"
- (cdr current-input-method))
+ current-input-method)
(ding))
(error "No input method is activated now")))
-(defun read-multilingual-string (prompt &optional initial-input
- input-method)
+(defun read-multilingual-string (prompt &optional initial-input input-method)
"Read a multilingual string from minibuffer, prompting with string PROMPT.
The input method selected last time is activated in minibuffer.
If optional second arg INITIAL-INPUT is non-nil, insert it in the minibuffer
or a string."
(setq input-method
(or input-method
+ current-input-method
default-input-method
(read-input-method-name "Input method: " nil t)))
(if (and input-method (symbolp input-method))
(setq input-method (symbol-name input-method)))
- (let ((current-input-method input-method))
- ;; FSFmacs
- ;; (read-string prompt initial-input nil nil t)))
- (read-string prompt initial-input nil)))
+ (let ((prev-input-method current-input-method))
+ (unwind-protect
+ (progn
+ (activate-input-method input-method)
+ ;; FSF Emacs
+ ;; (read-string prompt initial-input nil nil t)
+ (read-string prompt initial-input nil))
+ (activate-input-method prev-input-method))))
;; Variables to control behavior of input methods. All input methods
;; should react to these variables.
-(defcustom input-method-verbose-flag t
- "*If this flag is non-nil, input methods give extra guidance.
+(defcustom input-method-verbose-flag 'default
+ "*A flag to control extra guidance given by input methods.
+The value should be nil, t, `complex-only', or `default'.
The extra guidance is done by showing list of available keys in echo
-area.
+area. When you use the input method in the minibuffer, the guidance
+is shown at the bottom short window (split from the existing window).
-For complex input methods such as `chinese-py' and `japanese',
-when you use the input method in the minibuffer, the guidance is
-shown at the bottom short window (split from the existing window).
-For simple input methods, guidance is not shown
-when you are in the minibuffer."
- :type 'boolean
+If the value is t, extra guidance is always given, if the value is
+nil, extra guidance is always suppressed.
+
+If the value is `complex-only', only complex input methods such as
+`chinese-py' and `japanese' give extra guidance.
+
+If the value is `default', complex input methods always give extra
+guidance, but simple input methods give it only when you are not in
+the minibuffer.
+
+See also the variable `input-method-highlight-flag'."
+ :type '(choice (const t) (const nil) (const complex-only) (const default))
:group 'mule)
(defcustom input-method-highlight-flag t
"*If this flag is non-nil, input methods highlight partially-entered text.
For instance, while you are in the middle of a Quail input method sequence,
the text inserted so far is temporarily underlined.
-The underlining goes away when you finish or abort the input method sequence."
+The underlining goes away when you finish or abort the input method sequence.
+See also the variable `input-method-verbose-flag'."
:type 'boolean
:group 'mule)
"Normal hook run just after an input method is inactivated.
The variable `current-input-method' still keeps the input method name
-just inacitvated.")
+just inactivated.")
(defvar input-method-after-insert-chunk-hook nil
"Normal hook run just after an input method insert some chunk of text.")
+(defvar input-method-exit-on-first-char nil
+ "This flag controls a timing when an input method returns.
+Usually, the input method does not return while there's a possibility
+that it may find a different translation if a user types another key.
+But, it this flag is non-nil, the input method returns as soon as
+the current key sequence gets long enough to have some valid translation.")
+
+(defvar input-method-use-echo-area nil
+ "This flag controls how an input method shows an intermediate key sequence.
+Usually, the input method inserts the intermediate key sequence,
+or candidate translations corresponding to the sequence,
+at point in the current buffer.
+But, if this flag is non-nil, it displays them in echo area instead.")
+
(defvar input-method-exit-on-invalid-key nil
"This flag controls the behaviour of an input method on invalid key input.
Usually, when a user types a key which doesn't start any character
handled by the input method, the key is handled by turning off the
-input method temporalily. After the key is handled, the input method is
-back on.
+input method temporarily. After that key, the input method is re-enabled.
But, if this flag is non-nil, the input method is never back on.")
\f
+(defvar set-language-environment-hook nil
+ "Normal hook run after some language environment is set.
+
+When you set some hook function here, that effect usually should not
+be inherited to another language environment. So, you had better set
+another function in `exit-language-environment-hook' (which see) to
+cancel the effect.")
+
+(defvar exit-language-environment-hook nil
+ "Normal hook run after exiting from some language environment.
+When this hook is run, the variable `current-language-environment'
+is still bound to the language environment being exited.
+
+This hook is mainly used for canceling the effect of
+`set-language-environment-hook' (which-see).")
+
+(put 'setup-specified-language-environment 'apropos-inhibit t)
+
(defun setup-specified-language-environment ()
- "Set up multi-lingual environment convenient for the specified language."
+ "Switch to a specified language environment."
(interactive)
(let (language-name)
(if (and (symbolp last-command-event)
(set-language-environment language-name)
(error "Bogus calling sequence"))))
-(defvar current-language-environment "English"
- "The last language environment specified with `set-language-environment'.")
+(defcustom current-language-environment "English"
+ "The last language environment specified with `set-language-environment'.
+This variable should be set only with \\[customize], which is equivalent
+to using the function `set-language-environment'."
+ :link '(custom-manual "(emacs)Language Environments")
+ :set (lambda (symbol value) (set-language-environment value))
+ :get (lambda (x)
+ (or (car-safe (assoc-ignore-case
+ (if (symbolp current-language-environment)
+ (symbol-name current-language-environment)
+ current-language-environment)
+ language-info-alist))
+ "English"))
+ :type (cons 'choice (mapcar (lambda (lang)
+ (list 'const (car lang)))
+ language-info-alist))
+ :initialize 'custom-initialize-default
+ :group 'mule
+ :type 'string)
+
+(defun reset-language-environment ()
+ "Reset multilingual environment of Emacs to the default status.
+
+The default status is as follows:
+
+ The default value of buffer-file-coding-system is nil.
+ The default coding system for process I/O is nil.
+ The default value for the command `set-terminal-coding-system' is nil.
+ The default value for the command `set-keyboard-coding-system' is nil.
+
+ The order of priorities of coding categories and the coding system
+ bound to each category are as follows
+ coding category coding system
+ --------------------------------------------------
+ iso-8-2 iso-8859-1
+ iso-8-1 iso-8859-1
+ iso-7 iso-2022-7bit
+ iso-lock-shift iso-2022-lock
+ iso-8-designate iso-2022-8bit-ss2
+ no-conversion raw-text
+ shift-jis shift_jis
+ big5 big5
+ ucs-4 ----
+ utf-8 ----
+"
+ (interactive)
+ ;; This function formerly set default-enable-multibyte-characters to t,
+ ;; but that is incorrect. It should not alter the unibyte/multibyte choice.
+
+ (set-coding-category-system 'iso-7 'iso-2022-7bit)
+ (set-coding-category-system 'iso-8-1 'iso-8859-1)
+ (set-coding-category-system 'iso-8-2 'iso-8859-1)
+ (set-coding-category-system 'iso-lock-shift 'iso-2022-lock)
+ (set-coding-category-system 'iso-8-designate 'iso-2022-8bit-ss2)
+ (set-coding-category-system 'no-conversion 'raw-text)
+ (set-coding-category-system 'shift-jis 'shift_jis)
+ (set-coding-category-system 'big5 'big5)
+ (cond ((eq (coding-system-type (coding-category-system 'utf-8)) 'utf-8)
+ (set-coding-category-system 'utf-8 'utf-8)
+ (cond ((eq (coding-system-type (coding-category-system 'ucs-4))
+ 'iso-10646-ucs-4)
+ (set-coding-category-system 'ucs-4 'iso-10646-ucs-4)
+ (set-coding-priority-list
+ '(iso-8-1
+ iso-8-2
+ iso-7
+ iso-lock-shift
+ iso-8-designate
+ utf-8
+ ucs-4
+ no-conversion
+ shift-jis
+ big5))
+ )
+ (t
+ (set-coding-priority-list
+ '(iso-8-1
+ iso-8-2
+ iso-7
+ iso-lock-shift
+ iso-8-designate
+ utf-8
+ no-conversion
+ shift-jis
+ big5))
+ ))
+ )
+ (t
+ (set-coding-priority-list
+ '(iso-8-1
+ iso-8-2
+ iso-7
+ iso-lock-shift
+ iso-8-designate
+ no-conversion
+ shift-jis
+ big5))
+ ))
+
+ ;; (update-coding-systems-internal)
+
+ (set-default-coding-systems nil)
+ ;; Don't alter the terminal and keyboard coding systems here.
+ ;; The terminal still supports the same coding system
+ ;; that it supported a minute ago.
+;;; (set-terminal-coding-system-internal nil)
+;;; (set-keyboard-coding-system-internal nil)
+
+ ;; (setq nonascii-translation-table nil
+ ;; nonascii-insert-offset 0)
+ )
(defun set-language-environment (language-name)
"Set up multi-lingual environment for using LANGUAGE-NAME.
This sets the coding system priority and the default input method
-and sometimes other things."
- (interactive (list (read-language-name 'setup-function
- "Set language environment: ")))
+and sometimes other things. LANGUAGE-NAME should be a string
+which is the name of a language environment. For example, \"Latin-1\"
+specifies the character set for the major languages of Western Europe."
+ (interactive (list (read-language-name
+ nil
+ "Set language environment (default, English): ")))
(if language-name
(if (symbolp language-name)
(setq language-name (symbol-name language-name)))
(setq language-name "English"))
- (if (null (get-language-info language-name 'setup-function))
+ (or (assoc-ignore-case language-name language-info-alist)
(error "Language environment not defined: %S" language-name))
- (funcall (get-language-info language-name 'setup-function))
- (setq current-language-environment language-name)
+ (if current-language-environment
+ (let ((func (get-language-info current-language-environment
+ 'exit-function)))
+ (run-hooks 'exit-language-environment-hook)
+ (if (fboundp func) (funcall func))))
+ (let ((default-eol-type (coding-system-eol-type
+ default-buffer-file-coding-system)))
+ (reset-language-environment)
+
+ (setq current-language-environment language-name)
+ (set-language-environment-coding-systems language-name default-eol-type))
+ (let ((input-method (get-language-info language-name 'input-method)))
+ (when input-method
+ (setq default-input-method input-method)
+ (if input-method-history
+ (setq input-method-history
+ (cons input-method
+ (delete input-method input-method-history))))))
+ ;; (let ((nonascii (get-language-info language-name 'nonascii-translation))
+ ;; (dos-table
+ ;; (if (eq window-system 'pc)
+ ;; (intern
+ ;; (concat "cp" dos-codepage "-nonascii-translation-table")))))
+ ;; (cond
+ ;; ((char-table-p nonascii)
+ ;; (setq nonascii-translation-table nonascii))
+ ;; ((and (eq window-system 'pc) (boundp dos-table))
+ ;; ;; DOS terminals' default is to use a special non-ASCII translation
+ ;; ;; table as appropriate for the installed codepage.
+ ;; (setq nonascii-translation-table (symbol-value dos-table)))
+ ;; ((charsetp nonascii)
+ ;; (setq nonascii-insert-offset (- (make-char nonascii) 128)))))
+
+ ;; (setq charset-origin-alist
+ ;; (get-language-info language-name 'charset-origin-alist))
+
+ ;; Unibyte setups if necessary.
+ ;; (unless default-enable-multibyte-characters
+ ;; ;; Syntax and case table.
+ ;; (let ((syntax (get-language-info language-name 'unibyte-syntax)))
+ ;; (if syntax
+ ;; (let ((set-case-syntax-set-multibyte nil))
+ ;; (load syntax nil t))
+ ;; ;; No information for syntax and case. Reset to the defaults.
+ ;; (let ((syntax-table (standard-syntax-table))
+ ;; (case-table (standard-case-table))
+ ;; (ch (if (eq window-system 'pc) 128 160)))
+ ;; (while (< ch 256)
+ ;; (modify-syntax-entry ch " " syntax-table)
+ ;; (aset case-table ch ch)
+ ;; (setq ch (1+ ch)))
+ ;; (set-char-table-extra-slot case-table 0 nil)
+ ;; (set-char-table-extra-slot case-table 1 nil)
+ ;; (set-char-table-extra-slot case-table 2 nil))
+ ;; (set-standard-case-table (standard-case-table))
+ ;; (let ((list (buffer-list)))
+ ;; (while list
+ ;; (with-current-buffer (car list)
+ ;; (set-case-table (standard-case-table)))
+ ;; (setq list (cdr list))))))
+ ;; ;; Display table and coding system for terminal.
+ ;; (let ((coding (get-language-info language-name 'unibyte-display)))
+ ;; (if coding
+ ;; (standard-display-european-internal)
+ ;; (standard-display-default (if (eq window-system 'pc) 128 160) 255)
+ ;; (aset standard-display-table 146 nil))
+ ;; (or (eq window-system 'pc)
+ ;; (set-terminal-coding-system coding))))
+
+ (let ((required-features (get-language-info language-name 'features)))
+ (while required-features
+ (require (car required-features))
+ (setq required-features (cdr required-features))))
+ (let ((func (get-language-info language-name 'setup-function)))
+ (if (fboundp func)
+ (funcall func)))
+ (run-hooks 'set-language-environment-hook)
(force-mode-line-update t))
+;; (defun standard-display-european-internal ()
+;; ;; Actually set up direct output of non-ASCII characters.
+;; (standard-display-8bit (if (eq window-system 'pc) 128 160) 255)
+;; ;; Unibyte Emacs on MS-DOS wants to display all 8-bit characters with
+;; ;; the native font, and codes 160 and 146 stand for something very
+;; ;; different there.
+;; (or (and (eq window-system 'pc) (not default-enable-multibyte-characters))
+;; (progn
+;; ;; Make non-line-break space display as a plain space.
+;; ;; Most X fonts do the wrong thing for code 160.
+;; (aset standard-display-table 160 [32])
+;; ;; Most Windows programs send out apostrophe's as \222. Most X fonts
+;; ;; don't contain a character at that position. Map it to the ASCII
+;; ;; apostrophe.
+;; (aset standard-display-table 146 [39]))))
+
+(defun set-language-environment-coding-systems (language-name
+ &optional eol-type)
+ "Do various coding system setups for language environment LANGUAGE-NAME.
+
+The optional arg EOL-TYPE specifies the eol-type of the default value
+of buffer-file-coding-system set by this function."
+ (let* ((priority (get-language-info language-name 'coding-priority))
+ (default-coding (car priority)))
+ (if priority
+ (let ((categories (mapcar 'coding-system-category priority))
+ category checked-categories)
+ (set-default-coding-systems
+ (if (memq eol-type '(lf crlf cr unix dos mac))
+ (coding-system-change-eol-conversion default-coding eol-type)
+ default-coding))
+ ;; (setq default-sendmail-coding-system default-coding)
+ (while priority
+ (unless (memq (setq category (car categories)) checked-categories)
+ (set-coding-category-system category (car priority))
+ (setq checked-categories (cons category checked-categories)))
+ (setq priority (cdr priority)
+ categories (cdr categories)))
+ (set-coding-priority-list (nreverse checked-categories))
+ ;; (update-coding-systems-internal)
+ ))))
+
;; Print all arguments with `princ', then print "\n".
(defsubst princ-list (&rest args)
(while args (princ (car args)) (setq args (cdr args)))
(princ "\n"))
+(put 'describe-specified-language-support 'apropos-inhibit t)
+
;; Print a language specific information such as input methods,
;; charsets, and coding systems. This function is intended to be
;; called from the menu:
(interactive
(list (read-language-name
'documentation
- "Describe language environment (default, current choise): ")))
+ "Describe language environment (default, current choice): ")))
(if (null language-name)
(setq language-name current-language-environment))
(if (or (null language-name)
(setq language-name (symbol-name language-name)))
(let ((doc (get-language-info language-name 'documentation)))
(with-output-to-temp-buffer "*Help*"
+ (princ-list language-name " language environment" "\n")
(if (stringp doc)
- (progn
+ (progn
(princ-list doc)
(terpri)))
(let ((str (get-language-info language-name 'sample-text)))
(princ "Sample text:\n")
(princ-list " " str)
(terpri))))
- (princ "Input methods:\n")
- (let ((l input-method-alist))
- (while l
+ (let ((input-method (get-language-info language-name 'input-method))
+ (l (copy-sequence input-method-alist)))
+ (princ "Input methods")
+ (when input-method
+ (princ (format " (default, %s)" input-method))
+ (setq input-method (assoc input-method input-method-alist))
+ (setq l (cons input-method (delete input-method l))))
+ (princ ":\n")
+ (while l
(if (string= language-name (nth 1 (car l)))
(princ-list " " (car (car l))
(format " (`%s' in mode line)" (nth 3 (car l)))))
(princ ; (format " %s (`%c' in mode line):\n\t%s\n"
;; In XEmacs, `coding-system-mnemonic' returns string.
(format " %s (`%s' in mode line):\n\t%s\n"
- (car l)
- (coding-system-mnemonic (car l))
- (coding-system-doc-string (car l))))
+ (car l)
+ (coding-system-mnemonic (car l))
+ (coding-system-doc-string (car l))))
+ ;; (let ((aliases (coding-system-get (car l) 'alias-coding-systems)))
+ ;; (when aliases
+ ;; (princ "\t")
+ ;; (princ (cons 'alias: (cdr aliases)))
+ ;; (terpri)))
(setq l (cdr l))))))))
\f
;;; Charset property
(defvar char-code-property-table
(make-char-table 'generic)
"Char-table containing a property list of each character code.
-;;
+
See also the documentation of `get-char-code-property' and
`put-char-code-property'")
;; (let ((plist (aref char-code-property-table char)))
(nconc plist (list propname value))))
(put-char-table char (list propname value) char-code-property-table)
)))
-;; (setcar (cdr slot) value)
-;; (nconc plist (list propname value))))
-;; (aset char-code-property-table char (list propname value)))))
+
+\f
+;; Pretty description of encoded string
+
+;; Alist of ISO 2022 control code vs the corresponding mnemonic string.
+;; (defvar iso-2022-control-alist
+;; '((?\x1b . "ESC")
+;; (?\x0e . "SO")
+;; (?\x0f . "SI")
+;; (?\x8e . "SS2")
+;; (?\x8f . "SS3")
+;; (?\x9b . "CSI")))
+
+;; (defun encoded-string-description (str coding-system)
+;; "Return a pretty description of STR that is encoded by CODING-SYSTEM."
+;; (setq str (string-as-unibyte str))
+;; (let ((char (aref str 0))
+;; desc)
+;; (when (< char 128)
+;; (setq desc (or (cdr (assq char iso-2022-control-alist))
+;; (char-to-string char)))
+;; (let ((i 1)
+;; (len (length str)))
+;; (while (< i len)
+;; (setq char (aref str i))
+;; (if (>= char 128)
+;; (setq desc nil i len)
+;; (setq desc (concat desc " "
+;; (or (cdr (assq char iso-2022-control-alist))
+;; (char-to-string char)))
+;; i (1+ i))))))
+;; (or desc
+;; (mapconcat (function (lambda (x) (format "0x%02x" x))) str " "))))
+
+;; (defun encode-coding-char (char coding-system)
+;; "Encode CHAR by CODING-SYSTEM and return the resulting string.
+;; If CODING-SYSTEM can't safely encode CHAR, return nil."
+;; (if (cmpcharp char)
+;; (setq char (car (decompose-composite-char char 'list))))
+;; (let ((str1 (char-to-string char))
+;; (str2 (make-string 2 char))
+;; (safe-charsets (and coding-system
+;; (coding-system-get coding-system 'safe-charsets)))
+;; enc1 enc2 i1 i2)
+;; (when (or (eq safe-charsets t)
+;; (memq (char-charset char) safe-charsets))
+;; ;; We must find the encoded string of CHAR. But, just encoding
+;; ;; CHAR will put extra control sequences (usually to designate
+;; ;; ASCII charaset) at the tail if type of CODING is ISO 2022.
+;; ;; To exclude such tailing bytes, we at first encode one-char
+;; ;; string and two-char string, then check how many bytes at the
+;; ;; tail of both encoded strings are the same.
+;;
+;; (setq enc1 (string-as-unibyte (encode-coding-string str1 coding-system))
+;; i1 (length enc1)
+;; enc2 (string-as-unibyte (encode-coding-string str2 coding-system))
+;; i2 (length enc2))
+;; (while (and (> i1 0) (= (aref enc1 (1- i1)) (aref enc2 (1- i2))))
+;; (setq i1 (1- i1) i2 (1- i2)))
+;;
+;; ;; Now (substring enc1 i1) and (substring enc2 i2) are the same,
+;; ;; and they are the extra control sequences at the tail to
+;; ;; exclude.
+;; (substring enc2 0 i2))))
+
;;; mule-cmds.el ends here
(setq buffer-file-name file)
(setq default-directory (expand-file-name "~/"))
(setq buffer-auto-save-file-name nil)
- (insert-file-contents (locate-data-file filename))
+ (let ((coding-system-for-read
+ (get-language-info lang 'tutorial-coding-system)))
+ (insert-file-contents (locate-data-file filename)))
(goto-char (point-min))
;; The 'didactic' blank lines: Possibly insert blank lines
;; around <<nya nya nya>>, and change << >> to [ ].
(len (length string))
(i 0))
(while (< i len)
- (setq col (+ col (charset-columns (char-charset (aref string i)))))
+ (setq col (+ col (charset-width (char-charset (aref string i)))))
(setq i (1+ i)))
col))
(defun char-width (character)
"Return number of columns a CHARACTER occupies when displayed."
- (charset-columns (char-charset character)))
+ (charset-width (char-charset character)))
(defalias 'char-columns 'char-width)
(make-obsolete 'char-columns 'char-width)
"Return the octet numbered N (should be 0 or 1) of char CH.
N defaults to 0 if omitted."
(let ((split (split-char ch)))
+ (setq n (or n 0))
(cond ((eq n 0)
(nth 1 split))
((eq n 1)
;; (put env-sym 'quail-environ-doc-string doc-string)
;; (put env-sym 'set-quail-environ enable-function))
+
+;;; @ coding-system category
+;;;
+
+(defun coding-system-get (coding-system prop)
+ "Extract a value from CODING-SYSTEM's property list for property PROP."
+ (or (plist-get
+ (get (coding-system-name coding-system) 'coding-system-property)
+ prop)
+ (condition-case nil
+ (coding-system-property coding-system prop)
+ (error nil))))
+
+(defun coding-system-put (coding-system prop val)
+ "Change value in CODING-SYSTEM's property list PROP to VAL."
+ (put (coding-system-name coding-system)
+ 'coding-system-property
+ (plist-put (get (coding-system-name coding-system)
+ 'coding-system-property)
+ prop val)))
+
+(defun coding-system-category (coding-system)
+ "Return the coding category of CODING-SYSTEM."
+ (or (coding-system-get coding-system 'category)
+ (let ((type (coding-system-type coding-system)))
+ (cond ((eq type 'no-conversion)
+ 'no-conversion)
+ ((eq type 'shift-jis)
+ 'shift-jis)
+ ((eq type 'ucs-4)
+ 'ucs-4)
+ ((eq type 'utf-8)
+ 'utf-8)
+ ((eq type 'big5)
+ 'big5)
+ ((eq type 'iso2022)
+ (cond ((coding-system-lock-shift coding-system)
+ 'iso-lock-shift)
+ ((coding-system-seven coding-system)
+ 'iso-7)
+ (t
+ (let ((dim 0)
+ ccs
+ (i 0))
+ (while (< i 4)
+ (setq ccs (coding-system-charset coding-system i))
+ (if (and ccs
+ (> (charset-dimension ccs) dim))
+ (setq dim (charset-dimension ccs))
+ )
+ (setq i (1+ i)))
+ (cond ((= dim 1) 'iso-8-1)
+ ((= dim 2) 'iso-8-2)
+ (t 'iso-8-designate))
+ ))))))))
+
;;; mule-misc.el ends here
--- /dev/null
+;;; thai-xtis-chars.el --- definition of the Thai XTIS charset.
+
+;; Copyright (C) 1999 Electrotechnical Laboratory, JAPAN.
+;; Licensed to the Free Software Foundation.
+
+;; Author: MORIOKA Tomohiko <tomo@etl.go.jp>
+
+;; Keywords: mule, multilingual, Thai, XTIS
+
+;; This file is part of XEmacs.
+
+;; XEmacs is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; XEmacs is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING. If not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; Commentary:
+
+;; For Thai, the pre-composed character set proposed by
+;; Virach Sornlertlamvanich <virach@links.nectec.or.th> is supported.
+
+;;; Code:
+
+(make-charset 'thai-xtis "Precomposed Thai (XTIS by Virach)."
+ '(registry "xtis-0"
+ dimension 2
+ columns 1
+ chars 94
+ final ??
+ graphic 0))
+
+(define-category ?x "Precomposed Thai character.")
+(modify-category-entry 'thai-xtis ?x)
+
+;; thai-xtis-chars.el ends here.
-;;; thai-xtis.el --- Thai support for pre-composed font (for XTIS).
+;;; thai-xtis.el --- Thai support for pre-composed representation (XTIS).
;; Copyright (C) 1999 Electrotechnical Laboratory, JAPAN.
;; Licensed to the Free Software Foundation.
;;; Code:
(when (featurep 'xemacs)
- (make-charset 'thai-xtis "Precomposed Thai (XTIS by Virach)."
- '(registry "xtis-0"
- dimension 2
- columns 1
- chars 94
- final ??
- graphic 0))
-
- (modify-syntax-entry 'thai-xtis "w")
-
- (define-category ?T "Precomposed Thai character.")
- (modify-category-entry 'thai-xtis ?T)
+ (let ((deflist '(;; chars syntax
+ ("\e$(?!0\e(B-\e$(?NxP0R0S0`0\e(B-\e$(?e0\e(B" "w")
+ ("\e$(?p0\e(B-\e$(?y0\e(B" "w")
+ ("\e$(?O0f0_0o0z0{0\e(B" "_")
+ ))
+ elm chars len syntax to ch i)
+ (while deflist
+ (setq elm (car deflist))
+ (setq chars (car elm)
+ len (length chars)
+ syntax (nth 1 elm)
+ i 0)
+ (while (< i len)
+ (if (= (aref chars i) ?-)
+ (setq i (1+ i)
+ to (nth 1 (split-char (aref chars i))))
+ (setq ch (nth 1 (split-char (aref chars i)))
+ to ch))
+ (while (<= ch to)
+ (modify-syntax-entry (vector 'thai-xtis ch) syntax)
+ (setq ch (1+ ch)))
+ (setq i (1+ i)))
+ (setq deflist (cdr deflist))))
+
+ (put-charset-property 'thai-xtis 'preferred-coding-system 'tis-620)
)
+;; This is the ccl-decode-thai-xtis automaton.
+;;
+;; "WRITE x y" == (insert (make-char 'thai-xtis x y))
+;; "write x" == (insert x)
+;; rx' == (tis620-to-thai-xtis-second-byte-bitpattern rx)
+;; r3 == "no vower nor tone"
+;; r4 == (charset-id 'thai-xtis)
+;;
+;; | input (= r0)
+;; state |--------------------------------------------
+;; | consonant | vowel | tone
+;; ---------+-------------+-------------+----------------
+;; r1 == 0 | r1 = r0 | WRITE r0,r3 | WRITE r0,r3
+;; r2 == 0 | | |
+;; ---------+-------------+-------------+----------------
+;; r1 == C | WRITE r1,r3 | r2 = r0' | WRITE r1,r3|r0'
+;; r2 == 0 | r1 = r0 | | r1 = 0
+;; ---------+-------------+-------------+----------------
+;; r1 == C | WRITE r1,r2 | WRITE r1,r2 | WRITE r1,r2|r0'
+;; r2 == V | r1 = r0 | WRITE r0,r3 | r1 = r2 = 0
+;; | r2 = 0 | r1 = r2 = 0 |
+;;
+;;
+;; | input (= r0)
+;; state |-----------------------------------------
+;; | symbol | ASCII | EOF
+;; ---------+-------------+-------------+-------------
+;; r1 == 0 | WRITE r0,r3 | write r0 |
+;; r2 == 0 | | |
+;; ---------+-------------+-------------+-------------
+;; r1 == C | WRITE r1,r3 | WRITE r1,r3 | WRITE r1,r3
+;; r2 == 0 | WRITE r0,r3 | write r0 |
+;; | r1 = 0 | r1 = 0 |
+;; ---------+-------------+-------------+-------------
+;; r1 == C | WRITE r1,r2 | WRITE r1,r2 | WRITE r1,r2
+;; r2 == V | WRITE r0,r3 | write r0 |
+;; | r1 = r2 = 0 | r1 = r2 = 0 |
-(defvar leading-code-private-21 #x9F)
-(defconst thai-xtis-leading-code
- (concat (char-to-string leading-code-private-21)
- (char-to-string (charset-id 'thai-xtis))))
+(eval-and-compile
-(define-ccl-program ccl-thai-xtis-consonant
- `(0
- (if (r1 == 0)
- ((write ,thai-xtis-leading-code)
- (write r0)
- (r1 = r2))
- (if (r1 == r2)
- ((write r1)
- (write ,thai-xtis-leading-code)
- (write r0))
- ((write r1)
- (write ,thai-xtis-leading-code)
- (write r0)
- (r1 = r2))))))
+;; input : r5 = 1st byte, r6 = 2nd byte
+;; Their values will be destroyed.
+(define-ccl-program ccl-thai-xtis-write
+ '(0
+ ((r5 = ((r5 & #x7F) << 7))
+ (r6 = ((r6 & #x7F) | r5))
+ (write-multibyte-character r4 r6))))
-(define-ccl-program ccl-thai-xtis-vowel-d1
- `(0
+(define-ccl-program ccl-thai-xtis-consonant
+ '(0
(if (r1 == 0)
- ((write ,thai-xtis-leading-code)
- (write r0 r2))
- (if (r1 == r2)
- (r1 = ?\xb8)
- ((write r1)
- (write ,thai-xtis-leading-code)
- (write r0 r2)
- (r1 = 0))))))
+ (r1 = r0)
+ (if (r2 == 0)
+ ((r5 = r1) (r6 = r3) (call ccl-thai-xtis-write)
+ (r1 = r0))
+ ((r5 = r1) (r6 = r2) (call ccl-thai-xtis-write)
+ (r1 = r0)
+ (r2 = 0))))))
(define-ccl-program ccl-thai-xtis-vowel
- `(0
- (if (r1 == 0)
- ((write ,thai-xtis-leading-code)
- (write r0 r2))
- (if (r1 == r2)
- (r1 = ((r0 - 188) << 3))
- ((write r1)
- (write ,thai-xtis-leading-code)
- (write r0 r2)
- (r1 = 0))))))
+ '(0
+ ((if (r1 == 0)
+ ((r5 = r0) (r6 = r3) (call ccl-thai-xtis-write))
+ ((if (r2 == 0)
+ (r2 = ((r0 - 204) << 3))
+ ((r5 = r1) (r6 = r2) (call ccl-thai-xtis-write)
+ (r5 = r0) (r6 = r3) (call ccl-thai-xtis-write)
+ (r1 = 0)
+ (r2 = 0))))))))
+
+(define-ccl-program ccl-thai-xtis-vowel-d1
+ '(0
+ ((if (r1 == 0)
+ ((r5 = r0) (r6 = r3) (call ccl-thai-xtis-write))
+ ((if (r2 == 0)
+ (r2 = #x38)
+ ((r5 = r1) (r6 = r2) (call ccl-thai-xtis-write)
+ (r5 = r0) (r6 = r3) (call ccl-thai-xtis-write)
+ (r1 = 0)
+ (r2 = 0))))))))
(define-ccl-program ccl-thai-xtis-vowel-ee
- `(0
- (if (r1 == 0)
- ((write ,thai-xtis-leading-code)
- (write r0 r2))
- (if (r1 == r2)
- (r1 = ?\xf8)
- ((write r1)
- (write ,thai-xtis-leading-code)
- (write r0 r2)
- (r1 = 0))))))
+ '(0
+ ((if (r1 == 0)
+ ((r5 = r0) (r6 = r3) (call ccl-thai-xtis-write))
+ ((if (r2 == 0)
+ (r2 = #x78)
+ ((r5 = r1) (r6 = r2) (call ccl-thai-xtis-write)
+ (r5 = r0) (r6 = r3) (call ccl-thai-xtis-write)
+ (r1 = 0)
+ (r2 = 0))))))))
(define-ccl-program ccl-thai-xtis-tone
- `(0
+ '(0
(if (r1 == 0)
- ((write ,thai-xtis-leading-code)
- (write r0 r2))
- (if (r1 == r2)
- ((r0 -= 54)
- (write r0)
+ ((r5 = r0) (r6 = r3) (call ccl-thai-xtis-write))
+ (if (r2 == 0)
+ ((r5 = r1) (r6 = ((r0 - #xE6) | r3)) (call ccl-thai-xtis-write)
(r1 = 0))
- ((r1 += (r0 - ?\xe6))
- (write r1)
- (r1 = 0))))))
+ ((r5 = r1) (r6 = ((r0 - #xE6) | r2)) (call ccl-thai-xtis-write)
+ (r1 = 0)
+ (r2 = 0))))))
(define-ccl-program ccl-thai-xtis-symbol
- `(0
+ '(0
+ (if (r1 == 0)
+ ((r5 = r0) (r6 = r3) (call ccl-thai-xtis-write))
+ (if (r2 == 0)
+ ((r5 = r1) (r6 = r3) (call ccl-thai-xtis-write)
+ (r5 = r0) (r6 = r3) (call ccl-thai-xtis-write)
+ (r1 = 0))
+ ((r5 = r1) (r6 = r2) (call ccl-thai-xtis-write)
+ (r5 = r0) (r6 = r3) (call ccl-thai-xtis-write)
+ (r1 = 0)
+ (r2 = 0))))))
+
+(define-ccl-program ccl-thai-xtis-ascii
+ '(0
(if (r1 == 0)
- ((write ,thai-xtis-leading-code)
- (write r0 r2))
- (if (r1 == r2)
- ((write r2)
- (write ,thai-xtis-leading-code)
- (write r0 r2)
+ (write r0)
+ (if (r2 == 0)
+ ((r5 = r1) (r6 = r3) (call ccl-thai-xtis-write)
+ (write r0)
(r1 = 0))
- ((write r1)
- (write ,thai-xtis-leading-code)
- (write r0 r2)
- (r1 = 0))))))
+ ((r5 = r1) (r6 = r2) (call ccl-thai-xtis-write)
+ (write r0)
+ (r1 = 0)
+ (r2 = 0))))))
+
+(define-ccl-program ccl-thai-xtis-eof
+ '(0
+ (if (r1 != 0)
+ (if (r2 == 0)
+ ((r5 = r1) (r6 = r3) (call ccl-thai-xtis-write))
+ ((r5 = r1) (r6 = r2) (call ccl-thai-xtis-write))))))
(define-ccl-program ccl-decode-thai-xtis
`(4
((read r0)
(r1 = 0)
- (r2 = ?\xb0)
+ (r2 = 0)
+ (r3 = #x30)
+ (r4 = ,(charset-id 'thai-xtis))
(loop
(if (r0 < 161)
- (if (r1 == 0)
- (write r0)
- (if (r1 == r2)
- ((write r2 r0)
- (r1 = 0))
- ((write r1 r0)
- (r1 = 0))))
+ (call ccl-thai-xtis-ascii)
(branch (r0 - 161)
(call ccl-thai-xtis-consonant)
(call ccl-thai-xtis-consonant)
(read r0)
(repeat)))
- (if (r1 != 0)
- (write r1)
- nil)))
+ (call ccl-thai-xtis-eof)))
+
+)
+
+(defconst leading-code-private-21 #x9F)
(define-ccl-program ccl-encode-thai-xtis
`(1
(write r0)
(read r0)
(r1 = (r0 & 7))
- (r0 = ((r0 - ?\xb0) >> 3))
+ (r0 = ((r0 - #xB0) >> 3))
(if (r0 != 0)
(write r0 [0 209 212 213 214 215 216 217 218 238]))
(if (r1 != 0)
(write-read-repeat r0))))))
(if (featurep 'xemacs)
- (make-coding-system
- 'tis-620 'ccl
- "external=tis620, internal=thai-xtis"
- `(mnemonic "TIS620"
- decode ,ccl-decode-thai-xtis
- encode ,ccl-encode-thai-xtis))
+ (progn
+ (make-coding-system
+ 'tis-620 'ccl
+ "external=tis620, internal=thai-xtis"
+ `(mnemonic "TIS620"
+ decode ,ccl-decode-thai-xtis
+ encode ,ccl-encode-thai-xtis))
+ (coding-system-put 'tis-620 'category 'iso-8-1))
(make-coding-system
'tis-620 4 ?T "external=tis620, internal=thai-xtis"
'(ccl-decode-thai-xtis . ccl-encode-thai-xtis)
(set-language-info-alist
"Thai-XTIS"
- '((setup-function . setup-thai-xtis-environment)
- (exit-function . exit-thai-xtis-environment)
- (charset thai-xtis)
+ '((charset thai-xtis)
(coding-system tis-620 iso-2022-7bit)
+ (tutorial . "TUTORIAL.th")
+ (tutorial-coding-system . tis-620)
(coding-priority tis-620 iso-2022-7bit)
(sample-text . "\e$(?!:\e(B")
(documentation . t)))
-;;; vietnamese.el --- Support for Vietnamese
+;;; vietnamese.el --- Support for Vietnamese -*- coding: iso-2022-7bit; -*-
;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
;; Licensed to the Free Software Foundation.
(;; Vietnamese upper
(read r0)
(r0 -= 128)
- (write-read-repeat r0 ,(cdr viet-viscii-encode-table)))
+ (write-read-repeat r0 ,(cdr viet-vscii-encode-table)))
;; not Vietnamese
(write-read-repeat r0))))))))
"CCL program to encode VSCII-1.")
decode ,ccl-decode-viscii
encode ,ccl-encode-viscii))
+;; it is not correct, but XEmacs doesn't have `ccl' category...
+(coding-system-put 'viscii 'category 'iso-8-1)
+
;; (make-coding-system
;; 'vietnamese-viscii 4 ?V
;; "8-bit encoding for Vietnamese VISCII 1.1 (MIME:VISCII)"
-;; (cons ccl-decode-viscii ccl-encode-viscii))
+;; '(ccl-decode-viscii . ccl-encode-viscii)
+;; '((safe-charsets ascii vietnamese-viscii-lower vietnamese-viscii-upper)
+;; (mime-charset . viscii)
+;; (valid-codes (0 . 255))))
;; (define-coding-system-alias 'viscii 'vietnamese-viscii)
;; (make-coding-system
;; 'vietnamese-vscii 4 ?v
;; "8-bit encoding for Vietnamese VSCII-1"
-;; (cons ccl-decode-vscii ccl-encode-vscii))
+;; '(ccl-decode-vscii . ccl-encode-vscii)
+;; '((safe-charsets ascii vietnamese-viscii-lower vietnamese-viscii-upper)
+;; (valid-codes (0 . 255))))
;; (define-coding-system-alias 'vscii 'vietnamese-vscii)
;; (make-coding-system
;; 'vietnamese-viqr 0 ?q
;; "Vietnamese latin transcription (VIQR)"
-;; nil)
-;; (put 'vietnamese-viqr 'post-read-conversion 'viqr-post-read-conversion)
-;; (put 'vietnamese-viqr 'pre-write-conversion 'viqr-pre-write-conversion)
+;; nil
+;; '((safe-charsets ascii vietnamese-viscii-lower vietnamese-viscii-upper)
+;; (post-read-conversion . viqr-post-read-conversion)
+;; (pre-write-conversion . viqr-pre-write-conversion)
+;; (charset-origin-alist
+;; (vietnamese-viscii-lower "VISCII" viet-encode-viscii-char)
+;; (vietnamese-viscii-upper "VISCII" viet-encode-viscii-char))))
;; (define-coding-system-alias 'viqr 'vietnamese-viqr)
;; (setq font-ccl-encoder-alist
;; (cons (cons "vscii" ccl-encode-vscii-font) font-ccl-encoder-alist))
+;; (defvar viet-viscii-nonascii-translation-table
+;; (make-translation-table-from-vector viet-viscii-decode-table)
+;; "Value of `nonascii-translation-table' in Vietnamese language environment.")
+
(set-language-info-alist
- "Vietnamese" '((setup-function . setup-vietnamese-environment)
- (charset . (vietnamese-viscii-lower
- vietnamese-viscii-upper))
- (coding-system . (viscii vscii viqr))
+ "Vietnamese" '((charset vietnamese-viscii-lower vietnamese-viscii-upper)
+ (coding-system viscii vscii viqr)
+ (coding-priority viscii)
+ (input-method . "vietnamese-viqr")
+ (features viet-util)
(sample-text . "Vietnamese (Ti\e,1*\e(Bng Vi\e,1.\e(Bt) Ch\e,1`\e(Bo b\e,1U\e(Bn")
(documentation . "\
For Vietnamese, Emacs uses special charasets internally.
-They can be decoded from and encoded to VISCC, VSCII, and VIQR.")
+They can be decoded from and encoded to VISCC, VSCII, and VIQR.
+Current setting put higher priority to the coding system VISCII than VSCII.
+If you prefer VSCII, please do: (prefer-coding-system 'vietnamese-vscii)")
))
;;; vietnamese.el ends here
;;; Package versioning
(defvar packages-package-list nil
- "database of loaded packages and version numbers")
+ "Database of loaded packages and version numbers")
(defvar packages-hierarchy-depth 1
"Depth of package hierarchies.")
(defvar package-locations
(list
- (list (paths-construct-path '("~" ".xemacs"))
+ (list (paths-construct-path '("~" ".xemacs" "mule-packages"))
+ 'early #'(lambda () (featurep 'mule)))
+ (list (paths-construct-path '("~" ".xemacs" "xemacs-packages"))
'early #'(lambda () t))
(list "site-packages" 'late #'(lambda () t))
(list "infodock-packages" 'late #'(lambda () (featurep 'infodock)))
(list "mule-packages" 'late #'(lambda () (featurep 'mule)))
- (list "xemacs-packages" 'late #'(lambda () t))
- (list "packages" 'late #'(lambda () t)))
+ (list "xemacs-packages" 'late #'(lambda () t)))
"Locations of the various package directories.
This is a list each of whose elements describes one directory.
A directory description is a three-element list.
(let ((info (if (and attributes (floatp (car attributes)))
(list :version (car attributes))
attributes)))
- (remassq name packages-package-list)
(setq packages-package-list
- (cons (cons name info) packages-package-list))))
+ (cons (cons name info) (remassq name packages-package-list)))))
(defun package-require (name version)
(let ((pkg (assq name packages-package-list)))
SUFFIXES is a list of names of package subdirectories to look for."
(let ((directories
(apply
- #'append
+ #'nconc
(mapcar #'(lambda (package)
(mapcar #'(lambda (suffix)
(file-name-as-directory (concat package suffix)))
(if (and comcol (not fill-prefix)) ; XEmacs - (ENE) from fa-extras.
(let ((comment-column comcol)
(comment-start comstart)
+ (block-comment-start comstart)
(comment-end comment-end))
(and comment-end (not (equal comment-end ""))
; (if (not comment-multi-line)
(erase-buffer))))
(defmacro with-current-buffer (buffer &rest body)
- "Execute the forms in BODY with BUFFER as the current buffer.
+ "Temporarily make BUFFER the current buffer and execute the forms in BODY.
The value returned is the value of the last form in BODY.
See also `with-temp-buffer'."
`(save-current-buffer
:group 'hypermedia)
(defgroup widget-documentation nil
- "Options controling the display of documentation strings."
+ "Options controlling the display of documentation strings."
:group 'widgets)
(defgroup widget-faces nil
;;; themselves are in x-win.el in case someone wants to use them when
;;; not running on a Sun display.)
- (define-key global-map 'find 'ow-find)
- (define-key global-map '(shift find) 'ow-find-backward)
+ (or (lookup-key global-map 'find)
+ (define-key global-map 'find 'ow-find))
+ (or (lookup-key global-map '(shift find))
+ (define-key global-map '(shift find) 'ow-find-backward))
)
+1999-07-13 XEmacs Build Bot <builds@cvs.xemacs.org>
+
+ * XEmacs 21.2.18 is released
+
+1999-07-05 Didier Verna <verna@inf.enst.fr>
+
+ * lwlib-Xm.c (xm_update_one_widget): add missing #ifdefs around
+ call to xm_update_label.
+
+1999-06-28 Andy Piper <andy@xemacs.org>
+
+ * lwlib-Xm.c: unconditionally enable text field & list code.
+ (make_progress): new function. creates a slider.
+ (make_text_field): new function. creates an edit field.
+ (make_combo_box): new function. creates a combo box.
+ (xm_creation_table): add new widget functions.
+
+1999-06-25 Andy Piper <andy@xemacs.org>
+
+ * lwlib.h (_widget_value): add arglist slots.
+ declare new functions.
+
+ * lwlib.c (free_widget_value_contents): handle arglists when
+ freeing.
+ (lw_add_value_args_to_args): new function. add arglist entries
+ from a widget_value structure.
+
+ * lwlib-Xm.c (make_button): new function, create a motif button
+ for display in a buffer as a glyph.
+ (xm_creation_table): add make_button.
+
1999-06-22 XEmacs Build Bot <builds@cvs.xemacs.org>
* XEmacs 21.2.17 is released
This file is part of the Lucid Widget Library.
-The Lucid Widget Library is free software; you can redistribute it and/or
+The Lucid Widget Library is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
The Lucid Widget Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
+but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
#include <Xm/Separator.h>
#include <Xm/DialogS.h>
#include <Xm/Form.h>
+#include <Xm/Scale.h>
+#if XmVERSION > 1
+#include <Xm/ComboBox.h>
+#endif
#ifdef LWLIB_MENUBARS_MOTIF
static void xm_pull_down_callback (Widget, XtPointer, XtPointer);
-#if 0
-static void xm_pop_down_callback (Widget, XtPointer, XtPointer);
-#endif /* 0 */
#endif
static void xm_internal_update_other_instances (Widget, XtPointer,
XtPointer);
+static void xm_pop_down_callback (Widget, XtPointer, XtPointer);
static void xm_generic_callback (Widget, XtPointer, XtPointer);
#ifdef LWLIB_DIALOGS_MOTIF
static void xm_nosel_callback (Widget, XtPointer, XtPointer);
#endif
\f/* Structures to keep destroyed instances */
-typedef struct _destroyed_instance
+typedef struct _destroyed_instance
{
char* name;
char* type;
instance->next = NULL;
return instance;
}
-
+
static void
free_destroyed_instance (destroyed_instance* instance)
{
Boolean
lw_motif_widget_p (Widget widget)
{
- return
+ return
#ifdef LWLIB_DIALOGS_MOTIF
XtClass (widget) == xmDialogShellWidgetClass ||
#endif
{
XtResource resource;
char *result = NULL;
-
+
resource.resource_name = "labelString";
resource.resource_class = "LabelString"; /* #### should be Xmsomething... */
resource.resource_type = XtRString;
children = XtCompositeChildren (widget, &number);
if (children)
{
- /* Unmanage all children and destroy them. They will only be
+ /* Unmanage all children and destroy them. They will only be
* really destroyed when we get out of DispatchEvent. */
for (i = 0; i < number; i++)
{
XtSetArg (al [ac], XmNlabelString, built_string); ac++;
XtSetArg (al [ac], XmNlabelType, XmSTRING); ac++;
}
-
+
if (val->key)
{
key_string = XmStringCreateLtoR (val->key, XmSTRING_DEFAULT_CHARSET);
XtRemoveAllCallbacks (widget, XmNcascadingCallback);
XtAddCallback (widget, XmNcascadingCallback, xm_pull_down_callback,
instance);
- }
+ }
}
#endif /* LWLIB_MENUBARS_MOTIF */
num_children = 0;
for (child_index = 0, cur = val; cur; child_index++, cur = cur->next)
- {
+ {
ac = 0;
button = 0;
XtSetArg (al [ac], XmNsensitive, cur->enabled); ac++;
menu = NULL;
XtSetArg (al [0], XmNsubMenuId, &menu);
XtGetValues (widget, al, 1);
-
+
contents = val->contents;
if (!menu)
#endif /* LWLIB_MENUBARS_MOTIF */
\f
-#ifdef LWLIB_DIALOGS_MOTIF
-
/* update text widgets */
static void
xm_internal_update_other_instances, instance);
}
-#endif /* LWLIB_DIALOGS_MOTIF */
#ifdef LWLIB_SCROLLBARS_MOTIF
{
WidgetClass class;
Arg al [2];
-
+
/* Mark as not edited */
val->edited = False;
/* Common to all label like widgets */
if (XtIsSubclass (widget, xmLabelWidgetClass))
xm_update_label (instance, widget, val);
-#endif
-
+#endif /* defined (LWLIB_DIALOGS_MOTIF) || defined (LWLIB_MENUBARS_MOTIF) */
+
class = XtClass (widget);
/* Class specific things */
if (class == xmPushButtonWidgetClass ||
XtSetArg (al [0], XmNradioBehavior, &radiobox);
XtGetValues (widget, al, 1);
-
+
if (radiobox)
xm_update_radiobox (instance, widget, val);
#ifdef LWLIB_MENUBARS_MOTIF
xm_update_menu (instance, widget, val, deep_p);
#endif
}
-#ifdef LWLIB_DIALOGS_MOTIF
else if (class == xmTextWidgetClass)
{
xm_update_text (instance, widget, val);
{
xm_update_text_field (instance, widget, val);
}
-#endif
else if (class == xmListWidgetClass)
{
xm_update_list (instance, widget, val);
val->call_data = old_wv->call_data;
break;
}
-
+
if (class == xmToggleButtonWidgetClass || class == xmToggleButtonGadgetClass)
{
Arg al [1];
XtGetValues (widget, al, 1);
val->edited = True;
}
-#ifdef LWLIB_DIALOGS_MOTIF
else if (class == xmTextWidgetClass)
{
if (val->value)
val->value = XmTextFieldGetString (widget);
val->edited = True;
}
-#endif
else if (class == xmRowColumnWidgetClass)
{
Boolean radiobox = 0;
/* This function is for activating a button from a program. It's wrong because
we pass a NULL argument in the call_data which is not Motif compatible.
This is used from the XmNdefaultAction callback of the List widgets to
- have a dble-click put down a dialog box like the button woudl do.
+ have a double-click put down a dialog box like the button would do.
I could not find a way to do that with accelerators.
*/
static void
/* This is a kludge to disable drag-and-drop in dialog boxes. The symptom
was a segv down in libXm somewhere if you used the middle button on a
dialog box to begin a drag; when you released the button to make a drop
- things would lose if you were not over the button where you started the
+ things would lose if you were not over the button where you started the
drag (canceling the operation). This was probably due to the fact that
the dialog boxes were not set up to handle a drag but were trying to do
so anyway for some reason.
Arg al[64]; /* Arg List */
int ac; /* Arg Count */
int i;
-
+
#ifdef DND_KLUDGE
XtTranslations dnd_override = XtParseTranslationTable (disable_dnd_trans);
# define DO_DND_KLUDGE(widget) XtOverrideTranslations ((widget), dnd_override)
XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++;
XtSetArg(al[ac], XmNrightOffset, 13); ac++;
row = XmCreateRowColumn (form, "row", al, ac);
-
+
n_children = 0;
for (i = 0; i < left_buttons; i++)
{
al, ac);
DO_DND_KLUDGE (children [n_children]);
n_children++;
-
+
for (i = 0; i < right_buttons; i++)
{
char button_name [16];
if (! button) button = children [n_children];
n_children++;
}
-
+
XtManageChildren (children, n_children);
-
+
ac = 0;
XtSetArg(al[ac], XmNtopAttachment, XmATTACH_NONE); ac++;
XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_WIDGET); ac++;
list activate the default button */
XtAddCallback (value, XmNdefaultActionCallback, activate_button, button);
}
-
+
ac = 0;
XtSetArg(al[ac], XmNalignment, XmALIGNMENT_BEGINNING); ac++;
XtSetArg(al[ac], XmNtopAttachment, XmATTACH_FORM); ac++;
XtSetArg(al[ac], XmNrightOffset, 13); ac++;
message = XmCreateLabel (form, "message", al, ac);
DO_DND_KLUDGE (message);
-
+
if (list)
XtManageChild (value);
children [i] = icon; i++;
children [i] = icon_separator; i++;
XtManageChildren (children, i);
-
+
if (text_input_slot || list)
{
XtInstallAccelerators (value, button);
XtInstallAccelerators (form, button);
XmProcessTraversal(value, XmTRAVERSE_CURRENT);
}
-
+
#ifdef DND_KLUDGE
XtFree ((char *) dnd_override);
#endif
x = (Position) ((parent_width - child_width) / 2);
y = (Position) ((parent_height - child_height) / 2);
-
+
XtTranslateCoords (parent, x, y, &x, &y);
if ((Dimension) (x + child_width) > screen_width)
shell_name = "Question";
break;
}
-
+
total_buttons = name [1] - '0';
if (name [3] == 'T' || name [3] == 't')
}
else if (name [3])
right_buttons = name [4] - '0';
-
+
left_buttons = total_buttons - right_buttons;
-
+
widget = make_dialog (name, parent, pop_up_p,
shell_name, icon_name, text_input_slot, radio_box,
list, left_buttons, right_buttons);
{ {xm_scrollbar_callback, NULL}, {NULL, NULL} };
callbacks[0].closure = (XtPointer) instance;
-
+
XtSetArg (al[ac], XmNminimum, 1); ac++;
XtSetArg (al[ac], XmNmaximum, INT_MAX); ac++;
XtSetArg (al[ac], XmNincrement, 1); ac++;
#endif /* LWLIB_SCROLLBARS_MOTIF */
-\f/* Table of functions to create widgets */
+/* glyph widgets */
+static Widget
+make_button (widget_instance *instance)
+{
+ Arg al[20];
+ int ac = 0;
+ Widget button = 0;
+ widget_value* val = instance->info->val;
+
+ XtSetArg (al [ac], XmNsensitive, val->enabled); ac++;
+ XtSetArg (al [ac], XmNalignment, XmALIGNMENT_BEGINNING); ac++;
+ XtSetArg (al [ac], XmNuserData, val->call_data); ac++;
+ XtSetArg (al [ac], XmNmappedWhenManaged, FALSE); ac++;
+ /* The highlight doesn't appear to be dynamically set which makes it
+ look ugly. I think this may be a LessTif bug but for now we just
+ get rid of it. */
+ XtSetArg (al [ac], XmNhighlightThickness, (Dimension)0);ac++;
+
+ /* add any args the user supplied for creation time */
+ lw_add_value_args_to_args (val, al, &ac);
+
+ if (!val->call_data)
+ button = XmCreateLabel (instance->parent, val->name, al, ac);
+
+ else if (val->type == TOGGLE_TYPE || val->type == RADIO_TYPE)
+ {
+ XtSetArg (al [ac], XmNset, val->selected); ac++;
+ XtSetArg (al [ac], XmNindicatorType,
+ (val->type == TOGGLE_TYPE ?
+ XmN_OF_MANY : XmONE_OF_MANY)); ac++;
+ XtSetArg (al [ac], XmNvisibleWhenOff, True); ac++;
+ button = XmCreateToggleButton (instance->parent, val->name, al, ac);
+ XtRemoveAllCallbacks (button, XmNvalueChangedCallback);
+ XtAddCallback (button, XmNvalueChangedCallback, xm_generic_callback,
+ (XtPointer)instance);
+ }
+ else
+ {
+ button = XmCreatePushButton (instance->parent, val->name, al, ac);
+ XtAddCallback (button, XmNactivateCallback, xm_generic_callback,
+ (XtPointer)instance);
+ }
+
+ XtManageChild (button);
+
+ return button;
+}
+
+static Widget
+make_progress (widget_instance *instance)
+{
+ Arg al[20];
+ int ac = 0;
+ Widget scale = 0;
+ widget_value* val = instance->info->val;
+
+ XtSetArg (al [ac], XmNsensitive, val->enabled); ac++;
+ XtSetArg (al [ac], XmNalignment, XmALIGNMENT_BEGINNING); ac++;
+ XtSetArg (al [ac], XmNuserData, val->call_data); ac++;
+ XtSetArg (al [ac], XmNmappedWhenManaged, FALSE); ac++;
+ XtSetArg (al [ac], XmNorientation, XmHORIZONTAL); ac++;
+ /* The highlight doesn't appear to be dynamically set which makes it
+ look ugly. I think this may be a LessTif bug but for now we just
+ get rid of it. */
+ XtSetArg (al [ac], XmNhighlightThickness, (Dimension)0);ac++;
+ if (!val->call_data)
+ XtSetArg (al [ac], XmNsensitive, False); ac++;
+
+ /* add any args the user supplied for creation time */
+ lw_add_value_args_to_args (val, al, &ac);
+
+ scale = XmCreateScale (instance->parent, val->name, al, ac);
+ if (val->call_data)
+ XtAddCallback (scale, XmNvalueChangedCallback, xm_generic_callback,
+ (XtPointer)instance);
+
+ XtManageChild (scale);
+
+ return scale;
+}
+
+static Widget
+make_text_field (widget_instance *instance)
+{
+ Arg al[20];
+ int ac = 0;
+ Widget text = 0;
+ widget_value* val = instance->info->val;
+
+ XtSetArg (al [ac], XmNsensitive, val->enabled && val->call_data); ac++;
+ XtSetArg (al [ac], XmNalignment, XmALIGNMENT_BEGINNING); ac++;
+ XtSetArg (al [ac], XmNuserData, val->call_data); ac++;
+ XtSetArg (al [ac], XmNmappedWhenManaged, FALSE); ac++;
+ /* The highlight doesn't appear to be dynamically set which makes it
+ look ugly. I think this may be a LessTif bug but for now we just
+ get rid of it. */
+ XtSetArg (al [ac], XmNhighlightThickness, (Dimension)0);ac++;
+
+ /* add any args the user supplied for creation time */
+ lw_add_value_args_to_args (val, al, &ac);
+
+ text = XmCreateTextField (instance->parent, val->name, al, ac);
+ if (val->call_data)
+ XtAddCallback (text, XmNvalueChangedCallback, xm_generic_callback,
+ (XtPointer)instance);
+
+ XtManageChild (text);
+
+ return text;
+}
+
+#if XmVERSION > 1
+static Widget
+make_combo_box (widget_instance *instance)
+{
+ Arg al[20];
+ int ac = 0;
+ Widget combo = 0;
+ widget_value* val = instance->info->val;
+
+ XtSetArg (al [ac], XmNsensitive, val->enabled); ac++;
+ XtSetArg (al [ac], XmNalignment, XmALIGNMENT_BEGINNING); ac++;
+ XtSetArg (al [ac], XmNuserData, val->call_data); ac++;
+ XtSetArg (al [ac], XmNmappedWhenManaged, FALSE); ac++;
+ /* The highlight doesn't appear to be dynamically set which makes it
+ look ugly. I think this may be a LessTif bug but for now we just
+ get rid of it. */
+ XtSetArg (al [ac], XmNhighlightThickness, (Dimension)0);ac++;
+
+ /* add any args the user supplied for creation time */
+ lw_add_value_args_to_args (val, al, &ac);
+
+ combo = XmCreateComboBox (instance->parent, val->name, al, ac);
+ if (val->call_data)
+ XtAddCallback (combo, XmNselectionCallback, xm_generic_callback,
+ (XtPointer)instance);
+
+ XtManageChild (combo);
+
+ return combo;
+}
+#endif
+
+\f
+/* Table of functions to create widgets */
widget_creation_entry
-xm_creation_table [] =
+xm_creation_table [] =
{
#ifdef LWLIB_MENUBARS_MOTIF
{"menubar", make_menubar},
{"vertical-scrollbar", make_vertical_scrollbar},
{"horizontal-scrollbar", make_horizontal_scrollbar},
#endif
+ {"button", make_button},
+ {"progress", make_progress},
+ {"text-field", make_text_field},
+#if XmVERSION > 1
+ {"combo-box", make_combo_box},
+#endif
{NULL, NULL}
};
if (up)
XtManageChild (widget);
else
- XtUnmanageChild (widget);
+ XtUnmanageChild (widget);
}
}
\f
-/* motif callback */
+/* motif callback */
enum do_call_type { pre_activate, selection, no_selection, post_activate };
}
/* Like lw_internal_update_other_instances except that it does not do
- anything if its shell parent is not managed. This is to protect
+ anything if its shell parent is not managed. This is to protect
lw_internal_update_other_instances to dereference freed memory
if the widget was ``destroyed'' by caching it in the all_destroyed_instances
list */
XtSetArg (al [0], XmNset, !check);
XtSetValues (widget, al, 1);
}
-#endif
+#endif
lw_internal_update_other_instances (widget, closure, call_data);
do_call (widget, closure, selection);
}
+static void
+xm_pop_down_callback (Widget widget, XtPointer closure, XtPointer call_data)
+{
+ do_call (widget, closure, post_activate);
+}
+
#ifdef LWLIB_DIALOGS_MOTIF
static void
if (call_data)
{
/* new behavior for incremental menu construction */
-
+
}
else
-#endif
+#endif
do_call (widget, closure, pre_activate);
}
-#if 0
-static void
-xm_pop_down_callback (Widget widget, XtPointer closure, XtPointer call_data)
-{
- do_call (widget, closure, post_activate);
-}
-#endif /* 0 */
-
#endif /* LWLIB_MENUBARS_MOTIF */
#ifdef LWLIB_SCROLLBARS_MOTIF
free_widget_value_tree (wv->contents);
wv->contents = (widget_value *) 0xDEADBEEF;
}
+ if (wv->args && wv->free_args)
+ {
+ free (wv->args);
+ wv->args = (void *) 0xDEADBEEF;
+ wv->nargs = 0;
+ }
if (wv->next)
{
free_widget_value_tree (wv->next);
copy->next = copy_widget_value_tree (val->next, change);
copy->toolkit_data = NULL;
copy->free_toolkit_data = False;
+ if (val->nargs)
+ {
+ copy->args = (ArgList)malloc (sizeof (Arg) * val->nargs);
+ memcpy (copy->args, val->args, sizeof(Arg) * val->nargs);
+ copy->nargs = val->nargs;
+ copy->free_args = True;
+ }
#ifdef NEED_SCROLLBARS
copy_scrollbar_values (val, copy);
#endif
}
}
}
+
+void lw_add_value_args_to_args (widget_value* wv, ArgList addto, int* offset)
+{
+ int i;
+ if (wv->nargs && wv->args)
+ {
+ for (i = 0; i<wv->nargs; i++)
+ {
+ addto[i + *offset] = wv->args[i];
+ }
+ *offset += wv->nargs;
+ }
+}
scrollbar_values *scrollbar_data;
/* we resource the widget_value structures; this points to the next
- one on the free list if this one has been deallocated.
- */
+ one on the free list if this one has been deallocated. */
struct _widget_value *free_list;
+
+ /* some things are only possible at creation time. args are applied
+ to widgets at creation time. */
+ ArgList args;
+ int nargs;
+ Boolean free_args;
} widget_value;
Boolean lw_get_some_values (LWLIB_ID id, widget_value* val);
void lw_pop_up_all_widgets (LWLIB_ID id);
void lw_pop_down_all_widgets (LWLIB_ID id);
+void lw_add_value_args_to_args (widget_value* wv, ArgList addto, int* offset);
widget_value *malloc_widget_value (void);
void free_widget_value (widget_value *);
+1999-07-13 XEmacs Build Bot <builds@cvs.xemacs.org>
+
+ * XEmacs 21.2.18 is released
+
1999-06-22 XEmacs Build Bot <builds@cvs.xemacs.org>
* XEmacs 21.2.17 is released
@synindex fn cp
@synindex ky cp
@comment %**end of header
-@comment $Id: info-stnd.texi,v 1.3 1998/06/30 06:35:28 steve Exp $
+@comment $Id: info-stnd.texi,v 1.3 1997/07/06 21:49:30 karl Exp $
@dircategory Texinfo documentation system
@direntry
@setfilename ../info/info.info
@settitle Info 1.0
@comment %**end of header
-@comment $Id: info.texi,v 1.4 1998/06/30 06:35:28 steve Exp $
+@comment $Id: info.texi,v 1.4 1997/07/10 21:58:11 karl Exp $
@dircategory Texinfo documentation system
@direntry
% texinfo.tex -- TeX macros to handle Texinfo files.
-% $Id: texinfo.tex,v 1.5 1998/06/13 04:28:12 steve Exp $
+% $Id: texinfo.tex,v 2.227 1998/02/25 22:54:34 karl Exp $
%
% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98
% Free Software Foundation, Inc.
% This automatically updates the version number based on RCS.
\def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}}
-\deftexinfoversion$Revision: 1.5 $
+\deftexinfoversion$Revision: 2.227 $
\message{Loading texinfo package [Version \texinfoversion]:}
% If in a .fmt file, print the version number
\input texinfo.tex @c -*-texinfo-*-
-@c $Id: texinfo.texi,v 1.8.2.1 1999/03/04 15:48:24 steveb Exp $
+@c $Id: texinfo.txi,v 1.50 1998/02/27 21:21:34 karl Exp $
@c %**start of header
@c All text is ignored before the setfilename.
@finalout
@titlepage
@title XEmacs FAQ
-@subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 1999/05/13 12:26:40 $
+@subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 1999/03/04 15:48:25 $
@sp 1
@author Tony Rossini <arossini@@stat.sc.edu>
@author Ben Wing <wing@@666.com>
@subsection Manual Binary Package Installation
Pre-compiled, binary packages can be installed in either a system
-package directory (this is determined when XEmacs is compiled), or in a
-subdirectory of your @file{$HOME} directory:
+package directory (this is determined when XEmacs is compiled), or in
+one of the following
+subdirectories of your @file{$HOME} directory:
@example
-~/.xemacs/packages
+~/.xemacs/mule-packages
+~/.xemacs/xemacs-packages
@end example
+Packages in the former directory will only be found by a Mule-enabled
+XEmacs.
+
XEmacs does not have to be running to install binary packages, although
XEmacs will not know about any newly-installed packages until you
restart XEmacs. Note, however, that installing a newer version of a
Download the package(s) that you want to install. Each binary package
will typically be a gzip'd tarball.
-@item
-Decide where to install the packages: in the system package directory,
-or in @file{~/.xemacs/packages}. If you want to install the
-packages in the system package directory, make sure you can write into
-that directory. If you want to install in your @file{$HOME} directory,
-create the directory, @file{~/.xemacs/packages}.
+@item Decide where to install the packages: in the system package
+directory, or in @file{~/.xemacs/mule-packages} or
+@file{~/.xemacs/xemacs-packages}, respectively. If you want to install
+the packages in the system package directory, make sure you can write
+into that directory. If you want to install in your @file{$HOME}
+directory, create the directory, @file{~/.xemacs/mule-packages} or
+@file{~/.xemacs/xemacs-packages}, respectively.
@item
Next, @code{cd} to the directory under which you want to install the
+1999-07-13 XEmacs Build Bot <builds@cvs.xemacs.org>
+
+ * XEmacs 21.2.18 is released
+
1999-06-22 XEmacs Build Bot <builds@cvs.xemacs.org>
* XEmacs 21.2.17 is released
(Vcharset_thai_tis620): Likewise.
(Vcharset_katakana_jisx0201): Likewise.
+1999-06-25 MORIOKA Tomohiko <tomo@etl.go.jp>
+
+ * mule-ccl.c (ccl_driver): Fix `CCL_WriteMultibyteChar2'.
+
+1999-06-24 MORIOKA Tomohiko <tomo@etl.go.jp>
+
+ * file-coding.c (mule_decode): Setup `str->ccl.last_block'.
+ (mule_encode): Likewise.
+
+ * mule-ccl.c (Qccl_program): New variable.
+ (CCL_SUSPEND): New macro.
+ (CCL_INVALID_CMD): New macro.
+ (CCL_READ_CHAR): Don't regard as invalid command while processing
+ the last block even if input is empty; use
+ `CCL_STAT_SUSPEND_BY_SRC' instead of `CCL_STAT_SUSPEND'.
+ (vars_of_mule_ccl): Setup `Qccl_program' and `Qccl_program_idx'.
+
+ * mule-ccl.h (CCL_STAT_SUCCESS): Moved from mule-ccl.c.
+ (CCL_STAT_SUSPEND_BY_SRC): Imported from Emacs 20.3.10.
+ (CCL_STAT_SUSPEND_BY_DST): Likewise.
+ (CCL_STAT_INVALID_CMD): Moved from mule-ccl.c; change value from 2.
+ (CCL_STAT_QUIT): Moved from mule-ccl.c; change value from 3.
+
+1999-05-04 Ken'ichi Handa <handa@gnu.org>
+
+ * mule-ccl.h (struct ccl_program): New member stack_idx.
+
+ * mule-ccl.c (ccl_prog_stack_struct): Declare it as static.
+ (ccl_driver): Setup stack_idx and ccl_prog correctly. Update them
+ before returing.
+ (setup_ccl_program): Initialize ccl->stack_idx to 0.
+
+1998-10-12 Kenichi Handa <handa@etl.go.jp>
+
+ * mule-ccl.c (CCL_DECODE_SJIS, CCL_ENCODE_SJIS): Swap the
+ definitions.
+
+1998-08-18 Kenichi Handa <handa@etl.go.jp>
+
+ * mule-ccl.c (CCL_READ_CHAR): If eof is encounterd while
+ processing the last block, don't just finish but processes eol
+ block of the current CCL program.
+ (ccl_driver): Add a new jump label ccl_repeat for the above
+ change.
+
+1998-04-15 Kenichi Handa <handa@etl.go.jp>
+
+ * mule-ccl.c: Typo in comments fixed.
+ (Qccl_program_idx): New variables.
+ (CCL_ReadMultibyteChar2): Macro name changed from
+ CCL_ReadMultibyteCharacter.
+ (CCL_WriteMultibyteChar2): Macro name changed from
+ CCL_WriteMultibyteChar2.
+ (ccl_driver): Adjusted for the above changes.
+ (resolve_symbol_ccl_program): New function.
+ (Fccl_execute): The arg CCL-PROGRAM can be a symbol of CCL
+ program. If CCL-PRGRAM is a vector, convert symbols in it to ID
+ numbers by resolve_symbol_ccl_program.
+ (Fccl_execute_on_string): Likewise.
+ (Fregister_ccl_program): If the arg CCL-PRGRAM is a vector,
+ convert symbols in it to ID numbers by resolve_symbol_ccl_program.
+
+1998-01-21 Kenichi Handa <handa@etl.go.jp>
+
+ * mule-ccl.h: (struct ccl_program): New member private_state.
+
+ * mule-ccl.c
+ (CCL_Call): Fix the comment.
+ (CCL_ReadMultibyteCharacter, CCL_WriteMultibyteCharacter): New
+ macros for CCL Commands.
+ (EXCMD): New macro.
+ (ccl_driver): New case lable `CCL_Extention'.
+ (setup_ccl_program): Initialize the member `private_state' of CCL.
+
+1999-07-13 XEmacs Build Bot <builds@cvs.xemacs.org>
+
+ * XEmacs 21.2.18 is released
+
+1999-07-08 SL Baur <steve@mule.m17n.org>
+
+ * event-Xt.c (handle_focus_event_1): Guard FRAME_X_XIC with
+ XIM_XLIB.
+ (emacs_Xt_handle_magic_event): Ditto.
+ * redisplay-x.c (x_output_string): Ditto.
+ (x_output_eol_cursor): Ditto.
+
+1999-06-30 Kazuyuki IENAGA <kazz@imasy.or.jp>
+
+ * event-Xt.c, input-method-xlib.c, redisplay-x.c: Avoid the
+ problem that when XIM is destroyed or missed with some reason,
+ xemacs will die. Now xim=xlib waits the XIM will be ready and
+ endures the case of XIM end up.
+
+1999-07-03 Gunnar Evermann <ge204@eng.cam.ac.uk>
+
+ * tooltalk.c (init_tooltalk): save signal actions for SIGQUIT,
+ SIGINT and SIGCHLD before calling tt_open and restore the
+ afterwards. This fixes e.g. the zombie subprocesses on Solaris
+
+1999-07-06 SL Baur <steve@xemacs.org>
+
+ * s/linux.h: gcc-2.8 changes for powerpc
+ From Justin Vallon <vallon@mindspring.com>
+
+1999-07-05 Didier Verna <verna@inf.enst.fr>
+
+ * indent.c: new symbol Qcoerce.
+ (Fmove_to_column): use it + doc string update.
+
+1999-07-04 Andy Piper <andy@xemacs.org>
+
+ * console.c: undo earlier Fprovide changes.
+ * fns.c: ditto.
+ * console.h: ditto.
+
+ * console-tty.c (image_instantiator_format_create_glyphs_tty): new
+ function. validate appropriate image formats for tty.
+
+ * glyphs.h (INITIALIZE_IMAGE_INSTANTIATOR_FORMAT_NO_SYM):
+ initialize consoles parameter.
+ (struct image_instantiator_methods): add consoles parameter.
+ (IIFORMAT_VALID_CONSOLE): new function. validate the format on the
+ console.
+ (INITIALIZE_DEVICE_IIFORMAT): validate the format on the given
+ console.
+
+ * glyphs-msw.c: declare instantiators for later use.
+ (image_instantiator_format_create_glyphs_mswindows): validate xpm
+ and friends on the mswindows console.
+ * glyphs-x.c: ditto.
+
+ * glyphs.c (valid_image_instantiator_format_p): disallow glyphs
+ that have not been registered on the supplied device.
+ (Fvalid_image_instantiator_format_p): add locale argument.
+ (instantiate_image_instantiator): valid image instantiator on the
+ device.
+
+ * symsinit.h: add image_instantiator_format_create_glyphs_tty()
+ declaration.
+
+ * emacs.c (main_1): add call to
+ image_instantiator_format_create_glyphs_tty().
+
+1999-06-29 Olivier Galibert <galibert@pobox.com>
+
+ * lisp.h: Add #include <stddef.h>.
+
+ * sysdep.c: Remove #include <stddef.h>.
+ * symbols.c: Remove #include <stddef.h>.
+ * sheap.c: Remove #include <stddef.h>.
+ * opaque.c: Remove #include <stddef.h>.
+ * nt.c: Remove #include <stddef.h>.
+ * mule-charset.c: Remove #include <stddef.h>.
+ * marker.c: Remove #include <stddef.h>.
+ * file-coding.c: Remove #include <stddef.h>.
+ * extents.c: Remove #include <stddef.h>.
+ * elhash.c: Remove #include <stddef.h>.
+ * data.c: Remove #include <stddef.h>.
+ * chartab.c: Remove #include <stddef.h>.
+ * bytecode.c: Remove #include <stddef.h>.
+ * alloc.c: Remove #include <stddef.h>. Fix vector description
+
+1999-06-30 SL Baur <steve@miho.m17n.org>
+
+ * editfns.c: Document "%s" format spec.
+ Suggested by Bob Weiner <weiner@altrasoft.com>
+
+1999-06-29 Andy Piper <andy@xemacs.org>
+
+ * event-msw.c: fix definition booboo.
+
+1999-06-28 Andy Piper <andy@xemacs.org>
+
+ * glyphs-x.c: change tree -> tree-view, progress ->
+ progress_gauge, edit -> edit-field, tab -> tab-control, combo ->
+ combo-box.
+ (complex_vars_of_glyphs_x): provide-on-console the implemented
+ widget types.
+
+ * glyphs-msw.c: ditto.
+ (complex_vars_of_glyphs_mswindows): ditto.
+
+ * lisp.h: add Fprovide_on_console.
+
+ * fns.c (Ffeaturep): add extra optional console argument.
+ (Fprovide_on_console): like Fprovide but provides only on the
+ specified console-type.
+ (Frequire): check console-features as well as global features.
+
+ * console.c (Fconsole_features): new function. return features for
+ this console.
+ (syms_of_console): add Fconsole_features.
+
+ * console.h (CONMETH_FEATURES): new function for accessing features.
+ (CONSOLE_FEATURES): ditto.
+ (struct console_methods): add features slot.
+ (INITIALIZE_CONSOLE_TYPE): initialize features slot.
+
+1999-06-28 Andy Piper <andy@xemacs.org>
+
+ * event-Xt.c (handle_focus_event_1): conditionally compile for
+ X11R5.
+
+ * s/cygwin32.h: fix me website address.
+
+ * event-msw.c: add NMHDR for pre b20 cygwin builds.
+
+ * gui-x.c (button_item_to_widget_value): only add callback if it
+ is non-nil.
+
+ * glyphs-x.c: add progress, edit and combo instantiators.
+ (x_widget_set_property): new function. uses lwlib to set widget
+ values.
+ (x_widget_property): new function. uses lwlib to get widget
+ values.
+ (x_button_instantiate): support images in buttons.
+ (x_button_property): new function. use lwlib to get the selected
+ state.
+ (x_progress_instantiate): new function for instantiating progress
+ gauges.
+ (x_progress_set_property): new function. sets the progress gauge
+ position.
+ (x_edit_instantiate): new function. for instantiating edit fields.
+ (x_combo_instantiate): new function. for instantiating combo
+ boxes.
+ (image_instantiator_format_create_glyphs_x): add new device ii
+ formats.
+
+ * glyphs-msw.c (mswindows_tab_instantiate): remove redundant var.
+
+ * console.h (CONSOLE_FEATURES): new features accesor.
+
+ * conslots.h (MARKED_SLOT): add features entry.
+
+1999-06-25 Andy Piper <andy@xemacs.org>
+
+ * menubar-x.c (menu_item_descriptor_to_widget_value_1): use new
+ gui functions.
+
+ * menubar-msw.c: move MAX_MENUITEM_LENGTH to gui.h
+
+ * gui.h (struct Lisp_Gui_Item): add accelerator.
+
+ * gui.c (gui_item_add_keyval_pair): deal with accelerators.
+ (gui_item_init): ditto.
+ (gui_add_item_keywords_to_plist): ditto.
+ (mark_gui_item): ditto.
+ (gui_item_hash): ditto.
+ (gui_item_accelerator): new function.
+ (gui_name_accelerator): new function stolen from gui-x.c
+
+ * gui-x.c (popup_selection_callback): always define. mark
+ subwindows changed after calling a callback.
+ (menu_name_to_accelerator): deleted.
+ (button_item_to_widget_value): forward gui_item things to gui_item
+ functions.
+
+ * glyphs-x.h (struct x_subwindow_data): add data for widgets. add
+ appropriate accesors.
+
+ * glyphs-x.c: declare new glyph formats.
+ (x_finalize_image_instance): unmanage and destroy widgets if they
+ exist.
+ (x_unmap_subwindow): handle widgets specially.
+ (x_map_subwindow): ditto. offset display of widgets by offset of
+ text widget within container.
+ (x_update_subwindow): new function. call lw_modify_all_widgets
+ when we are a widget.
+ (x_widget_instantiate): new function for generically creating
+ widgets-glyphs. toolkit specifics forwarded to lwlib.
+ (x_button_instantiate): new function for instantiating
+ widgets-glyph buttons.
+ (console_type_create_glyphs_x): register update_subwindow.
+ (image_instantiator_format_create_glyphs_x): register widget and
+ button types.
+
+ * event-msw.c (mswindows_wnd_proc): remove redundant variable.
+
+ * event-Xt.c (x_event_to_emacs_event): call handle_focus_event_1
+ when we get a button press in case we do not have the focus.
+ (handle_focus_event_1): set the keyboard focus to the text widget
+ if we do not have it.
+
+ * dialog-x.c (dbox_descriptor_to_widget_value): use new gui_item
+ functions.
+
+1999-06-24 SL Baur <steve@miho.m17n.org>
+
+ * syntax.c (scan_words): Restore non-Mule code.
+ (word_constituent_p): Restore.
+
1999-06-23 Olivier Galibert <galibert@pobox.com>
* config.h.in: Add missing #undef *_USER_DEFINED.
(HAVE_UMICH_LDAP): Removed
(HAVE_NS_LDAP): Removed
- * eldap.h (struct Lisp_LDAP): Removed the `livep' member as
+ * eldap.h (struct Lisp_LDAP): Removed the `livep' member as
suggested by Olivier Galibert
(CHECK_LIVE_LDAP): Test on `ld' instead of `livep'
1999-06-16 Norbert Koch <n.koch@eai-delta.de>
- * redisplay-msw.c: Run 'ccl_driver' with 'CCL_MODE_ENCODING' as in
+ * redisplay-msw.c: Run 'ccl_driver' with 'CCL_MODE_ENCODING' as in
redisplay-x.c
1999-06-12 MORIOKA Tomohiko <tomo@etl.go.jp>
ARG2.
1999-05-21 Andy Piper <andy@xemacs.org>
-
+
* xselect.c: deleted.
-
+
* symsinit.h: declare select initialisation.
* select.h: new file. declare commonly used select functions and
is interned in the main obarray.
1999-04-23 Gunnar Evermann <ge204@eng.cam.ac.uk>
-
+
* menubar-x.c (pre_activate_callback): set accelerator field in
"No menu" entries to nil. Avoid crash in
command_builder_operate_menu_accelerator
* m/intel386.h: remove redundant definitions.
* s/mingw32.h: new header for mingw32.
-
+
* unexnt.c: (open_input_file): function moved to nt.c.
(close_file_data): ditto.
(rva_to_section): function moved to ntproc.
* symsinit.h: declare syms_of_ntproc();
-
+
* objects-msw.c (mswindows_font_instance_truename): new function.
* ntproc.c: remove many warnings.
(sys_spawnve): fix bad MULE/GCPRO bug in filename handling.
* ntheap.h: remove declarations of functions that are now static.
-
+
* ntheap.c: support static heap.
* nt.h: conditionalise X_OK definition.
(_sys_read_ahead): moved to ntproc.c
* emacs.c: make sure syms_of_ntptroc gets called under windows.
-
+
* console-msw.h: support mingw32.
* getloadavg.c: ditto.
* ntplay.c: ditto.
* config.h.in: dont turn on DEBUG_ENCAPSULATION by default because
some systems don't have all of the encapsulated system calls.
-
+
* callproc.c: warning elimination.
* dired-msw.c: ditto.
* process-nt.c: ditto.
* realpath.c: ditto.
-
+
* Makefile.in.in: tweak : and ; for building under mswindows.
-
+
1999-04-26 Michael Harnois <mharnois@willinet.net>
* eldap.c (allocate_ldap): Adapt to the new semantics of
* symbols.c: Make gung-ho mandatory. make_pure_pname ->
make_string or make_string_nocopy. Fix various
alloc_lcrecord_type.
-
+
* lread.c: Remove everything purespace related.
(Flocate_file_clear_hashing): purified -> c_readonly.
(locate_file): Ditto.
* fns.c (base64_decode_1): Remove COUNTER.
(base64_decode_1): Accept CRLF in addition to CR.
- (base64_decode_1): Disallow a stray character after final EOF; the
+ (base64_decode_1): Disallow a stray character after final EOF; the
check was probably a remnant of buggy recode code.
1998-12-05 Hrvoje Niksic <hniksic@srce.hr>
(composite_char_string):
(make-composite-char):
(composite-char-string):
- (syms_of_mule_charset):
- (complex_vars_of_mule_charset):
+ (syms_of_mule_charset):
+ (complex_vars_of_mule_charset):
* mule-charset.h (LEADING_BYTE_COMPOSITE):
(CHAR_LEADING_BYTE):
(MAKE_CHAR):
(reset_iso2022):
(parse_iso2022_esc):
(encode_coding_iso2022):
- #ifdef out all composite character support using
- #ifdef ENABLE_COMPOSITE_CHARS
+ #ifdef out all composite character support using
+ #ifdef ENABLE_COMPOSITE_CHARS
* alloc.c: Define lrecord_coding_system only if ! FILE_CODING
1998-05-10 Hrvoje Niksic <hniksic@srce.hr>
* frame.c (Ffocus_frame): New function.
-
#include "sysfile.h"
#include "window.h"
-#include <stddef.h>
-
#ifdef DOUG_LEA_MALLOC
#include <malloc.h>
#endif
* knows how to handle vectors.
*/
0,
- 0,
+ vector_description,
size_vector, Lisp_Vector);
/* #### should allocate `small' vectors from a frob-block */
#include "opaque.h"
#include "syntax.h"
-#include <stddef.h>
#include <limits.h>
EXFUN (Ffetch_bytecode, 1);
#include <config.h>
#include "lisp.h"
-#include <stddef.h>
#include "buffer.h"
#include "chartab.h"
#include "faces.h"
#include "frame.h"
#include "lstream.h"
+#include "glyphs.h"
#include "sysdep.h"
#include "sysfile.h"
#ifdef FILE_CODING
#endif
DEFINE_CONSOLE_TYPE (tty);
+DECLARE_IMAGE_INSTANTIATOR_FORMAT (nothing);
+DECLARE_IMAGE_INSTANTIATOR_FORMAT (string);
+DECLARE_IMAGE_INSTANTIATOR_FORMAT (formatted_string);
+DECLARE_IMAGE_INSTANTIATOR_FORMAT (inherit);
Lisp_Object Qterminal_type;
Lisp_Object Qcontrolling_process;
}
void
+image_instantiator_format_create_glyphs_tty (void)
+{
+ IIFORMAT_VALID_CONSOLE (tty, nothing);
+ IIFORMAT_VALID_CONSOLE (tty, string);
+ IIFORMAT_VALID_CONSOLE (tty, formatted_string);
+ IIFORMAT_VALID_CONSOLE (tty, inherit);
+}
+
+void
vars_of_console_tty (void)
{
Fprovide (Qtty);
#include <config.h>
#include "lisp.h"
-#include <stddef.h>
#include "buffer.h"
#include "bytecode.h"
widget_value *prev = 0, *kids = 0;
int n = 0;
int count = specpdl_depth ();
- Lisp_Object wv_closure;
+ Lisp_Object wv_closure, gui_item;
CHECK_CONS (desc);
CHECK_STRING (XCAR (desc));
CHECK_VECTOR (button);
wv = xmalloc_widget_value ();
- if (!button_item_to_widget_value (button, wv, allow_text_p, 1))
+ gui_item = gui_parse_item_keywords (button);
+ if (!button_item_to_widget_value (gui_item, wv, allow_text_p, 1))
{
free_widget_value (wv);
continue;
%p is replaced by AM or PM, as appropriate.
%r is a synonym for "%I:%M:%S %p".
%R is a synonym for "%H:%M".
+%s is replaced by the time in seconds since 00:00:00, Jan 1, 1970 (a
+ nonstandard extension)
%S is replaced by the second (00-60).
%t is a synonym for "\\t".
%T is a synonym for "%H:%M:%S".
#include <config.h>
#include "lisp.h"
-#include <stddef.h>
#include "bytecode.h"
#include "elhash.h"
image_instantiator_format_create ();
image_instantiator_format_create_glyphs_eimage ();
image_instantiator_format_create_glyphs_widget ();
+#ifdef HAVE_TTY
+ image_instantiator_format_create_glyphs_tty ();
+#endif
#ifdef HAVE_X_WINDOWS
image_instantiator_format_create_glyphs_x ();
#endif /* HAVE_X_WINDOWS */
#include "events-mod.h"
static void enqueue_Xt_dispatch_event (Lisp_Object event);
+static void handle_focus_event_1 (struct frame *f, int in_p);
static struct event_stream *Xt_event_stream;
len = XmImMbLookupString (XtWindowToWidget (event->display, event->window),
event, bufptr, bufsiz, &keysym, &status);
#else /* XIM_XLIB */
- len = XmbLookupString (xic, event, bufptr, bufsiz, &keysym, &status);
+ if (xic)
+ len = XmbLookupString (xic, event, bufptr, bufsiz, &keysym, &status);
#endif /* HAVE_XIM */
#ifdef DEBUG_XEMACS
{
XButtonEvent *ev = &x_event->xbutton;
struct frame *frame = x_window_to_frame (d, ev->window);
+
if (! frame)
return 0; /* not for us */
XSETFRAME (emacs_event->channel, frame);
emacs_event->event.button.button = ev->button;
emacs_event->event.button.x = ev->x;
emacs_event->event.button.y = ev->y;
-
+ /* because we don't seem to get a FocusIn event for button clicks
+ when a widget-glyph is selected we will assume that we want the
+ focus if a button gets pressed. */
+ if (x_event->type == ButtonPress)
+ handle_focus_event_1 (frame, 1);
}
}
break;
static void
handle_focus_event_1 (struct frame *f, int in_p)
{
-#ifdef HAVE_XIM
- XIM_focus_event (f, in_p);
+#if XtSpecificationRelease > 5
+ Widget focus_widget = XtGetKeyboardFocusWidget (FRAME_X_TEXT_WIDGET (f));
+#endif
+#if defined(HAVE_XIM) && defined(XIM_XLIB)
+ if (FRAME_X_XIC(f))
+ XIM_focus_event (f, in_p);
#endif /* HAVE_XIM */
/* On focus change, clear all memory of sticky modifiers
Actually, we half handle it: we handle it as far as changing the
box cursor for redisplay, but we don't call any hooks or do any
select-frame stuff until after the sit-for.
- */
+
+ Unfortunately native widgets break the model because they grab
+ the keyboard focus and nothing sets it back again. I cannot find
+ any reasonable way to do this elsewhere so we assert here that
+ the keybpard focus is on the emacs text widget. Menus and dialogs
+ do this in their selection callback, but we don't want that since
+ a button having focus is legitimate. An edit field having focus
+ is mandatory. Weirdly you get a FocusOut event when you glick in
+ a widget-glyph but you don't get a correspondng FocusIn when you
+ click in the frame. Why is this? */
+ if (in_p
+#if XtSpecificationRelease > 5
+ && FRAME_X_TEXT_WIDGET (f) != focus_widget
+#endif
+ )
+ {
+ lw_set_keyboard_focus (FRAME_X_SHELL_WIDGET (f),
+ FRAME_X_TEXT_WIDGET (f));
+ }
+ /* do the generic event-stream stuff. */
{
Lisp_Object frm;
Lisp_Object conser;
/* Bleagh!!!!!! Apparently some window managers (e.g. MWM)
send synthetic MapNotify events when a window is first
- created, EVENT IF IT'S CREATED ICONIFIED OR INVISIBLE.
+ created, EVEN IF IT'S CREATED ICONIFIED OR INVISIBLE.
Or something like that. We initially tried a different
solution below, but that ran into a different window-
manager bug.
case FocusIn:
case FocusOut:
+
#ifdef EXTERNAL_WIDGET
/* External widget lossage: Ben said:
YUCK. The only way to make focus changes work properly is to
break;
case ConfigureNotify:
-#ifdef HAVE_XIM
- XIM_SetGeometry (f);
+#if defined(HAVE_XIM) && defined(XIM_XLIB)
+ if (FRAME_X_XIC(f))
+ XIM_SetGeometry (f);
#endif
break;
#include <io.h>
#include <errno.h>
+#if defined (__CYGWIN32__) && !defined (CYGWIN_VERSION_DLL_MAJOR)
+typedef NMHDR *LPNMHDR;
+#endif
+
#ifdef HAVE_MENUBARS
#define ADJR_MENUFLAG TRUE
#else
case WM_NOTIFY:
{
LPNMHDR nmhdr = (LPNMHDR)lParam;
- int idCtrl = (int)wParam;
if (nmhdr->code == TTN_NEEDTEXT)
{
#include <config.h>
#include "lisp.h"
-#include <stddef.h>
#include "buffer.h"
#include "debug.h"
#include <config.h>
#include "lisp.h"
-#include <stddef.h>
#include "buffer.h"
#include "elhash.h"
decode_coding_utf8 (decoding, src, dst, n);
break;
case CODESYS_CCL:
+ str->ccl.last_block = str->flags & CODING_STATE_END;
ccl_driver (&str->ccl, src, dst, n, 0, CCL_MODE_DECODING);
break;
case CODESYS_ISO2022:
encode_coding_utf8 (encoding, src, dst, n);
break;
case CODESYS_CCL:
+ str->ccl.last_block = str->flags & CODING_STATE_END;
ccl_driver (&str->ccl, src, dst, n, 0, CCL_MODE_ENCODING);
break;
case CODESYS_ISO2022:
/* mswindows-specific glyph objects.
- Copyright (C) 1998 Andy Piper.
+ Copyright (C) 1998, 99 Andy Piper.
This file is part of XEmacs.
#define WIDGET_GLYPH_SLOT 0
+DECLARE_IMAGE_INSTANTIATOR_FORMAT (nothing);
+DECLARE_IMAGE_INSTANTIATOR_FORMAT (string);
+DECLARE_IMAGE_INSTANTIATOR_FORMAT (formatted_string);
+DECLARE_IMAGE_INSTANTIATOR_FORMAT (inherit);
+#ifdef HAVE_JPEG
+DECLARE_IMAGE_INSTANTIATOR_FORMAT (jpeg);
+#endif
+#ifdef HAVE_TIFF
+DECLARE_IMAGE_INSTANTIATOR_FORMAT (tiff);
+#endif
+#ifdef HAVE_PNG
+DECLARE_IMAGE_INSTANTIATOR_FORMAT (png);
+#endif
+#ifdef HAVE_GIF
+DECLARE_IMAGE_INSTANTIATOR_FORMAT (gif);
+#endif
#ifdef HAVE_XPM
DEFINE_DEVICE_IIFORMAT (mswindows, xpm);
#endif
DEFINE_DEVICE_IIFORMAT (mswindows, xface);
#endif
DEFINE_DEVICE_IIFORMAT (mswindows, button);
-DEFINE_DEVICE_IIFORMAT (mswindows, edit);
+DEFINE_DEVICE_IIFORMAT (mswindows, edit_field);
#if 0
DEFINE_DEVICE_IIFORMAT (mswindows, group);
#endif
DEFINE_DEVICE_IIFORMAT (mswindows, widget);
DEFINE_DEVICE_IIFORMAT (mswindows, label);
DEFINE_DEVICE_IIFORMAT (mswindows, scrollbar);
-DEFINE_DEVICE_IIFORMAT (mswindows, combo);
-DEFINE_DEVICE_IIFORMAT (mswindows, progress);
-DEFINE_DEVICE_IIFORMAT (mswindows, tree);
-DEFINE_DEVICE_IIFORMAT (mswindows, tab);
+DEFINE_DEVICE_IIFORMAT (mswindows, combo_box);
+DEFINE_DEVICE_IIFORMAT (mswindows, progress_gauge);
+DEFINE_DEVICE_IIFORMAT (mswindows, tree_view);
+DEFINE_DEVICE_IIFORMAT (mswindows, tab_control);
DEFINE_IMAGE_INSTANTIATOR_FORMAT (bmp);
Lisp_Object Qbmp;
/* instantiate an edit control */
static void
-mswindows_edit_instantiate (Lisp_Object image_instance, Lisp_Object instantiator,
+mswindows_edit_field_instantiate (Lisp_Object image_instance, Lisp_Object instantiator,
Lisp_Object pointer_fg, Lisp_Object pointer_bg,
int dest_mask, Lisp_Object domain)
{
/* instantiate a progress gauge */
static void
-mswindows_progress_instantiate (Lisp_Object image_instance, Lisp_Object instantiator,
+mswindows_progress_gauge_instantiate (Lisp_Object image_instance, Lisp_Object instantiator,
Lisp_Object pointer_fg, Lisp_Object pointer_bg,
int dest_mask, Lisp_Object domain)
{
}
static void
-mswindows_tree_instantiate (Lisp_Object image_instance, Lisp_Object instantiator,
+mswindows_tree_view_instantiate (Lisp_Object image_instance, Lisp_Object instantiator,
Lisp_Object pointer_fg, Lisp_Object pointer_bg,
int dest_mask, Lisp_Object domain)
{
}
static void
-mswindows_tab_instantiate (Lisp_Object image_instance, Lisp_Object instantiator,
+mswindows_tab_control_instantiate (Lisp_Object image_instance, Lisp_Object instantiator,
Lisp_Object pointer_fg, Lisp_Object pointer_bg,
int dest_mask, Lisp_Object domain)
{
Lisp_Object rest;
HWND wnd;
- HTREEITEM parent;
int index = 0;
struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance);
mswindows_widget_instantiate (image_instance, instantiator, pointer_fg,
/* instantiate a combo control */
static void
-mswindows_combo_instantiate (Lisp_Object image_instance, Lisp_Object instantiator,
+mswindows_combo_box_instantiate (Lisp_Object image_instance, Lisp_Object instantiator,
Lisp_Object pointer_fg, Lisp_Object pointer_bg,
int dest_mask, Lisp_Object domain)
{
/* get properties of a combo box */
static Lisp_Object
-mswindows_combo_property (Lisp_Object image_instance, Lisp_Object prop)
+mswindows_combo_box_property (Lisp_Object image_instance, Lisp_Object prop)
{
struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance);
HANDLE wnd = WIDGET_INSTANCE_MSWINDOWS_HANDLE (ii);
/* set the properties of a progres guage */
static Lisp_Object
-mswindows_progress_set_property (Lisp_Object image_instance, Lisp_Object prop,
+mswindows_progress_gauge_set_property (Lisp_Object image_instance, Lisp_Object prop,
Lisp_Object val)
{
struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance);
void
image_instantiator_format_create_glyphs_mswindows (void)
{
+ IIFORMAT_VALID_CONSOLE (mswindows, nothing);
+ IIFORMAT_VALID_CONSOLE (mswindows, string);
+ IIFORMAT_VALID_CONSOLE (mswindows, formatted_string);
+ IIFORMAT_VALID_CONSOLE (mswindows, inherit);
/* image-instantiator types */
#ifdef HAVE_XPM
INITIALIZE_DEVICE_IIFORMAT (mswindows, xpm);
INITIALIZE_DEVICE_IIFORMAT (mswindows, xface);
IIFORMAT_HAS_DEVMETHOD (mswindows, xface, instantiate);
#endif
+#ifdef HAVE_JPEG
+ IIFORMAT_VALID_CONSOLE (mswindows, jpeg);
+#endif
+#ifdef HAVE_TIFF
+ IIFORMAT_VALID_CONSOLE (mswindows, tiff);
+#endif
+#ifdef HAVE_PNG
+ IIFORMAT_VALID_CONSOLE (mswindows, png);
+#endif
+#ifdef HAVE_GIF
+ IIFORMAT_VALID_CONSOLE (mswindows, gif);
+#endif
/* button widget */
INITIALIZE_DEVICE_IIFORMAT (mswindows, button);
IIFORMAT_HAS_DEVMETHOD (mswindows, button, property);
IIFORMAT_HAS_DEVMETHOD (mswindows, button, instantiate);
- INITIALIZE_DEVICE_IIFORMAT (mswindows, edit);
- IIFORMAT_HAS_DEVMETHOD (mswindows, edit, instantiate);
+ INITIALIZE_DEVICE_IIFORMAT (mswindows, edit_field);
+ IIFORMAT_HAS_DEVMETHOD (mswindows, edit_field, instantiate);
INITIALIZE_DEVICE_IIFORMAT (mswindows, subwindow);
IIFORMAT_HAS_DEVMETHOD (mswindows, subwindow, instantiate);
IIFORMAT_HAS_DEVMETHOD (mswindows, label, instantiate);
/* combo box */
- INITIALIZE_DEVICE_IIFORMAT (mswindows, combo);
- IIFORMAT_HAS_DEVMETHOD (mswindows, combo, property);
- IIFORMAT_HAS_DEVMETHOD (mswindows, combo, instantiate);
+ INITIALIZE_DEVICE_IIFORMAT (mswindows, combo_box);
+ IIFORMAT_HAS_DEVMETHOD (mswindows, combo_box, property);
+ IIFORMAT_HAS_DEVMETHOD (mswindows, combo_box, instantiate);
/* scrollbar */
INITIALIZE_DEVICE_IIFORMAT (mswindows, scrollbar);
IIFORMAT_HAS_DEVMETHOD (mswindows, scrollbar, instantiate);
/* progress gauge */
- INITIALIZE_DEVICE_IIFORMAT (mswindows, progress);
- IIFORMAT_HAS_DEVMETHOD (mswindows, progress, set_property);
- IIFORMAT_HAS_DEVMETHOD (mswindows, progress, instantiate);
+ INITIALIZE_DEVICE_IIFORMAT (mswindows, progress_gauge);
+ IIFORMAT_HAS_DEVMETHOD (mswindows, progress_gauge, set_property);
+ IIFORMAT_HAS_DEVMETHOD (mswindows, progress_gauge, instantiate);
/* tree view widget */
- INITIALIZE_DEVICE_IIFORMAT (mswindows, tree);
+ INITIALIZE_DEVICE_IIFORMAT (mswindows, tree_view);
/* IIFORMAT_HAS_DEVMETHOD (mswindows, progress, set_property);*/
- IIFORMAT_HAS_DEVMETHOD (mswindows, tree, instantiate);
+ IIFORMAT_HAS_DEVMETHOD (mswindows, tree_view, instantiate);
/* tab control widget */
- INITIALIZE_DEVICE_IIFORMAT (mswindows, tab);
- IIFORMAT_HAS_DEVMETHOD (mswindows, tab, instantiate);
+ INITIALIZE_DEVICE_IIFORMAT (mswindows, tab_control);
+ IIFORMAT_HAS_DEVMETHOD (mswindows, tab_control, instantiate);
/* windows bitmap format */
INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (bmp, "bmp");
IIFORMAT_VALID_KEYWORD (bmp, Q_data, check_valid_string);
IIFORMAT_VALID_KEYWORD (bmp, Q_file, check_valid_string);
+ IIFORMAT_VALID_CONSOLE (mswindows, bmp);
/* mswindows resources */
INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (mswindows_resource,
check_valid_resource_symbol);
IIFORMAT_VALID_KEYWORD (mswindows_resource, Q_resource_id, check_valid_resource_id);
IIFORMAT_VALID_KEYWORD (mswindows_resource, Q_file, check_valid_string);
+ IIFORMAT_VALID_CONSOLE (mswindows, mswindows_resource);
}
void
vars_of_glyphs_mswindows (void)
{
- Fprovide (Qbmp);
- Fprovide (Qmswindows_resource);
DEFVAR_LISP ("mswindows-bitmap-file-path", &Vmswindows_bitmap_file_path /*
A list of the directories in which mswindows bitmap files may be found.
This is used by the `make-image-instance' function.
*/ );
Vmswindows_bitmap_file_path = Qnil;
-
- Fprovide (Qbutton);
- Fprovide (Qedit);
- Fprovide (Qcombo);
- Fprovide (Qscrollbar);
- Fprovide (Qlabel);
- Fprovide (Qprogress);
- Fprovide (Qtree);
- Fprovide (Qtab);
}
void
#include "opaque.h"
DEFINE_IMAGE_INSTANTIATOR_FORMAT (button);
-DEFINE_IMAGE_INSTANTIATOR_FORMAT (combo);
-Lisp_Object Qcombo;
-DEFINE_IMAGE_INSTANTIATOR_FORMAT (edit);
-Lisp_Object Qedit;
+DEFINE_IMAGE_INSTANTIATOR_FORMAT (combo_box);
+Lisp_Object Qcombo_box;
+DEFINE_IMAGE_INSTANTIATOR_FORMAT (edit_field);
+Lisp_Object Qedit_field;
DEFINE_IMAGE_INSTANTIATOR_FORMAT (scrollbar);
Lisp_Object Qscrollbar;
DEFINE_IMAGE_INSTANTIATOR_FORMAT (widget);
#endif
DEFINE_IMAGE_INSTANTIATOR_FORMAT (label);
Lisp_Object Qlabel;
-DEFINE_IMAGE_INSTANTIATOR_FORMAT (progress);
-Lisp_Object Qprogress;
-DEFINE_IMAGE_INSTANTIATOR_FORMAT (tree);
-Lisp_Object Qtree;
-DEFINE_IMAGE_INSTANTIATOR_FORMAT (tab);
-Lisp_Object Qtab;
+DEFINE_IMAGE_INSTANTIATOR_FORMAT (progress_gauge);
+Lisp_Object Qprogress_gauge;
+DEFINE_IMAGE_INSTANTIATOR_FORMAT (tree_view);
+Lisp_Object Qtree_view;
+DEFINE_IMAGE_INSTANTIATOR_FORMAT (tab_control);
+Lisp_Object Qtab_control;
Lisp_Object Q_descriptor, Q_height, Q_width, Q_properties, Q_items;
Lisp_Object Q_image, Q_text, Q_percent;
the instances. This is encoded in the widget type
field. widget_property gets invoked by decoding the primary type
(Qwidget), widget property then invokes based on the secondary type
- (Qedit for example). It is debatable that we should wire things in this
+ (Qedit_field for example). It is debatable that we should wire things in this
generalised way rather than treating widgets specially in
image_instance_property. */
static Lisp_Object
}
static void
-combo_validate (Lisp_Object instantiator)
+combo_box_validate (Lisp_Object instantiator)
{
widget_validate (instantiator);
if (NILP (find_keyword_in_vector (instantiator, Q_properties)))
/* combo-box generic instantiation - get he heigh right */
static void
-combo_instantiate (Lisp_Object image_instance, Lisp_Object instantiator,
+combo_box_instantiate (Lisp_Object image_instance, Lisp_Object instantiator,
Lisp_Object pointer_fg, Lisp_Object pointer_bg,
int dest_mask, Lisp_Object domain)
{
}
static void
-tab_instantiate (Lisp_Object image_instance, Lisp_Object instantiator,
+tab_control_instantiate (Lisp_Object image_instance, Lisp_Object instantiator,
Lisp_Object pointer_fg, Lisp_Object pointer_bg,
int dest_mask, Lisp_Object domain)
{
VALID_GUI_KEYWORDS (button);
/* edit fields */
- INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (edit, "edit");
- IIFORMAT_HAS_SHARED_METHOD (edit, validate, widget);
- IIFORMAT_HAS_SHARED_METHOD (edit, possible_dest_types, widget);
- IIFORMAT_HAS_SHARED_METHOD (edit, instantiate, widget);
- VALID_WIDGET_KEYWORDS (edit);
- VALID_GUI_KEYWORDS (edit);
+ INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (edit_field, "edit-field");
+ IIFORMAT_HAS_SHARED_METHOD (edit_field, validate, widget);
+ IIFORMAT_HAS_SHARED_METHOD (edit_field, possible_dest_types, widget);
+ IIFORMAT_HAS_SHARED_METHOD (edit_field, instantiate, widget);
+ VALID_WIDGET_KEYWORDS (edit_field);
+ VALID_GUI_KEYWORDS (edit_field);
/* combo box */
- INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (combo, "combo");
- IIFORMAT_HAS_METHOD (combo, validate);
- IIFORMAT_HAS_SHARED_METHOD (combo, possible_dest_types, widget);
- IIFORMAT_HAS_METHOD (combo, instantiate);
- VALID_GUI_KEYWORDS (combo);
-
- IIFORMAT_VALID_KEYWORD (combo, Q_width, check_valid_int);
- IIFORMAT_VALID_KEYWORD (combo, Q_height, check_valid_int);
- IIFORMAT_VALID_KEYWORD (combo, Q_pixel_width, check_valid_int);
- IIFORMAT_VALID_KEYWORD (combo, Q_face, check_valid_face);
- IIFORMAT_VALID_KEYWORD (combo, Q_properties, check_valid_item_list);
+ INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (combo_box, "combo-box");
+ IIFORMAT_HAS_METHOD (combo_box, validate);
+ IIFORMAT_HAS_SHARED_METHOD (combo_box, possible_dest_types, widget);
+ IIFORMAT_HAS_METHOD (combo_box, instantiate);
+ VALID_GUI_KEYWORDS (combo_box);
+
+ IIFORMAT_VALID_KEYWORD (combo_box, Q_width, check_valid_int);
+ IIFORMAT_VALID_KEYWORD (combo_box, Q_height, check_valid_int);
+ IIFORMAT_VALID_KEYWORD (combo_box, Q_pixel_width, check_valid_int);
+ IIFORMAT_VALID_KEYWORD (combo_box, Q_face, check_valid_face);
+ IIFORMAT_VALID_KEYWORD (combo_box, Q_properties, check_valid_item_list);
/* scrollbar */
INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (scrollbar, "scrollbar");
IIFORMAT_VALID_KEYWORD (scrollbar, Q_face, check_valid_face);
/* progress guage */
- INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (progress, "progress");
- IIFORMAT_HAS_SHARED_METHOD (progress, validate, widget);
- IIFORMAT_HAS_SHARED_METHOD (progress, possible_dest_types, widget);
- IIFORMAT_HAS_SHARED_METHOD (progress, instantiate, combo);
- VALID_WIDGET_KEYWORDS (progress);
- VALID_GUI_KEYWORDS (progress);
+ INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (progress_gauge, "progress-gauge");
+ IIFORMAT_HAS_SHARED_METHOD (progress_gauge, validate, widget);
+ IIFORMAT_HAS_SHARED_METHOD (progress_gauge, possible_dest_types, widget);
+ IIFORMAT_HAS_SHARED_METHOD (progress_gauge, instantiate, combo_box);
+ VALID_WIDGET_KEYWORDS (progress_gauge);
+ VALID_GUI_KEYWORDS (progress_gauge);
/* tree view */
- INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (tree, "tree");
- IIFORMAT_HAS_SHARED_METHOD (tree, validate, combo);
- IIFORMAT_HAS_SHARED_METHOD (tree, possible_dest_types, widget);
- IIFORMAT_HAS_SHARED_METHOD (tree, instantiate, combo);
- VALID_WIDGET_KEYWORDS (tree);
- VALID_GUI_KEYWORDS (tree);
- IIFORMAT_VALID_KEYWORD (tree, Q_properties, check_valid_item_list);
+ INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (tree_view, "tree-view");
+ IIFORMAT_HAS_SHARED_METHOD (tree_view, validate, combo_box);
+ IIFORMAT_HAS_SHARED_METHOD (tree_view, possible_dest_types, widget);
+ IIFORMAT_HAS_SHARED_METHOD (tree_view, instantiate, combo_box);
+ VALID_WIDGET_KEYWORDS (tree_view);
+ VALID_GUI_KEYWORDS (tree_view);
+ IIFORMAT_VALID_KEYWORD (tree_view, Q_properties, check_valid_item_list);
/* tab control */
- INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (tab, "tab");
- IIFORMAT_HAS_SHARED_METHOD (tab, validate, combo);
- IIFORMAT_HAS_SHARED_METHOD (tab, possible_dest_types, widget);
- IIFORMAT_HAS_METHOD (tab, instantiate);
- VALID_WIDGET_KEYWORDS (tab);
- VALID_GUI_KEYWORDS (tab);
- IIFORMAT_VALID_KEYWORD (tab, Q_properties, check_valid_item_list);
+ INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (tab_control, "tab-control");
+ IIFORMAT_HAS_SHARED_METHOD (tab_control, validate, combo_box);
+ IIFORMAT_HAS_SHARED_METHOD (tab_control, possible_dest_types, widget);
+ IIFORMAT_HAS_METHOD (tab_control, instantiate);
+ VALID_WIDGET_KEYWORDS (tab_control);
+ VALID_GUI_KEYWORDS (tab_control);
+ IIFORMAT_VALID_KEYWORD (tab_control, Q_properties, check_valid_item_list);
/* labels */
INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (label, "label");
Copyright (C) 1995 Tinker Systems
Copyright (C) 1995, 1996 Ben Wing
Copyright (C) 1995 Sun Microsystems
+ Copyright (C) 1999 Andy Piper
This file is part of XEmacs.
#include "console-x.h"
#include "glyphs-x.h"
#include "objects-x.h"
+#include "gui-x.h"
#include "xmu.h"
#include "buffer.h"
#include "frame.h"
#include "insdel.h"
#include "opaque.h"
+#include "gui.h"
+#include "faces.h"
#include "imgproc.h"
#include "file-coding.h"
#endif
+#ifdef LWLIB_USES_MOTIF
+#include <Xm/Xm.h>
+#endif
+#include <X11/IntrinsicP.h>
+
#if INTBITS == 32
# define FOUR_BYTE_TYPE unsigned int
#elif LONGBITS == 32
#define LISP_DEVICE_TO_X_SCREEN(dev) XDefaultScreenOfDisplay (DEVICE_X_DISPLAY (XDEVICE (dev)))
+DECLARE_IMAGE_INSTANTIATOR_FORMAT (nothing);
+DECLARE_IMAGE_INSTANTIATOR_FORMAT (string);
+DECLARE_IMAGE_INSTANTIATOR_FORMAT (formatted_string);
+DECLARE_IMAGE_INSTANTIATOR_FORMAT (inherit);
+#ifdef HAVE_JPEG
+DECLARE_IMAGE_INSTANTIATOR_FORMAT (jpeg);
+#endif
+#ifdef HAVE_TIFF
+DECLARE_IMAGE_INSTANTIATOR_FORMAT (tiff);
+#endif
+#ifdef HAVE_PNG
+DECLARE_IMAGE_INSTANTIATOR_FORMAT (png);
+#endif
+#ifdef HAVE_GIF
+DECLARE_IMAGE_INSTANTIATOR_FORMAT (gif);
+#endif
#ifdef HAVE_XPM
DEFINE_DEVICE_IIFORMAT (x, xpm);
#endif
DEFINE_IMAGE_INSTANTIATOR_FORMAT (autodetect);
+DEFINE_DEVICE_IIFORMAT (x, widget);
+DEFINE_DEVICE_IIFORMAT (x, button);
+DEFINE_DEVICE_IIFORMAT (x, progress_gauge);
+DEFINE_DEVICE_IIFORMAT (x, edit_field);
+DEFINE_DEVICE_IIFORMAT (x, combo_box);
+
static void cursor_font_instantiate (Lisp_Object image_instance,
Lisp_Object instantiator,
Lisp_Object pointer_fg,
{
Display *dpy = DEVICE_X_DISPLAY (XDEVICE (p->device));
- if (IMAGE_INSTANCE_TYPE (p) == IMAGE_WIDGET
- ||
- IMAGE_INSTANCE_TYPE (p) == IMAGE_SUBWINDOW)
+ if (IMAGE_INSTANCE_TYPE (p) == IMAGE_WIDGET)
+ {
+ if (IMAGE_INSTANCE_SUBWINDOW_ID (p))
+ {
+ XtUnmanageChild (IMAGE_INSTANCE_X_WIDGET_ID (p));
+ XtDestroyWidget (IMAGE_INSTANCE_X_WIDGET_ID (p));
+ IMAGE_INSTANCE_SUBWINDOW_ID (p) = 0;
+ }
+ }
+ else if (IMAGE_INSTANCE_TYPE (p) == IMAGE_SUBWINDOW)
{
if (IMAGE_INSTANCE_SUBWINDOW_ID (p))
XDestroyWindow (dpy, IMAGE_INSTANCE_X_SUBWINDOW_ID (p));
static void
x_unmap_subwindow (struct Lisp_Image_Instance *p)
{
- XUnmapWindow (DisplayOfScreen (IMAGE_INSTANCE_X_SUBWINDOW_SCREEN (p)),
- IMAGE_INSTANCE_X_SUBWINDOW_ID (p));
+ if (IMAGE_INSTANCE_TYPE (p) == IMAGE_SUBWINDOW)
+ {
+ XUnmapWindow
+ (DisplayOfScreen (IMAGE_INSTANCE_X_SUBWINDOW_SCREEN (p)),
+ IMAGE_INSTANCE_X_SUBWINDOW_ID (p));
+ }
+ else /* must be a widget */
+ {
+ XtUnmapWidget (IMAGE_INSTANCE_X_WIDGET_ID (p));
+ }
}
/* map the subwindow. This is used by redisplay via
static void
x_map_subwindow (struct Lisp_Image_Instance *p, int x, int y)
{
- XMapWindow (DisplayOfScreen (IMAGE_INSTANCE_X_SUBWINDOW_SCREEN (p)),
- IMAGE_INSTANCE_X_SUBWINDOW_ID (p));
- XMoveWindow (DisplayOfScreen (IMAGE_INSTANCE_X_SUBWINDOW_SCREEN (p)),
- IMAGE_INSTANCE_X_SUBWINDOW_ID (p), x, y);
+ if (IMAGE_INSTANCE_TYPE (p) == IMAGE_SUBWINDOW)
+ {
+ Window subwindow = IMAGE_INSTANCE_X_SUBWINDOW_ID (p);
+ Screen* screen = IMAGE_INSTANCE_X_SUBWINDOW_SCREEN (p);
+ XMapWindow (DisplayOfScreen (screen), subwindow);
+ XMoveWindow (DisplayOfScreen (screen), subwindow, x, y);
+ }
+ else /* must be a widget */
+ {
+ XtMoveWidget (IMAGE_INSTANCE_X_WIDGET_ID (p),
+ x + IMAGE_INSTANCE_X_WIDGET_XOFFSET (p),
+ y + IMAGE_INSTANCE_X_WIDGET_YOFFSET (p));
+ XtMapWidget (IMAGE_INSTANCE_X_WIDGET_ID (p));
+ }
+}
+
+/* when you click on a widget you may activate another widget this
+ needs to be checked and all appropriate widgets updated */
+static void
+x_update_subwindow (struct Lisp_Image_Instance *p)
+{
+ if (IMAGE_INSTANCE_TYPE (p) == IMAGE_WIDGET)
+ {
+ widget_value* wv = xmalloc_widget_value ();
+ button_item_to_widget_value (IMAGE_INSTANCE_WIDGET_SINGLE_ITEM (p),
+ wv, 1, 1);
+ lw_modify_all_widgets (IMAGE_INSTANCE_X_WIDGET_LWID (p),
+ wv, 1);
+ }
}
/* instantiate and x type subwindow */
dpy = DEVICE_X_DISPLAY (XDEVICE (device));
xs = DefaultScreenOfDisplay (dpy);
- if (dest_mask & IMAGE_SUBWINDOW_MASK)
- IMAGE_INSTANCE_TYPE (ii) = IMAGE_SUBWINDOW;
- else
- incompatible_image_types (instantiator, dest_mask,
- IMAGE_SUBWINDOW_MASK);
+ IMAGE_INSTANCE_TYPE (ii) = IMAGE_SUBWINDOW;
pw = XtWindow (FRAME_X_TEXT_WIDGET (f));
w, h);
}
+/************************************************************************/
+/* widgets */
+/************************************************************************/
+
+static void
+x_widget_instantiate (Lisp_Object image_instance, Lisp_Object instantiator,
+ Lisp_Object pointer_fg, Lisp_Object pointer_bg,
+ int dest_mask, Lisp_Object domain,
+ CONST char* type, widget_value* wv)
+{
+ struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance);
+ Lisp_Object device = IMAGE_INSTANCE_DEVICE (ii), pixel;
+ struct device* d = XDEVICE (device);
+ Lisp_Object frame = FW_FRAME (domain);
+ struct frame* f = XFRAME (frame);
+ XColor fcolor, bcolor;
+ Extbyte* nm=0;
+ Widget wid;
+ Arg al [32];
+ int ac = 0;
+ int id = new_lwlib_id ();
+
+ if (!DEVICE_X_P (d))
+ signal_simple_error ("Not an mswindows device", device);
+
+ /* have to set the type this late in case there is no device
+ instantiation for a widget. But we can go ahead and do it without
+ checking because there is always a generic instantiator. */
+ IMAGE_INSTANCE_TYPE (ii) = IMAGE_WIDGET;
+
+ if (!NILP (IMAGE_INSTANCE_WIDGET_TEXT (ii)))
+ GET_C_STRING_OS_DATA_ALLOCA (IMAGE_INSTANCE_WIDGET_TEXT (ii), nm);
+
+ ii->data = xnew_and_zero (struct x_subwindow_data);
+
+ /* copy any args we were given */
+ if (wv->nargs)
+ lw_add_value_args_to_args (wv, al, &ac);
+
+ /* add our own arguments */
+ pixel = FACE_FOREGROUND
+ (IMAGE_INSTANCE_WIDGET_FACE (ii),
+ IMAGE_INSTANCE_SUBWINDOW_FRAME (ii));
+ fcolor = COLOR_INSTANCE_X_COLOR (XCOLOR_INSTANCE (pixel));
+ pixel = FACE_BACKGROUND
+ (IMAGE_INSTANCE_WIDGET_FACE (ii),
+ IMAGE_INSTANCE_SUBWINDOW_FRAME (ii));
+ bcolor = COLOR_INSTANCE_X_COLOR (XCOLOR_INSTANCE (pixel));
+
+ XtSetArg (al [ac], XtNbackground, bcolor.pixel); ac++;
+ XtSetArg (al [ac], XtNforeground, fcolor.pixel); ac++;
+ XtSetArg (al [ac], XtNfont, (void*)FONT_INSTANCE_X_FONT
+ (XFONT_INSTANCE (widget_face_font_info
+ (domain,
+ IMAGE_INSTANCE_WIDGET_FACE (ii),
+ 0, 0)))); ac++;
+
+ wv->nargs = ac;
+ wv->args = al;
+
+ wid = lw_create_widget (type, wv->name, id, wv, FRAME_X_CONTAINER_WIDGET (f),
+ False, 0, popup_selection_callback, 0);
+
+ IMAGE_INSTANCE_X_WIDGET_LWID (ii) = id;
+
+ /* because the EmacsManager is the widgets parent we have to
+ offset the redisplay of the widget by the amount the text
+ widget is inside the manager. */
+ ac = 0;
+ XtSetArg (al [ac], XtNwidth,
+ (Dimension)IMAGE_INSTANCE_SUBWINDOW_WIDTH (ii)); ac++;
+ XtSetArg (al [ac], XtNheight,
+ (Dimension)IMAGE_INSTANCE_SUBWINDOW_HEIGHT (ii)); ac++;
+ XtSetValues (wid, al, ac);
+ /* finally get offsets in the frame */
+ ac = 0;
+ XtSetArg (al [ac], XtNx, &IMAGE_INSTANCE_X_WIDGET_XOFFSET (ii)); ac++;
+ XtSetArg (al [ac], XtNy, &IMAGE_INSTANCE_X_WIDGET_YOFFSET (ii)); ac++;
+ XtGetValues (FRAME_X_TEXT_WIDGET (f), al, ac);
+
+ IMAGE_INSTANCE_SUBWINDOW_ID (ii) = (void*)wid;
+
+ free_widget_value (wv);
+}
+
+static Lisp_Object
+x_widget_set_property (Lisp_Object image_instance, Lisp_Object prop,
+ Lisp_Object val)
+{
+ struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance);
+
+ if (EQ (prop, Q_text))
+ {
+ Extbyte* str=0;
+ widget_value* wv = lw_get_all_values (IMAGE_INSTANCE_X_WIDGET_LWID (ii));
+ CHECK_STRING (val);
+ GET_C_STRING_OS_DATA_ALLOCA (val, str);
+ wv->value = str;
+ lw_modify_all_widgets (IMAGE_INSTANCE_X_WIDGET_LWID (ii), wv, False);
+ return Qt;
+ }
+ return Qunbound;
+}
+
+/* get properties of a control */
+static Lisp_Object
+x_widget_property (Lisp_Object image_instance, Lisp_Object prop)
+{
+ struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance);
+ /* get the text from a control */
+ if (EQ (prop, Q_text))
+ {
+ widget_value* wv = lw_get_all_values (IMAGE_INSTANCE_X_WIDGET_LWID (ii));
+ return build_ext_string (wv->value, FORMAT_OS);
+ }
+ return Qunbound;
+}
+
+/* Instantiate a button widget. Unfortunately instantiated widgets are
+ particular to a frame since they need to have a parent. It's not
+ like images where you just select the image into the context you
+ want to display it in and BitBlt it. So images instances can have a
+ many-to-one relationship with things you see, whereas widgets can
+ only be one-to-one (i.e. per frame) */
+static void
+x_button_instantiate (Lisp_Object image_instance, Lisp_Object instantiator,
+ Lisp_Object pointer_fg, Lisp_Object pointer_bg,
+ int dest_mask, Lisp_Object domain)
+{
+ struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance);
+ Lisp_Object gui = IMAGE_INSTANCE_WIDGET_ITEM (ii);
+ Lisp_Object glyph = find_keyword_in_vector (instantiator, Q_image);
+ widget_value* wv = xmalloc_widget_value ();
+
+ button_item_to_widget_value (gui, wv, 1, 1);
+
+ if (!NILP (glyph))
+ {
+ if (!IMAGE_INSTANCEP (glyph))
+ glyph = glyph_image_instance (glyph, domain, ERROR_ME, 1);
+ }
+
+ x_widget_instantiate (image_instance, instantiator, pointer_fg,
+ pointer_bg, dest_mask, domain, "button", wv);
+
+ /* add the image if one was given */
+ if (!NILP (glyph) && IMAGE_INSTANCEP (glyph))
+ {
+ Arg al [2];
+ int ac =0;
+#ifdef LWLIB_USES_MOTIF
+ XtSetArg (al [ac], XmNlabelType, XmPIXMAP); ac++;
+ XtSetArg (al [ac], XmNlabelPixmap, XIMAGE_INSTANCE_X_PIXMAP (glyph));ac++;
+#else
+ XtSetArg (al [ac], XtNpixmap, XIMAGE_INSTANCE_X_PIXMAP (glyph)); ac++;
+#endif
+ XtSetValues (IMAGE_INSTANCE_X_WIDGET_ID (ii), al, ac);
+ }
+}
+
+/* get properties of a button */
+static Lisp_Object
+x_button_property (Lisp_Object image_instance, Lisp_Object prop)
+{
+ struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance);
+ /* check the state of a button */
+ if (EQ (prop, Q_selected))
+ {
+ widget_value* wv = lw_get_all_values (IMAGE_INSTANCE_X_WIDGET_LWID (ii));
+
+ if (wv->selected)
+ return Qt;
+ else
+ return Qnil;
+ }
+ return Qunbound;
+}
+
+/* instantiate a progress gauge */
+static void
+x_progress_gauge_instantiate (Lisp_Object image_instance, Lisp_Object instantiator,
+ Lisp_Object pointer_fg, Lisp_Object pointer_bg,
+ int dest_mask, Lisp_Object domain)
+{
+ struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance);
+ Lisp_Object gui = IMAGE_INSTANCE_WIDGET_ITEM (ii);
+ widget_value* wv = xmalloc_widget_value ();
+
+ button_item_to_widget_value (gui, wv, 1, 1);
+
+ x_widget_instantiate (image_instance, instantiator, pointer_fg,
+ pointer_bg, dest_mask, domain, "progress", wv);
+}
+
+/* set the properties of a progres guage */
+static Lisp_Object
+x_progress_gauge_set_property (Lisp_Object image_instance, Lisp_Object prop,
+ Lisp_Object val)
+{
+ struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance);
+
+ if (EQ (prop, Q_percent))
+ {
+ Arg al [1];
+ CHECK_INT (val);
+ XtSetArg (al[0], XtNvalue, XINT (val));
+ XtSetValues (IMAGE_INSTANCE_X_WIDGET_ID (ii), al, 1);
+ return Qt;
+ }
+ return Qunbound;
+}
+
+/* instantiate an edit control */
+static void
+x_edit_field_instantiate (Lisp_Object image_instance, Lisp_Object instantiator,
+ Lisp_Object pointer_fg, Lisp_Object pointer_bg,
+ int dest_mask, Lisp_Object domain)
+{
+ struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance);
+ Lisp_Object gui = IMAGE_INSTANCE_WIDGET_ITEM (ii);
+ widget_value* wv = xmalloc_widget_value ();
+
+ button_item_to_widget_value (gui, wv, 1, 1);
+
+ x_widget_instantiate (image_instance, instantiator, pointer_fg,
+ pointer_bg, dest_mask, domain, "text-field", wv);
+}
+
+/* instantiate a combo control */
+static void
+x_combo_box_instantiate (Lisp_Object image_instance, Lisp_Object instantiator,
+ Lisp_Object pointer_fg, Lisp_Object pointer_bg,
+ int dest_mask, Lisp_Object domain)
+{
+ struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance);
+ Lisp_Object rest;
+ Lisp_Object gui = IMAGE_INSTANCE_WIDGET_ITEM (ii);
+ widget_value* wv = xmalloc_widget_value ();
+
+ button_item_to_widget_value (gui, wv, 1, 1);
+
+ x_widget_instantiate (image_instance, instantiator, pointer_fg,
+ pointer_bg, dest_mask, domain, "combo-box", wv);
+ /* add items to the combo box */
+ LIST_LOOP (rest, Fplist_get (IMAGE_INSTANCE_WIDGET_PROPS (ii), Q_items, Qnil))
+ {
+#if 0
+ Extbyte* str;
+ XmString xmstr;
+ GET_C_STRING_OS_DATA_ALLOCA (XCAR (rest), str);
+ xmstr = XmStringCreate (str, XmSTRING_DEFAULT_CHARSET);
+ XmListAddItem (IMAGE_INSTANCE_X_WIDGET_ID (ii), xmstr, 0);
+ XmStringFree (xmstr);
+#endif
+ }
+}
+
\f
/************************************************************************/
/* initialization */
CONSOLE_HAS_METHOD (x, unmap_subwindow);
CONSOLE_HAS_METHOD (x, map_subwindow);
CONSOLE_HAS_METHOD (x, resize_subwindow);
+ CONSOLE_HAS_METHOD (x, update_subwindow);
}
void
image_instantiator_format_create_glyphs_x (void)
{
+ IIFORMAT_VALID_CONSOLE (x, nothing);
+ IIFORMAT_VALID_CONSOLE (x, string);
+ IIFORMAT_VALID_CONSOLE (x, formatted_string);
+ IIFORMAT_VALID_CONSOLE (x, inherit);
#ifdef HAVE_XPM
INITIALIZE_DEVICE_IIFORMAT (x, xpm);
IIFORMAT_HAS_DEVMETHOD (x, xpm, instantiate);
#endif
+#ifdef HAVE_JPEG
+ IIFORMAT_VALID_CONSOLE (x, jpeg);
+#endif
+#ifdef HAVE_TIFF
+ IIFORMAT_VALID_CONSOLE (x, tiff);
+#endif
+#ifdef HAVE_PNG
+ IIFORMAT_VALID_CONSOLE (x, png);
+#endif
+#ifdef HAVE_GIF
+ IIFORMAT_VALID_CONSOLE (x, gif);
+#endif
INITIALIZE_DEVICE_IIFORMAT (x, xbm);
IIFORMAT_HAS_DEVMETHOD (x, xbm, instantiate);
INITIALIZE_DEVICE_IIFORMAT (x, subwindow);
IIFORMAT_HAS_DEVMETHOD (x, subwindow, instantiate);
+ /* button widget */
+ INITIALIZE_DEVICE_IIFORMAT (x, button);
+ IIFORMAT_HAS_DEVMETHOD (x, button, property);
+ IIFORMAT_HAS_DEVMETHOD (x, button, instantiate);
+
+ INITIALIZE_DEVICE_IIFORMAT (x, widget);
+ IIFORMAT_HAS_DEVMETHOD (x, widget, property);
+ IIFORMAT_HAS_DEVMETHOD (x, widget, set_property);
+ /* progress gauge */
+ INITIALIZE_DEVICE_IIFORMAT (x, progress_gauge);
+ IIFORMAT_HAS_DEVMETHOD (x, progress_gauge, set_property);
+ IIFORMAT_HAS_DEVMETHOD (x, progress_gauge, instantiate);
+ /* text field */
+ INITIALIZE_DEVICE_IIFORMAT (x, edit_field);
+ IIFORMAT_HAS_DEVMETHOD (x, edit_field, instantiate);
+ /* combo box */
+ INITIALIZE_DEVICE_IIFORMAT (x, combo_box);
+ IIFORMAT_HAS_DEVMETHOD (x, combo_box, instantiate);
+
INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (cursor_font, "cursor-font");
+ IIFORMAT_VALID_CONSOLE (x, cursor_font);
IIFORMAT_HAS_METHOD (cursor_font, validate);
IIFORMAT_HAS_METHOD (cursor_font, possible_dest_types);
IIFORMAT_HAS_METHOD (font, validate);
IIFORMAT_HAS_METHOD (font, possible_dest_types);
IIFORMAT_HAS_METHOD (font, instantiate);
+ IIFORMAT_VALID_CONSOLE (x, font);
IIFORMAT_VALID_KEYWORD (font, Q_data, check_valid_string);
IIFORMAT_VALID_KEYWORD (font, Q_foreground, check_valid_string);
IIFORMAT_HAS_METHOD (autodetect, normalize);
IIFORMAT_HAS_METHOD (autodetect, possible_dest_types);
IIFORMAT_HAS_METHOD (autodetect, instantiate);
+ IIFORMAT_VALID_CONSOLE (x, autodetect);
IIFORMAT_VALID_KEYWORD (autodetect, Q_data, check_valid_string);
}
struct x_subwindow_data
{
- Screen *xscreen;
- Window parent_window;
+ union
+ {
+ struct
+ {
+ Screen *xscreen;
+ Window parent_window;
+ } sub;
+ struct
+ {
+ Position x_offset;
+ Position y_offset;
+ LWLIB_ID id;
+ } wid;
+ } data;
};
#define X_SUBWINDOW_INSTANCE_DATA(i) ((struct x_subwindow_data *) (i)->data)
#define IMAGE_INSTANCE_X_SUBWINDOW_SCREEN(i) \
- (X_SUBWINDOW_INSTANCE_DATA (i)->xscreen)
+ (X_SUBWINDOW_INSTANCE_DATA (i)->data.sub.xscreen)
#define IMAGE_INSTANCE_X_SUBWINDOW_PARENT(i) \
- (X_SUBWINDOW_INSTANCE_DATA (i)->parent_window)
+ (X_SUBWINDOW_INSTANCE_DATA (i)->data.sub.parent_window)
+#define IMAGE_INSTANCE_X_WIDGET_XOFFSET(i) \
+ (X_SUBWINDOW_INSTANCE_DATA (i)->data.wid.x_offset)
+#define IMAGE_INSTANCE_X_WIDGET_YOFFSET(i) \
+ (X_SUBWINDOW_INSTANCE_DATA (i)->data.wid.y_offset)
+#define IMAGE_INSTANCE_X_WIDGET_LWID(i) \
+ (X_SUBWINDOW_INSTANCE_DATA (i)->data.wid.id)
#define XIMAGE_INSTANCE_X_SUBWINDOW_PARENT(i) \
IMAGE_INSTANCE_X_SUBWINDOW_PARENT (XIMAGE_INSTANCE (i))
#define XIMAGE_INSTANCE_X_SUBWINDOW_SCREEN(i) \
IMAGE_INSTANCE_X_SUBWINDOW_SCREEN (XIMAGE_INSTANCE (i))
+#define XIMAGE_INSTANCE_X_WIDGET_XOFFSET(i) \
+ IMAGE_INSTANCE_X_WIDGET_XOFFSET (XIMAGE_INSTANCE (i))
+#define XIMAGE_INSTANCE_X_WIDGET_YOFFSET(i) \
+ IMAGE_INSTANCE_X_WIDGET_YOFFSET (XIMAGE_INSTANCE (i))
+#define XIMAGE_INSTANCE_X_WIDGET_LWID(i) \
+ IMAGE_INSTANCE_X_WIDGET_LWID (XIMAGE_INSTANCE (i))
#define IMAGE_INSTANCE_X_SUBWINDOW_ID(i) \
((Window) IMAGE_INSTANCE_SUBWINDOW_ID (i))
+#define IMAGE_INSTANCE_X_WIDGET_ID(i) \
+ ((Widget) IMAGE_INSTANCE_SUBWINDOW_ID (i))
#endif /* HAVE_X_WINDOWS */
#endif /* _XEMACS_GLYPHS_X_H_ */
}
static int
-valid_image_instantiator_format_p (Lisp_Object format)
+valid_image_instantiator_format_p (Lisp_Object format, Lisp_Object locale)
{
- return (decode_image_instantiator_format (format, ERROR_ME_NOT) != 0);
+ int i;
+ struct image_instantiator_methods* meths =
+ decode_image_instantiator_format (format, ERROR_ME_NOT);
+ struct console* console = decode_console (locale);
+ Lisp_Object contype = console ? CONSOLE_TYPE (console) : locale;
+ /* nothing is valid in all locales */
+ if (EQ (format, Qnothing))
+ return 1;
+ /* reject unknown formats */
+ else if (!console || !meths)
+ return 0;
+
+ for (i = 0; i < Dynarr_length (meths->consoles); i++)
+ if (EQ (contype, Dynarr_at (meths->consoles, i).symbol))
+ return 1;
+ return 0;
}
DEFUN ("valid-image-instantiator-format-p", Fvalid_image_instantiator_format_p,
- 1, 1, 0, /*
+ 1, 2, 0, /*
Given an IMAGE-INSTANTIATOR-FORMAT, return non-nil if it is valid.
+If LOCALE is non-nil then the format is checked in that domain.
+If LOCALE is nil the current console is used.
Valid formats are some subset of 'nothing, 'string, 'formatted-string,
'xpm, 'xbm, 'xface, 'gif, 'jpeg, 'png, 'tiff, 'cursor-font, 'font,
'autodetect, 'widget and 'subwindow, depending on how XEmacs was compiled.
*/
- (image_instantiator_format))
+ (image_instantiator_format, locale))
{
- return valid_image_instantiator_format_p (image_instantiator_format) ?
+ return valid_image_instantiator_format_p (image_instantiator_format, locale) ?
Qt : Qnil;
}
int methp = 0;
GCPRO1 (ii);
+ if (!valid_image_instantiator_format_p (XVECTOR_DATA (instantiator)[0], device))
+ signal_simple_error
+ ("Image instantiator format is invalid in this locale.",
+ instantiator);
+
meths = decode_image_instantiator_format (XVECTOR_DATA (instantiator)[0],
ERROR_ME);
methp = (int)HAS_IIFORMAT_METH_P (meths, instantiate);
IIFORMAT_HAS_METHOD (formatted_string, validate);
IIFORMAT_HAS_METHOD (formatted_string, possible_dest_types);
IIFORMAT_HAS_METHOD (formatted_string, instantiate);
-
IIFORMAT_VALID_KEYWORD (formatted_string, Q_data, check_valid_string);
/* subwindows */
Lisp_Object device; /* sometimes used */
ii_keyword_entry_dynarr *keywords;
+ /* consoles this ii is supported on */
+ console_type_entry_dynarr *consoles;
/* Implementation specific methods: */
/* Validate method: Given an instantiator vector, signal an error if
format##_image_instantiator_methods->device = Qnil; \
format##_image_instantiator_methods->keywords = \
Dynarr_new (ii_keyword_entry); \
+ format##_image_instantiator_methods->consoles = \
+ Dynarr_new (console_type_entry); \
add_entry_to_image_instantiator_format_list \
(Q##format, format##_image_instantiator_methods); \
} while (0)
entry); \
} while (0)
+/* Declare that image-instantiator format FORMAT is supported on
+ CONSOLE type. */
+#define IIFORMAT_VALID_CONSOLE(console, format) \
+ do { \
+ struct console_type_entry entry; \
+ \
+ entry.symbol = Q##console; \
+ entry.meths = console##_console_methods; \
+ Dynarr_add (format##_image_instantiator_methods->consoles, \
+ entry); \
+ } while (0)
+
#define DEFINE_DEVICE_IIFORMAT(type, format)\
+DECLARE_IMAGE_INSTANTIATOR_FORMAT(format); \
struct image_instantiator_methods *type##_##format##_image_instantiator_methods
#define INITIALIZE_DEVICE_IIFORMAT(type, format) \
Dynarr_new (ii_keyword_entry); \
add_entry_to_device_ii_format_list \
(Q##type, Q##format, type##_##format##_image_instantiator_methods); \
+ IIFORMAT_VALID_CONSOLE(type,format); \
} while (0)
/* Declare that image-instantiator format FORMAT has method M; used in
extern Lisp_Object Qxpm, Qxface;
extern Lisp_Object Q_data, Q_file, Q_color_symbols, Qconst_glyph_variable;
-extern Lisp_Object Qxbm, Qedit, Qgroup, Qlabel, Qcombo, Qscrollbar, Qprogress;
-extern Lisp_Object Qtree, Qtab;
+extern Lisp_Object Qxbm, Qedit_field, Qgroup, Qlabel, Qcombo_box, Qscrollbar;
+extern Lisp_Object Qtree_view, Qtab_control, Qprogress_gauge;
extern Lisp_Object Q_mask_file, Q_mask_data, Q_hotspot_x, Q_hotspot_y;
extern Lisp_Object Q_foreground, Q_background, Q_face, Q_descriptor, Q_group;
extern Lisp_Object Q_width, Q_height, Q_pixel_width, Q_pixel_height, Q_text;
#include "device.h"
#include "frame.h"
#include "gui.h"
+#include "redisplay.h"
#include "opaque.h"
-#ifdef HAVE_POPUPS
Lisp_Object Qmenu_no_selection_hook;
-#endif
/* we need a unique id for each popup menu, dialog box, and scrollbar */
static unsigned int lwlib_id_tick;
}
\f
-#ifdef HAVE_POPUPS
-
struct mark_widget_value_closure
{
void (*markobj) (Lisp_Object);
arg = Qmenu_no_selection_hook;
}
else
- get_gui_callback (data, &fn, &arg);
+ {
+ MARK_SUBWINDOWS_CHANGED;
+ get_gui_callback (data, &fn, &arg);
+ }
/* This is the timestamp used for asserting focus so we need to get an
up-to-date value event if no events has been dispatched to emacs
return NULL;
}
-/* set menu accelerator key to first underlined character in menu name */
-
-Lisp_Object
-menu_name_to_accelerator (char *name)
-{
- while (*name) {
- if (*name=='%') {
- ++name;
- if (!(*name))
- return Qnil;
- if (*name=='_' && *(name+1))
- {
- int accelerator = (int) (unsigned char) (*(name+1));
- return make_char (tolower (accelerator));
- }
- }
- ++name;
- }
- return Qnil;
-}
/* This does the dirty work. gc_currently_forbidden is 1 when this is called.
*/
-
int
-button_item_to_widget_value (Lisp_Object desc, widget_value *wv,
+button_item_to_widget_value (Lisp_Object gui_item, widget_value *wv,
int allow_text_field_p, int no_keys_p)
{
/* !!#### This function has not been Mule-ized */
/* This function cannot GC because gc_currently_forbidden is set when
it's called */
- Lisp_Object name = Qnil;
- Lisp_Object callback = Qnil;
- Lisp_Object suffix = Qnil;
- Lisp_Object active_p = Qt;
- Lisp_Object include_p = Qt;
- Lisp_Object selected_p = Qnil;
- Lisp_Object keys = Qnil;
- Lisp_Object style = Qnil;
- Lisp_Object config_tag = Qnil;
- Lisp_Object accel = Qnil;
- int length = XVECTOR_LENGTH (desc);
- Lisp_Object *contents = XVECTOR_DATA (desc);
- int plist_p;
- int selected_spec = 0, included_spec = 0;
-
- if (length < 2)
- signal_simple_error ("Button descriptors must be at least 2 long", desc);
-
- /* length 2: [ "name" callback ]
- length 3: [ "name" callback active-p ]
- length 4: [ "name" callback active-p suffix ]
- or [ "name" callback keyword value ]
- length 5+: [ "name" callback [ keyword value ]+ ]
- */
- plist_p = (length >= 5 || (length > 2 && KEYWORDP (contents [2])));
-
- if (!plist_p && length > 2)
- /* the old way */
- {
- name = contents [0];
- callback = contents [1];
- active_p = contents [2];
- if (length == 4)
- suffix = contents [3];
- }
- else
- {
- /* the new way */
- int i;
- if (length & 1)
- signal_simple_error (
- "Button descriptor has an odd number of keywords and values",
- desc);
-
- name = contents [0];
- callback = contents [1];
- for (i = 2; i < length;)
- {
- Lisp_Object key = contents [i++];
- Lisp_Object val = contents [i++];
- if (!KEYWORDP (key))
- signal_simple_error_2 ("Not a keyword", key, desc);
-
- if (EQ (key, Q_active)) active_p = val;
- else if (EQ (key, Q_suffix)) suffix = val;
- else if (EQ (key, Q_keys)) keys = val;
- else if (EQ (key, Q_style)) style = val;
- else if (EQ (key, Q_selected)) selected_p = val, selected_spec = 1;
- else if (EQ (key, Q_included)) include_p = val, included_spec = 1;
- else if (EQ (key, Q_config)) config_tag = val;
- else if (EQ (key, Q_accelerator))
- {
- if ( SYMBOLP (val)
- || CHARP (val))
- accel = val;
- else
- signal_simple_error ("Bad keyboard accelerator", val);
- }
- else if (EQ (key, Q_filter))
- signal_simple_error(":filter keyword not permitted on leaf nodes", desc);
- else
- signal_simple_error_2 ("Unknown menu item keyword", key, desc);
- }
- }
+ struct Lisp_Gui_Item* pgui = XGUI_ITEM (gui_item);
+
+ if (!NILP (pgui->filter))
+ signal_simple_error(":filter keyword not permitted on leaf nodes", gui_item);
#ifdef HAVE_MENUBARS
- if ((!NILP (config_tag) && NILP (Fmemq (config_tag, Vmenubar_configuration)))
- || (included_spec && NILP (Feval (include_p))))
+ if (!gui_item_included_p (gui_item, Vmenubar_configuration))
{
/* the include specification says to ignore this item. */
return 0;
}
#endif /* HAVE_MENUBARS */
- CHECK_STRING (name);
- wv->name = (char *) XSTRING_DATA (name);
-
- if (NILP (accel))
- accel = menu_name_to_accelerator (wv->name);
- wv->accel = LISP_TO_VOID (accel);
+ CHECK_STRING (pgui->name);
+ wv->name = (char *) XSTRING_DATA (pgui->name);
+ wv->accel = LISP_TO_VOID (gui_item_accelerator (gui_item));
- if (!NILP (suffix))
+ if (!NILP (pgui->suffix))
{
CONST char *const_bogosity;
Lisp_Object suffix2;
/* Shortcut to avoid evaluating suffix each time */
- if (STRINGP (suffix))
- suffix2 = suffix;
+ if (STRINGP (pgui->suffix))
+ suffix2 = pgui->suffix;
else
{
- suffix2 = Feval (suffix);
+ suffix2 = Feval (pgui->suffix);
CHECK_STRING (suffix2);
}
wv->value = xstrdup (wv->value);
}
- wv_set_evalable_slot (wv->enabled, active_p);
- wv_set_evalable_slot (wv->selected, selected_p);
+ wv_set_evalable_slot (wv->enabled, pgui->active);
+ wv_set_evalable_slot (wv->selected, pgui->selected);
- wv->call_data = LISP_TO_VOID (callback);
+ if (!NILP (pgui->callback))
+ wv->call_data = LISP_TO_VOID (pgui->callback);
if (no_keys_p
#ifdef HAVE_MENUBARS
#endif
)
wv->key = 0;
- else if (!NILP (keys)) /* Use this string to generate key bindings */
+ else if (!NILP (pgui->keys)) /* Use this string to generate key bindings */
{
- CHECK_STRING (keys);
- keys = Fsubstitute_command_keys (keys);
- if (XSTRING_LENGTH (keys) > 0)
- wv->key = xstrdup ((char *) XSTRING_DATA (keys));
+ CHECK_STRING (pgui->keys);
+ pgui->keys = Fsubstitute_command_keys (pgui->keys);
+ if (XSTRING_LENGTH (pgui->keys) > 0)
+ wv->key = xstrdup ((char *) XSTRING_DATA (pgui->keys));
else
wv->key = 0;
}
- else if (SYMBOLP (callback)) /* Show the binding of this command. */
+ else if (SYMBOLP (pgui->callback)) /* Show the binding of this command. */
{
char buf [1024];
/* #### Warning, dependency here on current_buffer and point */
- where_is_to_char (callback, buf);
+ where_is_to_char (pgui->callback, buf);
if (buf [0])
wv->key = xstrdup (buf);
else
wv->key = 0;
}
- CHECK_SYMBOL (style);
- if (NILP (style))
+ CHECK_SYMBOL (pgui->style);
+ if (NILP (pgui->style))
{
/* If the callback is nil, treat this item like unselectable text.
This way, dashes will show up as a separator. */
wv->type = BUTTON_TYPE;
}
}
- else if (EQ (style, Qbutton))
+ else if (EQ (pgui->style, Qbutton))
wv->type = BUTTON_TYPE;
- else if (EQ (style, Qtoggle))
+ else if (EQ (pgui->style, Qtoggle))
wv->type = TOGGLE_TYPE;
- else if (EQ (style, Qradio))
+ else if (EQ (pgui->style, Qradio))
wv->type = RADIO_TYPE;
- else if (EQ (style, Qtext))
+ else if (EQ (pgui->style, Qtext))
{
wv->type = TEXT_TYPE;
#if 0
#endif
}
else
- signal_simple_error_2 ("Unknown style", style, desc);
+ signal_simple_error_2 ("Unknown style", pgui->style, gui_item);
if (!allow_text_field_p && (wv->type == TEXT_TYPE))
- signal_simple_error ("Text field not allowed in this context", desc);
+ signal_simple_error ("Text field not allowed in this context", gui_item);
- if (selected_spec && EQ (style, Qtext))
+ if (!NILP (pgui->selected) && EQ (pgui->style, Qtext))
signal_simple_error (
- ":selected only makes sense with :style toggle, radio or button",
- desc);
+ ":selected only makes sense with :style toggle, radio or button",
+ gui_item);
return 1;
}
-#endif /* HAVE_POPUPS */
/* This is a kludge to make sure emacs can only link against a version of
lwlib that was compiled in the right way. Emacs references symbols which
void
syms_of_gui_x (void)
{
-#ifdef HAVE_POPUPS
defsymbol (&Qmenu_no_selection_hook, "menu-no-selection-hook");
-#endif
}
void
{
lwlib_id_tick = (1<<16); /* start big, to not conflict with Energize */
-#ifdef HAVE_POPUPS
popup_up_p = 0;
Vpopup_callbacks = Qnil;
*/ );
#endif
Fset (Qmenu_no_selection_hook, Qnil);
-#endif /* HAVE_POPUPS */
/* this makes only safe calls as in emacs.c */
sanity_check_lwlib ();
else if (EQ (key, Q_callback)) pgui_item->callback = val;
else if (EQ (key, Q_key_sequence)) ; /* ignored for FSF compatability */
else if (EQ (key, Q_label)) ; /* ignored for 21.0 implement in 21.2 */
+ else if (EQ (key, Q_accelerator))
+ {
+ if (SYMBOLP (val) || CHARP (val))
+ pgui_item->accelerator = val;
+ else if (ERRB_EQ (errb, ERROR_ME))
+ signal_simple_error ("Bad keyboard accelerator", val);
+ }
else if (ERRB_EQ (errb, ERROR_ME))
signal_simple_error_2 ("Unknown keyword in gui item", key, pgui_item->name);
}
lp->style = Qnil;
lp->selected = Qnil;
lp->keys = Qnil;
+ lp->accelerator = Qnil;
}
Lisp_Object
Fplist_put (plist, Q_selected, pgui_item->selected);
if (!NILP (pgui_item->keys))
Fplist_put (plist, Q_keys, pgui_item->keys);
+ if (!NILP (pgui_item->accelerator))
+ Fplist_put (plist, Q_accelerator, pgui_item->accelerator);
}
/*
|| !NILP (Feval (XGUI_ITEM (gui_item)->active)));
}
+/* set menu accelerator key to first underlined character in menu name */
+Lisp_Object
+gui_item_accelerator (Lisp_Object gui_item)
+{
+ struct Lisp_Gui_Item* pgui = XGUI_ITEM (gui_item);
+
+ if (!NILP (pgui->accelerator))
+ return pgui->accelerator;
+
+ else
+ return pgui->name;
+}
+
+Lisp_Object
+gui_name_accelerator (Lisp_Object nm)
+{
+ /* !!#### This function has not been Mule-ized */
+ char* name = (char*)XSTRING_DATA (nm);
+
+ while (*name) {
+ if (*name=='%') {
+ ++name;
+ if (!(*name))
+ return Qnil;
+ if (*name=='_' && *(name+1))
+ {
+ int accelerator = (int) (unsigned char) (*(name+1));
+ return make_char (tolower (accelerator));
+ }
+ }
+ ++name;
+ }
+ return Qnil;
+}
+
/*
* Decide whether a GUI item is selected by evaluating its :selected form
* if any
markobj (p->name);
markobj (p->callback);
+ markobj (p->config);
markobj (p->suffix);
markobj (p->active);
markobj (p->included);
markobj (p->style);
markobj (p->selected);
markobj (p->keys);
+ markobj (p->accelerator);
return Qnil;
}
&&
EQ (p1->selected, p2->selected)
&&
+ EQ (p1->accelerator, p2->accelerator)
+ &&
EQ (p1->keys, p2->keys)))
return 0;
return 1;
Lisp_Object style; /* Symbol */
Lisp_Object selected; /* Form */
Lisp_Object keys; /* String */
+ Lisp_Object accelerator; /* Char or Symbol */
};
extern Lisp_Object Q_accelerator, Q_active, Q_config, Q_filter, Q_included;
int gui_item_active_p (Lisp_Object);
int gui_item_selected_p (Lisp_Object);
int gui_item_included_p (Lisp_Object, Lisp_Object into);
+Lisp_Object gui_item_accelerator (Lisp_Object gui_item);
+Lisp_Object gui_name_accelerator (Lisp_Object name);
int gui_item_id_hash (Lisp_Object, Lisp_Object gui_item, int);
unsigned int gui_item_display_flush_left (Lisp_Object pgui_item,
char* buf, Bytecount buf_len);
#define GUI_ITEM_ID_MAX(s) (0x1FFF + GUI_ITEM_ID_MIN (s))
#define GUI_ITEM_ID_BITS(x,s) (((x) & 0x1FFF) + GUI_ITEM_ID_MIN (s))
+#define MAX_MENUITEM_LENGTH 128
+
#endif /* _XEMACS_GUI_H_ */
#endif
#include "window.h"
+Lisp_Object Qcoerce;
+
/* Indentation can insert tabs if this is non-zero;
otherwise always uses spaces */
int indent_tabs_mode;
If specified column is within a character, point goes after that character.
If it's past end of line, point goes to end of line.
-A non-nil second (optional) argument FORCE means, if the line
-is too short to reach column COLUMN then add spaces/tabs to get there,
-and if COLUMN is in the middle of a tab character, change it to spaces.
+A value of 'coerce for the second (optional) argument FORCE means if
+COLUMN is in the middle of a tab character, change it to spaces.
+Any other non-nil value means the same, plus if the line is too short to
+reach column COLUMN, then add spaces/tabs to get there.
+
Returns the actual column that it moved to.
*/
(column, force, buffer))
}
/* If line ends prematurely, add space to the end. */
- if (col < goal && !NILP (force))
+ if (col < goal && !NILP (force) && !EQ (force, Qcoerce))
{
col = goal;
Findent_to (make_int (col), Qzero, buffer);
assert (start <= end);
assert (start >= 0);
assert (end < Dynarr_length (cache));
-
+
vpix = 0;
for (i = start; i <= end; i++)
vpix += Dynarr_atp (cache, i)->height;
bufpos = vmotion_1 (w, orig, XINT (lines), vpos, vpix);
/* Note that the buffer's point is set, not the window's point. */
- if (selected)
+ if (selected)
BUF_SET_PT (XBUFFER (w->buffer), bufpos);
else
set_marker_restricted (w->pointm[CURRENT_DISP],
bufpos = vmotion_pixels (window, orig, XINT (pixels), howto, &motion);
- if (selected)
+ if (selected)
BUF_SET_PT (XBUFFER (w->buffer), bufpos);
else
set_marker_restricted (w->pointm[CURRENT_DISP],
#endif
DEFSUBR (Fvertical_motion);
DEFSUBR (Fvertical_motion_pixels);
+
+ defsymbol (&Qcoerce, "coerce");
}
void
#include "EmacsFrame.h"
#include "events.h"
+#include <X11/IntrinsicP.h>
+#include <X11/Xaw/XawImP.h>
+
#ifndef XIM_XLIB
#error XIM_XLIB is not defined??
#endif
"XIMPreeditNone|XIMStatusNothing\n"
"XIMPreeditNone|XIMStatusNone";
+static Boolean xim_initted = False;
+
static XIMStyle best_style (XIMStyles *user, XIMStyles *xim);
void
}
}
-/* Create X input method for device */
-void
-XIM_init_device (struct device *d)
-{
- Display *dpy = DEVICE_X_DISPLAY (d);
- char *name, *class;
- XIM xim;
+/******************************************************************/
+/* Input method using xlib */
+/******************************************************************/
- XtGetApplicationNameAndClass (dpy, &name, &class);
-
- DEVICE_X_XIM (d) = xim = XOpenIM (dpy, XtDatabase (dpy), name, class);
+/*
+ * called from when XIM is destroying
+ */
+static void
+IMDestroyCallback (XIM im, XPointer client_data, XPointer call_data)
+{
+ struct frame *f = (struct frame *)client_data;
+ struct device *d = XDEVICE (FRAME_DEVICE ((struct frame *)client_data));
+ Lisp_Object frame_list = DEVICE_FRAME_LIST (XDEVICE (FRAME_DEVICE (f)));
+ Lisp_Object tail;
+ struct frame *target_frame = NULL;
- if (xim == NULL)
+ LIST_LOOP (tail, frame_list)
{
- stderr_out ("Warning: XOpenIM() failed...no input server available\n");
- return;
+ if (target_frame = XFRAME (XCAR (tail)))
+ {
+ if ( FRAME_X_XIC(target_frame) )
+ {
+ XDestroyIC (FRAME_X_XIC(target_frame));
+ FRAME_X_XIC (target_frame) = NULL;
+ }
+ }
}
- else
+
+#if 0
+ if ( DEVICE_X_XIM (d) )
{
- /* Get supported styles */
- XGetIMValues (xim, XNQueryInputStyle, &DEVICE_X_XIM_STYLES (d), NULL);
-#ifdef DEBUG_XIM
- describe_XIM (xim);
-#endif
+ stderr_out ("NULLing d->xim...\n");
+ /* DEVICE_X_XIM (d) = NULL; */
}
+#endif
+
+ xim_initted = False;
+ return;
}
-/* Create an X input context for this frame. */
-void
-XIM_init_frame (struct frame *f)
+/*
+ * called from when FRAME is initializing
+ */
+static void
+IMInstantiateCallback (Display *dpy, XPointer client_data, XPointer call_data)
{
- struct device *d = XDEVICE (FRAME_DEVICE (f));
- XIM xim = DEVICE_X_XIM (d);
- XIC xic;
- Widget w = FRAME_X_TEXT_WIDGET (f);
+ struct frame *f = (struct frame *)client_data;
+ struct device *d = XDEVICE (FRAME_DEVICE ((struct frame *)client_data));
+ XIM xim;
+ Widget w = FRAME_X_TEXT_WIDGET ((struct frame *)client_data);
Window win = XtWindow (w);
- XRectangle p_area = {0,0,1,1}, s_area={0,0,1,1};
+ XRectangle p_area = {0,0,1,1}, s_area = {0,0,1,1};
XPoint spot = {0,0};
XIMStyle style;
XVaNestedList p_list, s_list;
-
+ char *name, *class;
typedef struct
{
XIMStyles styles;
XFontSet fontset;
Pixel fg;
Pixel bg;
+ char *inputmethod;
} xic_vars_t;
-
xic_vars_t xic_vars;
-
- /* mrb: #### Fix so that background and foreground is set from
- default face, rather than foreground and background resources, or
- that the user can use set-frame-parameters to set xic attributes */
+ XIMCallback ximcallback;
+ XIC xic;
#define res(name, class, representation, field, default_value) \
{ name, class, representation, sizeof(xic_vars.field), \
res(XtNximStyles, XtCXimStyles, XtRXimStyles, styles, (XtPointer) DefaultXIMStyles),
res(XtNfontSet, XtCFontSet, XtRFontSet, fontset, (XtPointer) XtDefaultFontSet),
res(XtNximForeground, XtCForeground, XtRPixel, fg, (XtPointer) XtDefaultForeground),
- res(XtNximBackground, XtCBackground, XtRPixel, bg, (XtPointer) XtDefaultBackground)
+ res(XtNximBackground, XtCBackground, XtRPixel, bg, (XtPointer) XtDefaultBackground),
+ res(XtNinputMethod, XtCInputMethod, XtRString, inputmethod, (XtPointer) NULL)
};
- assert (win != 0 && w != NULL && d != NULL);
+ /* ---------- beginning of the action ---------- */
- if (!xim)
- { /* No input method? */
- FRAME_X_XIC (f) = NULL;
- return;
+ /*
+ * if no xim is presented, initialize xim ...
+ */
+ if ( xim_initted == False )
+ {
+ xim_initted = True;
+ XtGetApplicationNameAndClass (dpy, &name, &class);
+ DEVICE_X_XIM (d) = xim = XOpenIM (dpy, XtDatabase (dpy), name, class);
+
+ /* destroy callback for im */
+ ximcallback.callback = IMDestroyCallback;
+ ximcallback.client_data = (XPointer)f;
+ XSetIMValues (xim, XNDestroyCallback, &ximcallback, NULL);
+ }
+ else
+ {
+ xim = DEVICE_X_XIM (d);
}
+ w = FRAME_X_TEXT_WIDGET (f);
+
+ /*
+ * initialize XIC
+ */
+ if ( FRAME_X_XIC (f) ) return;
XtGetApplicationResources (w, &xic_vars,
resources, XtNumber (resources),
NULL, 0);
-
if (!xic_vars.fontset)
{
stderr_out ("Can't get fontset resource for Input Method\n");
return;
}
+ /* construct xic */
+ XGetIMValues (xim, XNQueryInputStyle, &DEVICE_X_XIM_STYLES(d), NULL);
FRAME_X_XIC_STYLE (f) = style =
- best_style (&xic_vars.styles, DEVICE_X_XIM_STYLES (d));
+ best_style (&xic_vars.styles, (XIMStyles *)DEVICE_X_XIM_STYLES(d));
- /* Hopefully we don't have to conditionalize the following based on
- style; the IM should ignore values it doesn't use */
p_list = XVaCreateNestedList (0,
- XNArea, &p_area,
- XNSpotLocation, &spot,
- XNForeground, xic_vars.fg,
- XNBackground, xic_vars.bg,
- XNFontSet, xic_vars.fontset,
- NULL);
+ XNArea, &p_area,
+ XNSpotLocation, &spot,
+ XNForeground, xic_vars.fg,
+ XNBackground, xic_vars.bg,
+ XNFontSet, xic_vars.fontset,
+ NULL);
s_list = XVaCreateNestedList (0,
- XNArea, &s_area,
- XNForeground, xic_vars.fg,
- XNBackground, xic_vars.bg,
- XNFontSet, xic_vars.fontset,
- NULL);
+ XNArea, &s_area,
+ XNForeground, xic_vars.fg,
+ XNBackground, xic_vars.bg,
+ XNFontSet, xic_vars.fontset,
+ NULL);
+
FRAME_X_XIC (f) = xic =
XCreateIC (xim,
- XNInputStyle, style,
- XNClientWindow, win,
- XNFocusWindow, win,
- XNPreeditAttributes, p_list,
- XNStatusAttributes, s_list,
- NULL);
+ XNInputStyle, style,
+ XNClientWindow, win,
+ XNFocusWindow, win,
+ XNPreeditAttributes, p_list,
+ XNStatusAttributes, s_list,
+ NULL);
XFree (p_list);
XFree (s_list);
if (!xic)
{
- stderr_out ("Warning: XCreateIC failed\n");
+ stderr_out ("Warning: XCreateIC failed.\n");
return;
}
if (style & XIMPreeditPosition)
- { /* Init spot to invalid values */
- XPoint *frame_spot = &(FRAME_X_XIC_SPOT (f));
+ {
+ XPoint *frame_spot = &(FRAME_X_XIC_SPOT(f));
frame_spot->x = frame_spot->y = -1;
}
XSetICFocus (xic);
-#ifdef DEBUG_XIM
- describe_XIC (xic);
+ return;
+}
+
+/* Create X input method for device */
+void
+XIM_init_device (struct device *d)
+{
+ /* do nothing here */
+ return;
+}
+
+/* Callback for when the frame was deleted (closed) */
+static void
+XIM_delete_frame (Widget w, XtPointer client_data, XtPointer call_data)
+{
+ struct frame *f = (struct frame *)client_data;
+ struct device *d = XDEVICE (FRAME_DEVICE ((struct frame *)client_data));
+ Display *dpy = DEVICE_X_DISPLAY (d);
+
+ XUnregisterIMInstantiateCallback (dpy, NULL, NULL, NULL,
+ IMInstantiateCallback, (XtPointer)f);
+
+ if ( FRAME_X_XIC (f) )
+ {
+ XDestroyIC (FRAME_X_XIC(f));
+ FRAME_X_XIC (f) = NULL;
+ }
+ return;
+}
+
+/* Create an X input context for this frame.
+ - Register the IM to be initiated later using XRegisterIMInstantiateCallback
+ */
+void
+XIM_init_frame (struct frame *f)
+{
+ struct device *d = XDEVICE (FRAME_DEVICE (f));
+
+ XRegisterIMInstantiateCallback (DEVICE_X_DISPLAY (d), NULL, NULL, NULL,
+ IMInstantiateCallback, (XtPointer)f);
+
+#if 0
+ if ( FRAME_X_XIC (f) )
+ return;
#endif
+ if ( ! DEVICE_X_XIM (d) )
+ {
+ stderr_out ("X Input Method open failed. Waiting IM to be enabled.\n");
+ }
+
+ /* when frame is going to be destroyed (closed) */
+ XtAddCallback (FRAME_X_TEXT_WIDGET(f), XNDestroyCallback,
+ XIM_delete_frame, (XtPointer)f);
+ return;
}
+
void
XIM_SetGeometry (struct frame *f)
{
void
XIM_focus_event (struct frame *f, int in_p)
{
- if (FRAME_X_XIC (f))
+ if (FRAME_X_XIC (f) /* && FRAME_X_XIM_REGISTERED(f) */)
(in_p ? XSetICFocus : XUnsetICFocus) (FRAME_X_XIC (f));
}
#include <stdio.h> /* NULL, etc. */
#include <ctype.h>
#include <stdarg.h>
+#include <stddef.h> /* offsetof */
#ifdef __lucid
# include <sysent.h>
#include <config.h>
#include "lisp.h"
-#include <stddef.h>
#include "buffer.h"
#define MENU_ITEM_ID_BITS(x) (((x) & 0x7FFF) | 0x8000)
static HMENU top_level_menu;
-#define MAX_MENUITEM_LENGTH 128
-
/*
* This returns Windows-style menu item string:
* "Left Flush\tRight Flush"
}
else if (VECTORP (desc))
{
- if (!button_item_to_widget_value (desc, wv, 1,
+ Lisp_Object gui_item = gui_parse_item_keywords (desc);
+ if (!button_item_to_widget_value (gui_item, wv, 1,
(menu_type == MENUBAR_TYPE
&& depth <= 1)))
{
wv->enabled = 1;
wv->name = (char *) XSTRING_DATA (LISP_GETTEXT (XCAR (desc)));
- accel = menu_name_to_accelerator (wv->name);
+ accel = gui_name_accelerator (LISP_GETTEXT (XCAR (desc)));
wv->accel = LISP_TO_VOID (accel);
desc = Fcdr (desc);
/* CCL (Code Conversion Language) interpreter.
- Copyright (C) 1995, 1997 Electrotechnical Laboratory, JAPAN.
+ Copyright (C) 1995, 1997, 1998, 1999 Electrotechnical Laboratory, JAPAN.
Licensed to the Free Software Foundation.
This file is part of XEmacs.
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
-/* Synched up with : FSF Emacs 20.2 */
+/* Synched up with : FSF Emacs 20.3.10 without ExCCL
+ * (including {Read|Write}MultibyteChar) */
#ifdef emacs
#include <config.h>
+
+#if 0
+#ifdef STDC_HEADERS
+#include <stdlib.h>
+#endif
+#endif
+
#include "lisp.h"
#include "buffer.h"
#include "character.h"
#endif /* not emacs */
+/* This contains all code conversion map available to CCL. */
+/*
+Lisp_Object Vcode_conversion_map_vector;
+*/
+
/* Alist of fontname patterns vs corresponding CCL program. */
Lisp_Object Vfont_ccl_encoder_alist;
+/* This symbol is a property which assocates with ccl program vector.
+ Ex: (get 'ccl-big5-encoder 'ccl-program) returns ccl program vector. */
+Lisp_Object Qccl_program;
+
+/* These symbols are properties which associate with code conversion
+ map and their ID respectively. */
+/*
+Lisp_Object Qcode_conversion_map;
+Lisp_Object Qcode_conversion_map_id;
+*/
+
+/* Symbols of ccl program have this property, a value of the property
+ is an index for Vccl_protram_table. */
+Lisp_Object Qccl_program_idx;
+
/* Vector of CCL program names vs corresponding program data. */
Lisp_Object Vccl_program_table;
write (reg[RRR] OPERATION reg[Rrr]);
*/
-#define CCL_Call 0x13 /* Write a constant:
+#define CCL_Call 0x13 /* Call the CCL program whose ID is
+ (CC..C).
1:CCCCCCCCCCCCCCCCCCCC000XXXXX
------------------------------
call (CC..C)
extended_command (rrr,RRR,Rrr,ARGS)
*/
+/*
+ Here after, Extended CCL Instructions.
+ Bit length of extended command is 14.
+ Therefore, the instruction code range is 0..16384(0x3fff).
+ */
+
+/* Read a multibyte characeter.
+ A code point is stored into reg[rrr]. A charset ID is stored into
+ reg[RRR]. */
+
+#define CCL_ReadMultibyteChar2 0x00 /* Read Multibyte Character
+ 1:ExtendedCOMMNDRrrRRRrrrXXXXX */
+
+/* Write a multibyte character.
+ Write a character whose code point is reg[rrr] and the charset ID
+ is reg[RRR]. */
+
+#define CCL_WriteMultibyteChar2 0x01 /* Write Multibyte Character
+ 1:ExtendedCOMMNDRrrRRRrrrXXXXX */
+
+#if 0
+/* Translate a character whose code point is reg[rrr] and the charset
+ ID is reg[RRR] by a translation table whose ID is reg[Rrr].
+
+ A translated character is set in reg[rrr] (code point) and reg[RRR]
+ (charset ID). */
+
+#define CCL_TranslateCharacter 0x02 /* Translate a multibyte character
+ 1:ExtendedCOMMNDRrrRRRrrrXXXXX */
+
+/* Translate a character whose code point is reg[rrr] and the charset
+ ID is reg[RRR] by a translation table whose ID is ARGUMENT.
+
+ A translated character is set in reg[rrr] (code point) and reg[RRR]
+ (charset ID). */
+
+#define CCL_TranslateCharacterConstTbl 0x03 /* Translate a multibyte character
+ 1:ExtendedCOMMNDRrrRRRrrrXXXXX
+ 2:ARGUMENT(Translation Table ID)
+ */
+
+/* Iterate looking up MAPs for reg[rrr] starting from the Nth (N =
+ reg[RRR]) MAP until some value is found.
+
+ Each MAP is a Lisp vector whose element is number, nil, t, or
+ lambda.
+ If the element is nil, ignore the map and proceed to the next map.
+ If the element is t or lambda, finish without changing reg[rrr].
+ If the element is a number, set reg[rrr] to the number and finish.
+
+ Detail of the map structure is descibed in the comment for
+ CCL_MapMultiple below. */
+
+#define CCL_IterateMultipleMap 0x10 /* Iterate multiple maps
+ 1:ExtendedCOMMNDXXXRRRrrrXXXXX
+ 2:NUMBER of MAPs
+ 3:MAP-ID1
+ 4:MAP-ID2
+ ...
+ */
+
+/* Map the code in reg[rrr] by MAPs starting from the Nth (N =
+ reg[RRR]) map.
+
+ MAPs are supplied in the succeeding CCL codes as follows:
+
+ When CCL program gives this nested structure of map to this command:
+ ((MAP-ID11
+ MAP-ID12
+ (MAP-ID121 MAP-ID122 MAP-ID123)
+ MAP-ID13)
+ (MAP-ID21
+ (MAP-ID211 (MAP-ID2111) MAP-ID212)
+ MAP-ID22)),
+ the compiled CCL codes has this sequence:
+ CCL_MapMultiple (CCL code of this command)
+ 16 (total number of MAPs and SEPARATORs)
+ -7 (1st SEPARATOR)
+ MAP-ID11
+ MAP-ID12
+ -3 (2nd SEPARATOR)
+ MAP-ID121
+ MAP-ID122
+ MAP-ID123
+ MAP-ID13
+ -7 (3rd SEPARATOR)
+ MAP-ID21
+ -4 (4th SEPARATOR)
+ MAP-ID211
+ -1 (5th SEPARATOR)
+ MAP_ID2111
+ MAP-ID212
+ MAP-ID22
+
+ A value of each SEPARATOR follows this rule:
+ MAP-SET := SEPARATOR [(MAP-ID | MAP-SET)]+
+ SEPARATOR := -(number of MAP-IDs and SEPARATORs in the MAP-SET)
+
+ (*)....Nest level of MAP-SET must not be over than MAX_MAP_SET_LEVEL.
+
+ When some map fails to map (i.e. it doesn't have a value for
+ reg[rrr]), the mapping is treated as identity.
+
+ The mapping is iterated for all maps in each map set (set of maps
+ separated by SEPARATOR) except in the case that lambda is
+ encountered. More precisely, the mapping proceeds as below:
+
+ At first, VAL0 is set to reg[rrr], and it is translated by the
+ first map to VAL1. Then, VAL1 is translated by the next map to
+ VAL2. This mapping is iterated until the last map is used. The
+ result of the mapping is the last value of VAL?.
+
+ But, when VALm is mapped to VALn and VALn is not a number, the
+ mapping proceed as below:
+
+ If VALn is nil, the lastest map is ignored and the mapping of VALm
+ proceed to the next map.
+
+ In VALn is t, VALm is reverted to reg[rrr] and the mapping of VALm
+ proceed to the next map.
+
+ If VALn is lambda, the whole mapping process terminates, and VALm
+ is the result of this mapping.
+
+ Each map is a Lisp vector of the following format (a) or (b):
+ (a)......[STARTPOINT VAL1 VAL2 ...]
+ (b)......[t VAL STARTPOINT ENDPOINT],
+ where
+ STARTPOINT is an offset to be used for indexing a map,
+ ENDPOINT is a maximum index number of a map,
+ VAL and VALn is a number, nil, t, or lambda.
+
+ Valid index range of a map of type (a) is:
+ STARTPOINT <= index < STARTPOINT + map_size - 1
+ Valid index range of a map of type (b) is:
+ STARTPOINT <= index < ENDPOINT */
+
+#define CCL_MapMultiple 0x11 /* Mapping by multiple code conversion maps
+ 1:ExtendedCOMMNDXXXRRRrrrXXXXX
+ 2:N-2
+ 3:SEPARATOR_1 (< 0)
+ 4:MAP-ID_1
+ 5:MAP-ID_2
+ ...
+ M:SEPARATOR_x (< 0)
+ M+1:MAP-ID_y
+ ...
+ N:SEPARATOR_z (< 0)
+ */
+
+#define MAX_MAP_SET_LEVEL 20
+
+typedef struct
+{
+ int rest_length;
+ int orig_val;
+} tr_stack;
+
+static tr_stack mapping_stack[MAX_MAP_SET_LEVEL];
+static tr_stack *mapping_stack_pointer;
+#endif
+
+#define PUSH_MAPPING_STACK(restlen, orig) \
+{ \
+ mapping_stack_pointer->rest_length = (restlen); \
+ mapping_stack_pointer->orig_val = (orig); \
+ mapping_stack_pointer++; \
+}
+
+#define POP_MAPPING_STACK(restlen, orig) \
+{ \
+ mapping_stack_pointer--; \
+ (restlen) = mapping_stack_pointer->rest_length; \
+ (orig) = mapping_stack_pointer->orig_val; \
+} \
+
+#define CCL_MapSingle 0x12 /* Map by single code conversion map
+ 1:ExtendedCOMMNDXXXRRRrrrXXXXX
+ 2:MAP-ID
+ ------------------------------
+ Map reg[rrr] by MAP-ID.
+ If some valid mapping is found,
+ set reg[rrr] to the result,
+ else
+ set reg[RRR] to -1.
+ */
/* CCL arithmetic/logical operators. */
#define CCL_PLUS 0x00 /* X = Y + Z */
#define CCL_GE 0x14 /* X = (X >= Y) */
#define CCL_NE 0x15 /* X = (X != Y) */
-#define CCL_ENCODE_SJIS 0x16 /* X = HIGHER_BYTE (SJIS (Y, Z))
- r[7] = LOWER_BYTE (SJIS (Y, Z) */
-#define CCL_DECODE_SJIS 0x17 /* X = HIGHER_BYTE (DE-SJIS (Y, Z))
+#define CCL_DECODE_SJIS 0x16 /* X = HIGHER_BYTE (DE-SJIS (Y, Z))
r[7] = LOWER_BYTE (DE-SJIS (Y, Z)) */
+#define CCL_ENCODE_SJIS 0x17 /* X = HIGHER_BYTE (SJIS (Y, Z))
+ r[7] = LOWER_BYTE (SJIS (Y, Z) */
-/* Macros for exit status of CCL program. */
-#define CCL_STAT_SUCCESS 0 /* Terminated successfully. */
-#define CCL_STAT_SUSPEND 1 /* Terminated because of empty input
- buffer or full output buffer. */
-#define CCL_STAT_INVALID_CMD 2 /* Terminated because of invalid
- command. */
-#define CCL_STAT_QUIT 3 /* Terminated because of quit. */
+/* Suspend CCL program because of reading from empty input buffer or
+ writing to full output buffer. When this program is resumed, the
+ same I/O command is executed. */
+#define CCL_SUSPEND(stat) \
+ do { \
+ ic--; \
+ ccl->status = stat; \
+ goto ccl_finish; \
+ } while (0)
+
+/* Terminate CCL program because of invalid command. Should not occur
+ in the normal case. */
+#define CCL_INVALID_CMD \
+ do { \
+ ccl->status = CCL_STAT_INVALID_CMD; \
+ goto ccl_error_handler; \
+ } while (0)
/* Encode one character CH to multibyte form and write to the current
output buffer. If CH is less than 256, CH is written as is. */
/* Read one byte from the current input buffer into Rth register. */
#define CCL_READ_CHAR(r) do { \
- if (!src) \
+ if (!src && !ccl->last_block) \
{ \
ccl->status = CCL_STAT_INVALID_CMD; \
goto ccl_error_handler; \
else if (ccl->last_block) \
{ \
ic = ccl->eof_ic; \
- goto ccl_finish; \
+ goto ccl_repeat; \
} \
else \
/* Suspend CCL program because of \
same I/O command is executed. */ \
{ \
ic--; \
- ccl->status = CCL_STAT_SUSPEND; \
+ ccl->status = CCL_STAT_SUSPEND_BY_SRC; \
goto ccl_finish; \
} \
} while (0)
int ic; /* Instruction Counter. */
};
+/* For the moment, we only support depth 256 of stack. */
+static struct ccl_prog_stack ccl_prog_stack_struct[256];
+
int
-ccl_driver (struct ccl_program *ccl, CONST unsigned char *source, unsigned_char_dynarr *destination, int src_bytes, int *consumed, int conversion_mode)
+ccl_driver (struct ccl_program *ccl, CONST unsigned char *source,
+ unsigned_char_dynarr *destination, int src_bytes,
+ int *consumed, int conversion_mode)
{
int *reg = ccl->reg;
int ic = ccl->ic;
Lisp_Object *ccl_prog = ccl->prog;
CONST unsigned char *src = source, *src_end = src + src_bytes;
int jump_address = 0; /* shut up the compiler */
-
int i, j, op;
- int stack_idx = 0;
- /* For the moment, we only support depth 256 of stack. */
- struct ccl_prog_stack ccl_prog_stack_struct[256];
+ int stack_idx = ccl->stack_idx;
+ /* Instruction counter of the current CCL code. */
+ int this_ic;
if (ic >= ccl->eof_ic)
ic = CCL_HEADER_MAIN;
+#if 0 /* not for XEmacs ? */
+ if (ccl->buf_magnification ==0) /* We can't produce any bytes. */
+ dst = NULL;
+#endif
+
#ifdef CCL_DEBUG
ccl_backtrace_idx = 0;
#endif
for (;;)
{
+ ccl_repeat:
#ifdef CCL_DEBUG
ccl_backtrace_table[ccl_backtrace_idx++] = ic;
if (ccl_backtrace_idx >= CCL_DEBUG_BACKTRACE_LEN)
break;
}
+ this_ic = ic;
code = XINT (ccl_prog[ic]); ic++;
field1 = code >> 8;
field2 = (code & 0xFF) >> 5;
#define RRR (field1 & 7)
#define Rrr ((field1 >> 3) & 7)
#define ADDR field1
+#define EXCMD (field1 >> 6)
switch (code & 0x1F)
{
ic = ccl_prog_stack_struct[stack_idx].ic;
break;
}
+ if (src)
+ src = src_end;
+ /* ccl->ic should points to this command code again to
+ suppress further processing. */
+ ic--;
/* Terminate CCL program successfully. */
ccl->status = CCL_STAT_SUCCESS;
- ccl->ic = CCL_HEADER_MAIN;
goto ccl_finish;
case CCL_ExprSelfConst: /* 00000OPERATION000000rrrXXXXX */
case CCL_LE: reg[rrr] = i <= j; break;
case CCL_GE: reg[rrr] = i >= j; break;
case CCL_NE: reg[rrr] = i != j; break;
- case CCL_ENCODE_SJIS: ENCODE_SJIS (i, j, reg[rrr], reg[7]); break;
case CCL_DECODE_SJIS: DECODE_SJIS (i, j, reg[rrr], reg[7]); break;
+ case CCL_ENCODE_SJIS: ENCODE_SJIS (i, j, reg[rrr], reg[7]); break;
default:
ccl->status = CCL_STAT_INVALID_CMD;
goto ccl_error_handler;
ic = jump_address;
break;
+ case CCL_Extention:
+ switch (EXCMD)
+ {
+ case CCL_ReadMultibyteChar2:
+ if (!src)
+ CCL_INVALID_CMD;
+
+ do {
+ if (src >= src_end)
+ {
+ src++;
+ goto ccl_read_multibyte_character_suspend;
+ }
+
+ i = *src++;
+#if 0
+ if (i == LEADING_CODE_COMPOSITION)
+ {
+ if (src >= src_end)
+ goto ccl_read_multibyte_character_suspend;
+ if (*src == 0xFF)
+ {
+ ccl->private_state = COMPOSING_WITH_RULE_HEAD;
+ src++;
+ }
+ else
+ ccl->private_state = COMPOSING_NO_RULE_HEAD;
+
+ continue;
+ }
+ if (ccl->private_state != COMPOSING_NO)
+ {
+ /* composite character */
+ if (i < 0xA0)
+ ccl->private_state = COMPOSING_NO;
+ else
+ {
+ if (COMPOSING_WITH_RULE_RULE == ccl->private_state)
+ {
+ ccl->private_state = COMPOSING_WITH_RULE_HEAD;
+ continue;
+ }
+ else if (COMPOSING_WITH_RULE_HEAD == ccl->private_state)
+ ccl->private_state = COMPOSING_WITH_RULE_RULE;
+
+ if (i == 0xA0)
+ {
+ if (src >= src_end)
+ goto ccl_read_multibyte_character_suspend;
+ i = *src++ & 0x7F;
+ }
+ else
+ i -= 0x20;
+ }
+ }
+#endif
+
+ if (i < 0x80)
+ {
+ /* ASCII */
+ reg[rrr] = i;
+ reg[RRR] = LEADING_BYTE_ASCII;
+ }
+ else if (i <= MAX_LEADING_BYTE_OFFICIAL_1)
+ {
+ if (src >= src_end)
+ goto ccl_read_multibyte_character_suspend;
+ reg[RRR] = i;
+ reg[rrr] = (*src++ & 0x7F);
+ }
+ else if (i <= MAX_LEADING_BYTE_OFFICIAL_2)
+ {
+ if ((src + 1) >= src_end)
+ goto ccl_read_multibyte_character_suspend;
+ reg[RRR] = i;
+ i = (*src++ & 0x7F);
+ reg[rrr] = ((i << 7) | (*src & 0x7F));
+ src++;
+ }
+ else if (i == PRE_LEADING_BYTE_PRIVATE_1)
+ {
+ if ((src + 1) >= src_end)
+ goto ccl_read_multibyte_character_suspend;
+ reg[RRR] = *src++;
+ reg[rrr] = (*src++ & 0x7F);
+ }
+ else if (i == PRE_LEADING_BYTE_PRIVATE_2)
+ {
+ if ((src + 2) >= src_end)
+ goto ccl_read_multibyte_character_suspend;
+ reg[RRR] = *src++;
+ i = (*src++ & 0x7F);
+ reg[rrr] = ((i << 7) | (*src & 0x7F));
+ src++;
+ }
+ else
+ {
+ /* INVALID CODE. Return a single byte character. */
+ reg[RRR] = LEADING_BYTE_ASCII;
+ reg[rrr] = i;
+ }
+ break;
+ } while (1);
+ break;
+
+ ccl_read_multibyte_character_suspend:
+ src--;
+ if (ccl->last_block)
+ {
+ ic = ccl->eof_ic;
+ goto ccl_repeat;
+ }
+ else
+ CCL_SUSPEND (CCL_STAT_SUSPEND_BY_SRC);
+
+ break;
+
+ case CCL_WriteMultibyteChar2:
+ i = reg[RRR]; /* charset */
+ if (i == LEADING_BYTE_ASCII)
+ i = reg[rrr] & 0xFF;
+#if 0
+ else if (i == CHARSET_COMPOSITION)
+ i = MAKE_COMPOSITE_CHAR (reg[rrr]);
+#endif
+ else if (XCHARSET_DIMENSION (CHARSET_BY_LEADING_BYTE (i)) == 1)
+ i = ((i - FIELD2_TO_OFFICIAL_LEADING_BYTE) << 7)
+ | (reg[rrr] & 0x7F);
+ else if (i < MIN_LEADING_BYTE_OFFICIAL_2)
+ i = ((i - FIELD1_TO_OFFICIAL_LEADING_BYTE) << 14) | reg[rrr];
+ else
+ i = ((i - FIELD1_TO_PRIVATE_LEADING_BYTE) << 14) | reg[rrr];
+
+ CCL_WRITE_CHAR (i);
+
+ break;
+
+#if 0
+ case CCL_TranslateCharacter:
+ i = reg[RRR]; /* charset */
+ if (i == LEADING_BYTE_ASCII)
+ i = reg[rrr];
+ else if (i == CHARSET_COMPOSITION)
+ {
+ reg[RRR] = -1;
+ break;
+ }
+ else if (CHARSET_DIMENSION (i) == 1)
+ i = ((i - 0x70) << 7) | (reg[rrr] & 0x7F);
+ else if (i < MIN_LEADING_BYTE_OFFICIAL_2)
+ i = ((i - 0x8F) << 14) | (reg[rrr] & 0x3FFF);
+ else
+ i = ((i - 0xE0) << 14) | (reg[rrr] & 0x3FFF);
+
+ op = translate_char (GET_TRANSLATION_TABLE (reg[Rrr]),
+ i, -1, 0, 0);
+ SPLIT_CHAR (op, reg[RRR], i, j);
+ if (j != -1)
+ i = (i << 7) | j;
+
+ reg[rrr] = i;
+ break;
+
+ case CCL_TranslateCharacterConstTbl:
+ op = XINT (ccl_prog[ic]); /* table */
+ ic++;
+ i = reg[RRR]; /* charset */
+ if (i == LEADING_BYTE_ASCII)
+ i = reg[rrr];
+ else if (i == CHARSET_COMPOSITION)
+ {
+ reg[RRR] = -1;
+ break;
+ }
+ else if (CHARSET_DIMENSION (i) == 1)
+ i = ((i - 0x70) << 7) | (reg[rrr] & 0x7F);
+ else if (i < MIN_LEADING_BYTE_OFFICIAL_2)
+ i = ((i - 0x8F) << 14) | (reg[rrr] & 0x3FFF);
+ else
+ i = ((i - 0xE0) << 14) | (reg[rrr] & 0x3FFF);
+
+ op = translate_char (GET_TRANSLATION_TABLE (op), i, -1, 0, 0);
+ SPLIT_CHAR (op, reg[RRR], i, j);
+ if (j != -1)
+ i = (i << 7) | j;
+
+ reg[rrr] = i;
+ break;
+
+ case CCL_IterateMultipleMap:
+ {
+ Lisp_Object map, content, attrib, value;
+ int point, size, fin_ic;
+
+ j = XINT (ccl_prog[ic++]); /* number of maps. */
+ fin_ic = ic + j;
+ op = reg[rrr];
+ if ((j > reg[RRR]) && (j >= 0))
+ {
+ ic += reg[RRR];
+ i = reg[RRR];
+ }
+ else
+ {
+ reg[RRR] = -1;
+ ic = fin_ic;
+ break;
+ }
+
+ for (;i < j;i++)
+ {
+
+ size = XVECTOR (Vcode_conversion_map_vector)->size;
+ point = XINT (ccl_prog[ic++]);
+ if (point >= size) continue;
+ map =
+ XVECTOR (Vcode_conversion_map_vector)->contents[point];
+
+ /* Check map varidity. */
+ if (!CONSP (map)) continue;
+ map = XCONS(map)->cdr;
+ if (!VECTORP (map)) continue;
+ size = XVECTOR (map)->size;
+ if (size <= 1) continue;
+
+ content = XVECTOR (map)->contents[0];
+
+ /* check map type,
+ [STARTPOINT VAL1 VAL2 ...] or
+ [t ELELMENT STARTPOINT ENDPOINT] */
+ if (NUMBERP (content))
+ {
+ point = XUINT (content);
+ point = op - point + 1;
+ if (!((point >= 1) && (point < size))) continue;
+ content = XVECTOR (map)->contents[point];
+ }
+ else if (EQ (content, Qt))
+ {
+ if (size != 4) continue;
+ if ((op >= XUINT (XVECTOR (map)->contents[2]))
+ && (op < XUINT (XVECTOR (map)->contents[3])))
+ content = XVECTOR (map)->contents[1];
+ else
+ continue;
+ }
+ else
+ continue;
+
+ if (NILP (content))
+ continue;
+ else if (NUMBERP (content))
+ {
+ reg[RRR] = i;
+ reg[rrr] = XINT(content);
+ break;
+ }
+ else if (EQ (content, Qt) || EQ (content, Qlambda))
+ {
+ reg[RRR] = i;
+ break;
+ }
+ else if (CONSP (content))
+ {
+ attrib = XCONS (content)->car;
+ value = XCONS (content)->cdr;
+ if (!NUMBERP (attrib) || !NUMBERP (value))
+ continue;
+ reg[RRR] = i;
+ reg[rrr] = XUINT (value);
+ break;
+ }
+ }
+ if (i == j)
+ reg[RRR] = -1;
+ ic = fin_ic;
+ }
+ break;
+
+ case CCL_MapMultiple:
+ {
+ Lisp_Object map, content, attrib, value;
+ int point, size, map_vector_size;
+ int map_set_rest_length, fin_ic;
+
+ map_set_rest_length =
+ XINT (ccl_prog[ic++]); /* number of maps and separators. */
+ fin_ic = ic + map_set_rest_length;
+ if ((map_set_rest_length > reg[RRR]) && (reg[RRR] >= 0))
+ {
+ ic += reg[RRR];
+ i = reg[RRR];
+ map_set_rest_length -= i;
+ }
+ else
+ {
+ ic = fin_ic;
+ reg[RRR] = -1;
+ break;
+ }
+ mapping_stack_pointer = mapping_stack;
+ op = reg[rrr];
+ PUSH_MAPPING_STACK (0, op);
+ reg[RRR] = -1;
+ map_vector_size = XVECTOR (Vcode_conversion_map_vector)->size;
+ for (;map_set_rest_length > 0;i++, map_set_rest_length--)
+ {
+ point = XINT(ccl_prog[ic++]);
+ if (point < 0)
+ {
+ point = -point;
+ if (mapping_stack_pointer
+ >= &mapping_stack[MAX_MAP_SET_LEVEL])
+ {
+ CCL_INVALID_CMD;
+ }
+ PUSH_MAPPING_STACK (map_set_rest_length - point,
+ reg[rrr]);
+ map_set_rest_length = point + 1;
+ reg[rrr] = op;
+ continue;
+ }
+
+ if (point >= map_vector_size) continue;
+ map = (XVECTOR (Vcode_conversion_map_vector)
+ ->contents[point]);
+
+ /* Check map varidity. */
+ if (!CONSP (map)) continue;
+ map = XCONS (map)->cdr;
+ if (!VECTORP (map)) continue;
+ size = XVECTOR (map)->size;
+ if (size <= 1) continue;
+
+ content = XVECTOR (map)->contents[0];
+
+ /* check map type,
+ [STARTPOINT VAL1 VAL2 ...] or
+ [t ELEMENT STARTPOINT ENDPOINT] */
+ if (NUMBERP (content))
+ {
+ point = XUINT (content);
+ point = op - point + 1;
+ if (!((point >= 1) && (point < size))) continue;
+ content = XVECTOR (map)->contents[point];
+ }
+ else if (EQ (content, Qt))
+ {
+ if (size != 4) continue;
+ if ((op >= XUINT (XVECTOR (map)->contents[2])) &&
+ (op < XUINT (XVECTOR (map)->contents[3])))
+ content = XVECTOR (map)->contents[1];
+ else
+ continue;
+ }
+ else
+ continue;
+
+ if (NILP (content))
+ continue;
+ else if (NUMBERP (content))
+ {
+ op = XINT (content);
+ reg[RRR] = i;
+ i += map_set_rest_length;
+ POP_MAPPING_STACK (map_set_rest_length, reg[rrr]);
+ }
+ else if (CONSP (content))
+ {
+ attrib = XCONS (content)->car;
+ value = XCONS (content)->cdr;
+ if (!NUMBERP (attrib) || !NUMBERP (value))
+ continue;
+ reg[RRR] = i;
+ op = XUINT (value);
+ i += map_set_rest_length;
+ POP_MAPPING_STACK (map_set_rest_length, reg[rrr]);
+ }
+ else if (EQ (content, Qt))
+ {
+ reg[RRR] = i;
+ op = reg[rrr];
+ i += map_set_rest_length;
+ POP_MAPPING_STACK (map_set_rest_length, reg[rrr]);
+ }
+ else if (EQ (content, Qlambda))
+ {
+ break;
+ }
+ else
+ CCL_INVALID_CMD;
+ }
+ ic = fin_ic;
+ }
+ reg[rrr] = op;
+ break;
+
+ case CCL_MapSingle:
+ {
+ Lisp_Object map, attrib, value, content;
+ int size, point;
+ j = XINT (ccl_prog[ic++]); /* map_id */
+ op = reg[rrr];
+ if (j >= XVECTOR (Vcode_conversion_map_vector)->size)
+ {
+ reg[RRR] = -1;
+ break;
+ }
+ map = XVECTOR (Vcode_conversion_map_vector)->contents[j];
+ if (!CONSP (map))
+ {
+ reg[RRR] = -1;
+ break;
+ }
+ map = XCONS(map)->cdr;
+ if (!VECTORP (map))
+ {
+ reg[RRR] = -1;
+ break;
+ }
+ size = XVECTOR (map)->size;
+ point = XUINT (XVECTOR (map)->contents[0]);
+ point = op - point + 1;
+ reg[RRR] = 0;
+ if ((size <= 1) ||
+ (!((point >= 1) && (point < size))))
+ reg[RRR] = -1;
+ else
+ {
+ content = XVECTOR (map)->contents[point];
+ if (NILP (content))
+ reg[RRR] = -1;
+ else if (NUMBERP (content))
+ reg[rrr] = XINT (content);
+ else if (EQ (content, Qt))
+ reg[RRR] = i;
+ else if (CONSP (content))
+ {
+ attrib = XCONS (content)->car;
+ value = XCONS (content)->cdr;
+ if (!NUMBERP (attrib) || !NUMBERP (value))
+ continue;
+ reg[rrr] = XUINT(value);
+ break;
+ }
+ else
+ reg[RRR] = -1;
+ }
+ }
+ break;
+#endif
+
+ default:
+ CCL_INVALID_CMD;
+ }
+ break;
+
default:
ccl->status = CCL_STAT_INVALID_CMD;
goto ccl_error_handler;
there. */
char msg[256];
+#if 0 /* not for XEmacs ? */
+ if (!dst)
+ dst = destination;
+#endif
+
switch (ccl->status)
{
/* Terminate CCL program because of invalid command.
Should not occur in the normal case. */
case CCL_STAT_INVALID_CMD:
sprintf(msg, "\nCCL: Invalid command %x (ccl_code = %x) at %d.",
- code & 0x1F, code, ic);
+ code & 0x1F, code, this_ic);
#ifdef CCL_DEBUG
{
int i = ccl_backtrace_idx - 1;
sprintf(msg, " %d", ccl_backtrace_table[i]);
Dynarr_add_many (destination, (unsigned char *) msg, strlen (msg));
}
+ goto ccl_finish;
}
#endif
- goto ccl_finish;
+ break;
case CCL_STAT_QUIT:
sprintf(msg, "\nCCL: Quited.");
ccl_finish:
ccl->ic = ic;
+ ccl->stack_idx = stack_idx;
+ ccl->prog = ccl_prog;
if (consumed) *consumed = src - source;
if (destination)
return Dynarr_length (destination);
}
/* Setup fields of the structure pointed by CCL appropriately for the
- execution of compiled CCL code in VEC (vector of integer). */
+ execution of compiled CCL code in VEC (vector of integer).
+ If VEC is nil, we skip setting ups based on VEC. */
void
setup_ccl_program (struct ccl_program *ccl, Lisp_Object vec)
{
int i;
- ccl->size = XVECTOR_LENGTH (vec);
- ccl->prog = XVECTOR_DATA (vec);
+ if (VECTORP (vec))
+ {
+ ccl->size = XVECTOR_LENGTH (vec);
+ ccl->prog = XVECTOR_DATA (vec);
+ ccl->eof_ic = XINT (XVECTOR_DATA (vec)[CCL_HEADER_EOF]);
+ ccl->buf_magnification = XINT (XVECTOR_DATA (vec)[CCL_HEADER_BUF_MAG]);
+ }
ccl->ic = CCL_HEADER_MAIN;
- ccl->eof_ic = XINT (XVECTOR_DATA (vec)[CCL_HEADER_EOF]);
- ccl->buf_magnification = XINT (XVECTOR_DATA (vec)[CCL_HEADER_BUF_MAG]);
for (i = 0; i < 8; i++)
ccl->reg[i] = 0;
ccl->last_block = 0;
+ ccl->private_state = 0;
ccl->status = 0;
+ ccl->stack_idx = 0;
}
+/* Resolve symbols in the specified CCL code (Lisp vector). This
+ function converts symbols of code conversion maps and character
+ translation tables embeded in the CCL code into their ID numbers. */
+
+Lisp_Object
+resolve_symbol_ccl_program (Lisp_Object ccl)
+{
+ int i, veclen;
+ Lisp_Object result, contents /*, prop */;
+
+ result = ccl;
+ veclen = XVECTOR_LENGTH (result);
+
+ /* Set CCL program's table ID */
+ for (i = 0; i < veclen; i++)
+ {
+ contents = XVECTOR_DATA (result)[i];
+ if (SYMBOLP (contents))
+ {
+ if (EQ(result, ccl))
+ result = Fcopy_sequence (ccl);
+
+#if 0
+ prop = Fget (contents, Qtranslation_table_id);
+ if (NUMBERP (prop))
+ {
+ XVECTOR_DATA (result)[i] = prop;
+ continue;
+ }
+ prop = Fget (contents, Qcode_conversion_map_id);
+ if (NUMBERP (prop))
+ {
+ XVECTOR_DATA (result)[i] = prop;
+ continue;
+ }
+ prop = Fget (contents, Qccl_program_idx);
+ if (NUMBERP (prop))
+ {
+ XVECTOR_DATA (result)[i] = prop;
+ continue;
+ }
+#endif
+ }
+ }
+
+ return result;
+}
+
+
#ifdef emacs
DEFUN ("ccl-execute", Fccl_execute, 2, 2, 0, /*
Execute CCL-PROGRAM with registers initialized by REGISTERS.
-CCL-PROGRAM is a compiled code generated by `ccl-compile',
- no I/O commands should appear in the CCL program.
+
+CCL-PROGRAM is a symbol registered by register-ccl-program,
+or a compiled code generated by `ccl-compile' (for backward compatibility,
+in this case, the execution is slower).
+No I/O commands should appear in CCL-PROGRAM.
+
REGISTERS is a vector of [R0 R1 ... R7] where RN is an initial value
of Nth register.
+
As side effect, each element of REGISTER holds the value of
corresponding register after the execution.
*/
{
struct ccl_program ccl;
int i;
+ Lisp_Object ccl_id;
+
+ if ((SYMBOLP (ccl_prog)) &&
+ (!NILP (ccl_id = Fget (ccl_prog, Qccl_program_idx, Qnil))))
+ {
+ ccl_prog = XVECTOR_DATA (Vccl_program_table)[XUINT (ccl_id)];
+ CHECK_LIST (ccl_prog);
+ ccl_prog = XCDR (ccl_prog);
+ CHECK_VECTOR (ccl_prog);
+ }
+ else
+ {
+ CHECK_VECTOR (ccl_prog);
+ ccl_prog = resolve_symbol_ccl_program (ccl_prog);
+ }
- CHECK_VECTOR (ccl_prog);
CHECK_VECTOR (reg);
if (XVECTOR_LENGTH (reg) != 8)
- signal_simple_error ("Vector should be of length 8", reg);
+ error ("Invalid length of vector REGISTERS");
setup_ccl_program (&ccl, ccl_prog);
for (i = 0; i < 8; i++)
DEFUN ("ccl-execute-on-string", Fccl_execute_on_string, 3, 4, 0, /*
Execute CCL-PROGRAM with initial STATUS on STRING.
-CCL-PROGRAM is a compiled code generated by `ccl-compile'.
+
+CCL-PROGRAM is a symbol registered by register-ccl-program,
+or a compiled code generated by `ccl-compile' (for backward compatibility,
+in this case, the execution is slower).
+
Read buffer is set to STRING, and write buffer is allocated automatically.
+
+If IC is nil, it is initialized to head of the CCL program.\n\
STATUS is a vector of [R0 R1 ... R7 IC], where
R0..R7 are initial values of corresponding registers,
IC is the instruction counter specifying from where to start the program.
If R0..R7 are nil, they are initialized to 0.
If IC is nil, it is initialized to head of the CCL program.
-Returns the contents of write buffer as a string,
- and as side effect, STATUS is updated.
+
If optional 4th arg CONTINUE is non-nil, keep IC on read operation
when read buffer is exausted, else, IC is always set to the end of
CCL-PROGRAM on exit.
+
+It returns the contents of write buffer as a string,
+ and as side effect, STATUS is updated.
*/
(ccl_prog, status, str, contin))
{
int i, produced;
unsigned_char_dynarr *outbuf;
struct gcpro gcpro1, gcpro2, gcpro3;
+ Lisp_Object ccl_id;
+
+ if ((SYMBOLP (ccl_prog)) &&
+ (!NILP (ccl_id = Fget (ccl_prog, Qccl_program_idx, Qnil))))
+ {
+ ccl_prog = XVECTOR (Vccl_program_table)->contents[XUINT (ccl_id)];
+ CHECK_LIST (ccl_prog);
+ ccl_prog = XCDR (ccl_prog);
+ CHECK_VECTOR (ccl_prog);
+ }
+ else
+ {
+ CHECK_VECTOR (ccl_prog);
+ ccl_prog = resolve_symbol_ccl_program (ccl_prog);
+ }
- CHECK_VECTOR (ccl_prog);
CHECK_VECTOR (status);
if (XVECTOR_LENGTH (status) != 9)
signal_simple_error ("Vector should be of length 9", status);
Dynarr_free (outbuf);
QUIT;
if (ccl.status != CCL_STAT_SUCCESS
- && ccl.status != CCL_STAT_SUSPEND)
+ && ccl.status != CCL_STAT_SUSPEND_BY_SRC
+ && ccl.status != CCL_STAT_SUSPEND_BY_DST)
error ("Error in CCL program at %dth code", ccl.ic);
return val;
CHECK_SYMBOL (name);
if (!NILP (ccl_prog))
- CHECK_VECTOR (ccl_prog);
+ {
+ CHECK_VECTOR (ccl_prog);
+ ccl_prog = resolve_symbol_ccl_program (ccl_prog);
+ }
for (i = 0; i < len; i++)
{
}
XVECTOR_DATA (Vccl_program_table)[i] = Fcons (name, ccl_prog);
+ Fput (name, Qccl_program_idx, make_int (i));
return make_int (i);
}
+#if 0
+/* Register code conversion map.
+ A code conversion map consists of numbers, Qt, Qnil, and Qlambda.
+ The first element is start code point.
+ The rest elements are mapped numbers.
+ Symbol t means to map to an original number before mapping.
+ Symbol nil means that the corresponding element is empty.
+ Symbol lambda menas to terminate mapping here.
+*/
+
+DEFUN ("register-code-conversion-map", Fregister_code_conversion_map,
+ Sregister_code_conversion_map,
+ 2, 2, 0,
+ "Register SYMBOL as code conversion map MAP.\n\
+Return index number of the registered map.")
+ (symbol, map)
+ Lisp_Object symbol, map;
+{
+ int len = XVECTOR (Vcode_conversion_map_vector)->size;
+ int i;
+ Lisp_Object index;
+
+ CHECK_SYMBOL (symbol, 0);
+ CHECK_VECTOR (map, 1);
+
+ for (i = 0; i < len; i++)
+ {
+ Lisp_Object slot = XVECTOR (Vcode_conversion_map_vector)->contents[i];
+
+ if (!CONSP (slot))
+ break;
+
+ if (EQ (symbol, XCONS (slot)->car))
+ {
+ index = make_int (i);
+ XCONS (slot)->cdr = map;
+ Fput (symbol, Qcode_conversion_map, map);
+ Fput (symbol, Qcode_conversion_map_id, index);
+ return index;
+ }
+ }
+
+ if (i == len)
+ {
+ Lisp_Object new_vector = Fmake_vector (make_int (len * 2), Qnil);
+ int j;
+
+ for (j = 0; j < len; j++)
+ XVECTOR (new_vector)->contents[j]
+ = XVECTOR (Vcode_conversion_map_vector)->contents[j];
+ Vcode_conversion_map_vector = new_vector;
+ }
+
+ index = make_int (i);
+ Fput (symbol, Qcode_conversion_map, map);
+ Fput (symbol, Qcode_conversion_map_id, index);
+ XVECTOR (Vcode_conversion_map_vector)->contents[i] = Fcons (symbol, map);
+ return index;
+}
+#endif
+
+
void
syms_of_mule_ccl (void)
{
DEFSUBR (Fccl_execute);
DEFSUBR (Fccl_execute_on_string);
DEFSUBR (Fregister_ccl_program);
+#if 0
+ DEFSUBR (&Fregister_code_conversion_map);
+#endif
}
void
staticpro (&Vccl_program_table);
Vccl_program_table = Fmake_vector (make_int (32), Qnil);
+ Qccl_program = intern ("ccl-program");
+ staticpro (&Qccl_program);
+
+ Qccl_program_idx = intern ("ccl-program-idx");
+ staticpro (&Qccl_program_idx);
+
+#if 0
+ Qcode_conversion_map = intern ("code-conversion-map");
+ staticpro (&Qcode_conversion_map);
+
+ Qcode_conversion_map_id = intern ("code-conversion-map-id");
+ staticpro (&Qcode_conversion_map_id);
+
+ DEFVAR_LISP ("code-conversion-map-vector", &Vcode_conversion_map_vector /*
+Vector of code conversion maps.*/ );
+ Vcode_conversion_map_vector = Fmake_vector (make_int (16), Qnil);
+#endif
+
DEFVAR_LISP ("font-ccl-encoder-alist", &Vfont_ccl_encoder_alist /*
Alist of fontname patterns vs corresponding CCL program.
Each element looks like (REGEXP . CCL-CODE),
/* Header for CCL (Code Conversion Language) interpreter.
- Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
+ Copyright (C) 1995,1999 Electrotechnical Laboratory, JAPAN.
Licensed to the Free Software Foundation.
This file is part of XEmacs.
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
-/* Synched up with: FSF Emacs 20.2 */
+/* Synched up with: FSF Emacs 20.3.10 */
#ifndef _CCL_H
#define _CCL_H
+/* Macros for exit status of CCL program. */
+#define CCL_STAT_SUCCESS 0 /* Terminated successfully. */
+#define CCL_STAT_SUSPEND_BY_SRC 1 /* Terminated by empty input. */
+#define CCL_STAT_SUSPEND_BY_DST 2 /* Terminated by output buffer full. */
+#define CCL_STAT_INVALID_CMD 3 /* Terminated because of invalid
+ command. */
+#define CCL_STAT_QUIT 4 /* Terminated because of quit. */
+
/* Structure to hold information about running CCL code. Read
comments in the file ccl.c for the detail of each field. */
struct ccl_program {
int reg[8]; /* CCL registers, reg[7] is used for
condition flag of relational
operations. */
+ int private_state; /* CCL instruction may use this
+ for private use, mainly for preservation
+ internal states for suspending.
+ This variable is set to 0 when ccl is
+ set up. */
int last_block; /* Set to 1 while processing the last
block. */
int status; /* Exit status of the CCL program. */
int buf_magnification; /* Output buffer magnification. How
many times bigger the output buffer
should be than the input buffer. */
+ int stack_idx; /* How deep the call of CCL_Call is nested. */
};
#include <config.h>
#include "lisp.h"
-#include <stddef.h>
#include "buffer.h"
#include "chartab.h"
#include <io.h>
#include <pwd.h>
#include <signal.h>
-#include <stddef.h> /* for offsetof */
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <config.h>
#include "lisp.h"
#include "opaque.h"
-#include <stddef.h>
Lisp_Object Qopaquep;
cachel = WINDOW_FACE_CACHEL (w, findex);
}
-#ifdef HAVE_XIM
+#if defined(HAVE_XIM) && defined(XIM_XLIB)
if (cursor && focus && (cursor_start == clip_start) && cursor_height)
- XIM_SetSpotLocation (f, xpos - 2, dl->ypos + dl->descent - 2);
-#endif /* HAVE_XIM */
+ if (FRAME_X_XIC(f))
+ XIM_SetSpotLocation (f, xpos - 2, dl->ypos + dl->descent - 2);
+#endif /* HAVE_XIM && XIM_XLIB */
bg_pmap = cachel->background_pixmap;
if (!IMAGE_INSTANCEP (bg_pmap)
if (focus)
{
-#ifdef HAVE_XIM
- XIM_SetSpotLocation (f, x - 2 , cursor_y + cursor_height - 2);
+#if defined(HAVE_XIM) && defined(XIM_XLIB)
+ if (FRAME_X_XIC(f))
+ XIM_SetSpotLocation (f, x - 2 , cursor_y + cursor_height - 2);
#endif /* HAVE_XIM */
if (NILP (bar_cursor_value))
* YMMV. I build with NT4 SP3.
*
* Andy Piper <andy@xemacs.org> 8/1/98
- * http://www.parallax.co.uk/~andyp */
+ * http://www.xemacs.freeserve.co.uk/ */
/* cheesy way to determine cygwin version */
#ifndef NOT_C_CODE
#define USG
#define LINUX
+/* powerpc gcc 2.8.0 doesn't define __ELF__, but it is */
+
+#if defined(__ELF__) || defined(powerpc)
+#define LINUX_ELF
+#endif
+
/* SYSTEM_TYPE should indicate the kind of system you are using.
It sets the Lisp variable system-type. */
/* Ask GCC where to find libgcc.a. */
#define LIB_GCC "`$(CC) $(C_SWITCH_X_SITE) -print-libgcc-file-name`"
-#ifndef __ELF__
+#ifndef LINUX_ELF
/* Linux has crt0.o in a non-standard place */
#define START_FILES "pre-crt0.o /usr/lib/crt0.o"
#else
/* Best not to include -lg, unless it is last on the command line */
#define LIBS_DEBUG
#define LIBS_TERMCAP "-ltermcap -lcurses" /* save some space with shared libs*/
-#ifndef __ELF__
+#ifndef LINUX_ELF
#define LIB_STANDARD "-lc" /* avoid -lPW */
#else
/*#undef LIB_GCC
#define LIBS_SYSTEM
#endif
-#ifdef __ELF__
+#ifdef LINUX_ELF
#define UNEXEC "unexelf.o"
#define UNEXEC_USE_MAP_PRIVATE
#if 0
#undef START_FILES
#undef LIB_GCC
#endif
-#endif /* __ELF__ */
+#endif /* LINUX_ELF */
#ifdef LINUX_QMAGIC
#include <config.h>
#include <stdio.h>
#include "lisp.h"
-#include <stddef.h>
#include <unistd.h>
#include <sheap-adjust.h>
#include "console.h"
#include "elhash.h"
-#include <stddef.h>
-
Lisp_Object Qad_advice_info, Qad_activate;
Lisp_Object Qget_value, Qset_value, Qbound_predicate, Qmake_unbound;
void image_instantiator_format_create_glyphs_widget (void);
void image_instantiator_format_create_glyphs_x (void);
void image_instantiator_format_create_glyphs_mswindows (void);
+void image_instantiator_format_create_glyphs_tty (void);
/* Initialize the lstream types (dump-time only). */
}
\f
-
+#ifdef MULE
/* Return 1 if there is a word boundary between two word-constituent
characters C1 and C2 if they appear in this order, else return 0.
There is no word boundary between two word-constituent ASCII
&& word_boundary_p (c1, c2))
extern int word_boundary_p (Emchar c1, Emchar c2);
+#else
+static int
+word_constituent_p (struct buffer *buf, Bufpos pos,
+ struct Lisp_Char_Table *tab)
+{
+ enum syntaxcode code = SYNTAX_UNSAFE (tab, BUF_FETCH_CHAR (buf, pos));
+ return ((words_include_escapes &&
+ (code == Sescape || code == Scharquote))
+ || (code == Sword));
+}
+#endif
/* Return the position across COUNT words from FROM.
If that many words cannot be found before the end of the buffer, return 0.
{
Bufpos limit = count > 0 ? BUF_ZV (buf) : BUF_BEGV (buf);
struct Lisp_Char_Table *mirrortab = XCHAR_TABLE (buf->mirror_syntax_table);
+#ifdef MULE
Emchar ch0, ch1;
enum syntaxcode code;
+#endif
while (count > 0)
{
{
if (from == limit)
return 0;
+#ifdef MULE
ch0 = BUF_FETCH_CHAR (buf, from);
code = SYNTAX_UNSAFE (mirrortab, ch0);
+#else
+ if (word_constituent_p (buf, from, mirrortab))
+ break;
+#endif
from++;
+#ifdef MULE
if (words_include_escapes
&& (code == Sescape || code == Scharquote))
break;
if (code == Sword)
break;
+#endif
}
QUIT;
- while ( from != limit )
+ while ((from != limit)
+#ifndef MULE
+ && word_constituent_p (buf, from, mirrortab)
+#endif
+ )
{
+#ifdef MULE
ch1 = BUF_FETCH_CHAR (buf, from);
code = SYNTAX_UNSAFE (mirrortab, ch1);
if (!(words_include_escapes
&& (code == Sescape || code == Scharquote)))
if (code != Sword || WORD_BOUNDARY_P (ch0, ch1))
break;
- from++;
ch0 = ch1;
+#endif
+ from++;
}
count--;
}
{
if (from == limit)
return 0;
+#ifndef MULE
+ if (word_constituent_p (buf, from - 1, mirrortab))
+ break;
+#endif
from--;
+#ifdef MULE
ch1 = BUF_FETCH_CHAR (buf, from - 1);
code = SYNTAX_UNSAFE (mirrortab, ch1);
if (words_include_escapes
break;
if (code == Sword)
break;
+#endif
}
QUIT;
- while ( from != limit )
+ while ((from != limit)
+#ifndef MULE
+ && word_constituent_p (buf, from - 1, mirrortab)
+#endif
+ )
{
+#ifdef MULE
ch0 = BUF_FETCH_CHAR (buf, from - 1);
code = SYNTAX_UNSAFE (mirrortab, ch0);
if (!(words_include_escapes
&& (code == Sescape || code == Scharquote)))
if (code != Sword || WORD_BOUNDARY_P (ch0, ch1))
break;
- from--;
ch1 = ch0;
+#endif
+ from--;
}
count++;
}
#include "lisp.h"
-#include <stddef.h>
#include <stdlib.h>
/* ------------------------------- */
Lisp_Object lp;
Lisp_Object fil;
+
+ /* tt_open() messes with our signal handler flags (at least when no
+ ttsessions is running on the machine), therefore we save the
+ actions and restore them after the call */
+#ifdef HAVE_SIGPROCMASK
+ {
+ struct sigaction ActSIGQUIT;
+ struct sigaction ActSIGINT;
+ struct sigaction ActSIGCHLD;
+ sigaction (SIGQUIT, NULL, &ActSIGQUIT);
+ sigaction (SIGINT, NULL, &ActSIGINT);
+ sigaction (SIGCHLD, NULL, &ActSIGCHLD);
+#endif
retval = tt_open ();
+#ifdef HAVE_SIGPROCMASK
+ sigaction (SIGQUIT, &ActSIGQUIT, NULL);
+ sigaction (SIGINT, &ActSIGINT, NULL);
+ sigaction (SIGCHLD, &ActSIGCHLD, NULL);
+ }
+#endif
+
+
if (tt_ptr_error (retval) != TT_OK)
return;
/* Synched up with: Not in FSF. */
-/* #pragma ident "@(#) $Id: unexsol2.c,v 1.3 1997/10/13 03:35:33 steve Exp $" */
+/* #pragma ident "@(#) $Id: unexsol2.c,v 1.2 1995/01/25 20:39:16 georgn Exp $" */
#include <stdlib.h>
#include <stdio.h>
+1999-07-13 XEmacs Build Bot <builds@cvs.xemacs.org>
+
+ * XEmacs 21.2.18 is released
+
1999-06-22 XEmacs Build Bot <builds@cvs.xemacs.org>
* XEmacs 21.2.17 is released
(make-extent (point) (point))
(make-glyph [button :descriptor ["ok" (setq ok-select nil) :style radio
:selected (not ok-select)]]))
+;; toggle button
+(set-extent-begin-glyph
+ (make-extent (point) (point))
+ (setq tbutton
+ (make-glyph [button :descriptor ["ok" (setq ok-select nil)
+ :style toggle
+ :selected (not ok-select)]])))
+(set-extent-begin-glyph
+ (make-extent (point) (point))
+ (make-glyph [button :descriptor ["ok" :style toggle
+ :callback
+ (setq ok-select (not ok-select))
+ :selected ok-select]]))
+
;; normal pushbutton
(set-extent-begin-glyph
(make-extent (point) (point))
(setq pbutton (make-glyph
- [button :width 10 :height 2
+ [button :width 10 :height 2
:face modeline-mousable
:descriptor "ok" :callback foo
:selected t])))
-
;; tree view
(set-extent-begin-glyph
(make-extent (point) (point))
(setq tree (make-glyph
- [tree :width 10
- :descriptor "My Tree"
- :properties (:items (["One" foo]
- (["Two" foo]
- ["Four" foo]
- "Six")
- "Three"))])))
+ [tree-view :width 10
+ :descriptor "My Tree"
+ :properties (:items (["One" foo]
+ (["Two" foo]
+ ["Four" foo]
+ "Six")
+ "Three"))])))
;; tab control
(set-extent-begin-glyph
(make-extent (point) (point))
(setq tab (make-glyph
- [tab :descriptor "My Tab"
- :face default
- :properties (:items (["One" foo]
- ["Two" foo]
- ["Three" foo]))])))
+ [tab-control :descriptor "My Tab"
+ :face default
+ :properties (:items (["One" foo]
+ ["Two" foo]
+ ["Three" foo]))])))
;; progress gauge
(set-extent-begin-glyph
(make-extent (point) (point))
(setq pgauge (make-glyph
- [progress :width 10 :height 2
- :descriptor "ok"])))
+ [progress-gauge :width 10 :height 2
+ :descriptor "ok"])))
;; progress the progress ...
(let ((x 0))
(while (<= x 100)
(setq global-mode-string
(cons (make-extent nil nil)
(setq pg (make-glyph
- [progress :width 5 :pixel-height 16
- :descriptor "ok"]))))
+ [progress-gauge :width 5 :pixel-height 16
+ :descriptor "ok"]))))
;; progress the progress ...
(let ((x 0))
(while (<= x 100)
;; edit box
(set-extent-begin-glyph
(make-extent (point) (point))
- (setq hedit (make-glyph [edit :pixel-width 50 :pixel-height 30
- :face bold-italic
- :descriptor ["Hello"]])))
+ (setq hedit (make-glyph [edit-field :pixel-width 50 :pixel-height 30
+ :face bold-italic
+ :descriptor ["Hello"]])))
;; combo box
(set-extent-begin-glyph
(make-extent (point) (point))
(setq hcombo (make-glyph
- [combo :width 10 :height 3 :descriptor ["Hello"]
- :properties (:items ("One" "Two" "Three"))])))
+ [combo-box :width 10 :height 3 :descriptor ["Hello"]
+ :properties (:items ("One" "Two" "Three"))])))
;; line
(set-extent-begin-glyph
; (make-glyph [scrollbar :width 50 :height 20 :descriptor ["Hello"]]))
;; generic subwindow
-(setq sw (make-glyph [subwindow :pixel-width 50 :pixel-height 50]))
+(setq sw (make-glyph [subwindow :pixel-width 50 :pixel-height 70]))
(set-extent-begin-glyph (make-extent (point) (point)) sw)
emacs_is_beta=t
emacs_major_version=21
emacs_minor_version=2
-emacs_beta_version=17
-xemacs_codename="Chiyoda"
+emacs_beta_version=18
+xemacs_codename="Toshima"
infodock_major_version=4
infodock_minor_version=0
infodock_build_version=7