for var in libs_machine libs_system libs_termcap libs_standard objects_machine objects_system c_switch_machine c_switch_system ld_switch_machine ld_switch_system unexec ld_switch_shared ld lib_gcc ld_text_start_addr start_files ordinary_link have_terminfo mail_use_flock mail_use_lockf; do eval "echo \"$var = '\$$var'\""; done && echo ""
case "$opsys" in mingw* | cygwin*)
- cygwin_include=`eval "gcc -print-file-name=libc.a"` ;
- cygwin_include=`eval "dirname $cygwin_include"` ;
- cygwin_include="-I$cygwin_include/../include" ;
+ cygwin_include=`eval gcc -print-search-dirs | sed -ne s'/install: //p'`
+ cygwin_include=`eval "cd $cygwin_include/../../../..; pwd"`
+ cygwin_include="-I$cygwin_include/include" ;
extra_includes="$cygwin_include/mingw $cygwin_include" ;
case "$opsys" in mingw*)
c_switch_system="$c_switch_system $extra_includes" && if test "$extra_verbose" = "yes"; then echo " Appending \"$extra_includes\" to \$c_switch_system"; fi ;;
libpath_xpm=
incpath_xpm=
+ libname_xpm="-lXpm"
case "$opsys" in
cygwin*)
- cygwin_top=`eval "gcc -print-file-name=libc.a"` ;
- cygwin_top=`eval "dirname ${cygwin_top}"`;
- cygwin_top="${cygwin_top}/..";
+ cygwin_top=`eval gcc -print-search-dirs | sed -ne s'/install: //p'`
+ cygwin_top=`eval "cd $cygwin_top/../../../..; pwd"`
case "$window_system" in
x11) ;;
msw) libpath_xpm="-L${cygwin_top}/lib/noX"
incpath_xpm="-I${cygwin_top}/include/noX"
+ libname_xpm="-lXpm-noX"
;;
gtk) ;;
none) ;;
CFLAGS=""$incpath_xpm" $CFLAGS" && if test "$extra_verbose" = "yes"; then echo " Prepending \""$incpath_xpm"\" to \$CFLAGS"; fi
LDFLAGS=""$libpath_xpm" $LDFLAGS" && if test "$extra_verbose" = "yes"; then echo " Prepending \""$libpath_xpm"\" to \$LDFLAGS"; fi
echo $ac_n "checking for Xpm - no older than 3.4f""... $ac_c" 1>&6
-echo "configure:8465: checking for Xpm - no older than 3.4f" >&5
- xe_check_libs=-lXpm
+echo "configure:8466: checking for Xpm - no older than 3.4f" >&5
+ xe_check_libs="$libname_xpm"
cat > conftest.$ac_ext <<EOF
-#line 8468 "configure"
+#line 8469 "configure"
#include "confdefs.h"
#define XPM_NUMBERS
#include <X11/xpm.h>
XpmIncludeVersion != XpmLibraryVersion() ? 1 :
XpmIncludeVersion < 30406 ? 2 : 0 ;}
EOF
-if { (eval echo configure:8477: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:8478: \"$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
}
LDFLAGS=""$libpath_xpm" $LDFLAGS" && if test "$extra_verbose" = "yes"; then echo " Prepending \""$libpath_xpm"\" to \$LDFLAGS"; fi
- libs_x="-lXpm $libs_x" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-lXpm\" to \$libs_x"; fi
+ libs_x=""$libname_xpm" $libs_x" && if test "$extra_verbose" = "yes"; then echo " Prepending \""$libname_xpm"\" to \$libs_x"; fi
CFLAGS=""$incpath_xpm" $CFLAGS" && if test "$extra_verbose" = "yes"; then echo " Prepending \""$incpath_xpm"\" to \$CFLAGS"; fi
echo $ac_n "checking for \"FOR_MSW\" xpm""... $ac_c" 1>&6
-echo "configure:8521: checking for \"FOR_MSW\" xpm" >&5
- xe_check_libs=-lXpm
+echo "configure:8522: checking for \"FOR_MSW\" xpm" >&5
+ xe_check_libs="$libname_xpm"
cat > conftest.$ac_ext <<EOF
-#line 8524 "configure"
+#line 8525 "configure"
#include "confdefs.h"
int main() {
XpmCreatePixmapFromData()
; return 0; }
EOF
-if { (eval echo configure:8531: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8532: \"$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:8557: checking for compface.h" >&5
+echo "configure:8558: checking for compface.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 8560 "configure"
+#line 8561 "configure"
#include "confdefs.h"
#include <compface.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8565: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8566: \"$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:8588: checking for UnGenFace in -lcompface" >&5
+echo "configure:8589: 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 8593 "configure"
+#line 8594 "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:8604: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8605: \"$ac_link\") 1>&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:8656: checking for inflate in -lc" >&5
+echo "configure:8657: 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 8661 "configure"
+#line 8662 "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:8672: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8673: \"$ac_link\") 1>&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:8691: checking for inflate in -lz" >&5
+echo "configure:8692: 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 8696 "configure"
+#line 8697 "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:8707: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8708: \"$ac_link\") 1>&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:8726: checking for inflate in -lgz" >&5
+echo "configure:8727: 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 8731 "configure"
+#line 8732 "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:8742: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8743: \"$ac_link\") 1>&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:8772: checking for jpeglib.h" >&5
+echo "configure:8773: checking for jpeglib.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 8775 "configure"
+#line 8776 "configure"
#include "confdefs.h"
#include <jpeglib.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8780: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8781: \"$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:8803: checking for jpeg_destroy_decompress in -ljpeg" >&5
+echo "configure:8804: 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 8808 "configure"
+#line 8809 "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:8819: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8820: \"$ac_link\") 1>&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:8855: checking for pow" >&5
+echo "configure:8856: checking for pow" >&5
cat > conftest.$ac_ext <<EOF
-#line 8858 "configure"
+#line 8859 "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:8881: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8882: \"$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:8902: checking for png.h" >&5
+echo "configure:8903: checking for png.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 8905 "configure"
+#line 8906 "configure"
#include "confdefs.h"
#include <png.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8910: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8911: \"$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:8933: checking for png_read_image in -lpng" >&5
+echo "configure:8934: 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 8938 "configure"
+#line 8939 "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:8949: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8950: \"$ac_link\") 1>&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:8972: checking for workable png version information" >&5
+echo "configure:8973: checking for workable png version information" >&5
xe_check_libs="-lpng -lz"
cat > conftest.$ac_ext <<EOF
-#line 8975 "configure"
+#line 8976 "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:8983: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:8984: \"$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:9026: checking for tiffio.h" >&5
+echo "configure:9027: checking for tiffio.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 9029 "configure"
+#line 9030 "configure"
#include "confdefs.h"
#include <tiffio.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9034: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9035: \"$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:9057: checking for TIFFClientOpen in -ltiff" >&5
+echo "configure:9058: 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 9062 "configure"
+#line 9063 "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:9073: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9074: \"$ac_link\") 1>&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_gtk" = "yes"; then
test -z "$with_xface" && { ac_safe=`echo "compface.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for compface.h""... $ac_c" 1>&6
-echo "configure:9112: checking for compface.h" >&5
+echo "configure:9113: checking for compface.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 9115 "configure"
+#line 9116 "configure"
#include "confdefs.h"
#include <compface.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9120: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9121: \"$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:9143: checking for UnGenFace in -lcompface" >&5
+echo "configure:9144: 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 9148 "configure"
+#line 9149 "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:9159: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9160: \"$ac_link\") 1>&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:9198: checking for X11 graphics libraries" >&5
+echo "configure:9199: checking for X11 graphics libraries" >&5
fi
if test "$with_x11" = "yes"; then
echo "checking for the Athena widgets" 1>&6
-echo "configure:9203: checking for the Athena widgets" >&5
+echo "configure:9204: checking for the Athena widgets" >&5
case "$with_athena" in
"xaw" | "") athena_variant=Xaw athena_3d=no ;;
if test "$athena_3d" = "no"; then
echo $ac_n "checking for XawScrollbarSetThumb in -l$athena_variant""... $ac_c" 1>&6
-echo "configure:9219: checking for XawScrollbarSetThumb in -l$athena_variant" >&5
+echo "configure:9220: checking for XawScrollbarSetThumb in -l$athena_variant" >&5
ac_lib_var=`echo $athena_variant'_'XawScrollbarSetThumb | sed 'y%./+-%__p_%'`
xe_check_libs=" -l$athena_variant "
cat > conftest.$ac_ext <<EOF
-#line 9224 "configure"
+#line 9225 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
XawScrollbarSetThumb()
; return 0; }
EOF
-if { (eval echo configure:9235: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9236: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for $athena_3d_function in -l$athena_variant""... $ac_c" 1>&6
-echo "configure:9251: checking for $athena_3d_function in -l$athena_variant" >&5
+echo "configure:9252: checking for $athena_3d_function in -l$athena_variant" >&5
ac_lib_var=`echo $athena_variant'_'$athena_3d_function | sed 'y%./+-%__p_%'`
xe_check_libs=" -l$athena_variant "
cat > conftest.$ac_ext <<EOF
-#line 9256 "configure"
+#line 9257 "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
$athena_3d_function()
; return 0; }
EOF
-if { (eval echo configure:9267: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9268: \"$ac_link\") 1>&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 $athena_3d_function in -l$athena_variant""... $ac_c" 1>&6
-echo "configure:9298: checking for $athena_3d_function in -l$athena_variant" >&5
+echo "configure:9299: checking for $athena_3d_function in -l$athena_variant" >&5
ac_lib_var=`echo $athena_variant'_'$athena_3d_function | sed 'y%./+-%__p_%'`
xe_check_libs=" -l$athena_variant "
cat > conftest.$ac_ext <<EOF
-#line 9303 "configure"
+#line 9304 "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
$athena_3d_function()
; return 0; }
EOF
-if { (eval echo configure:9314: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9315: \"$ac_link\") 1>&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 $athena_3d_function in -lXaw""... $ac_c" 1>&6
-echo "configure:9332: checking for $athena_3d_function in -lXaw" >&5
+echo "configure:9333: checking for $athena_3d_function in -lXaw" >&5
ac_lib_var=`echo Xaw'_'$athena_3d_function | sed 'y%./+-%__p_%'`
xe_check_libs=" -lXaw "
cat > conftest.$ac_ext <<EOF
-#line 9337 "configure"
+#line 9338 "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
$athena_3d_function()
; return 0; }
EOF
-if { (eval echo configure:9348: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9349: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
if test "$athena_3d" = "no"; then
ac_safe=`echo "X11/Xaw/ThreeD.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for X11/Xaw/ThreeD.h""... $ac_c" 1>&6
-echo "configure:9379: checking for X11/Xaw/ThreeD.h" >&5
+echo "configure:9380: checking for X11/Xaw/ThreeD.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 9382 "configure"
+#line 9383 "configure"
#include "confdefs.h"
#include <X11/Xaw/ThreeD.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9387: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9388: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
echo "$ac_t""no" 1>&6
ac_safe=`echo "X11/Xaw/XawInit.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for X11/Xaw/XawInit.h""... $ac_c" 1>&6
-echo "configure:9407: checking for X11/Xaw/XawInit.h" >&5
+echo "configure:9408: checking for X11/Xaw/XawInit.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 9410 "configure"
+#line 9411 "configure"
#include "confdefs.h"
#include <X11/Xaw/XawInit.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9415: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9416: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
else
ac_safe=`echo "X11/$athena_variant/XawInit.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for X11/$athena_variant/XawInit.h""... $ac_c" 1>&6
-echo "configure:9441: checking for X11/$athena_variant/XawInit.h" >&5
+echo "configure:9442: checking for X11/$athena_variant/XawInit.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 9444 "configure"
+#line 9445 "configure"
#include "confdefs.h"
#include <X11/$athena_variant/XawInit.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9449: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9450: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
ac_safe=`echo "X11/$athena_variant/ThreeD.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for X11/$athena_variant/ThreeD.h""... $ac_c" 1>&6
-echo "configure:9466: checking for X11/$athena_variant/ThreeD.h" >&5
+echo "configure:9467: checking for X11/$athena_variant/ThreeD.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 9469 "configure"
+#line 9470 "configure"
#include "confdefs.h"
#include <X11/$athena_variant/ThreeD.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9474: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9475: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
if test -z "$athena_h_path"; then
ac_safe=`echo "$athena_variant/XawInit.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $athena_variant/XawInit.h""... $ac_c" 1>&6
-echo "configure:9502: checking for $athena_variant/XawInit.h" >&5
+echo "configure:9503: checking for $athena_variant/XawInit.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 9505 "configure"
+#line 9506 "configure"
#include "confdefs.h"
#include <$athena_variant/XawInit.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9510: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9511: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
ac_safe=`echo "$athena_variant/ThreeD.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $athena_variant/ThreeD.h""... $ac_c" 1>&6
-echo "configure:9527: checking for $athena_variant/ThreeD.h" >&5
+echo "configure:9528: checking for $athena_variant/ThreeD.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 9530 "configure"
+#line 9531 "configure"
#include "confdefs.h"
#include <$athena_variant/ThreeD.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9535: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9536: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then
ac_safe=`echo "X11/Xaw3d/XawInit.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for X11/Xaw3d/XawInit.h""... $ac_c" 1>&6
-echo "configure:9564: checking for X11/Xaw3d/XawInit.h" >&5
+echo "configure:9565: checking for X11/Xaw3d/XawInit.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 9567 "configure"
+#line 9568 "configure"
#include "confdefs.h"
#include <X11/Xaw3d/XawInit.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9572: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9573: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
ac_safe=`echo "X11/Xaw3d/ThreeD.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for X11/Xaw3d/ThreeD.h""... $ac_c" 1>&6
-echo "configure:9589: checking for X11/Xaw3d/ThreeD.h" >&5
+echo "configure:9590: checking for X11/Xaw3d/ThreeD.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 9592 "configure"
+#line 9593 "configure"
#include "confdefs.h"
#include <X11/Xaw3d/ThreeD.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9597: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9598: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then
ac_safe=`echo "Xaw3d/XawInit.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for Xaw3d/XawInit.h""... $ac_c" 1>&6
-echo "configure:9629: checking for Xaw3d/XawInit.h" >&5
+echo "configure:9630: checking for Xaw3d/XawInit.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 9632 "configure"
+#line 9633 "configure"
#include "confdefs.h"
#include <Xaw3d/XawInit.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9637: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9638: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
ac_safe=`echo "Xaw3d/ThreeD.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for Xaw3d/ThreeD.h""... $ac_c" 1>&6
-echo "configure:9654: checking for Xaw3d/ThreeD.h" >&5
+echo "configure:9655: checking for Xaw3d/ThreeD.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 9657 "configure"
+#line 9658 "configure"
#include "confdefs.h"
#include <Xaw3d/ThreeD.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9662: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9663: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
if test -z "$athena_h_path"; then
ac_safe=`echo "X11/Xaw/ThreeD.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for X11/Xaw/ThreeD.h""... $ac_c" 1>&6
-echo "configure:9694: checking for X11/Xaw/ThreeD.h" >&5
+echo "configure:9695: checking for X11/Xaw/ThreeD.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 9697 "configure"
+#line 9698 "configure"
#include "confdefs.h"
#include <X11/Xaw/ThreeD.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9702: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9703: \"$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_x11" = "yes"; then
ac_safe=`echo "Xm/Xm.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for Xm/Xm.h""... $ac_c" 1>&6
-echo "configure:9741: checking for Xm/Xm.h" >&5
+echo "configure:9742: checking for Xm/Xm.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 9744 "configure"
+#line 9745 "configure"
#include "confdefs.h"
#include <Xm/Xm.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9749: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9750: \"$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:9766: checking for XmStringFree in -lXm" >&5
+echo "configure:9767: 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 9771 "configure"
+#line 9772 "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:9782: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9783: \"$ac_link\") 1>&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:9811: checking for Lesstif" >&5
+echo "configure:9812: checking for Lesstif" >&5
cat > conftest.$ac_ext <<EOF
-#line 9813 "configure"
+#line 9814 "configure"
#include "confdefs.h"
#include <Xm/Xm.h>
#ifdef LESSTIF_VERSION
if test "$with_concord" != "no"; then
ac_safe=`echo "concord.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for concord.h""... $ac_c" 1>&6
-echo "configure:10261: checking for concord.h" >&5
+echo "configure:10262: checking for concord.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 10264 "configure"
+#line 10265 "configure"
#include "confdefs.h"
#include <concord.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10269: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10270: \"$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/concord/include"
ac_safe=`echo "concord.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for concord.h""... $ac_c" 1>&6
-echo "configure:10297: checking for concord.h" >&5
+echo "configure:10298: checking for concord.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 10300 "configure"
+#line 10301 "configure"
#include "confdefs.h"
#include <concord.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10305: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10306: \"$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_mule" = "yes" ; then
echo "checking for Mule-related features" 1>&6
-echo "configure:10356: checking for Mule-related features" >&5
+echo "configure:10357: checking for Mule-related features" >&5
{ test "$extra_verbose" = "yes" && cat << \EOF
Defining MULE
EOF
if test "$with_chise" != "no"; then
ac_safe=`echo "chise.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for chise.h""... $ac_c" 1>&6
-echo "configure:10370: checking for chise.h" >&5
+echo "configure:10371: checking for chise.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 10373 "configure"
+#line 10374 "configure"
#include "confdefs.h"
#include <chise.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10378: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10379: \"$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/chise/include"
ac_safe=`echo "chise.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for chise.h""... $ac_c" 1>&6
-echo "configure:10406: checking for chise.h" >&5
+echo "configure:10407: checking for chise.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 10409 "configure"
+#line 10410 "configure"
#include "confdefs.h"
#include <chise.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10414: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10415: \"$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:10493: checking for $ac_hdr" >&5
+echo "configure:10494: checking for $ac_hdr" >&5
cat > conftest.$ac_ext <<EOF
-#line 10496 "configure"
+#line 10497 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10501: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10502: \"$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:10532: checking for strerror in -lintl" >&5
+echo "configure:10533: 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 10537 "configure"
+#line 10538 "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:10548: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10549: \"$ac_link\") 1>&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:10602: checking for Mule input methods" >&5
+echo "configure:10603: checking for Mule input methods" >&5
case "$with_xim" in "" | "yes" )
echo "checking for XIM" 1>&6
-echo "configure:10605: checking for XIM" >&5
+echo "configure:10606: checking for XIM" >&5
echo $ac_n "checking for XOpenIM in -lX11""... $ac_c" 1>&6
-echo "configure:10608: checking for XOpenIM in -lX11" >&5
+echo "configure:10609: 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 10613 "configure"
+#line 10614 "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:10624: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10625: \"$ac_link\") 1>&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 "$need_motif $have_lesstif" = "yes no"; then
echo $ac_n "checking for XmImMbLookupString in -lXm""... $ac_c" 1>&6
-echo "configure:10648: checking for XmImMbLookupString in -lXm" >&5
+echo "configure:10649: 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 10653 "configure"
+#line 10654 "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:10664: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10665: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
elif test "$have_motif $have_lesstif $with_xim" = "yes no no"; then
echo $ac_n "checking for XmImMbLookupString in -lXm""... $ac_c" 1>&6
-echo "configure:10687: checking for XmImMbLookupString in -lXm" >&5
+echo "configure:10688: 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 10692 "configure"
+#line 10693 "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:10703: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10704: \"$ac_link\") 1>&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:10768: checking for XFontSet" >&5
+echo "configure:10769: checking for XFontSet" >&5
echo $ac_n "checking for XmbDrawString in -lX11""... $ac_c" 1>&6
-echo "configure:10771: checking for XmbDrawString in -lX11" >&5
+echo "configure:10772: 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 10776 "configure"
+#line 10777 "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:10787: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10788: \"$ac_link\") 1>&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:10827: checking for wnn/jllib.h" >&5
+echo "configure:10828: checking for wnn/jllib.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 10830 "configure"
+#line 10831 "configure"
#include "confdefs.h"
#include <wnn/jllib.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10835: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10836: \"$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_wnn" && { ac_safe=`echo "wnn/commonhd.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for wnn/commonhd.h""... $ac_c" 1>&6
-echo "configure:10858: checking for wnn/commonhd.h" >&5
+echo "configure:10859: checking for wnn/commonhd.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 10861 "configure"
+#line 10862 "configure"
#include "confdefs.h"
#include <wnn/commonhd.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10866: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10867: \"$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:10891: checking for $ac_func" >&5
+echo "configure:10892: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 10894 "configure"
+#line 10895 "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:10917: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10918: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
test "$ac_cv_func_crypt" != "yes" && {
echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6
-echo "configure:10946: checking for crypt in -lcrypt" >&5
+echo "configure:10947: 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 10951 "configure"
+#line 10952 "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:10962: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10963: \"$ac_link\") 1>&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:10997: checking for jl_dic_list_e in -lwnn" >&5
+echo "configure:10998: 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 11002 "configure"
+#line 11003 "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:11013: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11014: \"$ac_link\") 1>&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:11031: checking for jl_dic_list_e in -lwnn4" >&5
+echo "configure:11032: 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 11036 "configure"
+#line 11037 "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:11047: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11048: \"$ac_link\") 1>&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:11065: checking for jl_dic_list_e in -lwnn6" >&5
+echo "configure:11066: 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 11070 "configure"
+#line 11071 "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:11081: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11082: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_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:11099: checking for dic_list_e in -lwnn6_fromsrc" >&5
+echo "configure:11100: 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 11104 "configure"
+#line 11105 "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:11115: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11116: \"$ac_link\") 1>&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:11163: checking for jl_fi_dic_list in -l$libwnn" >&5
+echo "configure:11164: 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 11168 "configure"
+#line 11169 "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:11179: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11180: \"$ac_link\") 1>&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:11214: checking for canna/jrkanji.h" >&5
+echo "configure:11215: checking for canna/jrkanji.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 11217 "configure"
+#line 11218 "configure"
#include "confdefs.h"
#include <canna/jrkanji.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11222: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11223: \"$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:11249: checking for canna/jrkanji.h" >&5
+echo "configure:11250: checking for canna/jrkanji.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 11252 "configure"
+#line 11253 "configure"
#include "confdefs.h"
#include <canna/jrkanji.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11257: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11258: \"$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:11285: checking for canna/RK.h" >&5
+echo "configure:11286: checking for canna/RK.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 11288 "configure"
+#line 11289 "configure"
#include "confdefs.h"
#include <canna/RK.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11293: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11294: \"$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:11316: checking for RkBgnBun in -lRKC" >&5
+echo "configure:11317: 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 11321 "configure"
+#line 11322 "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:11332: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11333: \"$ac_link\") 1>&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:11355: checking for jrKanjiControl in -lcanna" >&5
+echo "configure:11356: 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 11360 "configure"
+#line 11361 "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:11371: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11372: \"$ac_link\") 1>&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:11420: checking for layout_object_getvalue in -li18n" >&5
+echo "configure:11421: 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 11425 "configure"
+#line 11426 "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:11436: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11437: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
for ac_func in cbrt closedir dup2 eaccess fmod fpathconf frexp ftime getaddrinfo gethostname getnameinfo getpagesize gettimeofday getcwd getwd logb lrand48 matherr mkdir mktime perror poll random rename res_init rint rmdir select setitimer setpgid setlocale setsid sigblock sighold sigprocmask snprintf stpcpy strerror tzset ulimit usleep waitpid vsnprintf fsync ftruncate umask
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11523: checking for $ac_func" >&5
+echo "configure:11524: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 11526 "configure"
+#line 11527 "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:11549: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11550: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
for ac_func in getpt _getpty grantpt unlockpt ptsname killpg tcgetpgrp
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11590: checking for $ac_func" >&5
+echo "configure:11591: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 11593 "configure"
+#line 11594 "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:11616: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11617: \"$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 openpty""... $ac_c" 1>&6
-echo "configure:11645: checking for openpty" >&5
+echo "configure:11646: checking for openpty" >&5
cat > conftest.$ac_ext <<EOF
-#line 11648 "configure"
+#line 11649 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char openpty(); below. */
; return 0; }
EOF
-if { (eval echo configure:11671: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11672: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_openpty=yes"
else
echo $ac_n "checking for openpty in -lutil""... $ac_c" 1>&6
-echo "configure:11690: checking for openpty in -lutil" >&5
+echo "configure:11691: checking for openpty in -lutil" >&5
ac_lib_var=`echo util'_'openpty | sed 'y%./+-%__p_%'`
xe_check_libs=" -lutil "
cat > conftest.$ac_ext <<EOF
-#line 11695 "configure"
+#line 11696 "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
openpty()
; return 0; }
EOF
-if { (eval echo configure:11706: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11707: \"$ac_link\") 1>&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:11741: checking for $ac_hdr" >&5
+echo "configure:11742: checking for $ac_hdr" >&5
cat > conftest.$ac_ext <<EOF
-#line 11744 "configure"
+#line 11745 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11749: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11750: \"$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:11785: checking for $ac_hdr" >&5
+echo "configure:11786: checking for $ac_hdr" >&5
cat > conftest.$ac_ext <<EOF
-#line 11788 "configure"
+#line 11789 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11793: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11794: \"$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 isastream
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11826: checking for $ac_func" >&5
+echo "configure:11827: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 11829 "configure"
+#line 11830 "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:11852: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11853: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:11883: checking for $ac_hdr" >&5
+echo "configure:11884: checking for $ac_hdr" >&5
cat > conftest.$ac_ext <<EOF
-#line 11886 "configure"
+#line 11887 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11891: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11892: \"$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 getloadavg
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11928: checking for $ac_func" >&5
+echo "configure:11929: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 11931 "configure"
+#line 11932 "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:11954: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11955: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:11987: checking for $ac_hdr" >&5
+echo "configure:11988: checking for $ac_hdr" >&5
cat > conftest.$ac_ext <<EOF
-#line 11990 "configure"
+#line 11991 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11995: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11996: \"$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 kstat_open in -lkstat""... $ac_c" 1>&6
-echo "configure:12031: checking for kstat_open in -lkstat" >&5
+echo "configure:12032: 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 12036 "configure"
+#line 12037 "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:12047: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12048: \"$ac_link\") 1>&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:12082: checking for $ac_hdr" >&5
+echo "configure:12083: checking for $ac_hdr" >&5
cat > conftest.$ac_ext <<EOF
-#line 12085 "configure"
+#line 12086 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12090: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12091: \"$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 kvm_read in -lkvm""... $ac_c" 1>&6
-echo "configure:12122: checking for kvm_read in -lkvm" >&5
+echo "configure:12123: 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 12127 "configure"
+#line 12128 "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:12138: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12139: \"$ac_link\") 1>&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:12172: checking whether netdb declares h_errno" >&5
+echo "configure:12173: checking whether netdb declares h_errno" >&5
cat > conftest.$ac_ext <<EOF
-#line 12174 "configure"
+#line 12175 "configure"
#include "confdefs.h"
#include <netdb.h>
int main() {
return h_errno;
; return 0; }
EOF
-if { (eval echo configure:12181: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12182: \"$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:12201: checking for sigsetjmp" >&5
+echo "configure:12202: checking for sigsetjmp" >&5
cat > conftest.$ac_ext <<EOF
-#line 12203 "configure"
+#line 12204 "configure"
#include "confdefs.h"
#include <setjmp.h>
int main() {
sigjmp_buf bar; sigsetjmp (bar, 0);
; return 0; }
EOF
-if { (eval echo configure:12210: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12211: \"$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:12230: checking whether localtime caches TZ" >&5
+echo "configure:12231: checking whether localtime caches TZ" >&5
if test "$ac_cv_func_tzset" = "yes"; then
cat > conftest.$ac_ext <<EOF
-#line 12234 "configure"
+#line 12235 "configure"
#include "confdefs.h"
#include <time.h>
#if STDC_HEADERS
exit (0);
}
EOF
-if { (eval echo configure:12269: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:12270: \"$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:12299: checking whether gettimeofday accepts one or two arguments" >&5
+echo "configure:12300: checking whether gettimeofday accepts one or two arguments" >&5
cat > conftest.$ac_ext <<EOF
-#line 12301 "configure"
+#line 12302 "configure"
#include "confdefs.h"
#ifdef TIME_WITH_SYS_TIME
; return 0; }
EOF
-if { (eval echo configure:12322: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12323: \"$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:12344: checking for inline" >&5
+echo "configure:12345: checking for inline" >&5
ac_cv_c_inline=no
for ac_kw in inline __inline__ __inline; do
cat > conftest.$ac_ext <<EOF
-#line 12349 "configure"
+#line 12350 "configure"
#include "confdefs.h"
int main() {
} $ac_kw foo() {
; return 0; }
EOF
-if { (eval echo configure:12356: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12357: \"$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:12397: checking for working alloca.h" >&5
+echo "configure:12398: checking for working alloca.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 12400 "configure"
+#line 12401 "configure"
#include "confdefs.h"
#include <alloca.h>
int main() {
char *p = alloca(2 * sizeof(int));
; return 0; }
EOF
-if { (eval echo configure:12407: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12408: \"$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:12431: checking for alloca" >&5
+echo "configure:12432: checking for alloca" >&5
cat > conftest.$ac_ext <<EOF
-#line 12434 "configure"
+#line 12435 "configure"
#include "confdefs.h"
#ifdef __GNUC__
char *p = (char *) alloca(1);
; return 0; }
EOF
-if { (eval echo configure:12462: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12463: \"$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:12501: checking whether alloca needs Cray hooks" >&5
+echo "configure:12502: checking whether alloca needs Cray hooks" >&5
cat > conftest.$ac_ext <<EOF
-#line 12504 "configure"
+#line 12505 "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:12528: checking for $ac_func" >&5
+echo "configure:12529: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 12531 "configure"
+#line 12532 "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:12554: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12555: \"$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:12584: checking stack direction for C alloca" >&5
+echo "configure:12585: checking stack direction for C alloca" >&5
cat > conftest.$ac_ext <<EOF
-#line 12587 "configure"
+#line 12588 "configure"
#include "confdefs.h"
find_stack_direction ()
{
exit (find_stack_direction() < 0);
}
EOF
-if { (eval echo configure:12606: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:12607: \"$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:12636: checking for vfork.h" >&5
+echo "configure:12637: checking for vfork.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 12639 "configure"
+#line 12640 "configure"
#include "confdefs.h"
#include <vfork.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12644: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12645: \"$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:12672: checking for working vfork" >&5
+echo "configure:12673: checking for working vfork" >&5
cat > conftest.$ac_ext <<EOF
-#line 12675 "configure"
+#line 12676 "configure"
#include "confdefs.h"
/* Thanks to Paul Eggert for this test. */
#include <stdio.h>
}
}
EOF
-if { (eval echo configure:12770: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:12771: \"$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:12796: checking for working strcoll" >&5
+echo "configure:12797: checking for working strcoll" >&5
cat > conftest.$ac_ext <<EOF
-#line 12799 "configure"
+#line 12800 "configure"
#include "confdefs.h"
#include <string.h>
main ()
strcoll ("123", "456") >= 0);
}
EOF
-if { (eval echo configure:12809: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:12810: \"$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:12837: checking for $ac_func" >&5
+echo "configure:12838: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 12840 "configure"
+#line 12841 "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:12863: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12864: \"$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:12891: checking whether getpgrp takes no argument" >&5
+echo "configure:12892: checking whether getpgrp takes no argument" >&5
cat > conftest.$ac_ext <<EOF
-#line 12894 "configure"
+#line 12895 "configure"
#include "confdefs.h"
/*
}
EOF
-if { (eval echo configure:12949: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:12950: \"$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:12976: checking for working mmap" >&5
+echo "configure:12977: checking for working mmap" >&5
case "$opsys" in ultrix* ) have_mmap=no ;; *)
cat > conftest.$ac_ext <<EOF
-#line 12979 "configure"
+#line 12980 "configure"
#include "confdefs.h"
#include <stdio.h>
#include <unistd.h>
return 1;
}
EOF
-if { (eval echo configure:13012: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:13013: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
have_mmap=yes
else
if test "$rel_alloc $have_mmap" = "default yes"; then
if test "$doug_lea_malloc" = "yes"; then
echo $ac_n "checking for M_MMAP_THRESHOLD""... $ac_c" 1>&6
-echo "configure:13041: checking for M_MMAP_THRESHOLD" >&5
+echo "configure:13042: checking for M_MMAP_THRESHOLD" >&5
cat > conftest.$ac_ext <<EOF
-#line 13043 "configure"
+#line 13044 "configure"
#include "confdefs.h"
#include <malloc.h>
int main() {
; return 0; }
EOF
-if { (eval echo configure:13055: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:13056: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
rel_alloc=no; echo "$ac_t""yes" 1>&6;
else
ac_safe=`echo "termios.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for termios.h""... $ac_c" 1>&6
-echo "configure:13080: checking for termios.h" >&5
+echo "configure:13081: checking for termios.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 13083 "configure"
+#line 13084 "configure"
#include "confdefs.h"
#include <termios.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13088: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13089: \"$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:13131: checking for termio.h" >&5
+echo "configure:13132: checking for termio.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 13134 "configure"
+#line 13135 "configure"
#include "confdefs.h"
#include <termio.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13139: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13140: \"$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:13171: checking for socket" >&5
+echo "configure:13172: checking for socket" >&5
cat > conftest.$ac_ext <<EOF
-#line 13174 "configure"
+#line 13175 "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:13197: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13198: \"$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:13212: checking for netinet/in.h" >&5
+echo "configure:13213: checking for netinet/in.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 13215 "configure"
+#line 13216 "configure"
#include "confdefs.h"
#include <netinet/in.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13220: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13221: \"$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:13237: checking for arpa/inet.h" >&5
+echo "configure:13238: checking for arpa/inet.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 13240 "configure"
+#line 13241 "configure"
#include "confdefs.h"
#include <arpa/inet.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13245: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13246: \"$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:13270: checking "for sun_len member in struct sockaddr_un"" >&5
+echo "configure:13271: checking "for sun_len member in struct sockaddr_un"" >&5
cat > conftest.$ac_ext <<EOF
-#line 13272 "configure"
+#line 13273 "configure"
#include "confdefs.h"
#include <sys/types.h>
static struct sockaddr_un x; x.sun_len = 1;
; return 0; }
EOF
-if { (eval echo configure:13283: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13284: \"$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:13301: checking "for ip_mreq struct in netinet/in.h"" >&5
+echo "configure:13302: checking "for ip_mreq struct in netinet/in.h"" >&5
cat > conftest.$ac_ext <<EOF
-#line 13303 "configure"
+#line 13304 "configure"
#include "confdefs.h"
#include <sys/types.h>
static struct ip_mreq x;
; return 0; }
EOF
-if { (eval echo configure:13313: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13314: \"$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:13344: checking for msgget" >&5
+echo "configure:13345: checking for msgget" >&5
cat > conftest.$ac_ext <<EOF
-#line 13347 "configure"
+#line 13348 "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:13370: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13371: \"$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:13385: checking for sys/ipc.h" >&5
+echo "configure:13386: checking for sys/ipc.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 13388 "configure"
+#line 13389 "configure"
#include "confdefs.h"
#include <sys/ipc.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13393: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13394: \"$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:13410: checking for sys/msg.h" >&5
+echo "configure:13411: checking for sys/msg.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 13413 "configure"
+#line 13414 "configure"
#include "confdefs.h"
#include <sys/msg.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13418: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13419: \"$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:13456: checking for dirent.h" >&5
+echo "configure:13457: checking for dirent.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 13459 "configure"
+#line 13460 "configure"
#include "confdefs.h"
#include <dirent.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13464: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13465: \"$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:13491: checking for sys/dir.h" >&5
+echo "configure:13492: checking for sys/dir.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 13494 "configure"
+#line 13495 "configure"
#include "confdefs.h"
#include <sys/dir.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13499: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13500: \"$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:13532: checking for nlist.h" >&5
+echo "configure:13533: checking for nlist.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 13535 "configure"
+#line 13536 "configure"
#include "confdefs.h"
#include <nlist.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13540: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13541: \"$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:13570: checking "for sound support"" >&5
+echo "configure:13571: checking "for sound support"" >&5
test -z "$with_native_sound" -a -n "$native_sound_lib" && with_native_sound=yes
if test "$with_native_sound" != "no"; then
if test -n "$native_sound_lib"; then
ac_safe=`echo "multimedia/audio_device.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for multimedia/audio_device.h""... $ac_c" 1>&6
-echo "configure:13577: checking for multimedia/audio_device.h" >&5
+echo "configure:13578: checking for multimedia/audio_device.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 13580 "configure"
+#line 13581 "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:13585: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13586: \"$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:13641: checking for ALopenport in -laudio" >&5
+echo "configure:13642: 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 13646 "configure"
+#line 13647 "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:13657: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13658: \"$ac_link\") 1>&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:13688: checking for AOpenAudio in -lAlib" >&5
+echo "configure:13689: 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 13693 "configure"
+#line 13694 "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:13704: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13705: \"$ac_link\") 1>&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:13749: checking for ${dir}/soundcard.h" >&5
+echo "configure:13750: checking for ${dir}/soundcard.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 13752 "configure"
+#line 13753 "configure"
#include "confdefs.h"
#include <${dir}/soundcard.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13757: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13758: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
if test "$with_nas_sound" != "no"; then
ac_safe=`echo "audio/audiolib.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for audio/audiolib.h""... $ac_c" 1>&6
-echo "configure:13811: checking for audio/audiolib.h" >&5
+echo "configure:13812: checking for audio/audiolib.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 13814 "configure"
+#line 13815 "configure"
#include "confdefs.h"
#include <audio/audiolib.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13819: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13820: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
echo $ac_n "checking for AuOpenServer in -laudio""... $ac_c" 1>&6
-echo "configure:13837: checking for AuOpenServer in -laudio" >&5
+echo "configure:13838: checking for AuOpenServer in -laudio" >&5
ac_lib_var=`echo audio'_'AuOpenServer | sed 'y%./+-%__p_%'`
xe_check_libs=" -laudio "
cat > conftest.$ac_ext <<EOF
-#line 13842 "configure"
+#line 13843 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
AuOpenServer()
; return 0; }
EOF
-if { (eval echo configure:13853: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13854: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
fi
libs_x="-laudio $libs_x" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-laudio\" to \$libs_x"; fi
cat > conftest.$ac_ext <<EOF
-#line 13892 "configure"
+#line 13893 "configure"
#include "confdefs.h"
#include <audio/Xtutil.h>
EOF
# Extract the first word of "esd-config", so it can be a program name with args.
set dummy esd-config; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:13923: checking for $ac_word" >&5
+echo "configure:13924: checking for $ac_word" >&5
if test -n "$have_esd_config"; then
ac_cv_prog_have_esd_config="$have_esd_config" # Let the user override the test.
c_switch_site="$c_switch_site `esd-config --cflags`" && if test "$extra_verbose" = "yes"; then echo " Appending \"`esd-config --cflags`\" to \$c_switch_site"; fi
LIBS="`esd-config --libs` $LIBS" && if test "$extra_verbose" = "yes"; then echo " Prepending \"`esd-config --libs`\" to \$LIBS"; fi
echo $ac_n "checking for esd_play_stream""... $ac_c" 1>&6
-echo "configure:13952: checking for esd_play_stream" >&5
+echo "configure:13953: checking for esd_play_stream" >&5
cat > conftest.$ac_ext <<EOF
-#line 13955 "configure"
+#line 13956 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char esd_play_stream(); below. */
; return 0; }
EOF
-if { (eval echo configure:13978: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13979: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_esd_play_stream=yes"
else
if test "$with_tty" = "yes" ; then
echo "checking for TTY-related features" 1>&6
-echo "configure:14029: checking for TTY-related features" >&5
+echo "configure:14030: 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:14045: checking for tgetent in -lncurses" >&5
+echo "configure:14046: 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 14050 "configure"
+#line 14051 "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:14061: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14062: \"$ac_link\") 1>&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:14094: checking for ncurses/curses.h" >&5
+echo "configure:14095: checking for ncurses/curses.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 14097 "configure"
+#line 14098 "configure"
#include "confdefs.h"
#include <ncurses/curses.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:14102: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:14103: \"$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:14124: checking for ncurses/term.h" >&5
+echo "configure:14125: checking for ncurses/term.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 14127 "configure"
+#line 14128 "configure"
#include "confdefs.h"
#include <ncurses/term.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:14132: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:14133: \"$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:14162: checking for ncurses/curses.h" >&5
+echo "configure:14163: checking for ncurses/curses.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 14165 "configure"
+#line 14166 "configure"
#include "confdefs.h"
#include <ncurses/curses.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:14170: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:14171: \"$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:14205: checking for tgetent in -l$lib" >&5
+echo "configure:14206: 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 14210 "configure"
+#line 14211 "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:14221: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14222: \"$ac_link\") 1>&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 if test -n "$libs_termcap" -a "$opsys" = "openbsd"; then
echo $ac_n "checking for tgoto in -ltermcap""... $ac_c" 1>&6
-echo "configure:14246: checking for tgoto in -ltermcap" >&5
+echo "configure:14247: checking for tgoto in -ltermcap" >&5
ac_lib_var=`echo termcap'_'tgoto | sed 'y%./+-%__p_%'`
xe_check_libs=" -ltermcap "
cat > conftest.$ac_ext <<EOF
-#line 14251 "configure"
+#line 14252 "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
tgoto()
; return 0; }
EOF
-if { (eval echo configure:14262: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14263: \"$ac_link\") 1>&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:14307: checking for tgetent in -lcurses" >&5
+echo "configure:14308: 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 14312 "configure"
+#line 14313 "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:14323: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14324: \"$ac_link\") 1>&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:14341: checking for tgetent in -ltermcap" >&5
+echo "configure:14342: 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 14346 "configure"
+#line 14347 "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:14357: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14358: \"$ac_link\") 1>&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_gpm" != "no"; then
ac_safe=`echo "gpm.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for gpm.h""... $ac_c" 1>&6
-echo "configure:14406: checking for gpm.h" >&5
+echo "configure:14407: checking for gpm.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 14409 "configure"
+#line 14410 "configure"
#include "confdefs.h"
#include <gpm.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:14414: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:14415: \"$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 Gpm_Open in -lgpm""... $ac_c" 1>&6
-echo "configure:14432: checking for Gpm_Open in -lgpm" >&5
+echo "configure:14433: 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 14437 "configure"
+#line 14438 "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:14448: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14449: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
test "$with_database_gdbm $with_database_dbm $with_database_berkdb" \
!= "no no no" && echo "checking for database support" 1>&6
-echo "configure:14507: checking for database support" >&5
+echo "configure:14508: checking for database support" >&5
if test "$with_database_gdbm $with_database_dbm" != "no no"; then
ac_safe=`echo "ndbm.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for ndbm.h""... $ac_c" 1>&6
-echo "configure:14512: checking for ndbm.h" >&5
+echo "configure:14513: checking for ndbm.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 14515 "configure"
+#line 14516 "configure"
#include "confdefs.h"
#include <ndbm.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:14520: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:14521: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
if test "$with_database_gdbm" != "no"; then
echo $ac_n "checking for dbm_open in -lgdbm""... $ac_c" 1>&6
-echo "configure:14550: checking for dbm_open in -lgdbm" >&5
+echo "configure:14551: 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 14555 "configure"
+#line 14556 "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:14566: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14567: \"$ac_link\") 1>&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:14594: checking for dbm_open" >&5
+echo "configure:14595: checking for dbm_open" >&5
cat > conftest.$ac_ext <<EOF
-#line 14597 "configure"
+#line 14598 "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:14620: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14621: \"$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:14639: checking for dbm_open in -ldbm" >&5
+echo "configure:14640: 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 14644 "configure"
+#line 14645 "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:14655: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14656: \"$ac_link\") 1>&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 u_int8_t""... $ac_c" 1>&6
-echo "configure:14695: checking for u_int8_t" >&5
+echo "configure:14696: checking for u_int8_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 14698 "configure"
+#line 14699 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
fi
echo $ac_n "checking for u_int16_t""... $ac_c" 1>&6
-echo "configure:14739: checking for u_int16_t" >&5
+echo "configure:14740: checking for u_int16_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 14742 "configure"
+#line 14743 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
fi
echo $ac_n "checking for u_int32_t""... $ac_c" 1>&6
-echo "configure:14783: checking for u_int32_t" >&5
+echo "configure:14784: checking for u_int32_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 14786 "configure"
+#line 14787 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
fi
echo $ac_n "checking for u_int64_t""... $ac_c" 1>&6
-echo "configure:14827: checking for u_int64_t" >&5
+echo "configure:14828: checking for u_int64_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 14830 "configure"
+#line 14831 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
if test "$with_database_berkdb" != "no"; then
echo $ac_n "checking for Berkeley db.h""... $ac_c" 1>&6
-echo "configure:14873: checking for Berkeley db.h" >&5
+echo "configure:14874: checking for Berkeley db.h" >&5
for header in "db/db.h" "db.h"; do
case "$opsys" in
*freebsd*)
cat > conftest.$ac_ext <<EOF
-#line 14878 "configure"
+#line 14879 "configure"
#include "confdefs.h"
#include <stdlib.h>
; return 0; }
EOF
-if { (eval echo configure:14894: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14895: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
db_h_file="$header"; break
else
;;
*)
cat > conftest.$ac_ext <<EOF
-#line 14905 "configure"
+#line 14906 "configure"
#include "confdefs.h"
#include <stdlib.h>
; return 0; }
EOF
-if { (eval echo configure:14935: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14936: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
db_h_file="$header"; break
else
if test "$with_database_berkdb" != "no"; then
echo $ac_n "checking for Berkeley DB version""... $ac_c" 1>&6
-echo "configure:14953: checking for Berkeley DB version" >&5
+echo "configure:14954: checking for Berkeley DB version" >&5
cat > conftest.$ac_ext <<EOF
-#line 14955 "configure"
+#line 14956 "configure"
#include "confdefs.h"
#include <$db_h_file>
#if DB_VERSION_MAJOR > 1
egrep "yes" >/dev/null 2>&1; then
rm -rf conftest*
cat > conftest.$ac_ext <<EOF
-#line 14967 "configure"
+#line 14968 "configure"
#include "confdefs.h"
#include <$db_h_file>
#if DB_VERSION_MAJOR > 2
rm -f conftest*
echo $ac_n "checking for $dbfunc""... $ac_c" 1>&6
-echo "configure:14994: checking for $dbfunc" >&5
+echo "configure:14995: checking for $dbfunc" >&5
cat > conftest.$ac_ext <<EOF
-#line 14997 "configure"
+#line 14998 "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:15020: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15021: \"$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:15039: checking for $dbfunc in -ldb" >&5
+echo "configure:15040: 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 15044 "configure"
+#line 15045 "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:15055: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15056: \"$ac_link\") 1>&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:15129: checking for SOCKSinit in -lsocks" >&5
+echo "configure:15130: 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 15134 "configure"
+#line 15135 "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:15145: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15146: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
if test "$with_modules" != "no"; then
echo "checking for module support" 1>&6
-echo "configure:15200: checking for module support" >&5
+echo "configure:15201: checking for module support" >&5
if test "$with_msw" = "yes"; then
have_dl=yes;
;;
*) ac_safe=`echo "dlfcn.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for dlfcn.h""... $ac_c" 1>&6
-echo "configure:15216: checking for dlfcn.h" >&5
+echo "configure:15217: checking for dlfcn.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 15219 "configure"
+#line 15220 "configure"
#include "confdefs.h"
#include <dlfcn.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:15224: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:15225: \"$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 dlopen in -lc""... $ac_c" 1>&6
-echo "configure:15241: checking for dlopen in -lc" >&5
+echo "configure:15242: checking for dlopen in -lc" >&5
cat > conftest.$ac_ext <<EOF
-#line 15243 "configure"
+#line 15244 "configure"
#include "confdefs.h"
#include <dlfcn.h>
int main() {
dlopen ("", 0);
; return 0; }
EOF
-if { (eval echo configure:15250: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15251: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
have_dl=yes
else
rm -rf conftest*
echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:15259: checking for dlopen in -ldl" >&5
+echo "configure:15260: checking for dlopen in -ldl" >&5
ac_save_LIBS="$LIBS"
LIBS="-ldl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 15263 "configure"
+#line 15264 "configure"
#include "confdefs.h"
#include <dlfcn.h>
int main() {
dlopen ("", 0);
; return 0; }
EOF
-if { (eval echo configure:15270: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15271: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
have_dl=yes
else
else
echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
-echo "configure:15299: checking for shl_load in -ldld" >&5
+echo "configure:15300: 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 15304 "configure"
+#line 15305 "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:15315: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15316: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for dld_init in -ldld""... $ac_c" 1>&6
-echo "configure:15342: checking for dld_init in -ldld" >&5
+echo "configure:15343: 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 15347 "configure"
+#line 15348 "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:15358: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15359: \"$ac_link\") 1>&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:15405: checking how to build dynamic libraries for ${xehost}" >&5
+echo "configure:15406: 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:15433: checking checking whether we are using GNU C" >&5
+echo "configure:15434: checking checking whether we are using GNU C" >&5
cat > conftest.$ac_ext <<EOF
-#line 15435 "configure"
+#line 15436 "configure"
#include "confdefs.h"
#ifdef __GNUC__
fi
echo $ac_n "checking how to produce PIC code""... $ac_c" 1>&6
-echo "configure:15457: checking how to produce PIC code" >&5
+echo "configure:15458: 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:15558: checking if PIC flag ${dll_cflags} really works" >&5
+echo "configure:15559: checking if PIC flag ${dll_cflags} really works" >&5
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $dll_cflags -DPIC"
cat > conftest.$ac_ext <<EOF
-#line 15562 "configure"
+#line 15563 "configure"
#include "confdefs.h"
int main() {
int x=0;
; return 0; }
EOF
-if { (eval echo configure:15569: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15570: \"$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:15600: checking if C compiler can produce shared libraries" >&5
+echo "configure:15601: checking if C compiler can produce shared libraries" >&5
if test "$XEGCC" = yes -o "$__ICC" = 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 15651 "configure"
+#line 15652 "configure"
#include "confdefs.h"
int main() {
int x=0;
; return 0; }
EOF
-if { (eval echo configure:15658: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15659: \"$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:15683: checking for ld used by GCC" >&5
+echo "configure:15684: 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:15709: checking for GNU ld" >&5
+echo "configure:15710: 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:15747: checking if the linker is GNU ld" >&5
+echo "configure:15748: 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:15775: checking whether the linker supports shared libraries" >&5
+echo "configure:15776: 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:15986: checking for $ac_func" >&5
+echo "configure:15987: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 15989 "configure"
+#line 15990 "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:16012: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16013: \"$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 16051 "configure"
+#line 16052 "configure"
#include "confdefs.h"
int main(int c,char *v[]){return 0;}
EOF
-if { (eval echo configure:16055: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:16056: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
:
else
+++ /dev/null
-This is ../info/xemacs-faq.info, produced by makeinfo version 4.8 from
-xemacs-faq.texi.
-
-INFO-DIR-SECTION XEmacs Editor
-START-INFO-DIR-ENTRY
-* FAQ: (xemacs-faq). XEmacs FAQ.
-END-INFO-DIR-ENTRY
-
-\1f
-File: xemacs-faq.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir)
-
-XEmacs FAQ
-**********
-
-This is the guide to the XEmacs Frequently Asked Questions list--a
-compendium of questions and answers pertaining to one of the finest
-programs ever written. XEmacs is much more than just a Text Editor.
-
- This FAQ is freely redistributable. This FAQ 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.
-
- If you have a Web browser, the official hypertext version is at
-`http://www.xemacs.org/FAQ/xemacs-faq.html'
-
-* Menu:
-
-* Introduction:: Introduction, Policy, Credits.
-* Installation:: Installation and Troubleshooting.
-* Editing:: Editing Functions.
-* Display:: Display Functions.
-* External Subsystems:: Interfacing with the OS and External Devices.
-* Internet:: Connecting to the Internet.
-* Advanced:: Advanced Customization Using XEmacs Lisp.
-* Other Packages:: Other External Packages.
-* Current Events:: What the Future Holds.
-* Legacy Versions:: New information about old XEmacsen.
-
- --- The Detailed Node Listing ---
-
-1 Introduction, Policy, Credits
-
-1.0: What is XEmacs?
-* Q1.0.1:: What is XEmacs?
-* Q1.0.2:: What is the current version of XEmacs?
-* Q1.0.3:: How do you pronounce XEmacs?
-* Q1.0.4:: What does XEmacs look like?
-* Q1.0.5:: Who wrote XEmacs?
-* Q1.0.6:: Who wrote the FAQ?
-
-1.1: Getting XEmacs
-* Q1.1.1:: Where can I find XEmacs?
-* Q1.1.2:: Are binaries available?
-* Q1.1.3:: How do I get the bleeding-edge sources?
-* Q1.1.4:: Where can I obtain a printed copy of the XEmacs User's Manual?
-
-1.2: Versions for Different Operating Systems
-* Q1.2.1:: Do I need X11 to run XEmacs?
-* Q1.2.2:: What versions of Unix does XEmacs run on?
-* Q1.2.3:: Is there a port of XEmacs to Microsoft Windows?
-* Q1.2.4:: Can I build XEmacs on MS Windows with X support? Do I need to?
-* Q1.2.5:: What are Cygwin and MinGW, and do I need them to run XEmacs?
-* Q1.2.6:: What are the differences between the various MS Windows emacsen?
-* Q1.2.7:: How does the port cope with differences in the Windows user interface?
-* Q1.2.8:: Is there a port of XEmacs to the Macintosh?
-* Q1.2.9:: Is there a port of XEmacs to MS-DOS?
-* Q1.2.10:: Is there a port of XEmacs to OS/2?
-* Q1.2.11:: Is there a port of XEmacs to NextStep?
-* Q1.2.12:: Is there a port of XEmacs to VMS?
-
-1.3: Getting Started
-* Q1.3.1:: What is an `init.el' or `.emacs' and is there a sample one?
-* Q1.3.2:: Where do I put my `init.el' file?
-* Q1.3.3:: Can I use the same `init.el' with the other Emacs?
-* Q1.3.4:: Any good XEmacs tutorials around?
-* Q1.3.5:: May I see an example of a useful XEmacs Lisp function?
-* Q1.3.6:: And how do I bind it to a key?
-* Q1.3.7:: What's the difference between a macro and a function?
-* Q1.3.8:: What is `Custom'?
-
-1.4: Getting Help
-* Q1.4.1:: Where can I get help?
-* Q1.4.2:: Which mailing lists are there?
-* Q1.4.3:: Where are the mailing lists archived?
-* Q1.4.4:: How can I get two instances of info?
-* Q1.4.5:: How do I add new Info directories?
-
-1.5: Contributing to XEmacs
-* Q1.5.1:: How do I submit changes to the FAQ?
-* Q1.5.2:: How do I become a beta tester?
-* Q1.5.3:: How do I contribute to XEmacs itself?
-* Q1.5.4:: How do I get started developing XEmacs?
-* Q1.5.5:: What's the basic layout of the code?
-
-1.6: Politics (XEmacs vs. GNU Emacs)
-* Q1.6.1:: What is GNU Emacs?
-* Q1.6.2:: How does XEmacs differ from GNU Emacs?
-* Q1.6.3:: How much does XEmacs differ?
-* Q1.6.4:: Is XEmacs "GNU"?
-* Q1.6.5:: What is the correct way to refer to XEmacs and GNU Emacs?
-* Q1.6.6:: Why haven't XEmacs and GNU Emacs merged?
-
-1.7: External Packages
-* Q1.7.1:: What is the package system?
-* Q1.7.2:: Which external packages are there?
-* Q1.7.3:: Do I need to have the packages to run XEmacs?
-* Q1.7.4:: Is there a way to find which package has particular functionality?
-
-1.8: Internationalization
-* Q1.8.1:: What is the status of internationalization support aka MULE (including Asian language support)?
-* Q1.8.2:: How can I help with internationalization?
-* Q1.8.3:: How do I type non-ASCII characters?
-* Q1.8.4:: Can XEmacs messages come out in a different language?
-* Q1.8.5:: Please explain the various input methods in MULE/XEmacs
-* Q1.8.6:: How do I portably code for MULE/XEmacs?
-* Q1.8.7:: How about Cyrillic modes?
-* Q1.8.8:: Does XEmacs support Unicode?
-* Q1.8.9:: How does XEmacs display Unicode?
-
-2 Installation and Troubleshooting
-
-2.0: Installation (General)
-* Q2.0.1:: How do I build and install XEmacs?
-* Q2.0.2:: Where do I find external libraries?
-* Q2.0.3:: How do I specify the paths that XEmacs uses for finding files?
-* Q2.0.4:: Running XEmacs without installing
-* Q2.0.5:: XEmacs is too big
-
-2.1: Package Installation
-* Q2.1.1:: How do I install the packages?
-* Q2.1.2:: Can I install the packages individually?
-* Q2.1.3:: Can I install the packages automatically?
-* Q2.1.4:: Can I upgrade or remove packages?
-* Q2.1.5:: Which packages to install?
-* Q2.1.6:: Can you describe the package location process in more detail?
-* Q2.1.7:: EFS fails with "500 AUTH not understood"
-
-2.2: Unix/Mac OS X Installation (Also Relevant to Cygwin, MinGW)
-* Q2.2.1:: Libraries in non-standard locations
-* Q2.2.2:: Why can't I strip XEmacs?
-
-2.3: Windows Installation (Windows, Cygwin, MinGW)
-* Q2.3.1:: What exactly are all the different ways to build XEmacs under Windows?
-* Q2.3.2:: What compiler/libraries do I need to compile XEmacs?
-* Q2.3.3:: How do I compile the native port?
-* Q2.3.4:: What do I need for Cygwin?
-* Q2.3.5:: How do I compile under Cygwin?
-* Q2.3.6:: How do I compile using MinGW (aka `the -mno-cygwin flag to gcc')?
-* Q2.3.7:: How do I compile with X support?
-* Q2.3.8:: Cygwin XEmacs won't start -- cygXpm-noX4.dll was not found (NEW)
-
-2.4: General Troubleshooting
-* Q2.4.1:: How do I deal with bugs or with problems building, installing, or running?
-* Q2.4.2:: Help! XEmacs just crashed on me!
-* Q2.4.3:: XEmacs crashes and I compiled it myself.
-* Q2.4.4:: How to debug an XEmacs problem with a debugger
-* Q2.4.5:: I get a cryptic error message when trying to do something.
-* Q2.4.6:: XEmacs hangs when I try to do something.
-* Q2.4.7:: I get an error message when XEmacs is running in batch mode.
-* Q2.4.8:: The keyboard or mouse is not working properly, or I have some other event-related problem.
-* Q2.4.9:: C-g doesn't work for me. Is it broken?
-* Q2.4.10:: How do I debug process-related problems?
-* Q2.4.11:: XEmacs is outputting lots of X errors.
-* Q2.4.12:: After upgrading, XEmacs won't do `foo' any more!
-
-2.5: Startup-Related Problems
-* Q2.5.1:: XEmacs cannot connect to my X Terminal!
-* Q2.5.2:: Startup problems related to paths or package locations.
-* Q2.5.3:: XEmacs won't start without network.
-* Q2.5.4:: Startup warnings about deducing proper fonts?
-* Q2.5.5:: Warnings from incorrect key modifiers.
-* Q2.5.6:: XEmacs 21.1 on Windows used to spawn an ugly console window on every startup. Has that been fixed?
-
-3 Editing Functions
-
-3.0: The Keyboard
-* Q3.0.1:: How can I customize the keyboard?
-* Q3.0.2:: How can I bind complex functions (or macros) to keys?
-* Q3.0.3:: How do I bind C-. and C-; to scroll one line up and down?
-* Q3.0.4:: Globally binding Delete?
-* Q3.0.5:: How to map Help key alone on Sun type4 keyboard?
-* Q3.0.6:: How can you type in special characters in XEmacs?
-* Q3.0.7:: Can I turn on "sticky" modifier keys?
-* Q3.0.8:: How do I map the arrow keys?
-* Q3.0.9:: HP Alt key as Meta.
-* Q3.0.10:: Why does edt emulation not work?
-* Q3.0.11:: How can I emulate VI and use it as my default mode?
-
-3.1: The Mouse
-* Q3.1.1:: How can I turn off Mouse pasting?
-* Q3.1.2:: How do I set control/meta/etc modifiers on mouse buttons?
-* Q3.1.3:: Clicking the left button does not do anything in buffer list.
-* Q3.1.4:: How can I get a list of buffers when I hit mouse button 3?
-* Q3.1.5:: How can I set XEmacs up so that it pastes where the text cursor is?
-
-3.2: Buffers, Text Editing
-* Q3.2.1:: Can I have the end of the buffer delimited in some way?
-* Q3.2.2:: How do I insert today's date into a buffer?
-* Q3.2.3:: How do I get a single minibuffer frame?
-* Q3.2.4:: How can I enable auto-indent and/or Filladapt?
-* Q3.2.5:: How can I get XEmacs to come up in text/auto-fill mode by default?
-
-3.3: Text Selections
-* Q3.3.1:: How do I select a rectangular region?
-* Q3.3.2:: How can I turn off or change highlighted selections?
-* Q3.3.3:: How do I cause typing on an active region to remove it?
-* Q3.3.4:: Can I turn off the highlight during isearch?
-* Q3.3.5:: Why is killing so slow?
-* Q3.3.6:: Why does M-w take so long?
-
-3.4: Editing Source Code
-* Q3.4.1:: I do not like cc-mode. How do I use the old c-mode?
-* Q3.4.2:: How do you make XEmacs indent CL if-clauses correctly?
-
-4 Display Functions
-
-4.0: Textual Fonts and Colors
-* Q4.0.1:: How do I specify a font?
-* Q4.0.2:: How do I set the text, menu and modeline fonts?
-* Q4.0.3:: How can I set color options from `init.el'?
-* Q4.0.4:: How can I set the colors when highlighting a region?
-* Q4.0.5:: How can I limit color map usage?
-* Q4.0.6:: My tty supports color, but XEmacs doesn't use them.
-* Q4.0.7:: Can I have pixmap backgrounds in XEmacs?
-* Q4.0.8:: How do I display non-ASCII characters?
-* Q4.0.9:: Font selections in don't get saved after `Save Options'.
-
-4.1: Syntax Highlighting (Font Lock)
-* Q4.1.1:: How can I do source code highlighting using font-lock?
-* Q4.1.2:: How do I get `More' Syntax Highlighting on by default?
-
-4.2: The Modeline
-* Q4.2.1:: How can I make the modeline go away?
-* Q4.2.2:: How do you have XEmacs display the line number in the modeline?
-* Q4.2.3:: How do I get XEmacs to put the time of day on the modeline?
-* Q4.2.4:: How can I change the modeline color based on the mode used?
-
-4.3: The Cursor
-* Q4.3.1:: Is there a way to make the bar cursor thicker?
-* Q4.3.2:: Is there a way to get back the block cursor?
-* Q4.3.3:: Can I make the cursor blink?
-
-4.4: The Menubar
-* Q4.4.1:: How do I get rid of the menubar?
-* Q4.4.2:: How can I customize the menubar?
-* Q4.4.3:: How do I enable use of the keyboard (Alt) to access menu items?
-* Q4.4.4:: How do I control how many buffers are listed in the menu `Buffers List'?
-* Q4.4.5:: Resources like `Emacs*menubar*font' are not working?
-
-4.5: The Toolbar
-* Q4.5.1:: How do I get rid of the toolbar?
-* Q4.5.2:: How can I customize the toolbar?
-* Q4.5.3:: How can I bind a key to a function to toggle the toolbar?
-* Q4.5.4:: `Can't instantiate image error...' in toolbar
-
-4.6: Scrollbars and Scrolling
-* Q4.6.1:: How can I disable the scrollbar?
-* Q4.6.2:: How can I change the scrollbar width?
-* Q4.6.3:: How can I use resources to change scrollbar colors?
-* Q4.6.4:: Moving the scrollbar can move the point; can I disable this?
-* Q4.6.5:: Scrolling one line at a time.
-* Q4.6.6:: How can I turn off automatic horizontal scrolling in specific modes?
-* Q4.6.7:: I find auto-show-mode disconcerting. How do I turn it off?
-
-4.7: The Gutter Tabs, The Progress Bar, Widgets
-* Q4.7.1:: How can I disable the gutter tabs?
-* Q4.7.2:: How can I disable the progress bar?
-* Q4.7.3:: There are bugs in the gutter or widgets.
-* Q4.7.4:: How can I customize the gutter or gutter tabs?
-
-5 Interfacing with the Operating System and External Devices
-
-5.0: X Window System and Resources
-* Q5.0.1:: Where is a list of X resources?
-* Q5.0.2:: How can I detect a color display?
-* Q5.0.3:: How can I get the icon to just say `XEmacs'?
-* Q5.0.4:: How can I have the window title area display the full path?
-* Q5.0.5:: `xemacs -name junk' doesn't work?
-* Q5.0.6:: `-iconic' doesn't work.
-
-5.1: Microsoft Windows
-* Q5.1.1:: Does XEmacs rename all the `win32-*' symbols to `w32-*'?
-* Q5.1.2:: How do I get Windows Explorer to associate a file type with XEmacs?
-
-5.2: Printing
-* Q5.2.1:: What do I need to change to make printing work?
-* Q5.2.2:: How can I print WYSIWYG a font-locked buffer?
-* Q5.2.3:: Getting M-x lpr to work with postscript printer.
-* Q5.2.4:: Can you print under MS Windows?
-
-5.3: Sound
-* Q5.3.1:: How do I turn off the sound?
-* Q5.3.2:: How do I get funky sounds instead of a boring beep?
-* Q5.3.3:: What are NAS and ESD (EsounD)?
-* Q5.3.4:: Sunsite sounds don't play.
-
-5.4: Running an Interior Shell, Invoking Subprocesses
-* Q5.4.1:: What is an interior shell?
-* Q5.4.2:: How do I start up a second shell buffer?
-* Q5.4.3:: Telnet from shell filters too much
-* Q5.4.4:: Strange things are happening in Shell Mode.
-* Q5.4.5:: XEmacs complains "No such file or directory, diff"
-* Q5.4.6:: Cygwin error "fork_copy: linked dll/bss pass 0 failed"
-
-5.5: Multiple Device Support
-* Q5.5.1:: How do I open a frame on another screen of my multi-headed display?
-* Q5.5.2:: Can I really connect to a running XEmacs after calling up over a modem? How?
-* Q5.5.3:: How do I disable gnuserv from opening a new frame?
-* Q5.5.4:: How do I start gnuserv so that each subsequent XEmacs is a client?
-* Q5.5.5:: Is there a way to start a new XEmacs if there's no gnuserv running, and otherwise use gnuclient?
-
-6 Connecting to the Internet
-
-6.0: General Mail and News
-* Q6.0.1:: What are the various packages for reading mail?
-* Q6.0.2:: How can I send mail?
-* Q6.0.3:: How do I get my outgoing mail archived?
-* Q6.0.4:: How can I read and/or compose MIME messages?
-* Q6.0.5:: How do I customize the From line?
-* Q6.0.6:: How do I get my MUA to filter mail for me?
-* Q6.0.7:: Remote mail reading with an MUA.
-* Q6.0.8:: An MUA gets an error incorporating new mail.
-* Q6.0.9:: Why isn't `movemail' working?
-* Q6.0.10:: How do I make my MUA display graphical smilies?
-* Q6.0.11:: How can I get those oh-so-neat X-Face lines?
-
-6.1: Reading Mail with VM
-* Q6.1.1:: How do I set up VM to retrieve mail from a remote site using POP?
-* Q6.1.2:: How can I get VM to automatically check for new mail?
-* Q6.1.3:: I have various addresses at which I receive mail. How can I tell VM to ignore them when doing a "reply-all"?
-* Q6.1.4:: Is there a mailing list or FAQ for VM?
-* Q6.1.5:: How do I make VM stay in a single frame?
-* Q6.1.6:: Customization of VM not covered in the manual, or here.
-
-6.2: Reading Netnews and Mail with Gnus
-* Q6.2.1:: GNUS, (ding) Gnus, Gnus 5, September Gnus, Red Gnus, Quassia Gnus, argh!
-* Q6.2.2:: How do I make Gnus stay within a single frame?
-
-6.3: FTP Access
-* Q6.3.1:: Can I edit files on other hosts?
-* Q6.3.2:: What is EFS?
-
-6.4: Web Browsing with W3
-* Q6.4.1:: What is W3?
-* Q6.4.2:: How do I run W3 from behind a firewall?
-* Q6.4.3:: Is it true that W3 supports style sheets and tables?
-
-7 Advanced Customization Using XEmacs Lisp
-
-7.0: Emacs Lisp and `init.el'
-* Q7.0.1:: What version of Emacs am I running?
-* Q7.0.2:: How can I evaluate Emacs-Lisp expressions?
-* Q7.0.3:: `(setq tab-width 6)' behaves oddly.
-* Q7.0.4:: How can I add directories to the `load-path'?
-* Q7.0.5:: How to check if a lisp function is defined?
-* Q7.0.6:: Can I force the output of `(face-list)' to a buffer?
-
-7.1: Emacs Lisp Programming Techniques
-* Q7.1.1:: What is the difference in key sequences between XEmacs and GNU Emacs?
-* Q7.1.2:: Can I generate "fake" keyboard events?
-* Q7.1.3:: Could you explain `read-kbd-macro' in more detail?
-* Q7.1.4:: What is the performance hit of `let'?
-* Q7.1.5:: What is the recommended use of `setq'?
-* Q7.1.6:: What is the typical misuse of `setq'?
-* Q7.1.7:: I like the `do' form of cl, does it slow things down?
-* Q7.1.8:: I like recursion, does it slow things down?
-* Q7.1.9:: How do I put a glyph as annotation in a buffer?
-* Q7.1.10:: `map-extents' won't traverse all of my extents!
-* Q7.1.11:: My elisp program is horribly slow. Is there an easy way to find out where it spends time?
-
-7.2: Mathematics
-* Q7.2.1:: What are bignums, ratios, and bigfloats in Lisp?
-* Q7.2.2:: XEmacs segfaults when I use very big numbers!
-* Q7.2.3:: Bignums are really slow!
-* Q7.2.4:: Equal bignums don't compare as equal! What gives?
-
-8 Other External Packages
-
-8.0: TeX
-* Q8.0.1:: Is there something better than LaTeX mode?
-* Q8.0.2:: What is AUCTeX? Where do you get it?
-* Q8.0.3:: Problems installing AUCTeX.
-* Q8.0.4:: How do I turn off current chapter from AUCTeX modeline?
-
-8.1: Other Unbundled Packages
-* Q8.1.1:: Is there a reason for an Emacs package not to be included in XEmacs?
-* Q8.1.2:: Are there any Emacs Lisp Spreadsheets?
-* Q8.1.3:: Is there a MatLab mode?
-
-8.2: Environments Built Around XEmacs
-* Q8.2.1:: What are SPARCworks, EOS, and WorkShop?
-* Q8.2.2:: How do I start the Sun Workshop support in XEmacs 21?
-* Q8.2.3:: What is/was Energize?
-* Q8.2.4:: What is Infodock?
-
-9 What the Future Holds
-
-9.0: Changes
-* Q9.0.1:: What new features will be in XEmacs soon?
-* Q9.0.2:: What's new in XEmacs 21.4?
-* Q9.0.3:: What's new in XEmacs 21.1?
-* Q9.0.4:: What's new in XEmacs 20.4?
-* Q9.0.5:: What's new in XEmacs 20.3?
-* Q9.0.6:: What's new in XEmacs 20.2?
-
-10 New information about old XEmacsen
-
-10.0: XEmacs 21.1
-* Q10.0.1:: Gnus 5.10 won't display smileys in XEmacs 21.1.
-* Q10.0.2:: XEmacs won't start on Windows in XEmacs 21.1.
-
-\1f
-File: xemacs-faq.info, Node: Introduction, Next: Installation, Prev: Top, Up: Top
-
-1 Introduction, Policy, Credits
-*******************************
-
-Learning XEmacs is a lifelong activity. Even people who have used Emacs
-for years keep discovering new features. Therefore this document cannot
-be complete. Instead it is aimed at the person who is either
-considering XEmacs for their own use, or has just obtained it and is
-wondering what to do next. It is also useful as a reference to
-available resources.
-
- The previous maintainer of the FAQ was Anthony Rossini
-<rossini@biostat.washington.edu>, who started it, after getting tired
-of hearing JWZ complain about repeatedly having to answer questions.
-Ben Wing <ben@xemacs.org> then took over and did a massive update
-reorganizing the whole thing. At this point Anthony took back over,
-but then had to give it up again. Some of the other contributors to
-this FAQ are listed later in this document.
-
- The previous version was converted to hypertext format, and edited by
-Steven L. Baur <steve@xemacs.org>. It was converted back to texinfo by
-Hrvoje Niksic <hniksic@xemacs.org>. The FAQ was then maintained by
-Andreas Kaempf <andreas@sccon.com>, who passed it on to ChristianNyb/o,
-and then to Sandra Wambold <wambold@xemacs.org>.
-
- The current version of the FAQ has been heavily redone by Ben Wing
-<ben@xemacs.org>.
-
- If you notice any errors or items which should be added or amended to
-this FAQ please send email to <xemacs-beta@xemacs.org>. Include
-`XEmacs FAQ' on the Subject: line.
-
-* Menu:
-
-1.0: What is XEmacs?
-* Q1.0.1:: What is XEmacs?
-* Q1.0.2:: What is the current version of XEmacs?
-* Q1.0.3:: How do you pronounce XEmacs?
-* Q1.0.4:: What does XEmacs look like?
-* Q1.0.5:: Who wrote XEmacs?
-* Q1.0.6:: Who wrote the FAQ?
-
-1.1: Getting XEmacs
-* Q1.1.1:: Where can I find XEmacs?
-* Q1.1.2:: Are binaries available?
-* Q1.1.3:: How do I get the bleeding-edge sources?
-* Q1.1.4:: Where can I obtain a printed copy of the XEmacs User's Manual?
-
-1.2: Versions for Different Operating Systems
-* Q1.2.1:: Do I need X11 to run XEmacs?
-* Q1.2.2:: What versions of Unix does XEmacs run on?
-* Q1.2.3:: Is there a port of XEmacs to Microsoft Windows?
-* Q1.2.4:: Can I build XEmacs on MS Windows with X support? Do I need to?
-* Q1.2.5:: What are Cygwin and MinGW, and do I need them to run XEmacs?
-* Q1.2.6:: What are the differences between the various MS Windows emacsen?
-* Q1.2.7:: How does the port cope with differences in the Windows user interface?
-* Q1.2.8:: Is there a port of XEmacs to the Macintosh?
-* Q1.2.9:: Is there a port of XEmacs to MS-DOS?
-* Q1.2.10:: Is there a port of XEmacs to OS/2?
-* Q1.2.11:: Is there a port of XEmacs to NextStep?
-* Q1.2.12:: Is there a port of XEmacs to VMS?
-
-1.3: Getting Started
-* Q1.3.1:: What is an `init.el' or `.emacs' and is there a sample one?
-* Q1.3.2:: Where do I put my `init.el' file?
-* Q1.3.3:: Can I use the same `init.el' with the other Emacs?
-* Q1.3.4:: Any good XEmacs tutorials around?
-* Q1.3.5:: May I see an example of a useful XEmacs Lisp function?
-* Q1.3.6:: And how do I bind it to a key?
-* Q1.3.7:: What's the difference between a macro and a function?
-* Q1.3.8:: What is `Custom'?
-
-1.4: Getting Help
-* Q1.4.1:: Where can I get help?
-* Q1.4.2:: Which mailing lists are there?
-* Q1.4.3:: Where are the mailing lists archived?
-* Q1.4.4:: How can I get two instances of info?
-* Q1.4.5:: How do I add new Info directories?
-
-1.5: Contributing to XEmacs
-* Q1.5.1:: How do I submit changes to the FAQ?
-* Q1.5.2:: How do I become a beta tester?
-* Q1.5.3:: How do I contribute to XEmacs itself?
-* Q1.5.4:: How do I get started developing XEmacs?
-* Q1.5.5:: What's the basic layout of the code?
-
-1.6: Politics (XEmacs vs. GNU Emacs)
-* Q1.6.1:: What is GNU Emacs?
-* Q1.6.2:: How does XEmacs differ from GNU Emacs?
-* Q1.6.3:: How much does XEmacs differ?
-* Q1.6.4:: Is XEmacs "GNU"?
-* Q1.6.5:: What is the correct way to refer to XEmacs and GNU Emacs?
-* Q1.6.6:: Why haven't XEmacs and GNU Emacs merged?
-
-1.7: External Packages
-* Q1.7.1:: What is the package system?
-* Q1.7.2:: Which external packages are there?
-* Q1.7.3:: Do I need to have the packages to run XEmacs?
-* Q1.7.4:: Is there a way to find which package has particular functionality?
-
-1.8: Internationalization
-* Q1.8.1:: What is the status of internationalization support aka MULE (including Asian language support)?
-* Q1.8.2:: How can I help with internationalization?
-* Q1.8.3:: How do I type non-ASCII characters?
-* Q1.8.4:: Can XEmacs messages come out in a different language?
-* Q1.8.5:: Please explain the various input methods in MULE/XEmacs
-* Q1.8.6:: How do I portably code for MULE/XEmacs?
-* Q1.8.7:: How about Cyrillic modes?
-* Q1.8.8:: Does XEmacs support Unicode?
-* Q1.8.9:: How does XEmacs display Unicode?
-
-1.0: What is XEmacs?
-====================
-
-\1f
-File: xemacs-faq.info, Node: Q1.0.1, Next: Q1.0.2, Prev: Introduction, Up: Introduction
-
-Q1.0.1: What is XEmacs?
------------------------
-
-XEmacs is a powerful, highly customizable open source text editor and
-application development system, with full GUI support. It is protected
-under the GNU Public License and related to other versions of Emacs, in
-particular GNU Emacs. Its emphasis is on modern graphical user
-interface support and an open software development model, similar to
-Linux. XEmacs has an active development community numbering in the
-hundreds (and thousands of active beta testers on top of this), and
-runs on all versions of MS Windows, on Mac OS X, on Linux, and on
-nearly every other version of Unix in existence. Support for XEmacs
-has been supplied by Sun Microsystems, University of Illinois, Lucid,
-ETL/Electrotechnical Laboratory, Amdahl Corporation, BeOpen, and
-others, as well as the unpaid time of a great number of individual
-developers.
-
-\1f
-File: xemacs-faq.info, Node: Q1.0.2, Next: Q1.0.3, Prev: Q1.0.1, Up: Introduction
-
-Q1.0.2: What is the current version of XEmacs?
-----------------------------------------------
-
-XEmacs versions 21.4.* are releases made from the current stable
-sources. XEmacs versions 21.5.* (which will be released as 22.0) are
-releases made from the development sources. Check at
-`http://www.xemacs.org' for the current minor version. XEmacs versions
-21.1.* were the previous stable releases, now retired.
-
- XEmacs 20.4, released in February 1998, was the last release of v20.
-
- XEmacs 19.16, released in November, 1997. was the last release of
-v19, and was also the last version without international language
-support.
-
-\1f
-File: xemacs-faq.info, Node: Q1.0.3, Next: Q1.0.4, Prev: Q1.0.2, Up: Introduction
-
-Q1.0.3: How do you pronounce XEmacs?
-------------------------------------
-
-The most common pronounciation is `Eks eemax'.
-
-\1f
-File: xemacs-faq.info, Node: Q1.0.4, Next: Q1.0.5, Prev: Q1.0.3, Up: Introduction
-
-Q1.0.4: What does XEmacs look like?
------------------------------------
-
-Screen snapshots are available at
-`http://www.xemacs.org/About/Screenshots/index.html' as part of the
-XEmacs website.
-
-\1f
-File: xemacs-faq.info, Node: Q1.0.5, Next: Q1.0.6, Prev: Q1.0.4, Up: Introduction
-
-Q1.0.5: Who wrote XEmacs?
--------------------------
-
-XEmacs is the result of the time and effort of many people, and the
-active developers have changed over time. There are two major
-components of the XEmacs effort - writing the code itself and providing
-all the support work (testing the code, releasing beta and final
-versions, handling patches, reading bug reports, maintaining the web
-site, managing the mailing lists, etc. etc.). Neither component would
-work without the other.
-
-CODING
-------
-
-The primary code contributor over the years has been Ben Wing (active
-since late 1992). Between 1991 and 1995, large amounts of coding was
-contributed by Jamie Zawinski and Chuck Thompson. Many other people
-have authored major subsystems or otherwise contributed large amounts of
-code, including Andy Piper, Hrvoje Niksic, Jerry James, Jonathan Harris,
-Kyle Jones, Martin Buchholz, Michael Sperber, Olivier Galibert, Richard
-Mlynarik, Stig, William Perry and plenty of others.
-
- Primary XEmacs-specific subsystems and their authors:
-
-Objects
- - Conversion from 26-bit to 28-bit pointers and integers,
- lrecords, lcrecords: Richard Mlynarik, 1994
-
- - Conversion to 32-bit pointers and 31-bit integers: Kyle
- Jones, Martin Buchholz
-
- - Portable dumper, object descriptions: Olivier Galibert
-
- - KKCC (new garbage collector), ephemerons, weak boxes: Michael
- Sperber and students
-
- - Random object work (object equal and hash methods, weak
- lists, lcrecord lists, bit vectors, dynarr, blocktype,
- opaque, string resizing): Ben Wing
-
- - Profiling: Ben Wing
-
- - Some byte-compilation and hash-table improvements: Martin
- Buchholz
-
- - Bignum: Jerry James
-
-Internationalization/Mule
- - mostly Ben Wing; many ideas for future work, Stephen Turnbull
-
-I/O
- - Basic event/event-stream implementation: Jamie Zawinski
-
- - Most event work since 1994: Ben Wing
-
- - Asynchronous stuff (async timeouts, signals, quit-checking):
- Ben Wing
-
- - Process method abstraction, Windows process work: Kirill
- Katsnelson
-
- - Misc-user events, async timeouts, most quit-checking and
- signal code, most other work since 1994: Ben Wing
-
- - Lstreams: Ben Wing
-
-Display
- - Redisplay mechanism: implementation, Chuck Thompson;
- additional work, lots of people
-
- - Glyphs: mostly Ben Wing
-
- - Specifiers: Ben Wing
-
- - Extents: initial implementation, someone at Lucid; rewrite,
- 1994, Ben Wing
-
- - Widgets: Andy Piper
-
- - JPEG/PNG/TIFF image converters: Ben Wing, William Perry,
- Jareth Hein, others (see comment in `glyphs-eimage.c')
-
- - Menus: Jamie Zawinski, someone at Lucid (Lucid menus)
-
- - Scrollbars: Chuck Thompson, ??? (Lucid scrollbar)
-
- - Multi-device/device-independence work (console/device/etc
- methods): Ben Wing, prototype by chuck thompson
-
- - Faces: first implementation, Jamie Zawinski; second, chuck;
- third, Ben Wing
-
- - Fonts/colors: first implementation, Jamie Zawinski; further
- work, Ben Wing
-
- - Toolbars: implementation, chuck, much interface work, Ben Wing
-
- - Gutters, tabs: andy piper
-
-Device subsystems
- - X Windows: Jamie Zawinksi, Ben Wing, others
-
- - GTK: William Perry, Malcolm Purvis
-
- - MS Windows: initial implementation, Jonathan Harris; some
- more work, Andy Piper, Ben Wing
-
- - TTY: Chuck Thompson, Ben Wing
-
- - Cygwin: Andy Piper
-
-Misc
- - Configure: initial porting from fsf, Chuck Thompson;
- conversion to autoconf 2, much rewriting, Martin Buchholz
-
- - Most initialization-related code: Ben Wing
-
- - Internals manual, much of Lisp manual: Ben Wing
-
- - FSF synching: initial sync with FSF 19, Richard Mlynarik,
- further work, Ben Wing
-
-SUPPORT
--------
-
-Currently, support duties are handled by many different people.
-
- Release managers have been
-
- - Stephen Turnbull (April 2001 - January 2003, March 2004 - present,
- 21.2.47 - 21.4.12, 21.5.2 - 21.5.7, 21.5.17 - present)
-
- - Vin Shelton (Mar 1997 - Jan 2001, May 2003 - present, 19.16,
- 21.1.3 - 21.1.14, 21.4.13 - present)
-
- - Steve Youngs (July 2002 - September 2003, 21.5.8 - 21.5.16)
-
- - Martin Buchholz (December 1998, November 1999 - May 2001, 21.2.7 -
- 21.2.8, 21.2.21 - 21.2.46, 21.5.0 - 21.5.1)
-
- - Steve Baur (early 1997 - December 1998, February 1999 - November
- 1999, 19.15 - 21.2.5, 21.2.9 - 21.2.20)
-
- - Andy Piper (December 1998, 21.2.6)
-
- - Chuck Thompson (June 1994 - September 1996, 19.11 - 19.14)
-
- - Jamie Zawinski (April 1991 - June 1994, 19.0 - 19.10)
-
- The recent overlapping dates are intentional, since two or three
-trees are maintained simultaneously at any point.
-
- Other major support work:
-
- - Adrian Aichner wrote and maintains the web site.
-
- - Stephen Turnbull has produced many of the beta and semi-stable
- releases and has attempted to be the "face" of XEmacs on the
- newsgroups and mailing lists.
-
- - Steve Youngs currently produces the beta releases (???).
-
- - Steve Youngs, Ville Skytta, and now Norbert Koch have taken turns
- maintaining the packages.
-
- - Vin Shelton maintains the stable releases.
-
- - Testing - #### Norbert, Adrian, ???
-
- Portraits and email of some of the major developers:
-
- * Andy Piper <andy@xemacs.org>
-
- * Ben Wing <ben@xemacs.org>
-
- * Chuck Thompson <cthomp@xemacs.org>
-
- * Hrvoje Niksic <hniksic@xemacs.org>
-
- * Jamie Zawinski <jwz@jwz.org>
-
- * Martin Buchholz <martin@xemacs.org>
-
- * Richard Mlynarik <mly@adoc.xerox.com>
-
- * Stephen Turnbull <stephen@xemacs.org>
-
- * Steve Baur <steve@xemacs.org>
-
- Many other people have contributed to XEmacs; this is partially
-enumerated in the `About XEmacs' option in the Help menu.
-
-\1f
-File: xemacs-faq.info, Node: Q1.0.6, Next: Q1.1.1, Prev: Q1.0.5, Up: Introduction
-
-Q1.0.6: Who wrote the FAQ?
---------------------------
-
-The current version of this FAQ was created by Ben Wing
-<ben@xemacs.org>.
-
- Previous contributors to the FAQ include
-
- * SL Baur <steve@xemacs.org>
-
- * Hrvoje Niksic <hniksic@xemacs.org>
-
- * Curtis.N.Bingham <binge@aloft.att.com>
-
- * Georges Brun-Cottan <bruncott@dormeur.inria.fr>
-
- * Richard Caley <rjc@cogsci.ed.ac.uk>
-
- * Richard Cognot <cognot@ensg.u-nancy.fr>
-
- * Mark Daku <daku@nortel.ca>
-
- * William G. Dubuque <wgd@martigny.ai.mit.edu>
-
- * Eric Eide <eeide@cs.utah.edu>
-
- * Alain Fauconnet <af@biomath.jussieu.fr>
-
- * Chris Flatters <cflatter@nrao.edu>
-
- * Evelyn Ginsparg <ginsparg@adra.com>
-
- * Marty Hall <hall@aplcenmp.apl.jhu.edu>
-
- * Darrell Kindred <dkindred@cmu.edu>
-
- * David Moore <dmoore@ucsd.edu>
-
- * Arup Mukherjee <arup+@cmu.edu>
-
- * Juergen Nickelsen <nickel@prz.tu-berlin.de>
-
- * Kevin R. Powell <powell@csl.ncsa.uiuc.edu>
-
- * Justin Sheehy <dworkin@ccs.neu.edu>
-
- * Stig <stig@hackvan.com>
-
- * Aki Vehtari <Aki.Vehtari@hut.fi>
-
-1.1: Getting XEmacs
-===================
-
-\1f
-File: xemacs-faq.info, Node: Q1.1.1, Next: Q1.1.2, Prev: Q1.0.6, Up: Introduction
-
-Q1.1.1: Where can I find XEmacs?
---------------------------------
-
-To download XEmacs, visit the XEmacs WWW page at
-`http://www.xemacs.org/Download/'. The most up-to-date list of
-distribution sites can always be found there. Try to pick a site that
-is networkologically close to you. If you know of other mirrors of the
-XEmacs archives, please send e-mail to `mailto:webmaster@xemacs.org'
-and we will list them here as well.
-
- The canonical distribution point is ftp.xemacs.org, available either
-through HTTP (`http://ftp.xemacs.org/') or anonymous FTP
-(`ftp://ftp.xemacs.org/pub/xemacs/').
-
-\1f
-File: xemacs-faq.info, Node: Q1.1.2, Next: Q1.1.3, Prev: Q1.1.1, Up: Introduction
-
-Q1.1.2: Are binaries available?
--------------------------------
-
-MS Windows binaries are available at
-`http://www.xemacs.org/Download/win32/' for the native versions of 21.4
-and 21.1. Cygwin binaries are now available as part of the standard
-Cygwin installation process. XEmacs also comes pre-built as part of
-many Linux distributions, such as Red Hat and SuSE.
-
- Otherwise, you will need to build XEmacs yourself or get your system
-administrator to do it. Generally, this is not a difficult process
-under Unix and Mac OS X, as XEmacs has been tested under all of the
-common Unix versions and under Mac OS X and comes with an extensive
-configure script that is able to automatically detect most aspects of
-the configuration of your particular system.
-
-\1f
-File: xemacs-faq.info, Node: Q1.1.3, Next: Q1.1.4, Prev: Q1.1.2, Up: Introduction
-
-Q1.1.3: How do I get the bleeding-edge sources?
------------------------------------------------
-
-If you are interested in developing XEmacs, or getting the absolutely
-most recent, up-to-the-moment, bleeding-edge source code, you can
-directly access the master CVS source tree (read-only, of course, until
-you ask for and are granted permission to directly modify portions of
-the source tree) at cvs.xemacs.org. Directions on how to access the
-source tree are located at
-`http://www.xemacs.org/Develop/cvsaccess.html'.
-
- Nightly CVS snapshots are available at
-`http://www.dk.xemacs.org/Download/CVS-snapshots/'.
-
-\1f
-File: xemacs-faq.info, Node: Q1.1.4, Next: Q1.2.1, Prev: Q1.1.3, Up: Introduction
-
-Q1.1.4: Where can I obtain a printed copy of the XEmacs User's Manual?
-----------------------------------------------------------------------
-
-Pre-printed manuals are not available. If you are familiar with TeX,
-you can generate your own manual from the XEmacs sources.
-
- HTML and Postscript versions of XEmacs manuals are available from the
-XEmacs web site at `http://www.xemacs.org/Documentation/index.html'.
-
-1.2: Versions for Different Operating Systems
-=============================================
-
-\1f
-File: xemacs-faq.info, Node: Q1.2.1, Next: Q1.2.2, Prev: Q1.1.4, Up: Introduction
-
-Q1.2.1: Do I need X11 to run XEmacs?
-------------------------------------
-
-No. The name "XEmacs" is unfortunate in the sense that it is *not* an
-X Window System-only version of Emacs. XEmacs has full color support
-on a color-capable character terminal.
-
-\1f
-File: xemacs-faq.info, Node: Q1.2.2, Next: Q1.2.3, Prev: Q1.2.1, Up: Introduction
-
-Q1.2.2: What versions of Unix does XEmacs run on?
--------------------------------------------------
-
-XEmacs is regularly tested on Linux, Solaris, SunOS, HP/UX, FreeBSD,
-OpenBSD, BSD/OS aka BSDI, Tru64 aka DEC/OSF, SCO5, and probably others.
-It should work on all versions of Unix created in the last 10 years or
-so, perhaps with a bit of work on more obscure platforms to correct
-bit-rot. It uses a sophisticated configuration system to auto-detect
-zillions of features that are implemented differently in different
-versions of Unix, so it will probably work on your vendor's version,
-possibly with a bit of tweaking, even if we've never heard of it.
-
- For problems with particular machines and versions of Unix, see the
-`PROBLEMS' file.
-
- Much effort has gone into making XEmacs work on as many different
-machines, configurations, and compilers as possible.
-
- Much effort has gone into making XEmacs 64-bit clean.
-
- Much effort has gone into removing system-specific code, and
-replacing such code with autodetection at configure time.
-
- The XEmacs core should build "out of the box" on most Unix-like
-systems.
-
- XEmacs 21.2 was tested and `make check' succeeded on these Unix
-configurations as of 2001-02-10:
-
- alphaev56-dec-osf4.0e (both Compaq C and gcc)
- i386-unknown-freebsd4.2
- i386-unknown-netbsdelf1.5
- i586-sco-sysv5uw7.0.1 (both SCO's cc and gcc)
- i686-pc-linux-gnu
- hppa2.0-hp-hpux10.20 (both HP's ANSI cc and gcc)
- mips-sgi-irix6.5 (both MIPSpro cc and gcc)
- rs6000-ibm-aix4.3.0.0 (both IBM's xlc and gcc)
- sparc-sun-solaris2.6 (both Sun's Forte C and gcc)
- sparc-sun-solaris2.7 (both Sun's Forte C and gcc)
- sparc-sun-sunos4.1.4 (gcc)
-
- Some systems have a dual mode 32-bit/64-bit compiler. On most of
-these, XEmacs requires the `--pdump' (in XEmacs 21.5, `--enable-pdump')
-configure option to build correctly with the 64-bit version of the
-compiler.
-
- mips-sgi-irix6.5, CC="gcc -mabi=64"
- mips-sgi-irix6.5, CC="cc -64"
- rs6000-ibm-aix4.3.0.0, CC="cc -q64"
-
- On most of these systems, XEmacs also builds with a C++ compiler,
-but not "out of the box". This feature is only for use by the
-maintainers.
-
- XEmacs 21.2 is known _not_ to work on any machines with m680x0
-processors. Sorry, all you sun3 and Unix PC nostalgia buffs out there.
-
- VMS has never been supported by XEmacs. In fact, all the old VMS
-code inherited from Emacs has been removed. Sorry, all you VMS fans
-out there.
-
-\1f
-File: xemacs-faq.info, Node: Q1.2.3, Next: Q1.2.4, Prev: Q1.2.2, Up: Introduction
-
-Q1.2.3: Is there a port of XEmacs to Microsoft Windows?
--------------------------------------------------------
-
-Yes. Beginning with release 21.0, XEmacs has worked under MS Windows
-and is fully-featured and actively developed. A group of dedicated
-developers actively maintains and improves the Windows-specific
-portions of the code. Some of the core developers, in fact, use
-Windows as their only development environment, and some features, such
-as printing, actually work better on Windows than native Unix and Mac
-OS X. The mailing list at <xemacs-winnt@xemacs.org> is dedicated to
-that effort (please use the -request address to subscribe). (Despite
-its name, XEmacs actually works on all versions of Windows.)
-
- The list name is misleading, as XEmacs supports and has been
-compiled on Windows 95, Windows 98, Windows NT, Windows 2000, Windows
-ME, Windows XP, and all newer versions of Windows. The MS
-Windows-specific code is based on Microsoft Win32 API, and will not
-work on MS Windows 3.x or on MS-DOS.
-
- XEmacs also supports the Cygwin and MinGW development and runtime
-environments, where it also uses native Windows code for graphical
-features. In addition, under Cygwin it is possible to compile XEmacs
-to use an X server (and XFree86 is available as part of the standard
-Cygwin installation).
-
-\1f
-File: xemacs-faq.info, Node: Q1.2.4, Next: Q1.2.5, Prev: Q1.2.3, Up: Introduction
-
-Q1.2.4: Can I build XEmacs on MS Windows with X support? Do I need to?
------------------------------------------------------------------------
-
-Yes, you can, but no you do not need to. In fact, we recommend that you
-use a native-GUI version unless you have a specific need for an X
-version.
-
-\1f
-File: xemacs-faq.info, Node: Q1.2.5, Next: Q1.2.6, Prev: Q1.2.4, Up: Introduction
-
-Q1.2.5: What are Cygwin and MinGW, and do I need them to run XEmacs?
---------------------------------------------------------------------
-
-To answer the second part of the question: No, you, you don't need
-Cygwin or MinGW to build or to run XEmacs. But if you have them and
-want to use them, XEmacs supports these environments.
-
- (One important reason to support Cygwin is that it lets the MS
-Windows developers test out their code in a Unix environment without
-actually having to have a Unix machine around. For this reason alone,
-Cygwin support is likely to remain supported for a long time in XEmacs.
-Same goes for the X support under Cygwin, for the same reasons. MinGW
-support, on the other hand, depends on volunteers to keep it up to date;
-but this is generally not hard.)
-
- Cygwin is a set of tools providing Unix-like API on top of Win32.
-It makes it easy to port large Unix programs without significant
-changes to their source code. It is a development environment as well
-as a runtime environment.
-
- When built with Cygwin, XEmacs supports all display types - TTY, X &
-Win32 GUI, and can be built with support for all three simultaneously.
-If you build with Win32 GUI support then the Cygwin version uses the
-majority of the Windows-specific code, which is mostly related to
-display. If you want to build with X support you need X libraries (and
-an X server to display XEmacs on); see *Note Q2.3.7::. TTY and Win32
-GUI require no additional libraries beyond what comes standard with
-Cygwin.
-
- The advantages of the Cygwin version are that it integrates well with
-the Cygwin environment for existing Cygwin users; uses configure so
-building with different features is very easy; and actively supports X &
-TTY. Furthermore, the entire Cygwin environment and compiler are free,
-whereas Visual C++ costs money.
-
- The disadvantage is that it requires the whole Cygwin environment,
-whereas the native port requires only a suitable MS Windows compiler.
-Also, it follows the Unix filesystem and process model very closely
-(some will undoubtedly view this as an advantage).
-
- See `http://www.cygwin.com/' for more information on Cygwin.
-
- MinGW is a collection of header files and import libraries that allow
-one to use GCC under the Cygwin environment to compile and produce
-exactly the same native Win32 programs that you can using Visual C++.
-Programs compiled with MinGW make use of the standard Microsoft runtime
-library `MSVCRT.DLL', present on all Windows systems, and look, feel,
-and act like a standard Visual-C-produced application. (The only
-difference is the compiler.) This means that, unlike a
-standardly-compiled Cygwin application, no extra runtime support (e.g.
-Cygwin's `cygwin1.dll') is required. This, along with the fact that
-GCC is free (and works in a nice Unix-y way in a nice Unix-y
-environment, for those die-hard Unix hackers out there), is the main
-advantage of MinGW. It is also potentially faster than Cygwin because
-it has less overhead when calling Windows, but you lose the POSIX
-emulation layer, which makes Unix programs harder to port. (But this is
-irrelevant for XEmacs since it's already ported to Win32.)
-
- See `http://www.mingw.org/' for more information on MinGW.
-
-\1f
-File: xemacs-faq.info, Node: Q1.2.6, Next: Q1.2.7, Prev: Q1.2.5, Up: Introduction
-
-Q1.2.6: What are the differences between the various MS Windows emacsen?
-------------------------------------------------------------------------
-
-XEmacs, Win-Emacs, DOS Emacs, NT Emacs, this is all very confusing.
-Could you briefly explain the differences between them?
-
- Here is a recount of various Emacs versions running on MS Windows:
-
- * XEmacs
-
- - Beginning with XEmacs 19.12, XEmacs' architecture was
- redesigned in such a way to allow clean support of multiple
- window systems. At this time the TTY support was added,
- making X and TTY the first two "window systems" supported by
- XEmacs. The 19.12 design is the basis for the current native
- MS Windows code.
-
- - Some time during 1997, David Hobley (soon joined by Marc
- Paquette) imported some of the NT-specific portions of GNU
- Emacs, making XEmacs with X support compile under Windows NT,
- and creating the "X" port.
-
- - Several months later, Jonathan Harris sent out initial
- patches to use the Win32 API, thus creating the native port.
- Since then, various people have contributed, including Kirill
- M. Katsnelson (contributed support for menubars, subprocesses
- and network, as well as loads of other code), Andy Piper
- (ported XEmacs to Cygwin environment, contributed Windows
- unexec, Windows-specific glyphs and toolbars code, and more),
- Ben Wing (loads of improvements; primary MS Windows developer
- since 2000), Jeff Sparkes (contributed scrollbars support)
- and many others.
-
- * NT Emacs
-
- - NT Emacs was an early version of GNU Emacs 19 modified to
- compile and run under MS Windows 95 and NT using the native
- Win32 API. It was written by Geoff Voelker, and has long
- since been incorporated into the mainline GNU Emacs
- distribution.
-
- * Win-Emacs
-
- - Win-Emacs was a port of Lucid Emacs 19.6 to MS Windows using X
- compatibility libraries. Win-Emacs was written by Ben Wing.
- The MS Windows code never made it back to Lucid Emacs, and
- its creator (Pearl Software) has long since gone out of
- business.
-
- * GNU Emacs for DOS
-
- - GNU Emacs features support for MS-DOS and DJGPP (D.J.
- Delorie's DOS port of GCC). Such an Emacs is heavily
- underfeatured, because it does not support long file names,
- lacks proper subprocesses support, and is far too big
- compared with typical DOS editors.
-
- * GNU Emacs compiled with Win32
-
- - Starting with GNU Emacs 19.30, it has been possible to
- compile GNU Emacs under MS Windows using the DJGPP compiler
- and X libraries. The result is very similar to GNU Emacs
- compiled under MS DOS, only it works somewhat better because
- it runs in 32-bit mode, makes use of all the system memory,
- supports long file names, etc.
-
-
-\1f
-File: xemacs-faq.info, Node: Q1.2.7, Next: Q1.2.8, Prev: Q1.2.6, Up: Introduction
-
-Q1.2.7: How does the port cope with differences in the Windows user interface?
-------------------------------------------------------------------------------
-
-The XEmacs (and Emacs in general) user interface is pretty different
-from what is expected of a typical MS Windows program. How does the MS
-Windows port cope with it?
-
- As a general rule, we follow native MS Windows conventions as much as
-possible. 21.4 is a fairly complete Windows application, supporting
-native printing, system file dialog boxes, tool tips, etc. In cases
-where there's a clear UI conflict, we currently use normal Unix XEmacs
-behavior by default, but make sure the MS Windows "look and feel" (mark
-via shift-arrow, self-inserting deletes region, Alt selects menu items,
-etc.) is easily configurable (respectively: using the variable
-`shifted-motion-keys-select-region' in 21.4 and above [it's in fact the
-default in these versions], or the `pc-select' package; using the
-`pending-del' package; and setting the variable
-`menu-accelerator-enabled' to `menu-force' in 21.4 and above). In
-fact, if you use the sample `init.el' file as your init file, you will
-get all these behaviors automatically turned on.
-
- In future versions, some of these features might be turned on by
-default in the MS Windows environment.
-
-\1f
-File: xemacs-faq.info, Node: Q1.2.8, Next: Q1.2.9, Prev: Q1.2.7, Up: Introduction
-
-Q1.2.8: Is there a port of XEmacs to the Macintosh?
----------------------------------------------------
-
-Yes.
-
- XEmacs 21.5 (perhaps 21.4 also?) works on MacOS X, although it
-certainly will not feel very much like a Mac application as it has no
-Mac-specific code in it.
-
- There is also a port of XEmacs 19.14 that works on all recent
-versions of MacOS, from 8.1 through MacOS X, by Pitts Jarvis
-<pjarvis@ispchannel.com> (recently deceased). It runs in an equivalent
-of TTY mode only (one single Macintosh window, 25 colors), but has a
-large number of Mac-specific additions. It's available at
-`http://homepage.mac.com/pjarvis/xemacs.html'.
-
-\1f
-File: xemacs-faq.info, Node: Q1.2.9, Next: Q1.2.10, Prev: Q1.2.8, Up: Introduction
-
-Q1.2.9: Is there a port of XEmacs to MS-DOS?
---------------------------------------------
-
-No. We have never supported running on MS-DOS or Windows 3.1, and in
-fact have long since deleted all MS-DOS-related code. We're not
-particularly interested in patches for these platforms, as they would
-introduce huge amounts of code clutter due to the woefully
-underfeatured nature of these systems. (See GNU Emacs for a port to
-MS-DOS.)
-
-\1f
-File: xemacs-faq.info, Node: Q1.2.10, Next: Q1.2.11, Prev: Q1.2.9, Up: Introduction
-
-Q1.2.10: Is there a port of XEmacs to OS/2?
--------------------------------------------
-
-No, but Alexander Nikolaev <avn_1251@mail.ru> was at one point working
-on it.
-
-\1f
-File: xemacs-faq.info, Node: Q1.2.11, Next: Q1.2.12, Prev: Q1.2.10, Up: Introduction
-
-Q1.2.11: Is there a port of XEmacs to NextStep?
------------------------------------------------
-
-Carl Edman, apparently no longer at <cedman@princeton.edu>, did the
-port of GNU Emacs to NeXTstep and expressed interest in doing the
-XEmacs port, but never went any farther.
-
-\1f
-File: xemacs-faq.info, Node: Q1.2.12, Next: Q1.3.1, Prev: Q1.2.11, Up: Introduction
-
-Q1.2.12: Is there a port of XEmacs to VMS?
-------------------------------------------
-
-VMS has never been supported by XEmacs. In fact, all the old VMS code
-inherited from GNU Emacs has been removed. Sorry, all you VMS fans out
-there.
-
-1.3: Getting Started
-====================
-
-\1f
-File: xemacs-faq.info, Node: Q1.3.1, Next: Q1.3.2, Prev: Q1.2.12, Up: Introduction
-
-Q1.3.1: What is an `init.el' or `.emacs' and is there a sample one?
--------------------------------------------------------------------
-
-The `init.el' or `.emacs' file is used to customize XEmacs to your
-tastes. Starting in 21.4, the preferred location for the init file is
-`~/.xemacs/init.el'; in previous versions, it was `~/.emacs'. 21.4
-still accepts the old location, but the first time you run it, it will
-ask to migrate your file to the new location. If you answer yes, the
-file will be moved, and a "compatibility" `.emacs' file will be placed
-in the old location so that you can still run older versions of XEmacs,
-and versions of GNU Emacs, which expect the old location. The `.emacs'
-file present is just a stub that loads the real file in
-`~/.xemacs/init.el'.
-
- No two init files are alike, nor are they expected to be alike, but
-that's the point. The XEmacs distribution contains an excellent starter
-example in the `etc/' directory called `sample.init.el' (starting in
-21.4) or `sample.emacs' in older versions. Copy this file from there
-to `~/.xemacs/init.el' (starting in 21.4) or `~/.emacs' in older
-versions, where `~' means your home directory, of course. Then edit it
-to suit.
-
- You may bring the `sample.init.el' or `sample.emacs' file into an
-XEmacs buffer from the menubar. (The menu entry for it is always under
-the `Help' menu, but its location under that has changed in various
-versions. Recently, look under the `Samples' submenu.) To determine
-the location of the `etc/' directory type the command `C-h v
-data-directory <RET>'.
-
-\1f
-File: xemacs-faq.info, Node: Q1.3.2, Next: Q1.3.3, Prev: Q1.3.1, Up: Introduction
-
-Q1.3.2: Where do I put my `init.el' file?
------------------------------------------
-
-`init.el' is the name of the init file starting with 21.4, and is
-located in the subdirectory `.xemacs/' of your home directory. In
-prior versions, the init file is called `.emacs' and is located in your
-home directory.
-
- Your home directory under Windows is determined by the `HOME'
-environment variable. If this is not set, it defaults to `C:\'. To
-set this variable, modify `AUTOEXEC.BAT' under Windows 95/98, or select
-`Control Panel->System->Advanced->Environment Variables...' under
-Windows NT/2000.
-
-\1f
-File: xemacs-faq.info, Node: Q1.3.3, Next: Q1.3.4, Prev: Q1.3.2, Up: Introduction
-
-Q1.3.3: Can I use the same `init.el' with the other Emacs?
-----------------------------------------------------------
-
-Yes. The sample `init.el' included in the XEmacs distribution will
-show you how to handle different versions and flavors of Emacs.
-
-\1f
-File: xemacs-faq.info, Node: Q1.3.4, Next: Q1.3.5, Prev: Q1.3.3, Up: Introduction
-
-Q1.3.4: Any good XEmacs tutorials around?
------------------------------------------
-
-There's the XEmacs tutorial available from the Help Menu under
-`Help->Tutorials', or by typing `C-h t'. To check whether it's
-available in a non-english language, type `C-u C-h t TAB', type the
-first letters of your preferred language, then type <RET>.
-
-\1f
-File: xemacs-faq.info, Node: Q1.3.5, Next: Q1.3.6, Prev: Q1.3.4, Up: Introduction
-
-Q1.3.5: May I see an example of a useful XEmacs Lisp function?
---------------------------------------------------------------
-
-The following function does a little bit of everything useful. It does
-something with the prefix argument, it examines the text around the
-cursor, and it's interactive so it may be bound to a key. It inserts
-copies of the current word the cursor is sitting on at the cursor. If
-you give it a prefix argument: `C-u 3 M-x double-word' then it will
-insert 3 copies.
-
- (defun double-word (count)
- "Insert a copy of the current word underneath the cursor"
- (interactive "*p")
- (let (here there string)
- (save-excursion
- (forward-word -1)
- (setq here (point))
- (forward-word 1)
- (setq there (point))
- (setq string (buffer-substring here there)))
- (while (>= count 1)
- (insert string)
- (decf count))))
-
- The best way to see what is going on here is to let XEmacs tell you.
-Put the code into an XEmacs buffer, and do a `C-h f' with the cursor
-sitting just to the right of the function you want explained. Eg. move
-the cursor to the SPACE between `interactive' and `"*p"' and hit `C-h
-f' to see what the function `interactive' does. Doing this will tell
-you that the `*' requires a writable buffer, and `p' converts the
-prefix argument to a number, and `interactive' allows you to execute
-the command with `M-x'.
-
-\1f
-File: xemacs-faq.info, Node: Q1.3.6, Next: Q1.3.7, Prev: Q1.3.5, Up: Introduction
-
-Q1.3.6: And how do I bind it to a key?
---------------------------------------
-
-To bind to a key do:
-
- (global-set-key "\C-cd" 'double-word)
-
- Or interactively, `M-x global-set-key' and follow the prompts.
-
-\1f
-File: xemacs-faq.info, Node: Q1.3.7, Next: Q1.3.8, Prev: Q1.3.6, Up: Introduction
-
-Q1.3.7: What's the difference between a macro and a function?
--------------------------------------------------------------
-
-Quoting from the Lisp Reference (a.k.a "Lispref") Manual:
-
- "Macros" enable you to define new control constructs and other
-language features. A macro is defined much like a function, but instead
-of telling how to compute a value, it tells how to compute another Lisp
-expression which will in turn compute the value. We call this
-expression the "expansion" of the macro.
-
- Macros can do this because they operate on the unevaluated
-expressions for the arguments, not on the argument values as functions
-do. They can therefore construct an expansion containing these
-argument expressions or parts of them.
-
- Do not confuse the two terms with "keyboard macros", which are
-another matter, entirely. A keyboard macro is a key bound to several
-other keys. Refer to manual for details.
-
-\1f
-File: xemacs-faq.info, Node: Q1.3.8, Next: Q1.4.1, Prev: Q1.3.7, Up: Introduction
-
-Q1.3.8: What is `Custom'?
--------------------------
-
-`Custom' is a system for customizing XEmacs options.
-
- You can access `Advanced (Customize)' from the `Options' menu or
-invoking one of customize commands by typing eg. `M-x customize', `M-x
-customize-face', `M-x customize-variable' or `M-x customize-apropos'.
-
- There is also new `browser' mode for Customize. Try it out with
-`M-x customize-browse'
-
-1.4: Getting Help
-=================
-
-\1f
-File: xemacs-faq.info, Node: Q1.4.1, Next: Q1.4.2, Prev: Q1.3.8, Up: Introduction
-
-Q1.4.1: Where can I get help?
------------------------------
-
-Probably the easiest way, if everything is installed, is to use Info, by
-pressing `C-h i', or looking for an Info item on the Help Menu. `M-x
-apropos' can be used to look for particular commands.
-
- For items not found in the manual, try reading this FAQ and reading
-the Usenet group comp.emacs.xemacs.
-
- If you choose to post to a newsgroup, *please use
-comp.emacs.xemacs*. Please do not post XEmacs related questions to
-gnu.emacs.help.
-
- If you cannot post or read Usenet news, there is a corresponding
-mailing list <xemacs-news@xemacs.org> which is available. It can be
-subscribed to via the Mailman Web interface or by sending mail to to
-<xemacs-news-request@xemacs.org> with `subscribe' in the body of the
-message. See also `http://www.xemacs.org/Lists/#xemacs-news'. To
-cancel a subscription, you may use the <xemacs-news-request@xemacs.org>
-address or the Web interface. Send a message with a subject of
-`unsubscribe' to be removed.
-
-\1f
-File: xemacs-faq.info, Node: Q1.4.2, Next: Q1.4.3, Prev: Q1.4.1, Up: Introduction
-
-Q1.4.2: Which mailing lists are there?
---------------------------------------
-
-For complete, up-to-date info on the lists and how to subscribe, see
-`http://www.xemacs.org/Lists/'.
-
-`comp.emacs.xemacs'
- is a Usenet newsgroup for XEmacs users to discuss problems and
- issues that arise for them. It's not generally an appropriate
- place to ask about apparent bugs (use `xemacs-beta'), or future
- plans (use `xemacs-design').
-
-`xemacs-announce'
- is a read-only, low volume list for announcements concerning the
- XEmacs project and new releases of the XEmacs software.
-
-`xemacs-beta'
- is an open list for bug reports about beta versions of XEmacs.
- This includes the bug reports themselves, by both users and
- developers, as well as queries, follow-ups, and discussions
- further determining their nature and status. This is the primary
- channel for this kind of discussion; related code changes will
- usually not be applied until they have been discussed here. When
- such discussions touch on significant changes to the code (in
- particular, structural changes), or on changes to API's or
- external functionality, they should be moved to `xemacs-design'.
- Requests and proposals for non-bug-related changes do not belong
- on `xemacs-beta', and should be sent to `xemacs-design' instead.
-
-`xemacs-beta-ja'
- is an open list for bug reports and design discussion related to
- Mule features, including Japanese handling, in beta versions of
- XEmacs. Japanese is the preferred language of discussion. For
- most timely presentation to reviewers, please consider sending
- appropriate discussion to `xemacs-mule' or `xemacs-design' in
- English when convenient for the participants in discussion. When
- possible, bug reports not related to Mule (including Japanese)
- should be reported on `xemacs-beta' in English.
-
-`xemacs-buildreports'
- is an open list for submission of build-reports on beta versions
- of XEmacs. For information on what the build-reports should
- contain, please see the `etc/BETA' file which is included in each
- beta distribution.
-
-`xemacs-cvs'
- is a read-only list for notices and information on what has been
- committed to the XEmacs CVS trees, by whom, and for what.
-
-`xemacs-design'
- is an open list for discussing the design of XEmacs. This
- includes discussion about planned and ongoing changes to
- functionality and API changes and additions as well as requests
- for them. This is the primary channel for this kind of
- discussion; related code changes will usually not be applied until
- they have been discussed here. This does not include bug reports,
- which go to `xemacs-beta'.
-
-`xemacs-mule'
- is an open mailing list for discussion of International extensions
- to XEmacs including Mule, XIM, I18n issues, etc, and is not
- confined to developmental issues. This list is not restricted to
- English, postings in all languages are welcome.
-
-`xemacs-news'
- is an open list for discussion and bug reporting for XEmacs. This
- mailing list is bi-directionally gatewayed with the USENET
- newsgroup comp.emacs.xemacs.
-
-`xemacs-nt'
- is a developers-only mailing list and is intended for people who
- wish to work actively on the porting of XEmacs to Microsoft
- Windows NT and Microsoft Windows '95.
-
-`xemacs-patches'
- is an open, moderated list for submission of patches to the XEmacs
- distribution and its packages. Anyone may subscribe or submit to
- xemacs-patches, but all submissions are reviewed by the list
- moderator before they are distributed to the list. Discussion is
- not appropriate on xemacs-patches.
-
-`xemacs-users-ja'
- is an open list for discussion and bug reporting for XEmacs.
- Japanese is the preferred language of discussion. It is not gated
- to comp.emacs.xemacs or the `xemacs' list. For fastest response,
- bugs not specifically related to Japanese or Mule features should
- be reported on `xemacs-beta' (in English).
-
-`xemacs-users-ru'
- is an open list for discussion and bug reporting for XEmacs.
- Russian is the preferred language of discussion. It is not gated
- to comp.emacs.xemacs or the `xemacs' list. For fastest response,
- bugs not specifically related to Russian or Mule features should
- be reported on `xemacs-beta' (in English).
-
-\1f
-File: xemacs-faq.info, Node: Q1.4.3, Next: Q1.4.4, Prev: Q1.4.2, Up: Introduction
-
-Q1.4.3: Where are the mailing lists archived?
----------------------------------------------
-
-The archives can be found at `http://list-archive.xemacs.org'
-
-\1f
-File: xemacs-faq.info, Node: Q1.4.4, Next: Q1.4.5, Prev: Q1.4.3, Up: Introduction
-
-Q1.4.4: How can I get two instances of info?
---------------------------------------------
-
-Before 21.4, you can't. The `info' package does not provide for
-multiple info buffers. In 21.4, this should be fixed. #### how?
-
-\1f
-File: xemacs-faq.info, Node: Q1.4.5, Next: Q1.5.1, Prev: Q1.4.4, Up: Introduction
-
-Q1.4.5: How do I add new Info directories?
-------------------------------------------
-
-You use something like:
-
- (setq Info-directory-list (cons
- (expand-file-name "~/info")
- Info-default-directory-list))
-
- David Masterson <davidm@prism.kla.com> writes:
-
- Emacs Info and XEmacs Info do many things differently. If you're
- trying to support a number of versions of Emacs, here are some
- notes to remember:
-
- 1. Emacs Info scans `Info-directory-list' from right-to-left
- while XEmacs Info reads it from left-to-right, so append to
- the _correct_ end of the list.
-
- 2. Use `Info-default-directory-list' to initialize
- `Info-directory-list' _if_ it is available at startup, but not
- all Emacsen define it.
-
- 3. Emacs Info looks for a standard `dir' file in each of the
- directories scanned from #1 and magically concatenates them
- together.
-
- 4. XEmacs Info looks for a `localdir' file (which consists of
- just the menu entries from a `dir' file) in each of the
- directories scanned from #1 (except the first), does a simple
- concatenation of them, and magically attaches the resulting
- list to the end of the menu in the `dir' file in the first
- directory.
-
- Another alternative is to convert the documentation to HTML with
- texi2html and read it from a web browser like Lynx or W3.
-
-1.5: Contributing to XEmacs
-===========================
-
-\1f
-File: xemacs-faq.info, Node: Q1.5.1, Next: Q1.5.2, Prev: Q1.4.5, Up: Introduction
-
-Q1.5.1: How do I submit changes to the FAQ?
--------------------------------------------
-
-The FAQ is actively maintained and modified regularly. All links should
-be up to date. Unfortunately, some of the information is out of date -
-a situation which the FAQ maintainer is working on. All submissions are
-welcome, please e-mail submissions to XEmacs FAQ maintainers
-<faq@xemacs.org>.
-
- Please make sure that `XEmacs FAQ' appears on the Subject: line. If
-you think you have a better way of answering a question, or think a
-question should be included, we'd like to hear about it. Questions and
-answers included into the FAQ will be edited for spelling and grammar
-and will be attributed. Answers appearing without attribution are
-either from versions of the FAQ dated before May 1996 or are from
-previous FAQ maintainers. Answers quoted from Usenet news articles will
-always be attributed, regardless of the author.
-
-\1f
-File: xemacs-faq.info, Node: Q1.5.2, Next: Q1.5.3, Prev: Q1.5.1, Up: Introduction
-
-Q1.5.2: How do I become a beta tester?
---------------------------------------
-
-Send an email message to <xemacs-beta-request@xemacs.org> with the line
-`subscribe' in the body of the message.
-
- Be prepared to get your hands dirty, as beta testers are expected to
-identify problems as best they can.
-
-\1f
-File: xemacs-faq.info, Node: Q1.5.3, Next: Q1.5.4, Prev: Q1.5.2, Up: Introduction
-
-Q1.5.3: How do I contribute to XEmacs itself?
----------------------------------------------
-
-It depends on the knowledge and time you possess. If you are able, by
-all means become a beta tester (*note Q1.5.2::). If you are a
-programmer, try to build XEmacs and see if you can improve it.
-
- Otherwise, you can still help by using XEmacs as your everyday editor
-(for pre-built binary versions, *note Q1.1.2::) and reporting bugs you
-find to the mailing list.
-
- Another area where we need help is the documentation: We need good
-documentation for building XEmacs and for using it. This FAQ is a
-small step in that direction.
-
- Ben Wing <ben@xemacs.org> writes:
-
- BTW if you have a wish list of things that you want added, you
- have to speak up about it! More specifically, you can do the
- following if you want a feature added (in increasing order of
- usefulness):
-
- * Make a posting about a feature you want added.
-
- * Become a beta tester and make more postings about those same
- features.
-
- * Convince us that you're going to use the features in some
- cool and useful way.
-
- * Come up with a clear and well-thought-out API concerning the
- features.
-
- * Write the code to implement a feature and send us a patch.
-
- (not that we're necessarily requiring you to write the code, but
- we can always hope :)
-
-\1f
-File: xemacs-faq.info, Node: Q1.5.4, Next: Q1.5.5, Prev: Q1.5.3, Up: Introduction
-
-Q1.5.4: How do I get started developing XEmacs?
------------------------------------------------
-
-First, get yourself set up under CVS so that you can access the CVS
-repositories containing the XEmacs sources and the XEmacs packages.
-
- Next, set up your layout. This is important, as a good layout will
-facilitate getting things done efficiently, while a bad layout will
-could lead to disaster, as you can't figure out which code is the most
-recent, which can be thrown away, etc. We suggest the following
-layout: (feel free to make changes)
-
- * Everything goes under `/src/xemacs' (use a different directory if
- you want). From now, instead of saying `/src/xemacs', we use
- `<xsrc-top>', to make it easier in case someone picked a different
- directory.
-
- * Package source is in `<xsrc-top>/package-src'.
-
- * Installed packages go under `<xsrc-top>/xemacs-packages', and
- `<xsrc-top>/mule-packages'.
-
- * A "workspace" is a complete copy of the sources, in which you do
- work of a particular kind. Workspaces can be differentiated by
- which branch of the source tree they extend off of - usually
- either the stable or experimental, unless other branches have been
- created (for example, Ben created a branch for his Mule work
- because (1) the project was long-term and involved an enormous
- number of changes, (2) people wanted to be able to look at what
- his work in progress, and (3) he wanted to be able to check things
- in and in general use source-code control, since it was a
- long-term project). Workspaces are also differentiated in what
- their purpose is - general working workspace, workspace for
- particular projects, workspace keeping the latest copy of the code
- in one of the branches without mods, etc.
-
- * Various workspaces are subdirectories under `<xsrc-top>', e.g.:
-
- * `<xsrc-top>/working' (the workspace you're actively working
- on, periodically synched up with the latest trunk)
-
- * `<xsrc-top>/stable' (for making changes to the stable version
- of XEmacs, which sits on a branch)
-
- * `<xsrc-top>/unsigned-removal' (a workspace for a specific,
- difficult task that's going to affect lots of source and take
- a long time, and so best done in its own workspace without
- the interference of other work you're doing. Also, you can
- commit just this one large change, separate from all the
- other changes).
-
- * `<xsrc-top>/latest' (a copy of the latest sources on the
- trunk, i.e. the experimental version of XEmacs, with no
- patches in it; either update it periodically, by hand, or set
- up a cron job to do it automatically). Set it up so it can
- be built, and build it so you have a working XEmacs.
- (Building it might also go into the cron job.)
-
- This workspace serves a number of purposes:
- 1. You always have a recent version of XEmacs you can
- compare against when something you're working on breaks.
- It's true that you can do this with cvs diff, but when
- you need to do some serious investigation, this method
- just fails.
-
- 2. You (almost) always have a working, up-to-date
- executable that can be used when your executable is
- crashing and you need to keep developing it, or when you
- need an `xemacs' to build packages, etc.
-
- 3. When creating new workspaces, you can just copy the
- `latest' workspace using GNU `cp -a'. You have all the
- .elc's built, everything else probably configured, any
- spare files in place (e.g. some annoying xpm.dll under
- Windows, etc.).
-
- * `<xsrc-top>/latest-stable/' (equivalent to
- `<xsrc-top>/latest/', but for the Stable branch of XEmacs,
- rather than the Experimental branch of XEmacs). This may or
- may not be necessary depending on how much development you do
- of the stable branch.
-
- * `<xsrc-top>/xemacsweb' is a workspace for working on the XEmacs
- web site.
-
- * `<xsrc-top>/in-patches' for patches received from email and saved
- to files.
-
- * `<xsrc-top>/out-patches' for locally-generated patches to be sent
- to <xemacs-patches@xemacs.org>. Less useful now that the patcher
- util has been developed.
-
- * `<xsrc-top>/build', for build trees when compiling and testing
- XEmacs with various configuration options turned off and on. The
- scripts in xemacs-builds/ben (see below) can be used to automate
- building XEmacs workspaces with many different configuration
- options and automatically filtering out the normal output so that
- you see only the abnormal output.
-
- * `<xsrc-top>/xemacs-builds', for the xemacs-builds module, which
- you need to check out separately in CVS. This contains scripts
- used for building XEmacs, automating and simplifying using CVS,
- etc. Under various people's directories are their own build and
- other scripts. The currently most-maintained scripts are under
- ben/, where there are easily configurable scripts that can be used
- to easily build any workspace (esp. if you've more or less
- followed the layout presented above) unattended, with one or more
- configuration states (there's a pre-determined list of the most
- useful, but it's easy to change). The output is filtered and
- split up in various ways so that you can identify which output
- came from where, and you can see the output either full or with
- all "normal" output except occasional status messages filtered so
- that you only see the abnormal ones.
-
-\1f
-File: xemacs-faq.info, Node: Q1.5.5, Next: Q1.6.1, Prev: Q1.5.4, Up: Introduction
-
-Q1.5.5: What's the basic layout of the code?
---------------------------------------------
-
-The file `configure' is a shell script to acclimate XEmacs to the
-oddities of your processor and operating system. It will create a file
-named `Makefile' (a script for the `make' program), which helps
-automate the process of building and installing emacs. See INSTALL for
-more detailed information.
-
- The file `configure.in' is the input used by the autoconf program to
-construct the `configure' script. Since XEmacs has configuration
-requirements that autoconf can't meet, `configure.in' uses an unholy
-marriage of custom-baked configuration code and autoconf macros; it may
-be wise to avoid rebuilding `configure' from `configure.in' when
-possible.
-
- The file `Makefile.in' is a template used by `configure' to create
-`Makefile'.
-
- There are several subdirectories:
-
- 1. `src' holds the C code for XEmacs (the XEmacs Lisp interpreter and
- its primitives, the redisplay code, and some basic editing
- functions).
-
- 2. `lisp' holds the XEmacs Lisp code for XEmacs (most everything
- else).
-
- 3. `lib-src' holds the source code for some utility programs for use
- by or with XEmacs, like movemail and etags.
-
- 4. `etc' holds miscellaneous architecture-independent data files
- XEmacs uses, like the tutorial text. The contents of the `lisp',
- `info' and `man' subdirectories are architecture-independent too.
-
- 5. `lwlib' holds the C code for the X toolkit objects used by XEmacs.
-
- 6. `info' holds the Info documentation tree for XEmacs.
-
- 7. `man' holds the source code for the XEmacs online documentation.
-
- 8. `nt' holds files used compiling XEmacs under Microsoft Windows.
-
-1.6: Politics (XEmacs vs. GNU Emacs)
-====================================
-
-\1f
-File: xemacs-faq.info, Node: Q1.6.1, Next: Q1.6.2, Prev: Q1.5.5, Up: Introduction
-
-Q1.6.1: What is GNU Emacs?
---------------------------
-
-GNU Emacs and XEmacs are related open-source text editors. Both derive
-from GNU Emacs version 18; the split between the two happened in 1991
-(for comparison, the oldest versions of GNU Emacs date from 1984). For
-information on GNU Emacs, see
-`http://www.gnu.org/software/emacs/emacs.html'.
-
-\1f
-File: xemacs-faq.info, Node: Q1.6.2, Next: Q1.6.3, Prev: Q1.6.1, Up: Introduction
-
-Q1.6.2: How does XEmacs differ from GNU Emacs?
-----------------------------------------------
-
-For a detailed description of the differences between GNU Emacs and
-XEmacs and a detailed history of XEmacs, check out the
- NEWS file (http://www.xemacs.org/About/XEmacsVsGNUemacs.html)
-
-*User-Visible Editing Features*
- XEmacs in general tries hard to conform to exist user-interface
- standards, and to work "out-of-the-box" without the need for
- obscure customization changes. GNU Emacs, particularly version
- 21, has gotten better about this (in many cases by copying the
- XEmacs behavior!), but still has some weirdnesses. For example,
- the standard method of selecting text using the Shift key works
- out-of-the-box in XEmacs.
-
- XEmacs has a built-in toolbar. Four toolbars can actually be
- configured simultaneously: top, bottom, left, and right toolbars.
-
- XEmacs has vertical and horizontal scrollbars. Unlike in GNU Emacs
- 19 (which provides a primitive form of vertical scrollbar), these
- are true toolkit scrollbars. A look-alike Motif scrollbar is
- provided for those who don't have Motif. (Even for those who do,
- the look-alike may be preferable as it is faster.)
-
- XEmacs has buffer tabs along the top of the frame (although the
- position can be changed) that make it very easy to switch buffers.
-
- The menubar under XEmacs is better-designed, with more thought put
- into it.
-
- XEmacs can ask questions using popup dialog boxes. Any command
- executed from a menu will ask yes/no questions with dialog boxes,
- while commands executed via the keyboard will use the minibuffer.
-
- XEmacs under MS Windows provides uses the standard file-dialog box
- for opening and saving files. Standard menu-accelerator behavior
- can easily be enabled using the Options menu, and integrates well
- into the existing keymap.
-
- XEmacs has (still experimental) support for widgets of various
- sorts - buttons, text boxes, sliders, progress bars, etc. A
- progress bar is used in font lock to show the progress.
-
- Experimental support for drag-and-drop protocols is provided from
- XEmacs 21.
-
-*General Platform Support*
- If you're running on a machine with audio hardware, you can specify
- sound files for XEmacs to play instead of the default X beep. See
- the documentation of the function load-sound-file and the variable
- sound-alist. XEmacs also supports the network sound protocols NAS
- and EsounD.
-
- XEmacs 21 supports database protocols with LISP bindings, currently
- including Berkeley DB, LDAP, and PostgreSQL (21.2 only).
-
- XEmacs 20 and 21 support the Canna, Wnn, and SJ3 Japanese input
- method servers directly, as well as through the X Input Method
- (XIM) protocol. GNU Emacs 20 supports only the XIM protocol. Both
- Emacsen support the Quail family of input methods (implemented in
- LISP) for many languages.
-
- XEmacs provides support for ToolTalk on systems that have it.
-
-*Packaged LISP Libraries*
- Many more packages are provided standard with XEmacs than with GNU
- Emacs 19 or 20.
-
- XEmacs 21 supports an integrated package management system which
- uses EFS to download, then automatically install prebuilt LISP
- libraries. This allows XEmacs users much more straightforward
- access to the "latest and greatest" version of any given library.
-
- We are working on a standard method for enabling, disabling and
- otherwise controlling packages, which should make them very easy
- to use.
-
-*LISP Programming*
- From XEmacs 20 on, characters are a separate type. Characters can
- be converted to integers (and many integers can be converted to
- characters), but characters are not integers. GNU Emacs 19, XEmacs
- 19, Mule 2.3 (an extensive patch to GNU Emacs 18.55 and 19.x), and
- GNU Emacs 20 (incorporating Mule 3 and later Mule 4) represent
- them as integers.
-
- From XEmacs 20 on, the buffer is treated as an array of
- characters, and the representation of buffer text is not exposed
- to LISP. The GNU Emacs 20 functions like buffer-as-multibyte are
- not supported.
-
- In XEmacs, events are first-class objects. GNU Emacs 19 represents
- them as integers, which obscures the differences between a key
- gesture and the ancient ASCII code used to represent a particular
- overlapping subset of them.
-
- In XEmacs, keymaps are first-class opaque objects. GNU Emacs 19
- represents them as complicated combinations of association lists
- and vectors. If you use the advertised functional interface to
- manipulation of keymaps, the same code will work in XEmacs, GNU
- Emacs 18, and GNU Emacs 19; if your code depends on the underlying
- implementation of keymaps, it will not.
-
- XEmacs uses "extents" to represent all non-textual aspects of
- buffers; GNU Emacs 19 uses two distinct objects, "text properties"
- and "overlays", which divide up the functionality between them.
- Extents are a superset of the union of the functionality of the
- two GNU Emacs data types. The full GNU Emacs 19 interface to text
- properties and overlays is supported in XEmacs (with extents being
- the underlying representation).
-
- Extents can be made to be copied into strings, and then restored,
- by kill and yank. Thus, one can specify this behavior on either
- "extents" or "text properties", whereas in GNU Emacs 19 text
- properties always have this behavior and overlays never do.
-
-*Window System Programming Interface*
- XEmacs uses the MIT "Xt" toolkit instead of raw Xlib calls, which
- makes it be a more well-behaved X citizen (and also improves
- portability). A result of this is that it is possible to include
- other Xt "Widgets" in the XEmacs window. Also, XEmacs understands
- the standard Xt command-line arguments.
-
- XEmacs supports Motif applications, generic Xt (e.g. Athena)
- applications, and raw Xlib applications. An XEmacs variant which
- supports GTK+ is available (integration as an option in the XEmacs
- mainline is planned for XEmacs 22), although code to take
- advantage of the support is as yet scarce.
-
- An XEmacs frame can be placed within an "external client widget"
- managed by another application. This allows an application to use
- an XEmacs frame as its text pane rather than the standard Text
- widget that is provided with Motif or Athena.
-
-*Community Participation*
- Joining the XEmacs development team is simple. Mail to XEmacs
- Developers <xemacs-beta@xemacs.org>, and you're in! (If you want
- to be, of course. You're also welcome to just post
- development-related questions and bug reports.) The GNU Emacs
- development team and internal mailing lists are still by invitation
- only.
-
- The "bleeding edge" of mainline XEmacs development is available by
- anonymous CVS as are some subsidiary branches (check out the
- xemacs-gtk module for the latest in GUI features!)
-
- Development and maintenance of Lisp libraries is separated from
- the core editor development at a fairly low level. This provides
- better modularization and a better division of responsibility
- between external library maintainers and the XEmacs core
- development team. Even for packages the size of Gnus, XEmacs users
- normally have access to a pre-built version within a few weeks of
- a major release, and minor updates often within days.
-
- CVS commit authority is broadly dispersed. Recognized maintainers
- of LISP libraries who are willing to maintain XEmacs packaged
- versions automatically qualify for CVS accounts for their packages.
-
-\1f
-File: xemacs-faq.info, Node: Q1.6.3, Next: Q1.6.4, Prev: Q1.6.2, Up: Introduction
-
-Q1.6.3: How much does XEmacs differ?
-------------------------------------
-
-RMS has asserted at times that XEmacs is merely a "patch" on top of GNU
-Emacs (*note Q1.6.4::). In fact, probably not more than 5% of the
-code, if that, remains unchanged, and nearly 14 years of work has gone
-into XEmacs at this point. (GNU Emacs itself is only than 20 years old,
-and thus XEmacs has existed as a separate product for over 2/3 of the
-lifespan of GNU Emacs.) As a point of comparison, XEmacs 21.5 has
-perhaps 65,000 more lines of C code than GNU Emacs 21.2.
-
- However, the XEmacs developers strive to keep their code compatible
-with GNU Emacs, especially on the Lisp level. Much effort goes into
-"synching" the XEmacs Elisp code with recent GNU Emacs releases so as to
-benefit from GNU Emacs development work. (In contrast, almost no code
-from XEmacs has made it into GNU Emacs, and in fact the GNU Emacs
-developers are instructed by RMS not to even look at XEmacs source code!
-This stems from self-imposed licensing restrictions on the part of GNU
-Emacs - and almost certainly out of hostility, as well.)
-
-\1f
-File: xemacs-faq.info, Node: Q1.6.4, Next: Q1.6.5, Prev: Q1.6.3, Up: Introduction
-
-Q1.6.4: Is XEmacs "GNU"?
-------------------------
-
-RMS insists on the term "GNU XEmacs" and maintains that
-
- XEmacs is GNU software because it's a modified version of a GNU
- program. And it is GNU software because the FSF is the copyright
- holder for most of it, and therefore the legal responsibility for
- protecting its free status falls on us whether we want it or not.
- This is why the term "GNU XEmacs" is legitimate.
-
- In fact, FSF is _not_ the copyright holder for most of the code, as
-very little unmodified FSF code remains (*note Q1.6.3::).
-
- Furthermore, RMS's assertion that XEmacs is "GNU" seems rather
-bizarre to the XEmacs developers given RMS's hostility and general lack
-of interest in cooperation. "GNU" software in general is part of the
-GNU Project, is distributed by it on their FTP site, and receives
-support (or at least cooperation), as well as implicit endorsement,
-from it. The GNU Project, however, has never supported XEmacs and never
-distributed XEmacs, and RMS's hostility is the farthest thing possible
-from an endorsement. In fact, the GNU Project distributes a number of
-non-GNU software projects on the FSF web site, but again XEmacs is not
-one of them.
-
-\1f
-File: xemacs-faq.info, Node: Q1.6.5, Next: Q1.6.6, Prev: Q1.6.4, Up: Introduction
-
-Q1.6.5: What is the correct way to refer to XEmacs and GNU Emacs?
------------------------------------------------------------------
-
-Unfortunately even the naming of these two applications has become
-politicized. Much of this stems from RMS, who has a history of
-politicizing similar issues. (Compare the controversy over "Lignux" and
-"GNU/Linux".) We would prefer that the terms "XEmacs" and "GNU Emacs"
-be used, which are neutral and acceptable to most people. RMS,
-however, is not willing to accept these terms. He insists that, if his
-product is called "GNU Emacs", then ours must be called "GNU XEmacs".
-(For our opinion of this term, *Note Q1.6.4::.) On the other hand, if
-our product is to be called "XEmacs", as we prefer, then his product
-must simply be called "Emacs". The intent of this seems clear: RMS
-wants to make sure the names reflect his view that his version is the
-"real" Emacs and ours is merely a derivative, second-class product
-(*note Q1.6.3::).
-
- The XEmacs developers hope that you will use the neutral terms
-"XEmacs" and "GNU Emacs" for these two specific products. "Emacs", on
-the other hand, is a generic term for a class of programmable text
-editors with a similar look-and-feel, and usually a Lisp-based
-extension language. These trace themselves back to early editors such
-as EINE, ZWEI, ZMACS and Multics Emacs. *Note A History of Emacs:
-(internals)A History of Emacs.
-
- We also call upon RMS, in the spirit of furthering cooperation, to
-stop politicizing this issue and use the neutral terms "XEmacs" and
-"GNU Emacs". We have already acceded to RMS' wishes in this respect,
-and we expect him to do the same. (In the past, the XEmacs developers
-often used the terms "FSF Emacs" or "FSFmacs" or "RMSmacs" in reference
-to GNU Emacs; these terms were apparently modeled after RMS' own usage
-of "Gosmacs" and "Gosling Emacs" in reference to Unipress Emacs,
-produced by James Gosling. RMS, however, considers such terms to be
-insulting, so we refrain from using them as much as possible in
-preference to GNU Emacs.)
-
-\1f
-File: xemacs-faq.info, Node: Q1.6.6, Next: Q1.7.1, Prev: Q1.6.5, Up: Introduction
-
-Q1.6.6: Why haven't XEmacs and GNU Emacs merged?
-------------------------------------------------
-
-There are currently irreconcilable differences in the views about
-technical, programming, design, organizational and legal matters
-between Richard Stallman (RMS), the author and leader of the GNU Emacs
-project, and the XEmacs development team which provide little hope for
-a merge to take place in the short-term future. There have been
-repeated attempts at merging by all of the major XEmacs developers,
-starting from the early days of Lucid Emacs (in 1991), but they have
-all failed. RMS has very strong views about how GNU Emacs should be
-structured and how his project should be run, and during the repeated
-merge efforts has never demonstrated any realistic interest in
-sufficiently compromising or ceding control to allow a middle ground to
-be found. The basic problem seems to be the very different goals of
-RMS and the XEmacs project. The primary goals of the XEmacs project
-are technical and organizational - we want to create the best editor
-possible, and to make it as easy as possible for people around the
-world to contribute. The primary goals of RMS, on the other hand, are
-political, and GNU Emacs, and any potential merge efforts with XEmacs,
-are strictly subservient to these goals. In fact, in many ways RMS
-sees GNU Emacs as the "poster child" of his aims, the one program in
-the GNU project that above all others must set an example to the world.
-(This has to do with the fact that GNU Emacs was the first program in
-the GNU project, and the only one that he is still personally involved
-with on a day-to-day basis.) Given his goals, his position is
-completely reasonable - but unfortunately, makes any merge impossible.
-
- From the XEmacs perspective, the most intractable issues appear to be
-legal and organizational, specifically:
-
- * RMS requires "legal papers" to be signed for all contributions of
- code to GNU Emacs over 10 lines or so, transferring the copyright
- and all legal rights to the code to the Free Software Foundation.
- XEmacs does not and has never required this, since it has the
- practical effect of discouraging individual and in particular
- corporate contributions - corporations will almost never sign away
- their legal rights to code since it makes it impossible to reuse
- the code in any product that whose license is not compatible with
- the GNU General Public License. Since RMS has shown no
- inclination to compromise on this issue, a merge would require
- that most of the existing XEmacs code would need to be thrown away
- and rewritten - something the XEmacs developers are understandably
- reluctant to do.
-
- * A repeated stumbling block in the merge talks has been the issue of
- organizational control over the resulting product. RMS has made it
- clear that he intends to have final say over design issues in a
- merged Emacs. Unfortunately, RMS and the XEmacs developers have
- repeatedly clashed over design decisions, and RMS' insistence on
- getting his way in such disagreements was the very reason for the
- split in the first place. This same issue has come up again and
- again in merge talks and we have never been able to come to a
- satisfactory resolution. To the extent that RMS is willing to
- compromise at all, it appears to be of a purely political rather
- than technical nature - "If we support this feature of yours, we
- also get to support this other feature of mine." The XEmacs
- developers cannot see how such a process would lead to anything
- but a mess of incompatible things hodgepodged together.
-
- * Because of the years of separate development, distinct and
- incompatible interfaces have developed and merging would be
- extremely difficult even with the above non-technical issues
- resolved. The problem has been exacerbated by the issue of legal
- papers - because XEmacs code is not "kosher" from RMS'
- perspective, he discourages developers from even looking at it out
- of legal concerns. Although it is still possible to read the
- XEmacs documentation and run the program, the practical effect of
- this prohibition has been to strongly discourage code-sharing and
- cooperative development - although a great deal of GNU Emacs code
- has been incorporated into XEmacs, practically none has gone the
- other direction.
-
- If you have a comment to add regarding the merge, it is a good idea
-to avoid posting to the newsgroups, because of the very heated flamewars
-that often result. Mail your questions to <xemacs-beta@xemacs.org> and
-<emacs-devel@gnu.org>.
-
-1.7: External Packages
-======================
-
-\1f
-File: xemacs-faq.info, Node: Q1.7.1, Next: Q1.7.2, Prev: Q1.6.6, Up: Introduction
-
-Q1.7.1: What is the package system?
------------------------------------
-
-In order to reduce the size and increase the maintainability of XEmacs,
-the majority of the Elisp packages that came with previous releases
-have been unbundled. They have been replaced by the package system.
-Each elisp add-on (or groups of them when they are small) now comes in
-its own tarball that contains a small search hierarchy.
-
- You select just the ones you need. Install them by untarring them
-into the right place. On startup XEmacs will find them, set up the load
-path correctly, install autoloads, etc, etc.
-
- *Note Q2.1.1::, for more info on how to download and install the
-packages.
-
-\1f
-File: xemacs-faq.info, Node: Q1.7.2, Next: Q1.7.3, Prev: Q1.7.1, Up: Introduction
-
-Q1.7.2: Which external packages are there?
-------------------------------------------
-
-Normal Packages
----------------
-
-A very broad collection of elisp packages.
-
-Sun
- Support for Sparcworks.
-
-ada
- Ada language support.
-
-apel
- A Portable Emacs Library. Used by XEmacs MIME support.
-
-auctex
- Basic TeX/LaTeX support.
-
-bbdb
- The Big Brother Data Base: a rolodex-like database program.
-
-build
- Build XEmacs from within (UNIX, Windows).
-
-c-support
- Basic single-file add-ons for editing C code.
-
-calc
- Emacs calculator.
-
-calendar
- Calendar and diary support.
-
-cc-mode
- C, C++, Objective-C, Java, CORBA IDL, Pike and AWK language
- support.
-
-clearcase
- New Clearcase Version Control for XEmacs (UNIX, Windows).
-
-clearcase
- Support for the Clearcase version control system.
-
-cookie
- "Fortune cookie"-style messages. Includes Spook (suspicious
- phrases) and Yow (Zippy quotes).
-
-crisp
- Crisp/Brief emulation.
-
-debug
- GUD, gdb, dbx debugging support.
-
-dictionary
- Interface to RFC2229 dictionary servers.
-
-dired
- The DIRectory EDitor is for manipulating, and running commands on
- files in a directory.
-
-docbookide
- DocBook editing support.
-
-ecb
- Emacs source code browser.
-
-ecrypto
- Crypto functionality in Emacs Lisp.
-
-edebug
- An Emacs Lisp debugger.
-
-ediff
- Interface over GNU patch.
-
-edit-utils
- Miscellaneous editor extensions, you probably need this.
-
-edt
- DEC EDIT/EDT emulation.
-
-efs
- Treat files on remote systems the same as local files.
-
-eieio
- Enhanced Implementation of Emacs Interpreted Objects.
-
-elib
- Portable Emacs Lisp utilities library.
-
-emerge
- Another interface over GNU patch.
-
-erc
- ERC is an Emacs InternetRelayChat client.
-
-escreen
- Multiple editing sessions withing a single frame (like screen).
-
-eshell
- Command shell implemented entirely in Emacs Lisp.
-
-ess
- ESS: Emacs Speaks Statistics.
-
-eterm
- Terminal emulation.
-
-eudc
- Emacs Unified Directory Client (LDAP, PH).
-
-footnote
- Footnoting in mail message editing modes.
-
-forms
- Forms editing support (obsolete, use Widget instead).
-
-fortran-modes
- Fortran support.
-
-fortran-modes
- Fortran language support.
-
-frame-icon
- Set up mode-specific icons for each frame under XEmacs.
-
-fsf-compat
- GNU Emacs compatibility files.
-
-games
- Tetris, Sokoban, and Snake.
-
-general-docs
- General documentation. Presently, empty.
-
-gnats
- XEmacs bug reports.
-
-gnus
- The Gnus Newsreader and Mailreader.
-
-haskell-mode
- Haskell editing support.
-
-hm-html-menus
- HTML editing.
-
-hyperbole
- Hyperbole: The Everyday Info Manager.
-
-ibuffer
- Advanced replacement for buffer-menu.
-
-idlwave
- Editing and Shell mode for the Interactive Data Language.
-
-igrep
- Enhanced front-end for Grep.
-
-ilisp
- Front-end for interacting with Inferior Lisp (external lisps).
-
-ispell
- Spell-checking with GNU ispell.
-
-jde
- Integrated Development Environment for Java.
-
-liece
- IRC (Internet Relay Chat) client for Emacs. Note, this package is
- deprecated and will be removed, use riece instead.
-
-mail-lib
- Fundamental lisp files for providing email support.
-
-mailcrypt
- Support for messaging encryption with PGP.
-
-mew
- Messaging in an Emacs World; a MIME-based email program.
-
-mh-e
- The XEmacs Interface to the MH Mail System.
-
-mine
- Elisp implementation of the game 'Minehunt'.
-
-misc-games
- Other amusements and diversions.
-
-mmm-mode
- Support for Multiple Major Modes within a single buffer.
-
-net-utils
- Miscellaneous Networking Utilities.
-
-ocaml
- Objective Caml editing support.
-
-oo-browser
- OO-Browser: The Multi-Language Object-Oriented Code Browser.
-
-ocaml
- Objective Caml editing support.
-
-os-utils
- Miscellaneous single-file O/S utilities, for printing, archiving,
- compression, remote shells, etc.
-
-pc
- PC style interface emulation.
-
-pcl-cvs
- CVS frontend.
-
-pcomplete
- Provides programmatic completion.
-
-perl-modes
- Perl support.
-
-pgg
- Emacs interface to various PGP implementations.
-
-prog-modes
- Support for various programming languages.
-
-ps-print
- Printing functions and utilities.
-
-psgml
- Validated HTML/SGML editing.
-
-psgml-dtds
- A collection of DTDs for psgml. Note that this package is
- deprecated and will be removed in the future, most likely Q2/2003.
- Instead of using this, you should install needed DTDs yourself.
-
-python-modes
- Python language support.
-
-reftex
- Emacs support for LaTeX cross-references, citations.
-
-riece
- IRC (Internet Relay Chat) client for Emacs.
-
-rmail
- An obsolete Emacs mailer. If you do not already use it don't
- start.
-
-ruby-modes
- Ruby support.
-
-sasl
- Simple Authentication and Security Layer (SASL) library.
-
-scheme
- Front-end support for Inferior Scheme.
-
-semantic
- Semantic bovinator (Yacc/Lex for XEmacs). Includes Senator.
-
-sgml
- SGML/Linuxdoc-SGML editing.
-
-sh-script
- Support for editing shell scripts.
-
-sieve
- Manage Sieve email filtering scripts.
-
-slider
- User interface tool.
-
-sml-mode
- SML editing support.
-
-sounds-au
- XEmacs Sun sound files.
-
-sounds-wav
- XEmacs Microsoft sound files.
-
-speedbar
- Provides a separate frame with convenient references.
-
-strokes
- Mouse enhancement utility.
-
-supercite
- An Emacs citation tool for News & Mail messages.
-
-texinfo
- XEmacs TeXinfo support.
-
-text-modes
- Miscellaneous support for editing text files.
-
-textools
- Miscellaneous TeX support.
-
-time
- Display time & date on the modeline.
-
-tm
- Emacs MIME support. Not needed for gnus >= 5.8.0.
-
-tooltalk
- Support for building with Tooltalk.
-
-tpu
- DEC EDIT/TPU support.
-
-tramp
- Remote shell-based file editing. This is similar to EFS or
- Ange-FTP, but works with rsh/ssh and rcp/scp.
-
-vc
- Version Control for Free systems.
-
-vc-cc
- Version Control for ClearCase (UnFree) systems.
-
-vhdl
- Support for VHDL.
-
-view-process
- A Unix process browsing tool.
-
-viper
- VI emulation support.
-
-vm
- An Emacs mailer.
-
-w3
- A Web browser.
-
-x-symbol
- Semi WYSIWYG for LaTeX, HTML, etc, using additional fonts.
-
-xemacs-base
- Fundamental XEmacs support, you almost certainly need this.
-
-xemacs-devel
- XEmacs Lisp developer support. This package contains utilities for
- supporting Lisp development. It is a single-file package so it
- may be tailored.
-
-xlib
- Emacs interface to X server.
-
-xslide
- XSL editing support.
-
-xslt-process
- A minor mode for (X)Emacs which allows running an XSLT processor
- on a buffer.
-
-xwem
- X Emacs Window Manager.
-
-zenirc
- ZENIRC IRC Client.
-
-Mule Support (mule)
--------------------
-
-MULti-lingual Enhancement. Support for world scripts such as Latin,
-Arabic, Cyrillic, Chinese, Japanese, Greek, Hebrew etc. To use these
-packages your XEmacs must be compiled with Mule support.
-
-edict
- MULE: Lisp Interface to EDICT, Kanji Dictionary.
-
-egg-its
- MULE: Wnn (4.2 and 6) support. SJ3 support.
-
-latin-unity
- MULE: find single ISO 8859 character set to encode a buffer.
-
-latin-unity
- Unify character sets in a buffer. When characters belong to
- disjoint character sets, this attempts to translate the characters
- so that they belong to one character set. If the buffer coding
- system is not sufficient, this suggests different coding systems.
-
-leim
- MULE: Quail. All non-English and non-Japanese language support.
-
-locale
- MULE: Localized menubars and localized splash screens.
-
-lookup
- Dictionary support. (This isn't an English dictionary program)
-
-mule-base
- MULE: Basic Mule support, required for building with Mule.
-
-mule-ucs
- MULE: Extended coding systems (including Unicode) for XEmacs.
-
-mule-ucs
- Extended coding systems (including Unicode) for XEmacs.
-
-skk
- Another Japanese Language Input Method. Can be used without a
- separate process running as a dictionary server.
-
-\1f
-File: xemacs-faq.info, Node: Q1.7.3, Next: Q1.7.4, Prev: Q1.7.2, Up: Introduction
-
-Q1.7.3: Do I need to have the packages to run XEmacs?
------------------------------------------------------
-
-Strictly speaking, no. XEmacs will build and install just fine without
-any packages installed. However, only the most basic editing functions
-will be available with no packages installed, so installing packages is
-an essential part of making your installed XEmacs _useful_.
-
-\1f
-File: xemacs-faq.info, Node: Q1.7.4, Next: Q1.8.1, Prev: Q1.7.3, Up: Introduction
-
-Q1.7.4: Is there a way to find which package has particular functionality?
---------------------------------------------------------------------------
-
-If you want to find out which package contains the functionality you
-are looking for, use `M-x package-get-package-provider', and give it a
-symbol that is likely to be in that package.
-
- For example, if some code you want to use has a `(require
-'thingatpt)' in it:
-
- M-x package-get-package-provider RET thingatpt RET
-
- which will return something like: `(fsf-compat "1.08").'
-
-1.8: Internationalization
-=========================
-
-\1f
-File: xemacs-faq.info, Node: Q1.8.1, Next: Q1.8.2, Prev: Q1.7.4, Up: Introduction
-
-Q1.8.1: What is the status of internationalization support aka MULE (including Asian language support)?
--------------------------------------------------------------------------------------------------------
-
-Both the stable and development versions of XEmacs include
-internationalization support (aka MULE). MULE currently (21.4) works on
-UNIX and Linux systems. It is possible to build with MULE on Windows
-systems, but if you really need MULE on Windows, it is recommended that
-you build and use the development (21.5) version, and deal with the
-instability of the development tree. Binaries compiled without MULE
-support run faster than MULE capable XEmacsen.
-
-\1f
-File: xemacs-faq.info, Node: Q1.8.2, Next: Q1.8.3, Prev: Q1.8.1, Up: Introduction
-
-Q1.8.2: How can I help with internationalization?
--------------------------------------------------
-
-If you would like to help, you may want to join the
-<xemacs-mule@xemacs.org> mailing list. Especially needed are people
-who speak/write languages other than English, who are willing to use
-XEmacs/MULE regularly, and have some experience with Elisp.
-
- Translations of the TUTORIAL and man page are welcome, and XEmacs
-does support multilingual menus, but we have few current translations.
-
- *Note How do I become a Beta Tester?: Q1.5.2.
-
-\1f
-File: xemacs-faq.info, Node: Q1.8.3, Next: Q1.8.4, Prev: Q1.8.2, Up: Introduction
-
-Q1.8.3: How do I type non-ASCII characters?
--------------------------------------------
-
-*Note How can you type in special characters in XEmacs?: Q3.0.6, in
-part 3 of this FAQ, for some simple methods that also work in non-MULE
-builds of XEmacs (but only for one-octet coded character sets, and
-mostly for ISO 8859/1). Many of the methods available for Cyrillic
-(*note How about Cyrillic modes?: Q1.8.7.) work without MULE. MULE has
-more general capabilities. *Note Please explain the various input
-methods in MULE/XEmacs: Q1.8.5.
-
- *Note How do I display non-ASCII characters?: Q4.0.8, which covers
-display of non-ASCII characters.
-
-\1f
-File: xemacs-faq.info, Node: Q1.8.4, Next: Q1.8.5, Prev: Q1.8.3, Up: Introduction
-
-Q1.8.4: Can XEmacs messages come out in a different language?
--------------------------------------------------------------
-
-The message-catalog support was written but is badly bit-rotted. XEmacs
-20 and 21 did _not_ support it, and early releases of XEmacs 22 will
-not either.
-
- However, menubar localization _does_ work. To enable it, add to
-your `Emacs' file entries like this:
-
- Emacs*XlwMenu.resourceLabels: True
- Emacs*XlwMenu.file.labelString: Fichier
- Emacs*XlwMenu.openInOtherWindow.labelString: In anderem Fenster oeffnen
-
- The name of the resource is derived from the non-localized entry by
-removing punctuation and capitalizing as above.
-
-\1f
-File: xemacs-faq.info, Node: Q1.8.5, Next: Q1.8.6, Prev: Q1.8.4, Up: Introduction
-
-Q1.8.5: Please explain the various input methods in MULE/XEmacs
----------------------------------------------------------------
-
-Mule supports a wide variety of input methods. There are three basic
-classes: Lisp implementations, generic platform support, and library
-interfaces.
-
- _Lisp implementations_ include Quail, which provides table-driven
-input methods for almost all the character sets that Mule supports
-(including all of the ISO 8859 family, the Indic languages, Thai, and
-so on), and SKK, for Japanese. (SKK also supports an interface to an
-external "dictionary server" process.) Quail supports both typical
-"dead-key" methods (eg, in the "latin-1-prefix" method, `" a' produces
-ä, LATIN SMALL LETTER A WITH DIAERESIS), and the complex
-dictionary-based phonetic methods used for Asian ideographic languages
-like Chinese.
-
- Lisp implementations can be less powerful (but they are not
-perceptibly inefficient), and of course are not portable to non-Emacs
-applications. The incompatibility can be very annoying. On the other
-hand, they require no special platform support or external libraries,
-so if you can display the characters, Mule can input them for you and
-you can edit, anywhere.
-
- _Generic platform support_ is currently limited to the X Input
-Method (XIM) framework, although support for MSIME (for MS Windows) is
-planned, and IIIMF (Sun's Internet-Intranet Input Method Framework)
-support is extremely desirable. XIM is enabled at build time by use of
-the `--with-xim' flag to `configure'. For use of XIM, see your
-platform documentation. However, normally the input method you use is
-specified via the `LANG' and `XMODIFIERS' environment variables.
-
- Of course, input skills are portable across most applications.
-However, especially in modern GUI systems the habit of using bucky bits
-has fallen into sad disuse, and many XIM systems are poorly configured
-for use with Emacs. For example, the kinput2 input manager (a separate
-process providing an interface between Japanese dictionary servers such
-as Canna and Wnn, and the application) tends to gobble up keystrokes
-generating Meta characters. This means that to edit while using an XIM
-input method, you must toggle the input method off every time you want
-to use `M-f'. Your mileage may vary.
-
- _Library interfaces_ are most common for Japanese, although Wnn
-supports Chinese (traditional and simplified) and Korean. There are
-Chinese and Korean input servers available, but we do not know of any
-patches for XEmacs to use them directly. You can use them via
-IM-enabled terminals, by manipulating the terminal coding systems. We
-describe only the Japanese-oriented systems here. The advantage of
-these systems is that they are very powerful, and on platforms where
-they are available there is typically a wide range of applications that
-support them. Thus your input skills are portable across applications.
-
- Mule provides built-in interfaces to the following input methods:
-Wnn4, Wnn6, Canna, and SJ3. These can be configured at build time.
-There are patches available (no URL, sorry) to support the SKK server,
-as well. Wnn and SJ3 use the `egg' user interface. The interface for
-Canna is specialized to Canna.
-
- Wnn supports Japanese, Chinese and Korean. It is made by OMRON and
-Kyôto University. It is a powerful and complex system. Wnn4 is free
-and Wnn6 is not. Wnn uses grammatical hints and probability of word
-association, so in principle Wnn can be cleverer than other methods.
-
- Canna, made by NEC, supports only Japanese. It is a simple and
-powerful system. Canna uses only grammar, but its grammar and
-dictionary are quite sophisticated. So for standard modern Japanese,
-Canna seems cleverer than Wnn4. In addition, the UNIX version of Canna
-is free (now there is a Microsoft Windows version).
-
- SJ3, by Sony, supports only Japanese.
-
- Egg consists of following parts:
-
- 1. Input character Translation System (ITS) layer. It translates
- ASCII inputs to Kana/PinYin/Hangul characters.
-
- 2. Kana/PinYin/Hangul to Kanji transfer layer. The interface layer
- to network Kana-Kanji server (Wnn and Sj3).
-
- These input methods are modal. They have a raw (alphabet) mode, a
-phonetic input mode, and Kana-Kanji transfer mode. However there are
-mode-less input methods for Egg and Canna. `boiled-egg' is a mode-less
-input method running on Egg. For Canna, `canna.el' has a tiny
-boiled-egg-like command, `(canna-boil)', and there are some
-boiled-egg-like utilities.
-
- Much of this information was provided by MORIOKA Tomohiko
-<morioka@jaist.ac.jp>.
-
-\1f
-File: xemacs-faq.info, Node: Q1.8.6, Next: Q1.8.7, Prev: Q1.8.5, Up: Introduction
-
-Q1.8.6: How do I portably code for MULE/XEmacs?
------------------------------------------------
-
-MULE has evolved rapidly over the last few years, and the original third
-party patch (for GNU Emacs 19), GNU Emacs 20+, and XEmacs 20+ have quite
-different implementations. The APIs also vary although recent versions
-of XEmacs have tended to converge to the GNU Emacs standard.
-
- MULE implementations are going to continue to evolve. Both GNU Emacs
-and XEmacs are working hard on Unicode support, which will involve new
-APIs and probably variations on old ones. For XEmacs 22, the old ISO
-2022-based system for recognizing encodings will be replaced by a much
-more flexible system, which should improve accuracy of automatic coding
-detections, but will also involve new APIs.
-
- MORIOKA Tomohiko <morioka@jaist.ac.jp> writes:
-
- The application implementor must write separate code for these mule
- variants. [Please don't hesitate to report these variants to us;
- they are not, strictly speaking, bugs, but they give third-party
- developers the same kind of creepy-crawly feeling. We'll do what
- we can. - Ed.]
-
- MULE and the next version of Emacs are similar but the symbols are
- very different--requiring separate code as well.
-
- Namely we must support 3 kinds of mule variants and 4 or 5 or 6
- kinds of emacs variants... (;_;) I'm shocked, so I wrote a wrapper
- package called `emu' to provide a common interface. [There is an
- XEmacs package of APEL which provides much more comprehensive
- coverage. Be careful, however; APEL has problems of its own. -
- Ed.]
-
- I have the following suggestions about dealing with mule variants:
-
- * `(featurep 'mule)' `t' on all mule variants
-
- * `(boundp 'MULE)' is `t' on only MULE. Maybe the next version
- of Emacs will not have this symbol.
-
- * MULE has a variable `mule-version'. Perhaps the next version
- of Emacs will have this variable as well.
-
- Following is a sample to distinguish mule variants:
-
- (if (featurep 'mule)
- (cond ((boundp 'MULE)
- ;; for original Mule
- )
- ((string-match "XEmacs" emacs-version)
- ;; for XEmacs with Mule
- )
- (t
- ;; for next version of Emacs
- ))
- ;; for old emacs variants
- )
-
-\1f
-File: xemacs-faq.info, Node: Q1.8.7, Next: Q1.8.8, Prev: Q1.8.6, Up: Introduction
-
-Q1.8.7: How about Cyrillic modes?
----------------------------------
-
-Ilya Zakharevich <ilya@math.ohio-state.edu> writes:
-
- There is a cyrillic mode in the file `mysetup.zip' in
- `ftp://ftp.math.ohio-state.edu/pub/users/ilya/emacs/'. This is a
- modification to Valery Alexeev's <ava@math.jhu.ed> `russian.el'
- which can be obtained from
-
- `http://www.math.uga.edu/~valery/russian.el'.
-
- Dima Barsky <d.barsky@ee.surrey.ac.uk> writes:
-
- There is another cyrillic mode for both GNU Emacs and XEmacs by
- Dmitrii (Mitya) Manin <manin@camelot.mssm.edu> at
- `http://kulichki-lat.rambler.ru/centrolit/manin/cyr.el'.
-
- Rebecca Ore <rebecca.ore@op.net> writes:
-
- The fullest resource I found on Russian language use (in and out of
- XEmacs) is `http://www.ibiblio.org/sergei/Software/Software.html'
-
-\1f
-File: xemacs-faq.info, Node: Q1.8.8, Next: Q1.8.9, Prev: Q1.8.7, Up: Introduction
-
-Q1.8.8: Does XEmacs support Unicode?
-------------------------------------
-
-To get Unicode support, you need a Mule-enabled XEmacs.
-
- 21.5 has internal support for Unicode and supports it fully,
-although we don't yet use it as the internal encoding.
-
- 21.4 supports Unicode partially - as an external encoding for files,
-processes, and terminals, but without font support. *Note How does
-XEmacs display Unicode?: Q1.8.9. To get Unicode support in 21.4,
-install Mule-UCS from packages in the usual way, and put
-
- (require 'un-define)
- (set-coding-priority-list '(utf-8))
- (set-coding-category-system 'utf-8 'utf-8)
-
- in your init file to enable the UTF-8 coding system. You may wish to
-view the documentation of `set-coding-priority-list' if you find that
-files that are not UTF-8 are being mis-recognized as UTF-8.
-
- Install standard national fonts (not Unicode fonts) for all character
-sets you use. *Note How does XEmacs display Unicode??: Q1.8.9.
-
- Mule-UCS also supports 16-bit forms of Unicode (UTF-16). It does not
-support 31-bit forms of Unicode (UTF-32 or UCS-4).
-
-\1f
-File: xemacs-faq.info, Node: Q1.8.9, Prev: Q1.8.8, Up: Introduction
-
-Q1.8.9: How does XEmacs display Unicode?
-----------------------------------------
-
-Mule doesn't have a Unicode charset internally, so there's nothing to
-bind a Unicode registry to. It would not be straightforward to create,
-either, because Unicode is not ISO 2022-compatible. You'd have to
-translate it to multiple 96x96 pages.
-
- This means that Mule-UCS uses ordinary national fonts for display.
-This is not really a problem, except for those languages that use the
-Unified Han characters. The problem here is that Mule-UCS maps from
-Unicode code points to national character sets in a deterministic way.
-By default, this means that Japanese fonts are tried first, then
-Chinese, then Korean. To change the priority ordering, use the command
-`un-define-change-charset-order'.
-
- It also means you can't use Unicode fonts directly, at least not
-without extreme hackery. You can run -nw with
-(set-terminal-coding-system 'utf-8) if you really want a Unicode font
-for some reason.
-
- Real Unicode support will be introduced in XEmacs 22.0.
-
-\1f
-File: xemacs-faq.info, Node: Installation, Next: Editing, Prev: Introduction, Up: Top
-
-2 Installation and Troubleshooting
-**********************************
-
-This is part 2 of the XEmacs Frequently Asked Questions list. This
-section is devoted to Installation, Maintenance and Troubleshooting.
-
-* Menu:
-
-2.0: Installation (General)
-* Q2.0.1:: How do I build and install XEmacs?
-* Q2.0.2:: Where do I find external libraries?
-* Q2.0.3:: How do I specify the paths that XEmacs uses for finding files?
-* Q2.0.4:: Running XEmacs without installing
-* Q2.0.5:: XEmacs is too big
-
-2.1: Package Installation
-* Q2.1.1:: How do I install the packages?
-* Q2.1.2:: Can I install the packages individually?
-* Q2.1.3:: Can I install the packages automatically?
-* Q2.1.4:: Can I upgrade or remove packages?
-* Q2.1.5:: Which packages to install?
-* Q2.1.6:: Can you describe the package location process in more detail?
-* Q2.1.7:: EFS fails with "500 AUTH not understood"
-
-2.2: Unix/Mac OS X Installation (Also Relevant to Cygwin, MinGW)
-* Q2.2.1:: Libraries in non-standard locations
-* Q2.2.2:: Why can't I strip XEmacs?
-
-2.3: Windows Installation (Windows, Cygwin, MinGW)
-* Q2.3.1:: What exactly are all the different ways to build XEmacs under Windows?
-* Q2.3.2:: What compiler/libraries do I need to compile XEmacs?
-* Q2.3.3:: How do I compile the native port?
-* Q2.3.4:: What do I need for Cygwin?
-* Q2.3.5:: How do I compile under Cygwin?
-* Q2.3.6:: How do I compile using MinGW (aka `the -mno-cygwin flag to gcc')?
-* Q2.3.7:: How do I compile with X support?
-* Q2.3.8:: Cygwin XEmacs won't start -- cygXpm-noX4.dll was not found (NEW)
-
-2.4: General Troubleshooting
-* Q2.4.1:: How do I deal with bugs or with problems building, installing, or running?
-* Q2.4.2:: Help! XEmacs just crashed on me!
-* Q2.4.3:: XEmacs crashes and I compiled it myself.
-* Q2.4.4:: How to debug an XEmacs problem with a debugger
-* Q2.4.5:: I get a cryptic error message when trying to do something.
-* Q2.4.6:: XEmacs hangs when I try to do something.
-* Q2.4.7:: I get an error message when XEmacs is running in batch mode.
-* Q2.4.8:: The keyboard or mouse is not working properly, or I have some other event-related problem.
-* Q2.4.9:: C-g doesn't work for me. Is it broken?
-* Q2.4.10:: How do I debug process-related problems?
-* Q2.4.11:: XEmacs is outputting lots of X errors.
-* Q2.4.12:: After upgrading, XEmacs won't do `foo' any more!
-
-2.5: Startup-Related Problems
-* Q2.5.1:: XEmacs cannot connect to my X Terminal!
-* Q2.5.2:: Startup problems related to paths or package locations.
-* Q2.5.3:: XEmacs won't start without network.
-* Q2.5.4:: Startup warnings about deducing proper fonts?
-* Q2.5.5:: Warnings from incorrect key modifiers.
-* Q2.5.6:: XEmacs 21.1 on Windows used to spawn an ugly console window on every startup. Has that been fixed?
-
-2.0: Installation (General)
-===========================
-
-\1f
-File: xemacs-faq.info, Node: Q2.0.1, Next: Q2.0.2, Prev: Installation, Up: Installation
-
-Q2.0.1: How do I build and install XEmacs?
-------------------------------------------
-
-See the file `etc/NEWS' for information on new features and other
-user-visible changes since the last version of XEmacs.
-
- The file `INSTALL' in the top-level directory says how to bring up
-XEmacs on Unix and Cygwin, once you have loaded the entire subtree of
-this directory.
-
- See the file `nt/README' for instructions on building XEmacs for
-Microsoft Windows.
-
- *Note Q2.1.1::, for the installation of (essential) add on packages.
-
-\1f
-File: xemacs-faq.info, Node: Q2.0.2, Next: Q2.0.3, Prev: Q2.0.1, Up: Installation
-
-Q2.0.2: Where do I find external libraries?
--------------------------------------------
-
-All external libraries used by XEmacs can be found on the XEmacs web
-site `http://www.xemacs.org/Download/optLibs.html'.
-
- The library versions available here are known to work with XEmacs.
-(Newer versions will probably work as well but we can't guarantee it.)
-We try to keep the libraries up-to-date but may not always succeed.
-Check the above page for the canonical locations of the external
-libraries, allowing you to download the latest, bleeding-edge versions.
-
-\1f
-File: xemacs-faq.info, Node: Q2.0.3, Next: Q2.0.4, Prev: Q2.0.2, Up: Installation
-
-Q2.0.3: How do I specify the paths that XEmacs uses for finding files?
-----------------------------------------------------------------------
-
-You can specify what paths to use by using a number of different flags
-when running configure. See the section MAKE VARIABLES in the top-level
-file INSTALL in the XEmacs distribution for a listing of those flags.
-
- Most of the time, however, the simplest fix is: *do not* specify
-paths as you might for GNU Emacs. XEmacs can generally determine the
-necessary paths dynamically at run time. The only path that generally
-needs to be specified is the root directory to install into. That can
-be specified by passing the `--prefix' flag to configure. For a
-description of the XEmacs install tree, please consult the `NEWS' file.
-
-\1f
-File: xemacs-faq.info, Node: Q2.0.4, Next: Q2.0.5, Prev: Q2.0.3, Up: Installation
-
-Q2.0.4: Running XEmacs without installing
------------------------------------------
-
-How can I just try XEmacs without installing it?
-
- XEmacs will run in place without requiring installation and copying
-of the Lisp directories, and without having to specify a special
-build-time flag. It's the copying of the Lisp directories that
-requires so much space. XEmacs is largely written in Lisp.
-
- A good method is to make a shell alias for xemacs:
-
- alias xemacs=/src/xemacs-21.5/src/xemacs
-
- (You will obviously use whatever directory you downloaded the source
-tree to instead of `/src/xemacs-21.5').
-
- This will let you run XEmacs without massive copying.
-
-\1f
-File: xemacs-faq.info, Node: Q2.0.5, Next: Q2.1.1, Prev: Q2.0.4, Up: Installation
-
-Q2.0.5: XEmacs is too big
--------------------------
-
-The space required by the installation directories can be reduced
-dramatically if desired. Gzip all the .el files. Remove all the
-packages you'll never want to use. Remove the TexInfo manuals. Remove
-the Info (and use just hardcopy versions of the manual). Remove most
-of the stuff in etc. Remove or gzip all the source code. Gzip or
-remove the C source code. Configure it so that copies are not made of
-the support lisp.
-
- These are all Emacs Lisp source code and bytecompiled object code.
-You may safely gzip everything named *.el here. You may remove any
-package you don't use. _Nothing bad will happen if you delete a package
-that you do not use_. You must be sure you do not use it though, so be
-conservative at first.
-
- Any package with the possible exceptions of xemacs-base, and EFS are
-candidates for removal. Ask yourself, _Do I ever want to use this
-package?_ If the answer is no, then it is a candidate for removal.
-
- First, gzip all the .el files. Then go about package by package and
-start gzipping the .elc files. Then run XEmacs and do whatever it is
-you normally do. If nothing bad happens, then remove the package. You
-can remove a package via the PUI interface (`M-x pui-list-packages',
-then press `d' to mark the packages you wish to delete, and then `x' to
-delete them.
-
- Another method is to do `M-x package-get-delete-package'.
-
-2.1: Package Installation
-=========================
-
-\1f
-File: xemacs-faq.info, Node: Q2.1.1, Next: Q2.1.2, Prev: Q2.0.5, Up: Installation
-
-Q2.1.1: How do I install the packages?
---------------------------------------
-
-There are three ways to install the packages.
-
- 1. Manually, all at once, using the 'Sumo Tarball'.
-
- 2. Manually, using individual package tarballs.
-
- 3. Automatically, using the package tools from XEmacs.
-
- If you don't want to mess with the packages, it is easiest to just
-grab them manually, all at once. (For the other two ways, *Note
-Q2.1.2::, and *Note Q2.1.3::.) Download the file
-
- `xemacs-sumo.tar.gz'
-
- For an XEmacs compiled with Mule you also need
-
- `xemacs-mule-sumo.tar.gz'
-
- These are in the `packages' directory on your XEmacs mirror archive:
-`ftp://ftp.xemacs.org/pub/xemacs/packages' or its mirrors. N.B. They
-are called 'Sumo Tarballs' for good reason. They are currently about
-19MB and 4.5MB (gzipped) respectively.
-
- Install them on Unix and Mac OS X using the shell/Terminal command
-
- `cd $prefix/lib/xemacs ; gunzip -c <tarballname> | tar xf -'
-
- Where `$prefix' is what you gave to the `--prefix' flag to
-`configure', and defaults to `/usr/local'.
-
- If you have GNU tar you can use:
-
- `cd $prefix/lib/xemacs ; tar zxvf <tarballname>'
-
- If you have the packages somewhere nonstandard and don't want to
-bother with `$prefix' (for example, you're a developer and are compiling
-the packages yourself, and want your own private copy of everything),
-you can also directly specify this using `configure'. To do this with
-21.5 and above use the `--with-package-prefix' parameter to specify the
-directory under which you untarred the above tarballs. Under 21.4 and
-previous you need to use `--package-path'. Using these options looks
-something like this:
-
- configure --package-path="~/.xemacs::/src/xemacs/site-packages:/src/xemacs/xemacs-packages:/src/xemacs/mule-packages" ...
-
- Under Windows, you need to place the above `tar.gz' files in the
-directory specified using the `PACKAGE_PREFIX' value in `nt/config.inc'
-and by default is `\Program Files\XEmacs'. (To untar a `tar.gz' file
-you will need to use a utility such as WinZip, unless you have Cygwin
-or a similar environment installed, in which case the above Unix shell
-command should work fine.) If you want the packages somewhere else,
-just change `PACKAGE_PREFIX'.
-
- Note that XEmacs finds the packages automatically anywhere underneath
-the directory tree where it expects to find the packages. All you need
-to do is put stuff there; you don't need to run any program to tell
-XEmacs to find the packges, or do anything of that sort.
-
- However, XEmacs will only notice newly installed packages when it
-starts up, so you will have to restart if you are already running
-XEmacs.
-
- For more details, *Note Startup Paths: (xemacs)Startup Paths, and
-*Note Packages: (xemacs)Packages.
-
- As the Sumo tarballs are not regenerated as often as the individual
-packages, it is recommended that you use the automatic package tools
-afterwards to pick up any recent updates.
-
- _NOTE_: For detailed information about how the package hierarchies
-work, *Note Package Overview: (lispref)Package Overview.
-
-\1f
-File: xemacs-faq.info, Node: Q2.1.2, Next: Q2.1.3, Prev: Q2.1.1, Up: Installation
-
-Q2.1.2: Can I install the packages individually?
-------------------------------------------------
-
-Yes, you can download individual packages from the FTP site (*note
-Q2.1.1::). Since packages are automatically noticed at startup, you
-just have to put them in the right place.
-
- Note: If you are upgrading packages already installed, it's best to
-remove the old package first (*note Q2.1.4::).
-
- For example if we are installing the `xemacs-base' package (version
-1.48):
-
- mkdir $prefix/lib/xemacs/xemacs-packages RET # if it does not exist yet
- cd $prefix/lib/xemacs/xemacs-packages RET
- gunzip -c /path/to/xemacs-base-1.48-pkg.tar.gz | tar xvf - RET
-
- Or if you have GNU tar, the last step can be:
-
- tar zxvf /path/to/xemacs-base-1.48-pkg.tar.gz RET
-
- For MULE related packages, it is best to untar into the
-`mule-packages' hierarchy, i.e. for the `mule-base' package, version
-1.37:
-
- mkdir $prefix/lib/xemacs/mule-packages RET # if it does not exist yet
- cd $prefix/lib/xemacs/mule-packages RET
- gunzip -c /path/to/mule-base-1.37-pkg.tar.gz | tar xvf - RET
-
- Or if you have GNU tar, the last step can be:
-
- tar zxvf /path/to/mule-base-1.37-pkg.tar.gz RET
-
-\1f
-File: xemacs-faq.info, Node: Q2.1.3, Next: Q2.1.4, Prev: Q2.1.2, Up: Installation
-
-Q2.1.3: Can I install the packages automatically?
--------------------------------------------------
-
-XEmacs comes with some tools to make the periodic updating and
-installing easier. It will notice if new packages or versions are
-available and will fetch them from the FTP site.
-
- Unfortunately this requires that a few packages are already in place.
-You will have to install them by hand as above or use a SUMO tarball.
-This requirement will hopefully go away in the future. The packages you
-need are:
-
- efs - To fetch the files from the FTP site or mirrors.
- xemacs-base - Needed by efs.
-
- and optionally:
-
- mailcrypt - For PGP verification of the package-index file.
-
- After installing these by hand, fire up XEmacs and follow these
-steps.
-
- 1. Choose a download site.
- * via menu: Tools -> Packages -> Set Download Site
-
- * via keyb: M-x customize-variable RET package-get-remote RET
- (put in the details of remote host and directory)
-
- If the package tarballs _AND_ the package-index file are in a
- local directory, you can: M-x pui-set-local-package-get-directory
- RET
-
- 2. Obtain a list of packages and display the list in a buffer named
- "*Packages*".
- * menu: Tools -> Packages -> List & Install
-
- * keyb: M-x pui-list-packages RET
-
- XEmacs will now connect to the remote site and download the latest
- package-index file.
-
- The resulting buffer, "*Packages*" has brief instructions at the
- end of the buffer.
-
- 3. Choose the packages you wish to install.
- * mouse: Click button 2 on the package name.
-
- * keyb: RET on the package name
-
- 4. Make sure you have everything you need.
- * menu: Packages -> Add Required
-
- * keyb: r
-
- XEmacs will now search for packages that are required by the ones
- that you have chosen to install and offer to select those packages
- also.
-
- For novices and gurus alike, this step can save your bacon. It's
- easy to forget to install a critical package.
-
- 5. Download and install the packages.
- * menu: Packages -> Install/Remove Selected
-
- * keyb: x
-
-\1f
-File: xemacs-faq.info, Node: Q2.1.4, Next: Q2.1.5, Prev: Q2.1.3, Up: Installation
-
-Q2.1.4: Can I upgrade or remove packages?
------------------------------------------
-
-As the exact files and their locations contained in a package may
-change it is recommended to remove a package first before installing a
-new version. In order to facilitate removal each package contains an
-pgkinfo/MANIFEST.pkgname file which list all the files belong to the
-package. M-x package-admin-delete-binary-package RET can be used to
-remove a package using this file.
-
- Note that the interactive package tools included with XEmacs already
-do this for you.
-
-\1f
-File: xemacs-faq.info, Node: Q2.1.5, Next: Q2.1.6, Prev: Q2.1.4, Up: Installation
-
-Q2.1.5: Which packages to install?
-----------------------------------
-
-Unless you are an advanced user, just install everything.
-
- If you really want to install only what's absolutely needed, a good
-minimal set of packages for XEmacs-latin1 would be
-
- xemacs-base, xemacs-devel, c-support, cc-mode, debug, dired, efs,
- edit-utils, fsf-compat, mail-lib, net-utils, os-utils, prog-modes,
- text-modes, time, mailcrypt
-
- If you are using the XEmacs package tools, don't forget to do:
-
- Packages -> Add Required
-
- To make sure you have everything that the packages you have chosen to
-install need.
-
- *Note Q1.7.2::, for a description of the various packages.
-
-\1f
-File: xemacs-faq.info, Node: Q2.1.6, Next: Q2.1.7, Prev: Q2.1.5, Up: Installation
-
-Q2.1.6: Can you describe the package location process in more detail?
----------------------------------------------------------------------
-
-On startup XEmacs looks for packages in so-called package hierarchies.
-Normally, there are three system wide hierarchies, like this:
-
- $prefix/lib/xemacs/xemacs-packages/
- Normal packages go here.
-
- $prefix/lib/xemacs/mule-packages/
- Mule packages go here and are only searched by MULE-enabled XEmacsen.
-
- $prefix/lib/xemacs/site-packages/
- Local and 3rd party packages go here.
-
- This is what you get when you untar the SUMO tarballs under
-`$prefix/lib/xemacs'.
-
- `$prefix' is specified using the `--prefix' parameter to
-`configure', and defaults to `usr/local'.
-
- If the package path is not explicitly specified, XEmacs looks for the
-package directory `xemacs-packages' (and `mule-packages' and
-`site-packages') first under `~/.xemacs', then for a sister directory
-`lib/xemacs-VERSION' of the directory in which the XEmacs executable is
-located, then for a sister directory `lib/xemacs'. The XEmacs
-executable (under Unix at least) is installed by default in
-`/usr/local/bin'; this explains why XEmacs in its default installation
-will find packages that you put under `/usr/local/lib/xemacs'.
-
- You can specify where exactly XEmacs looks for packages by using the
-`--with-package-prefix' or `--with-package-path' parameters to
-`configure' (or the equivalent settings in `config.inc', under
-Windows), or setting the `EMACSPACKAGEPATH' environment variable (which
-has the same format as `--with-package-path'). *Note Q2.1.1::.
-
- See `configure.usage' for more info about the format of these
-`configure' parameters.
-
- In addition to the system wide packages, each user can have his own
-packages installed under `~/.xemacs/'. If you want to install packages
-there using the interactive tools, you need to set
-`package-get-install-to-user-init-directory' to `t'.
-
- The site-packages hierarchy replaces the old `site-lisp' directory.
-XEmacs no longer looks into a `site-lisp' directly by default. A good
-place to put `site-start.el' would be in
-`$prefix/lib/xemacs/site-packages/lisp/'.
-
-\1f
-File: xemacs-faq.info, Node: Q2.1.7, Next: Q2.2.1, Prev: Q2.1.6, Up: Installation
-
-Q2.1.7: EFS fails with "500 AUTH not understood" (NEW)
-------------------------------------------------------
-
-A typical error: FTP Error: USER request failed; 500 AUTH not
-understood.
-
- Thanks to giacomo boffi <giacomo.boffi@polimi.it> who recommends on
-comp.emacs.xemacs:
-
- tell your ftp client to not attempt AUTH authentication (or do not
-use FTP servers that don't understand AUTH)
-
- and notes that you need to add an element (often "-u") to
-`efs-ftp-program-args'. Use M-x customize-variable, and verify the
-needed flag with `man ftp' or other local documentation.
-
-2.2: Unix/Mac OS X Installation (Also Relevant to Cygwin, MinGW)
-================================================================
-
-\1f
-File: xemacs-faq.info, Node: Q2.2.1, Next: Q2.2.2, Prev: Q2.1.7, Up: Installation
-
-Q2.2.1: Libraries in non-standard locations
--------------------------------------------
-
-If your libraries are in a non-standard location, you can specify the
-location using the following flags to `configure'. Under 21.4 or
-earlier:
-
- --site-libraries=WHATEVER
- --site-includes=WHATEVER
-
- Under 21.5 or later:
-
- --with-site-libraries=WHATEVER
- --with-site-includes=WHATEVER
-
- If you have multiple paths to specify, use the following syntax:
-
- --site-libraries='/path/one /path/two /path/etc'
-
- If the libraries and headers reside in the directories `lib' and
-`include' of a common root (say `/sw') then both can be specified with
-a single option:
-
- --site-prefixes=WHATEVER
-
- or for 21.5:
-
- --with-site-prefixes=WHATEVER
-
-\1f
-File: xemacs-faq.info, Node: Q2.2.2, Next: Q2.3.1, Prev: Q2.2.1, Up: Installation
-
-Q2.2.2: Why can't I strip XEmacs?
----------------------------------
-
-Richard Cognot <cognot@fronsac.ensg.u-nancy.fr> writes:
-
- Because of the way XEmacs (and every other Emacsen, AFAIK) is
- built. The link gives you a bare-boned emacs (called temacs).
- temacs is then run, preloading some of the lisp files. The result
- is then dumped into a new executable, named xemacs, which will
- contain all of the preloaded lisp functions and data.
-
- Now, during the dump itself, the executable (code+data+symbols) is
- written on disk using a special unexec() function. This function is
- obviously heavily system dependent. And on some systems, it leads
- to an executable which, although valid, cannot be stripped without
- damage. If memory serves, this is especially the case for AIX
- binaries. On other architectures it might work OK.
-
- The Right Way to strip the emacs binary is to strip temacs prior to
- dumping xemacs. This will always work, although you can do that
- only if you install from sources (as temacs is `not' part of the
- binary kits).
-
- Nat Makarevitch <nat@nataa.fr.eu.org> writes:
-
- Here is the trick:
-
- 1. [ ./configure; make ]
-
- 2. rm src/xemacs
-
- 3. strip src/temacs
-
- 4. make
-
- 5. cp src/xemacs /usr/local/bin/xemacs
-
- 6. cp lib-src/DOC-19.16-XEmacs
- /usr/local/lib/xemacs-19.16/i586-unknown-linuxaout
-
-2.3: Windows Installation (Windows, Cygwin, MinGW)
-==================================================
-
-\1f
-File: xemacs-faq.info, Node: Q2.3.1, Next: Q2.3.2, Prev: Q2.2.2, Up: Installation
-
-Q2.3.1: What exactly are all the different ways to build XEmacs under Windows?
-------------------------------------------------------------------------------
-
-XEmacs can be built in several ways in the MS Windows environment.
-
- The standard way is what we call the "native" port. It uses the
-Win32 API and has no connection with X whatsoever - it does not require
-X libraries to build, nor does it require an X server to run. The
-native port is the most reliable version and provides the best graphical
-support. Almost all development is geared towards this version, and
-there is little reason not to use it.
-
- The second way to build is the Cygwin port. It takes advantage of
-Cygnus emulation library under Win32. *Note What are Cygwin and MinGW:
-Q1.2.5, for more information.
-
- A third way is the MinGW port. It uses the Cygwin environment to
-build but does not require it at runtime. *Note What are Cygwin and
-MinGW: Q1.2.5, for more information.
-
- Finally, you might also be able to build the non-Cygwin, non-MinGW
-"X" port. This was actually the first version of XEmacs that ran under
-MS Windows, and although the code is still in XEmacs, it's essentially
-orphaned and it's unlikely it will compile without a lot of work. If
-you want an MS Windows versin of XEmacs that supports X, use the Cygwin
-version. (The X support there is actively maintained, so that Windows
-developers can test the X support in XEmacs.)
-
-\1f
-File: xemacs-faq.info, Node: Q2.3.2, Next: Q2.3.3, Prev: Q2.3.1, Up: Installation
-
-Q2.3.2: What compiler/libraries do I need to compile XEmacs?
-------------------------------------------------------------
-
-You need Visual C++ 4.2, 5.0, or 6.0 for the native version. (We have
-some beta testers currently trying to compile with VC.NET, aka version
-7.0, but we can't yet report complete success.) For the Cygwin and
-MinGW versions, you need the Cygwin environment, which comes with GCC,
-the compiler used for those versions. *Note What are Cygwin and MinGW:
-Q1.2.5, for more information on Cygwin and MinGW.
-
-\1f
-File: xemacs-faq.info, Node: Q2.3.3, Next: Q2.3.4, Prev: Q2.3.2, Up: Installation
-
-Q2.3.3: How do I compile the native port?
------------------------------------------
-
-Please read the file `nt/README' in the XEmacs distribution, which
-contains the full description.
-
-\1f
-File: xemacs-faq.info, Node: Q2.3.4, Next: Q2.3.5, Prev: Q2.3.3, Up: Installation
-
-Q2.3.4: What do I need for Cygwin?
-----------------------------------
-
-You can find the Cygwin tools and compiler at:
-
- `http://www.cygwin.com/'
-
- Click on the `Install or update now!' link, which will download a
-file `setup.exe', which you can use to download everything else. (You
-will need to pick a mirror site; `mirrors.rcn.net' is probably the
-best.) You should go ahead and install everything - you'll get various
-ancillary libraries that XEmacs needs or likes, e.g. XPM, PNG, JPEG,
-TIFF, etc. You can also get X Windows here, if you want to compile
-under X.
-
- If you want to compile without X, you will need the `xpm-nox'
-library, which must be specifically selected in the Cygwin netinstaller;
-it is not selected by default. The package has had various names.
-Currently it is called `cygXpm-noX4.dll'.
-
-\1f
-File: xemacs-faq.info, Node: Q2.3.5, Next: Q2.3.6, Prev: Q2.3.4, Up: Installation
-
-Q2.3.5: How do I compile under Cygwin?
---------------------------------------
-
-Similar as on Unix; use the usual `configure' and `make' process. Some
-problems to watch out for:
-
- * make sure HOME is set. This controls where you `init.el' file
- comes from;
-
- * `CYGWIN' needs to be set to `tty' for process support to work;
-
- * picking up some other grep or other UNIX-like tools can kill
- configure;
-
- * static heap too small, adjust `src/sheap-adjust.h' to a more
- positive number;
-
- * (Unconfirmed) The Cygwin version doesn't understand
- `//machine/path' type paths so you will need to manually mount a
- directory of this form under a unix style directory for a build to
- work on the directory;
-
- * If you're building *WITHOUT* X11, don't forget to change symlinks
- `/usr/lib/libXpm.a' and `/usr/lib/libXpm.dll.a' to point to the
- non-X versions of these libraries. By default they point to the X
- versions. So:
-
- /usr/lib/libXpm.a -> /usr/lib/libXpm-noX.a
- /usr/lib/libXpm.dll.a -> /usr/lib/libXpm-noX.dll.a
-
- (This advice may now be obsolete because of the availability of the
- cygXpm-noX4.dll package from Cygwin. Send confirmation to
- <faq@xemacs.org>.)
-
- * Other problems are listed in the `PROBLEMS' file, in the top-level
- directory of the XEmacs sources.
-
-
-\1f
-File: xemacs-faq.info, Node: Q2.3.6, Next: Q2.3.7, Prev: Q2.3.5, Up: Installation
-
-Q2.3.6: How do I compile using MinGW (aka `the -mno-cygwin flag to gcc')?
--------------------------------------------------------------------------
-
-Similar to the method for Unix. Things to remember:
-
- * Specify the target host on the command line for `./configure', e.g.
- `./configure i586-pc-mingw32'.
-
- * Be sure that your build directory is mounted such that it has the
- same path either as a cygwin path (`/build/xemacs') or as a Windows
- path (`c:\build\xemacs').
-
- * Build `gcc -mno-cygwin' versions of the extra libs, i.e. `libpng',
- `compface', etc.
-
- * Specify the target location of the extra libs on the command line
- to `configure', e.g.for 21.4 or earlier `./configure
- --site-prefixes=/build/libs i586-pc-mingw32' and for 21.5 or later
- `./configure --with-site-prefixes=/build/libs i586-pc-mingw32'.
-
-\1f
-File: xemacs-faq.info, Node: Q2.3.7, Next: Q2.3.8, Prev: Q2.3.6, Up: Installation
-
-Q2.3.7: How do I compile with X support?
-----------------------------------------
-
-To compile under Cygwin, all you need to do is install XFree86, which
-is available as part of the standard Cygwin installation.
-`http://www.cygwin.com/'. Once installed, `configure' should
-automatically find the X libraries and compile with X support.
-
- As noted above, the non-Cygwin X support is basically orphaned, and
-probably won't work. But if it want to try, it's described in
-`nt/README' in some detail. Basically, you need to get X11 libraries
-from `http://ftp.x.org', and compile them. If the precompiled versions
-are available somewhere, we don't know of it.
-
-\1f
-File: xemacs-faq.info, Node: Q2.3.8, Next: Q2.4.1, Prev: Q2.3.7, Up: Installation
-
-Q2.3.8: Cygwin XEmacs won't start - cygXpm-noX4.dll was not found (NEW)
------------------------------------------------------------------------
-
-The Cygwin binary distributed with the netinstaller uses an external DLL
-to handle XPM images (such as toolbar buttons). You may get an error
-like
-
- This application has failed to start because cygXpm-noX4.dll was not found.
- Re-installing the application may fix this problem.
-
- Andy Piper <andy@xemacs.org> sez:
-
- cygXpm-noX4 is part of the cygwin distribution under libraries or
- graphics, but is not installed by default. You need to run the
- cygwin setup again and select this package.
-
- Ie, reinstalling XEmacs won't help because it is not part of the
-XEmacs distribution.
-
-2.4: General Troubleshooting
-============================
-
-\1f
-File: xemacs-faq.info, Node: Q2.4.1, Next: Q2.4.2, Prev: Q2.3.8, Up: Installation
-
-Q2.4.1: How do I deal with bugs or with problems building, installing, or running?
-----------------------------------------------------------------------------------
-
-The file `PROBLEMS' contains information on many common problems that
-occur in building, installing and running XEmacs.
-
- Reports of bugs in XEmacs should be sent to
-<xemacs-beta@xemacs.org>. You can also post to the newsgroup
-comp.emacs.xemacs (or equivalentlt, send to the mailing list
-<xemacs@xemacs.org>), but it is less likely that the developers will
-see it in a timely fashion. *Note Bugs: (xemacs)Bugs, for more
-information on how to report bugs. *Note Q1.4.2::, for more
-information on mailing lists relating to XEmacs.
-
- There are three ways to read the Bugs section.
-
- 1. In a printed copy of the XEmacs manual.
-
- 2. With Info. First, start XEmacs. From the menu, select
- `Help->Info (Online Docs)->Info Contents' to enter Info, then
- click on `XEmacs', then on `Bugs'. Or, use the keyboard: do `C-h
- i' to enter Info, then `m XEmacs RET' to get to the Emacs manual,
- then `m Bugs RET' to get to the section on bugs. Or use
- standalone Info in a like manner. (Standalone Info is part of the
- Texinfo distribution, not part of the XEmacs distribution.)
-
- 3. By hand. Do
- cat info/xemacs* | more "+/^File: xemacs.info, Node: Bugs,"
-
-\1f
-File: xemacs-faq.info, Node: Q2.4.2, Next: Q2.4.3, Prev: Q2.4.1, Up: Installation
-
-Q2.4.2: Help! XEmacs just crashed on me!
------------------------------------------
-
-First of all, don't panic. Whenever XEmacs crashes, it tries extremely
-hard to auto-save all of your files before dying. (The main time that
-this will not happen is if the machine physically lost power or if you
-killed the XEmacs process using `kill -9'). The next time you try to
-edit those files, you will be informed that a more recent auto-save
-file exists. You can use `M-x recover-file' to retrieve the auto-saved
-version of the file.
-
- You can use the command `M-x recover-session' after a crash to pick
-up where you left off.
-
- Now, XEmacs is not perfect, and there may occasionally be times, or
-particular sequences of actions, that cause it to crash. If you can
-come up with a reproducible way of doing this (or even if you have a
-pretty good memory of exactly what you were doing at the time), the
-maintainers would be very interested in knowing about it. The best way
-to report a bug is using `M-x report-emacs-bug' (or by selecting `Send
-Bug Report...' from the Help menu). If that won't work (e.g. you can't
-get XEmacs working at all), send ordinary mail to
-<xemacs-beta@xemacs.org>. _MAKE SURE_ to include the output from the
-crash, especially including the Lisp backtrace, as well as the XEmacs
-configuration from `M-x describe-installation' (or equivalently, the
-file `Installation' in the top of the build tree). Note that the
-developers do _not_ usually follow `comp.emacs.xemacs' on a regular
-basis; thus, this is better for general questions about XEmacs than bug
-reports.
-
- If at all possible, include a C stack backtrace of the core dump that
-was produced. This shows where exactly things went wrong, and makes it
-much easier to diagnose problems. To do this under Unix and Mac OS X,
-you need to locate the core file (it's called `core', and is usually
-sitting in the directory that you started XEmacs from, or your home
-directory if that other directory was not writable). Then, go to that
-directory and execute a command like:
-
- gdb `which xemacs` core
-
- and then issue the command `where' to get the stack backtrace. You
-might have to use `dbx' or some similar debugger in place of `gdb'. If
-you don't have any such debugger available, complain to your system
-administrator.
-
- It's possible that a core file didn't get produced or the stack trace
-from gdb is garbage, in which case you're out of luck unless you can
-reproduce the bug. A nonexistent core file can happen in some
-circumstances on some operating systems, depending on what exactly
-triggered the crash. It's also possible, however, that your limits are
-set to turn them off. You may be able to reenable them using a command
-like `unlimit coredumpsize' or `ulimit -c'. (To find out how your
-limits are set, use the command `limit'.) However, if you didn't
-explicitly set your limits this way, go complain to your system
-administrator and tell him not to disable core files by default.
-
- A garbaged stack trace can happen for various reasons. Some versions
-of gdb are broken on certain operating systems and aren't able to read
-the core file. It's also possible that the stack got overwritten
-during the crash. A very simple reason, however, is that your version
-of XEmacs was compiled without debugging information or had the
-debugging information stripped. A compilation with optimization can
-also result in partly or completely garbaged stack trace. In such
-cases, you will need to recompile XEmacs with debugging information and
-without optimization; *Note How to debug an XEmacs problem with a
-debugger: Q2.4.4. Note also that core files currently don't work at
-all under Cygwin, and the only way to get a backtrace is to run XEmacs
-from gdb.
-
- If you cannot get a backtrace from the core dump, but can reproduce
-the problem, try running XEmacs under gdb. The goal is to get clean C
-and Lisp backtraces and submit a bug report including full
-configuration information as described above, as this will greatly
-assist in the process of tracking down the bug. However, even partial
-information is better than none. The process of getting backtraces
-from gdb is described in detail in *Note How to debug an XEmacs problem
-with a debugger: Q2.4.4.
-
- If you're under Microsoft Windows, you're out of luck unless you
-happen to have a debugging aid installed on your system, for example
-Visual C++. In this case, the crash will result in a message giving
-you the option to enter a debugger (for example, by pressing `Cancel').
-Do this and locate the stack-trace window. (If your XEmacs was built
-without debugging information, the stack trace may not be very useful.)
-
- When making a problem report make sure that:
-
- 1. Report *all* of the information output by XEmacs during the crash.
-
- 2. You mention what O/S and Hardware you are running XEmacs on.
-
- 3. What version of XEmacs you are running.
-
- 4. What build options you are using.
-
- 5. If the problem is related to graphics and you are running Unix or
- Mac OS X, we will also need to know what version of the X Window
- System you are running, and what window manager you are using.
-
- 6. If the problem happened on a TTY, please include the terminal type.
-
- 7. Try very hard to get both C and Lisp backtraces, as described
- above.
-
- Much of the information above is automatically generated by `M-x
-report-emacs-bug'. Even more, and often useful, information can be
-generated by redirecting the output of `make' and `make check' to a
-file (`beta.err' is the default used by `build-report'), and executing
-`M-x build-report'.
-
-\1f
-File: xemacs-faq.info, Node: Q2.4.3, Next: Q2.4.4, Prev: Q2.4.2, Up: Installation
-
-Q2.4.3: XEmacs crashes and I compiled it myself.
-------------------------------------------------
-
-There have been a variety of reports of crashes due to compilers with
-buggy optimizers. If you are compiling with optimization, consider
-turning it off (*note How to debug an XEmacs problem with a debugger:
-Q2.4.4.) and recompiling.
-
- Please see the `PROBLEMS' file that comes with XEmacs (it's in the
-top-level source directory) to read what it says about your platform.
-
- If you compiled XEmacs 21.4 or ealier using `--use-union-type', or
-21.5 or later using `--enable-union-type' (or in either case used the
-option `USE_UNION_TYPE' in `config.inc' under Windows), try recompiling
-again without it. The union type has been known to trigger compiler
-errors in a number of cases.
-
-\1f
-File: xemacs-faq.info, Node: Q2.4.4, Next: Q2.4.5, Prev: Q2.4.3, Up: Installation
-
-Q2.4.4: How to debug an XEmacs problem with a debugger
-------------------------------------------------------
-
-If XEmacs does crash on you, one of the most productive things you can
-do to help get the bug fixed is to poke around a bit with the debugger.
-Here are some hints:
-
- * First of all, if the crash is at all reproducible, consider very
- strongly recompiling your XEmacs with debugging symbols and with no
- optimization (e.g. with GCC use the compiler flags `-g -O0' -
- that's an "oh" followed by a zero), and with the configure options
- `--debug=yes' and `--error-checking=all' (`--enable-debug=yes' and
- `--enable-error-checking=all' on XEmacs 21.5 or later). This will
- make your XEmacs run somewhat slower, but you are a lot more
- likely to catch the problem earlier (closer to its source). It
- makes it a lot easier to determine what's going on with a
- debugger. The way to control the compiler flags is with the
- configuration option `--cflags' (`--with-cflags' in 21.5). If you
- have a recent version of 21.5, you should use
- `--without-optimization' in preference to directly setting
- `--cflags'.
-
- * If it's not a true crash (_i.e._, XEmacs is hung, or a zombie
- process), or it's inconvenient to run XEmacs again because XEmacs
- is already running or is running in batch mode as part of a bunch
- of scripts, you may be able to attach to the existing process with
- your debugger. Under Unix and Mac OS X, the typical way to do
- this is to first use some variant of the `ps' command to figure
- out the process ID of XEmacs, for example `ps -auxww | grep
- xemacs' under a BSD variant, `ps -elf | grep xemacs' under Linux
- or System V, or `ps -aW | grep xemacs' under Cygwin. Then run
-
- gdb /path/to/xemacs/xemacs ####
-
- Where `####' is the process id of your XEmacs. (If you're not
- sure, try using `which xemacs'.) When gdb attaches, the xemacs
- will stop and you can type `where' in gdb to get a stack trace as
- usual. To get things moving again, you can just type `quit' in
- gdb. It'll tell you the program is running and ask if you want to
- quit anyways. Say `y' and it'll quit and have your emacs continue
- from where it was at.
-
- If you're running another debugger, a similar method may work, or
- you may have to run the debugger first and then use the `attach'
- command or something similar.
-
- Under Microsoft Windows, use the menu item `Build->Start
- Debug->Attach to Process...' and select the XEmacs process from
- the list given.
-
- * If you're able to run XEmacs under a debugger and reproduce the
- crash, here are some things you can do:
-
- * If XEmacs is hitting an assertion failure, put a breakpoint on
- `assert_failed()'.
-
- * If XEmacs is hitting some weird Lisp error that's causing it to
- crash (e.g. during startup), put a breakpoint on
- `signal_1()'--this is declared static in `eval.c'.
-
- * If XEmacs is outputting lots of X errors, put a breakpoint on
- `x_error_handler()'; that will tell you which call is causing
- them. Note that the result may not be very useful by default
- because X Windows normally operates asynchronously: A bunch of
- commands are buffered up and then sent to the server all at once.
- This greatly improves performance over a network but means that an
- error may not be reported until the server receives the commands,
- which can be long after XEmacs made the erroneous calls. For best
- results, you need to make the X server synchronous before getting
- the backtrace. This can be done by starting XEmacs with the
- `-sync' option or executing the Lisp code `(x-debug-mode t)'.
-
- * Internally, you will probably see lots of variables that hold
- objects of type `Lisp_Object'. These are references to Lisp
- objects. Printing them out with the debugger probably won't be too
- useful--you'll likely just see a number. To decode them, do this:
-
- call debug_print (OBJECT)
-
- where OBJECT is whatever you want to decode (it can be a variable,
- a function call, etc.). This uses the Lisp printing routines to
- out a readable representation on the TTY from which the xemacs
- process was invoked.
-
- Under 21.5 and later, `dp' is defined as an easier-to-type
- equivalent of `debug_print'. You can also try `dpa' if you can't
- see the output from `debug_print' (this will return a string
- containing the output), or use `debug_p3' if `debug_print' itself
- triggers a crash (this is a less comprehensive but super-safe way
- to print out a Lisp object).
-
- * If you want to get a Lisp backtrace showing the Lisp call stack,
- do this:
-
- call debug_backtrace ()
-
- Under 21.5 and later, `db' is defined as an easier-to-type
- equivalent of `debug_backtrace'.
-
- * Using `debug_print' and `debug_backtrace' has two disadvantages -
- they can only be used with a running (including hung or zombie)
- xemacs process, and they do not display the internal C structure
- of a Lisp Object. Even if all you've got is a core dump, all is
- not lost.
-
- If you're using GDB, there are some macros in the file
- `src/.gdbinit' in the XEmacs source distribution that should make
- it easier for you to decode Lisp objects. This file is
- automatically read by gdb if gdb is run in the directory where
- xemacs was built, and contains these useful macros to inspect the
- state of xemacs:
-
- `pobj'
- Usage: pobj lisp_object
- Print the internal C representation of a lisp object.
-
- `xtype'
- Usage: xtype lisp_object
- Print the Lisp type of a lisp object.
-
- `lbt'
- Usage: lbt
- Print the current Lisp stack trace. Requires a running
- xemacs process. (It works by calling the db routine
- described above.)
-
- `ldp'
- Usage: ldp lisp_object
- Print a Lisp Object value using the Lisp printer. Requires a
- running xemacs process. (It works by calling the dp routine
- described above.)
-
- `run-temacs'
- Usage: run-temacs
- Run temacs interactively, like xemacs. Use this with
- debugging tools (like purify) that cannot deal with dumping,
- or when temacs builds successfully, but xemacs does not.
-
- `dump-temacs'
- Usage: dump-temacs
- Run the dumping part of the build procedure. Use when
- debugging temacs, not xemacs! Use this when temacs builds
- successfully, but xemacs does not.
-
- `check-xemacs'
- Usage: check-xemacs
- Run the test suite. Equivalent to 'make check'.
-
- `check-temacs'
- Usage: check-temacs
- Run the test suite on temacs. Equivalent to 'make
- check-temacs'. Use this with debugging tools (like purify)
- that cannot deal with dumping, or when temacs builds
- successfully, but xemacs does not.
-
- If you are using Sun's `dbx' debugger, there is an equivalent file
- `src/.dbxrc', which defines the same commands for dbx.
-
- * If you're using a debugger to get a C stack backtrace and you're
- seeing stack traces with some of the innermost frames mangled, it
- may be due to dynamic linking. (This happens especially under
- Linux.) Consider reconfiguring with `--dynamic=no'
- (`--with-dynamic=no' in 21.5 or later). Also, sometimes (again
- under Linux), stack backtraces of core dumps will have the frame
- where the fatal signal occurred mangled; if you can obtain a stack
- trace while running the XEmacs process under a debugger, the stack
- trace should be clean.
-
- Curtiss <1CMC3466@ibm.mtsac.edu> suggests upgrading to ld.so
- version 1.8 if dynamic linking and debugging is a problem on Linux.
-
- * If you're using a debugger to get a C stack backtrace and you're
- getting a completely mangled and bogus stack trace, it's probably
- due to one of the following:
-
- a. Your executable has been stripped. Bad news. Tell your
- sysadmin not to do this--it doesn't accomplish anything
- except to save a bit of disk space, and makes debugging much
- much harder.
-
- b. Your stack is getting trashed. Debugging this is hard; you
- have to do a binary-search type of narrowing down where the
- crash occurs, until you figure out exactly which line is
- causing the problem. Of course, this only works if the bug
- is highly reproducible. Also, in many cases if you run
- XEmacs from the debugger, the debugger can protect the stack
- somewhat. However, if the stack is being smashed, it is
- typically the case that there is a wild pointer somewhere in
- the program, often quite far from where the crash occurs.
-
- c. If your stack trace has exactly one frame in it, with address
- 0x0, this could simply mean that XEmacs attempted to execute
- code at that address, e.g. through jumping to a null function
- pointer. Unfortunately, under those circumstances, GDB under
- Linux doesn't know how to get a stack trace. (Yes, this is
- the fourth Linux-related problem I've mentioned. I have no
- idea why GDB under Linux is so bogus. Complain to the GDB
- authors, or to comp.os.linux.development.system.) Again,
- you'll have to use the narrowing-down process described above.
-
- d. You will get a Lisp backtrace output when XEmacs crashes, so
- you'll have something useful.
-
-
- * If you compile with the newer gcc variants gcc-2.8 or egcs, you
- will also need gdb 4.17 or above. Earlier releases of gdb can't
- handle the debug information generated by the newer compilers.
-
- * In versions of XEmacs before 21.2.27, `src/.gdbinit' was named
- `src/gdbinit'. This had the disadvantage of not being sourced
- automatically by gdb, so you had to set that up yourself.
-
- * If you are running Microsoft Windows, the the file `nt/README' for
- further information about debugging XEmacs.
-
-
-\1f
-File: xemacs-faq.info, Node: Q2.4.5, Next: Q2.4.6, Prev: Q2.4.4, Up: Installation
-
-Q2.4.5: I get a cryptic error message when trying to do something.
-------------------------------------------------------------------
-
-When I try to use some particular option of some particular package, I
-get a cryptic error message in the minibuffer.
-
- If the message went by too quickly, use `Help->Recent Messages' from
-the menubar (or type `C-h l') to see recent messages.
-
- If you can't figure out what's going on, select
-`Options->Troubleshooting->Debug on Error' from the menubar (or type
-`M-:' then `(setq debug-on-error t)') then try and make the error
-happen again. This will put in the debugger (you can get out of this
-and continue what you were doing before by typing `c') and give you a
-backtrace that may be enlightening. If not, try reading through this
-FAQ; if that fails, you could try posting to `comp.emacs.xemacs'
-(making sure to include the backtrace) and someone may be able to help.
-If you can identify which XEmacs Lisp source file the error is coming
-from you can get a more detailed stack backtrace by doing the following:
-
- 1. Visit the .el file in an XEmacs buffer.
-
- 2. Issue the command `M-x eval-current-buffer'.
-
- 3. Reproduce the error.
-
- For more information on debugging Lisp code, *Note Debugging:
-(lispref)Debugging.
-
-\1f
-File: xemacs-faq.info, Node: Q2.4.6, Next: Q2.4.7, Prev: Q2.4.5, Up: Installation
-
-Q2.4.6: XEmacs hangs when I try to do something.
-------------------------------------------------
-
-XEmacs might just be slow; some operations take a long time. XEmacs
-may also be waiting on a response from the network, for example when
-you are trying to send mail.
-
- You can usually interrupt XEmacs by typing `C-g'. If not (for
-example, Lisp code explicitly disabled this by setting `inhibit-quit'),
-you can use the "critical quit" mechanism by typing `Control-Shift-G'.
-This should also pop you into the debugger and give you a backtrace,
-which can tell you where the problem is (*note How to debug an XEmacs
-problem with a debugger: Q2.4.4.). (Note that setting `debug-on-quit'
-or selecting `Options->Troubleshooting->Debug on Quit' will also cause
-regular `C-g' to enter the debugger and give you a backtrace.)
-
- If you can't interrupt XEmacs this way, or for some reason XEmacs is
-not talking to the keyboard, you can try sending the `SIGINT' signal
-using the `kill' command.
-
- If the Lisp backtrace isn't enlightening, or if XEmacs is so hung
-that you can't interrupt it at all, you could try attaching to the
-process and getting a C stack backtrace. *Note How to debug an XEmacs
-problem with a debugger: Q2.4.4.
-
-\1f
-File: xemacs-faq.info, Node: Q2.4.7, Next: Q2.4.8, Prev: Q2.4.6, Up: Installation
-
-Q2.4.7: I get an error message when XEmacs is running in batch mode.
---------------------------------------------------------------------
-
-Typically this happens when you are trying to compile some Elisp code.
-If you are doing this as part of XEmacs or the XEmacs packages, you
-should automatically get a backtrace, which can help you determine the
-source of the problem. In other cases, you can get equivalent results
-by setting the environment variable `XEMACSDEBUG' to `(setq
-stack-trace-on-error t load-always-display-messages t
-load-ignore-out-of-date-elc-files t load-show-full-path-in-messages t)'
-(this needs to be all on one line; to set an environment variable, use
-`export XEMACSDEBUG='FOO'' under `bash', `zsh', etc. or `setenv
-XEMACSDEBUG 'FOO'' under `csh' and `tcsh'). `XEMACSDEBUG' specifies
-Lisp code that will be executed at startup time.
-
- If the backtrace is not sufficiently useful in helping you diagnose
-the problem, you should consider using a debugger such as GDB. *Note
-How to debug an XEmacs problem with a debugger: Q2.4.4. You probably
-want to set a breakpoint on `signal_1'. Since such errors often occur
-during compiling, which is often triggered by a complex command run
-from a make suite, it may be easier to attach to the process once it's
-running.
-
- Under Microsoft Windows (and perhaps other operating systems), there
-is another useful trick you can do if you have configured with debugging
-support (configure option `--debug' (`--with-debug' in 21.5) or setting
-`DEBUG_XEMACS' in `nt/config.inc'). Set the environment variable
-`XEMACSDEBUG' (as described above) to `(setq debug-on-error t)'. Then,
-when an error occurs noninteractively, instead of trying to invoke the
-Lisp debugger (which obviously won't work), XEmacs will break out to a
-C debugger using `(force-debugging-signal t)'. _NOTE_: This runs
-`abort()'!!! (As well as and after executing INT 3 under MS Windows,
-which should invoke a debugger if it's active.) This is guaranteed to
-kill XEmacs! (But in this situation, XEmacs is about to die anyway, and
-if no debugger is present, this will usefully dump core.)
-
-\1f
-File: xemacs-faq.info, Node: Q2.4.8, Next: Q2.4.9, Prev: Q2.4.7, Up: Installation
-
-Q2.4.8: The keyboard or mouse is not working properly, or I have some other event-related problem.
---------------------------------------------------------------------------------------------------
-
-XEmacs has various facilities for debugging event handling.
-
- First, try setting the variable `debug-emacs-events' to non-zero.
-This will output various information showing which events are being
-received and how they are being translated. This may show you, for
-example, that a key command is getting intercepted using
-`key-translation-map'; this problem can otherwise be very tricky to
-debug.
-
- Under X, you can see exactly which events are being received from the
-window system by setting `x-debug-events' to non-zero. (The value `1'
-gives you regular output, and `2' gives you verbose output, including
-all parameters.)
-
- A similar facility exists under MS Windows: Set
-`debug-mswindows-events' to non-zero. (The value `1' gives you regular
-output. The value `2' gives you verbose output, including all
-parameters. The value `3' gives you super-gorily-detailed output.)
-
-\1f
-File: xemacs-faq.info, Node: Q2.4.9, Next: Q2.4.10, Prev: Q2.4.8, Up: Installation
-
-Q2.4.9: `C-g' doesn't work for me. Is it broken?
--------------------------------------------------
-
-`C-g' does work for most people in most circumstances. If it doesn't,
-there are two possible explanations:
-
- 1. XEmacs is hung in a way that prevents `C-g' from working. This
- can happen when code is wrapped with a binding of `inhibit-quit'
- to `t'; you should still be able interrupt XEmacs using "critical
- quit". On the other hand, XEmacs may be seriously wedged. (If
- you're lucky, sending `SIGINT' to the XEmacs process will
- interrupt it.) *Note XEmacs hangs when I try to do something.:
- Q2.4.6.
-
- 2. `C-g' is indeed broken on your system. To test, try executing
- `(while t)' from the `*scratch*' buffer. If `C-g' doesn't
- interrupt, then it's broken. This used to happen with systems
- where `SIGIO' was broken, but `BROKEN_SIGIO' wasn't defined.
- However, there may not be very many such systems nowadays.
-
-\1f
-File: xemacs-faq.info, Node: Q2.4.10, Next: Q2.4.11, Prev: Q2.4.9, Up: Installation
-
-Q2.4.10: How do I debug process-related problems?
--------------------------------------------------
-
-Under MS Windows, you can set the variable
-`debug-mswindows-process-command-lines' to non-`nil' to get information
-on exactly what is getting passed to a process. This can be useful in
-determining problems with quoting. (Under Unix, a process receives each
-argument separately, but under MS Windows a single command line is
-received, and arguments with spaces or other special characters in them
-must be quoted. Unfortunately this means that each process,
-potentially at least, has its own quoting conventions, and the code to
-process quoting conventions in `cmd.exe', the Visual C++ startup code
-and the like is baroque and poorly documented. XEmacs uses the variable
-`mswindows-construct-process-command-line-alist' to construct a command
-line from a list of arguments based on the command to be run, but it is
-(and cannot be) a perfect solution.)
-
-\1f
-File: xemacs-faq.info, Node: Q2.4.11, Next: Q2.4.12, Prev: Q2.4.10, Up: Installation
-
-Q2.4.11: XEmacs is outputting lots of X errors.
------------------------------------------------
-
-If this is happening, we would very much like to know what's causing
-them. To find this out, see *Note How to debug an XEmacs problem with
-a debugger: Q2.4.4. Try to get both a C and Lisp backtrace, and send
-them along with the full error output to <xemacs-beta@xemacs.org>.
-
-\1f
-File: xemacs-faq.info, Node: Q2.4.12, Next: Q2.5.1, Prev: Q2.4.11, Up: Installation
-
-Q2.4.12: After upgrading, XEmacs won't do `foo' any more!
----------------------------------------------------------
-
-You have been used to doing `foo', but now when you invoke it (or click
-the toolbar button or select the menu item), nothing (or an error)
-happens. The simplest explanation is that you are missing a package
-that is essential to you. You can either track it down and install it
-(there is a list of packages and brief descriptions of their contents
-in `etc/PACKAGES'), or install the `Sumo Tarball' (*note How do I
-figure out which packages to install?: Q2.1.2.).
-
-2.5: Startup-Related Problems
-=============================
-
-\1f
-File: xemacs-faq.info, Node: Q2.5.1, Next: Q2.5.2, Prev: Q2.4.12, Up: Installation
-
-Q2.5.1: XEmacs cannot connect to my X Terminal!
------------------------------------------------
-
-Help! I can not get XEmacs to display on my Envizex X-terminal!
-
- Try setting the `DISPLAY' variable using the numeric IP address of
-the host you are running XEmacs from.
-
-\1f
-File: xemacs-faq.info, Node: Q2.5.2, Next: Q2.5.3, Prev: Q2.5.1, Up: Installation
-
-Q2.5.2 Startup problems related to paths or package locations.
---------------------------------------------------------------
-
-First of all, if XEmacs can't find the packages, check to make sure
-that you put the packages in the right place, or that you told XEmacs
-where to look for the packages when you compiled it. *Note Q2.1.1::.
-
- If something is still going wrong, or you get a startup warning about
-not being able to deduce some paths, you can get detailed information
-on the path-searching process at startup by setting the environment
-variable `EMACSDEBUGPATHS' to a non-null value. One thing to look for
-if you're having package problems is the value of
-`configure-package-path'. This corresponds to what was compiled into
-XEmacs using the `--package-prefix' or `--package-path' parameter
-(*note Q2.1.1::). If this has the value of `nil', this means that no
-value was compiled into XEmacs using these parameters.
-
-\1f
-File: xemacs-faq.info, Node: Q2.5.3, Next: Q2.5.4, Prev: Q2.5.2, Up: Installation
-
-Q2.5.3: XEmacs won't start without network.
--------------------------------------------
-
-If XEmacs starts when you're on the network, but fails when you're not
-on the network, you may be missing a "localhost" entry in your
-`/etc/hosts' file. The file should contain an entry like:
-
- 127.0.0.1 localhost
-
- Add that line, and XEmacs will be happy.
-
-\1f
-File: xemacs-faq.info, Node: Q2.5.4, Next: Q2.5.5, Prev: Q2.5.3, Up: Installation
-
-Q2.5.4: Startup warnings about deducing proper fonts?
------------------------------------------------------
-
-How can I avoid the startup warnings about deducing proper fonts?
-
- This is highly dependent on your installation, but try with the
-following font as your base font for XEmacs and see what it does:
-
--adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1
-
- More precisely, do the following in your resource file:
-
-Emacs.default.attributeFont: \
--adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1
-
- If you just don't want to see the `*Warnings*' buffer at startup
-time, you can set this:
-
- (setq display-warning-minimum-level 'error)
-
- The buffer still exists; it just isn't in your face.
-
-\1f
-File: xemacs-faq.info, Node: Q2.5.5, Next: Q2.5.6, Prev: Q2.5.4, Up: Installation
-
-Q2.5.5: Warnings from incorrect key modifiers.
-----------------------------------------------
-
-The following information comes from the `PROBLEMS' file that comes
-with XEmacs.
-
- If you're having troubles with HP/UX it is because HP/UX defines the
-modifiers wrong in X. Here is a shell script to fix the problem; be
-sure that it is run after VUE configures the X server.
-
- #! /bin/sh
- xmodmap 2> /dev/null - << EOF
- keysym Alt_L = Meta_L
- keysym Alt_R = Meta_R
- EOF
-
- xmodmap - << EOF
- clear mod1
- keysym Mode_switch = NoSymbol
- add mod1 = Meta_L
- keysym Meta_R = Mode_switch
- add mod2 = Mode_switch
- EOF
-
-\1f
-File: xemacs-faq.info, Node: Q2.5.6, Prev: Q2.5.5, Up: Installation
-
-Q2.5.6: XEmacs 21.1 on Windows used to spawn an ugly console window on every startup. Has that been fixed?
------------------------------------------------------------------------------------------------------------
-
-Yes.
-
- The console was there because `temacs' (and in turn, `xemacs') was a
-console application, and Windows typically creates a new console for a
-console process unless the creating process requests that one isn't
-created. This used to be fixed with `runemacs', a small Windows
-application that existed merely to start `xemacs', stating that it
-didn't want a console.
-
- XEmacs 21.4 fixes this cleanly by the virtue of being a true "GUI"
-application. The explanation of what that means is included for
-educational value.
-
- When building an application to be run in a Win32 environment, you
-must state which sub-system it is to run in. Valid subsystems include
-"console" and "gui". The subsystem you use affects the run time
-libraries linked into your application, the start up function that is
-run before control is handed over to your application, the entry point
-to your program, and how Windows normally invokes your program. (Console
-programs automatically get a console created for them at startup if
-their stdin/stdout don't point anywhere useful, which is the case when
-run from the GUI. This is a stupid design, of course - instead, the
-console should get created only when the first I/O actually occurs!
-GUI programs have an equally stupid design: When called from
-`CMD.EXE'/`COMMAND.COM', their stdin/stdout will be set to point
-nowhere useful, even though the command shell has its own stdin/stdout.
-It's as if someone who had learned a bit about stdio but had no actual
-knowledge of interprocess communication designed the scheme;
-unfortunately, the whole process-communication aspect of the Win32 API
-is equally badly designed.) For example, the entry point for a console
-app is "main" (which is what you'd expect for a C/C++ program), but the
-entry point for a "gui" app is "WinMain". This confuses and annoys a
-lot of programmers who've grown up on Unix systems, where the kernel
-doesn't really care whether your application is a gui program or not.
-
- For reasons not altogether clear, and are lost in the mists of time
-and tradition, XEmacs on Win32 started out as a console application, and
-therefore a console was automatically created for it. (It may have been
-made a console application partly because a console is needed in some
-circumstances, especially under Win95, to interrupt, terminate, or send
-signals to a child process, and because of the bogosity mentioned above
-with GUI programs and the standard command shell. Currently, XEmacs
-just creates and immediately hides a console when necessary, and works
-around the "no useful stdio" problem by creating its own console window
-as necessary to display messages in.)
-
-\1f
-File: xemacs-faq.info, Node: Editing, Next: Display, Prev: Installation, Up: Top
-
-3 Editing Functions
-*******************
-
-This is part 3 of the XEmacs Frequently Asked Questions list. This
-section is devoted to the editing-related capabilities of XEmacs (the
-keyboard, mouse, buffers, text selections, etc.) and how to customize
-them.
-
-* Menu:
-
-3.0: The Keyboard
-* Q3.0.1:: How can I customize the keyboard?
-* Q3.0.2:: How can I bind complex functions (or macros) to keys?
-* Q3.0.3:: How do I bind C-. and C-; to scroll one line up and down?
-* Q3.0.4:: Globally binding Delete?
-* Q3.0.5:: How to map Help key alone on Sun type4 keyboard?
-* Q3.0.6:: How can you type in special characters in XEmacs?
-* Q3.0.7:: Can I turn on "sticky" modifier keys?
-* Q3.0.8:: How do I map the arrow keys?
-* Q3.0.9:: HP Alt key as Meta.
-* Q3.0.10:: Why does edt emulation not work?
-* Q3.0.11:: How can I emulate VI and use it as my default mode?
-
-3.1: The Mouse
-* Q3.1.1:: How can I turn off Mouse pasting?
-* Q3.1.2:: How do I set control/meta/etc modifiers on mouse buttons?
-* Q3.1.3:: Clicking the left button does not do anything in buffer list.
-* Q3.1.4:: How can I get a list of buffers when I hit mouse button 3?
-* Q3.1.5:: How can I set XEmacs up so that it pastes where the text cursor is?
-
-3.2: Buffers, Text Editing
-* Q3.2.1:: Can I have the end of the buffer delimited in some way?
-* Q3.2.2:: How do I insert today's date into a buffer?
-* Q3.2.3:: How do I get a single minibuffer frame?
-* Q3.2.4:: How can I enable auto-indent and/or Filladapt?
-* Q3.2.5:: How can I get XEmacs to come up in text/auto-fill mode by default?
-
-3.3: Text Selections
-* Q3.3.1:: How do I select a rectangular region?
-* Q3.3.2:: How can I turn off or change highlighted selections?
-* Q3.3.3:: How do I cause typing on an active region to remove it?
-* Q3.3.4:: Can I turn off the highlight during isearch?
-* Q3.3.5:: Why is killing so slow?
-* Q3.3.6:: Why does M-w take so long?
-
-3.4: Editing Source Code
-* Q3.4.1:: I do not like cc-mode. How do I use the old c-mode?
-* Q3.4.2:: How do you make XEmacs indent CL if-clauses correctly?
-
-3.0: The Keyboard
-=================
-
-\1f
-File: xemacs-faq.info, Node: Q3.0.1, Next: Q3.0.2, Prev: Editing, Up: Editing
-
-Q3.0.1: How can I customize the keyboard?
------------------------------------------
-
-#### Write me.
-
-\1f
-File: xemacs-faq.info, Node: Q3.0.2, Next: Q3.0.3, Prev: Q3.0.1, Up: Editing
-
-Q3.0.2: How can I bind complex functions (or macros) to keys?
--------------------------------------------------------------
-
-As an example, say you want the `paste' key on a Sun keyboard to insert
-the current Primary X selection at point. You can accomplish this with:
-
- (define-key global-map [f18] 'x-insert-selection)
-
- However, this only works if there is a current X selection (the
-selection will be highlighted). The functionality I like is for the
-`paste' key to insert the current X selection if there is one,
-otherwise insert the contents of the clipboard. To do this you need to
-pass arguments to `x-insert-selection'. This is done by wrapping the
-call in a 'lambda form:
-
- (global-set-key [f18]
- (lambda () (interactive) (x-insert-selection t nil)))
-
- This binds the f18 key to a "generic" functional object. The
-interactive spec is required because only interactive functions can be
-bound to keys.
-
- For the FAQ example you could use:
-
- (global-set-key [(control ?.)]
- (lambda () (interactive) (scroll-up 1)))
- (global-set-key [(control ?;)]
- (lambda () (interactive) (scroll-up -1)))
-
- This is fine if you only need a few functions within the lambda body.
-If you're doing more it's cleaner to define a separate function. *Note
-How do I bind C-. and C-; to scroll one line up and down?: Q3.0.3.
-
-\1f
-File: xemacs-faq.info, Node: Q3.0.3, Next: Q3.0.4, Prev: Q3.0.2, Up: Editing
-
-Q3.0.3: How do I bind C-. and C-; to scroll one line up and down?
------------------------------------------------------------------
-
-Add the following (Thanks to Richard Mlynarik <mly@adoc.xerox.com> and
-Wayne Newberry <wayne@zen.cac.stratus.com>) to `.emacs':
-
- (defun scroll-up-one-line ()
- (interactive)
- (scroll-up 1))
-
- (defun scroll-down-one-line ()
- (interactive)
- (scroll-down 1))
-
- (global-set-key [(control ?.)] 'scroll-up-one-line) ; C-.
- (global-set-key [(control ?;)] 'scroll-down-one-line) ; C-;
-
- The key point is that you can only bind simple functions to keys; you
-can not bind a key to a function that you're also passing arguments to.
-(*note How can I bind complex functions (or macros) to keys?: Q3.0.2.
-for a better answer).
-
-\1f
-File: xemacs-faq.info, Node: Q3.0.4, Next: Q3.0.5, Prev: Q3.0.3, Up: Editing
-
-Q3.0.4: Globally binding `Delete'?
-----------------------------------
-
-I cannot manage to globally bind my `Delete' key to something other
-than the default. How does one do this?
-
- Answer: The problem is that many modes explicitly bind `Delete'. To
-get around this, try the following:
-
- (defun foo ()
- (interactive)
- (message "You hit DELETE"))
-
- (define-key key-translation-map 'delete 'redirected-delete)
- (global-set-key 'redirected-delete 'foo)
-
-\1f
-File: xemacs-faq.info, Node: Q3.0.5, Next: Q3.0.6, Prev: Q3.0.4, Up: Editing
-
-Q3.0.5: How to map `Help' key alone on Sun type4 keyboard?
-----------------------------------------------------------
-
-The following works in GNU Emacs 19:
-
- (global-set-key [help] 'help-command);; Help
-
- The following works in XEmacs with the addition of shift:
-
- (global-set-key [(shift help)] 'help-command);; Help
-
- But it doesn't work alone. This is in the file `PROBLEMS' which
-should have come with your XEmacs installation: _Emacs ignores the
-`help' key when running OLWM_.
-
- OLWM grabs the `help' key, and retransmits it to the appropriate
-client using `XSendEvent'. Allowing Emacs to react to synthetic events
-is a security hole, so this is turned off by default. You can enable
-it by setting the variable `x-allow-sendevents' to t. You can also
-cause fix this by telling OLWM to not grab the help key, with the null
-binding `OpenWindows.KeyboardCommand.Help:'.
-
-\1f
-File: xemacs-faq.info, Node: Q3.0.6, Next: Q3.0.7, Prev: Q3.0.5, Up: Editing
-
-Q3.0.6: How can you type in special characters in XEmacs?
----------------------------------------------------------
-
-One way is to use the package `x-compose'. Then you can use sequences
-like `Compose " a' to get ä, etc.
-
- Another way is to use the `iso-insert' package. Then you can use
-sequences like `C-x 8 " a' to get ä, etc.
-
- Glynn Clements <glynn@sensei.co.uk> writes:
-
- It depends upon your X server.
-
- Generally, the simplest way is to define a key as Multi_key with
- xmodmap, e.g.
- xmodmap -e 'keycode 0xff20 = Multi_key'
-
- You will need to pick an appropriate keycode. Use xev to find out
- the keycodes for each key.
-
- [NB: On a `Windows' keyboard, recent versions of XFree86
- automatically define the right `Windows' key as Multi_key'.]
-
- Once you have Multi_key defined, you can use e.g.
- Multi a ' => á
- Multi e " => ë
- Multi c , => ç
-
- etc.
-
- Also, recent versions of XFree86 define various AltGr-<key>
- combinations as dead keys, i.e.
- AltGr [ => dead_diaeresis
- AltGr ] => dead_tilde
- AltGr ; => dead_acute
- etc.
-
- Running `xmodmap -pk' will list all of the defined keysyms.
-
- For the related problem of _displaying_ non-ASCII characters in a
-non-Mule XEmacs, *Note How do I display non-ASCII characters?: Q4.0.8.
-
-\1f
-File: xemacs-faq.info, Node: Q3.0.7, Next: Q3.0.8, Prev: Q3.0.6, Up: Editing
-
-Q3.0.7: Can I turn on "sticky" modifier keys?
----------------------------------------------
-
-Yes, with `(setq modifier-keys-are-sticky t)'. This will give the
-effect of being able to press and release Shift and have the next
-character typed come out in upper case. This will affect all the other
-modifier keys like Control and Meta as well.
-
- Ben Wing <ben@xemacs.org> writes:
-
- One thing about the sticky modifiers is that if you move the mouse
- out of the frame and back in, it cancels all currently "stuck"
- modifiers.
-
-\1f
-File: xemacs-faq.info, Node: Q3.0.8, Next: Q3.0.9, Prev: Q3.0.7, Up: Editing
-
-Q3.0.8: How do I map the arrow keys?
-------------------------------------
-
-Say you want to map `C-<right>' to forward-word:
-
- Sam Steingold <sds@usa.net> writes:
-
- ; both XEmacs and Emacs
- (define-key global-map [(control right)] 'forward-word)
- or
- ; Emacs only
- (define-key global-map [C-right] 'forward-word)
- or
- ; ver > 20, both
- (define-key global-map (kbd "C-<right>") 'forward-word)
-
-\1f
-File: xemacs-faq.info, Node: Q3.0.9, Next: Q3.0.10, Prev: Q3.0.8, Up: Editing
-
-Q3.0.9: HP Alt key as Meta.
----------------------------
-
-How can I make XEmacs recognize the Alt key of my HP workstation as a
-Meta key?
-
- Put the following line into a file and load it with xmodmap(1) before
-starting XEmacs:
-
- remove Mod1 = Mode_switch
-
-\1f
-File: xemacs-faq.info, Node: Q3.0.10, Next: Q3.0.11, Prev: Q3.0.9, Up: Editing
-
-Q3.0.10: Why does edt emulation not work?
------------------------------------------
-
-We don't know, but you can use tpu-edt emulation instead, which works
-fine and is a little fancier than the standard edt emulation. To do
-this, add the following line to your `init.el':
-
- (tpu-edt)
-
- If you don't want it to replace `C-h' with an edt-style help menu
-add this as well:
-
- (global-set-key [(control h)] 'help-for-help)
-
-\1f
-File: xemacs-faq.info, Node: Q3.0.11, Next: Q3.1.1, Prev: Q3.0.10, Up: Editing
-
-Q3.0.11: How can I emulate VI and use it as my default mode?
-------------------------------------------------------------
-
-Our recommended VI emulator is viper. To make viper-mode the default,
-add this to your `init.el':
-
- (viper-mode)
-
- Michael Kifer <kifer@CS.SunySB.EDU> writes:
-
- This should be added as close to the top of `init.el' as you can
- get it, otherwise some minor modes may not get viper-ized.
-
-3.1: The Mouse
-==============
-
-\1f
-File: xemacs-faq.info, Node: Q3.1.1, Next: Q3.1.2, Prev: Q3.0.11, Up: Editing
-
-Q3.1.1: How can I turn off Mouse pasting?
------------------------------------------
-
-I keep hitting the middle mouse button by accident and getting stuff
-pasted into my buffer so how can I turn this off?
-
- Here is an alternative binding, whereby the middle mouse button
-selects (but does not cut) the expression under the mouse. Clicking
-middle on a left or right paren will select to the matching one. Note
-that you can use `define-key' or `global-set-key'.
-
- (defun mouse-set-point-and-select (event)
- "Sets the point at the mouse location, then marks following form"
- (interactive "@e")
- (mouse-set-point event)
- (mark-sexp 1))
- (define-key global-map [button2] 'mouse-set-point-and-select)
-
-\1f
-File: xemacs-faq.info, Node: Q3.1.2, Next: Q3.1.3, Prev: Q3.1.1, Up: Editing
-
-Q3.1.2: How do I set control/meta/etc modifiers on mouse buttons?
------------------------------------------------------------------
-
-Use, for instance, `[(meta button1)]'. For example, here is a common
-setting for Common Lisp programmers who use the bundled `ilisp'
-package, whereby meta-button1 on a function name will find the file
-where the function name was defined, and put you at that location in
-the source file.
-
- [Inside a function that gets called by the lisp-mode-hook and
-ilisp-mode-hook]
-
- (local-set-key [(meta button1)] 'edit-definitions-lisp)
-
-\1f
-File: xemacs-faq.info, Node: Q3.1.3, Next: Q3.1.4, Prev: Q3.1.2, Up: Editing
-
-Q3.1.3: Clicking the left button does not do anything in buffer list.
----------------------------------------------------------------------
-
-I do `C-x C-b' to get a list of buffers and the entries get highlighted
-when I move the mouse over them but clicking the left mouse does not do
-anything.
-
- Use the middle mouse button.
-
-\1f
-File: xemacs-faq.info, Node: Q3.1.4, Next: Q3.1.5, Prev: Q3.1.3, Up: Editing
-
-Q3.1.4: How can I get a list of buffers when I hit mouse button 3?
-------------------------------------------------------------------
-
-The following code will replace the default popup on button3:
-
- (global-set-key [button3] 'popup-buffer-menu)
-
-\1f
-File: xemacs-faq.info, Node: Q3.1.5, Next: Q3.2.1, Prev: Q3.1.4, Up: Editing
-
-Q3.1.5: How can I set XEmacs up so that it pastes where the text cursor is?
----------------------------------------------------------------------------
-
-By default XEmacs pastes X selections where the mouse pointer is. How
-do I disable this?
-
- Examine the function `mouse-yank', by typing `C-h f mouse-yank
-<RET>'.
-
- To get XEmacs to paste at the text cursor, add this your `init.el':
-
- (setq mouse-yank-at-point t)
-
- You can also change this with Customize. Select from the `Options'
-menu `Advanced (Customize)->Emacs->Editing->Mouse->Yank At Point...' or
-type `M-x customize <RET> mouse <RET>'.
-
-3.2: Buffers, Text Editing
-==========================
-
-\1f
-File: xemacs-faq.info, Node: Q3.2.1, Next: Q3.2.2, Prev: Q3.1.5, Up: Editing
-
-Q3.2.1: Can I have the end of the buffer delimited in some way?
----------------------------------------------------------------
-
-Say, with: `[END]'?
-
- Try this:
-
- (let ((ext (make-extent (point-min) (point-max))))
- (set-extent-property ext 'start-closed t)
- (set-extent-property ext 'end-closed t)
- (set-extent-property ext 'detachable nil)
- (set-extent-end-glyph ext (make-glyph [string :data "[END]"])))
-
- Since this is XEmacs, you can specify an icon to be shown on
-window-system devices. To do so, change the `make-glyph' call to
-something like this:
-
- (make-glyph '([xpm :file "~/something.xpm"]
- [string :data "[END]"]))
-
- You can inline the XPM definition yourself by specifying `:data'
-instead of `:file'. Here is such a full-featured version that works on
-both X and TTY devices:
-
- (let ((ext (make-extent (point-min) (point-max))))
- (set-extent-property ext 'start-closed t)
- (set-extent-property ext 'end-closed t)
- (set-extent-property ext 'detachable nil)
- (set-extent-end-glyph ext (make-glyph '([xpm :data "\
- /* XPM */
- static char* eye = {
- \"20 11 7 2\",
- \"__ c None\"
- \"_` c #7f7f7f\",
- \"_a c #fefefe\",
- \"_b c #7f0000\",
- \"_c c #fefe00\",
- \"_d c #fe0000\",
- \"_e c #bfbfbf\",
- \"___________`_`_`___b_b_b_b_________`____\",
- \"_________`_`_`___b_c_c_c_b_b____________\",
- \"_____`_`_`_e___b_b_c_c_c___b___b_______`\",
- \"___`_`_e_a___b_b_d___b___b___b___b______\",
- \"_`_`_e_a_e___b_b_d_b___b___b___b___b____\",
- \"_`_`_a_e_a___b_b_d___b___b___b___b___b__\",
- \"_`_`_e_a_e___b_b_d_b___b___b___b___b_b__\",
- \"___`_`_e_a___b_b_b_d_c___b___b___d_b____\",
- \"_____`_`_e_e___b_b_b_d_c___b_b_d_b______\",
- \"_`_____`_`_`_`___b_b_b_d_d_d_d_b________\",
- \"___`_____`_`_`_`___b_b_b_b_b_b__________\",
- } ;"]
- [string :data "[END]"]))))
-
- Note that you might want to make this a function, and put it to a
-hook. We leave that as an exercise for the reader.
-
-\1f
-File: xemacs-faq.info, Node: Q3.2.2, Next: Q3.2.3, Prev: Q3.2.1, Up: Editing
-
-Q3.2.2: How do I insert today's date into a buffer?
----------------------------------------------------
-
-Like this:
-
- (insert (current-time-string))
-
-\1f
-File: xemacs-faq.info, Node: Q3.2.3, Next: Q3.2.4, Prev: Q3.2.2, Up: Editing
-
-Q3.2.3: How do I get a single minibuffer frame?
------------------------------------------------
-
-Vin Shelton <acs@acm.org> writes:
-
- (setq initial-frame-plist '(minibuffer nil))
- (setq default-frame-plist '(minibuffer nil))
- (setq default-minibuffer-frame
- (make-frame
- '(minibuffer only
- width 86
- height 1
- menubar-visible-p nil
- default-toolbar-visible-p nil
- name "minibuffer"
- top -2
- left -2
- has-modeline-p nil)))
- (frame-notice-user-settings)
-
- *Please note:* The single minibuffer frame may not be to everyone's
-taste, and there any number of other XEmacs options settings that may
-make it difficult or inconvenient to use.
-
-\1f
-File: xemacs-faq.info, Node: Q3.2.4, Next: Q3.2.5, Prev: Q3.2.3, Up: Editing
-
-Q3.2.4: How can I enable auto-indent and/or Filladapt?
-------------------------------------------------------
-
-Put the following line in your `init.el':
-
- (setq indent-line-function 'indent-relative-maybe)
-
- If you want to get fancy, try the `filladapt' package available
-standard with XEmacs. Put this into your `init.el':
-
- (require 'filladapt)
- (setq-default filladapt-mode t)
- (add-hook 'c-mode-hook 'turn-off-filladapt-mode)
-
- This will enable Filladapt for all modes except C mode, where it
-doesn't work well. To turn Filladapt on only in particular major
-modes, remove the `(setq-default ...)' line and use
-`turn-on-filladapt-mode', like this:
-
- (add-hook 'text-mode-hook 'turn-on-filladapt-mode)
-
- You can customize filling and adaptive filling with Customize.
-Select from the `Options' menu `Advanced
-(Customize)->Emacs->Editing->Fill->Fill...' or type `M-x customize
-<RET> fill <RET>'.
-
- Note that well-behaving text-lookalike modes will run
-`text-mode-hook' by default (e.g. that's what Message does). For the
-nasty ones, you'll have to provide the `add-hook's yourself.
-
- Please note that the `fa-extras' package is no longer useful.
-
-\1f
-File: xemacs-faq.info, Node: Q3.2.5, Next: Q3.3.1, Prev: Q3.2.4, Up: Editing
-
-Q3.2.5: How can I get XEmacs to come up in text/auto-fill mode by default?
---------------------------------------------------------------------------
-
-Try the following lisp in your `init.el':
-
- (setq default-major-mode 'text-mode)
- (add-hook 'text-mode-hook 'turn-on-auto-fill)
-
- *WARNING*: note that changing the value of `default-major-mode' from
-`fundamental-mode' can break a large amount of built-in code that
-expects newly created buffers to be in `fundamental-mode'. (Changing
-from `fundamental-mode' to `text-mode' might not wreak too much havoc,
-but changing to something more exotic like a lisp-mode would break many
-Emacs packages).
-
- Note that Emacs by default starts up in buffer `*scratch*' in
-`initial-major-mode', which defaults to `lisp-interaction-mode'. Thus
-adding the following form to your Emacs init file will cause the
-initial `*scratch*' buffer to be put into auto-fill'ed `text-mode':
-
- (setq initial-major-mode
- (lambda ()
- (text-mode)
- (turn-on-auto-fill)))
-
- Note that after your init file is loaded, if
-`inhibit-startup-message' is `nil' (the default) and the startup buffer
-is `*scratch*' then the startup message will be inserted into
-`*scratch*'; it will be removed after a timeout by erasing the entire
-`*scratch*' buffer. Keep in mind this default usage of `*scratch*' if
-you desire any prior manipulation of `*scratch*' from within your Emacs
-init file. In particular, anything you insert into `*scratch*' from
-your init file will be later erased. Also, if you change the mode of
-the `*scratch*' buffer, be sure that this will not interfere with
-possible later insertion of the startup message (e.g. if you put
-`*scratch*' into a nonstandard mode that has automatic font lock rules,
-then the startup message might get fontified in a strange foreign
-manner, e.g. as code in some programming language).
-
-3.3: Text Selections
-====================
-
-\1f
-File: xemacs-faq.info, Node: Q3.3.1, Next: Q3.3.2, Prev: Q3.2.5, Up: Editing
-
-Q3.3.1: How do I select a rectangular region?
----------------------------------------------
-
-Just select the region normally, then use the rectangle commands (e.g.
-`kill-rectangle' on it. The region does not highlight as a rectangle,
-but the commands work just fine.
-
- To actually sweep out rectangular regions with the mouse you can use
-`mouse-track-do-rectangle' which is assigned to `M-button1'. Then use
-rectangle commands.
-
- You can also do the following to change default behavior to sweep out
-rectangular regions:
-
- (setq mouse-track-rectangle-p t)
-
- You can also change this with Customize. Select from the `Options'
-menu `Advanced (Customize)->Emacs->Editing->Mouse->Track Rectangle...'
-or type `M-x customize <RET> mouse <RET>'.
-
- mouse-track-do-rectangle: (event)
- -- an interactive compiled Lisp function.
- Like `mouse-track' but selects rectangles instead of regions.
-
-\1f
-File: xemacs-faq.info, Node: Q3.3.2, Next: Q3.3.3, Prev: Q3.3.1, Up: Editing
-
-Q3.3.2: How can I turn off or change highlighted selections?
-------------------------------------------------------------
-
-The `zmacs' mode allows for what some might call gratuitous
-highlighting for selected regions (either by setting mark or by using
-the mouse). This is the default behavior. To turn off, add the
-following line to your `init.el' file:
-
- (setq zmacs-regions nil)
-
- You can also change this with Customize. Select from the `Options'
-menu `Advanced (Customize)->Emacs->Editing->Basics->Zmacs Regions' or
-type `M-x customize <RET> editing-basics <RET>'.
-
- To change the face for selection, look at `Options->Advanced
-(Customize)' on the menubar.
-
-\1f
-File: xemacs-faq.info, Node: Q3.3.3, Next: Q3.3.4, Prev: Q3.3.2, Up: Editing
-
-Q3.3.3: How do I cause typing on an active region to remove it?
----------------------------------------------------------------
-
-I want to change things so that if I select some text and start typing,
-the typed text replaces the selected text, similar to Motif.
-
- You want to use something called "pending delete". Pending delete
-is what happens when you select a region (with the mouse or keyboard)
-and you press a key to replace the selected region by the key you typed.
-Usually backspace kills the selected region.
-
- To get this behavior, ensure that you have the `pc' package
-installed, and add the following lines to your `init.el':
-
- (cond
- ((fboundp 'turn-on-pending-delete)
- (turn-on-pending-delete))
- ((fboundp 'pending-delete-on)
- (pending-delete-on t)))
-
- Note that this will work with both Backspace and Delete. This code
-is a tad more complicated than it has to be for XEmacs in order to make
-it more portable.
-
-\1f
-File: xemacs-faq.info, Node: Q3.3.4, Next: Q3.3.5, Prev: Q3.3.3, Up: Editing
-
-Q3.3.4: Can I turn off the highlight during isearch?
-----------------------------------------------------
-
-I do not like my text highlighted while I am doing isearch as I am not
-able to see what's underneath. How do I turn it off?
-
- Put the following in your `init.el':
-
- (setq isearch-highlight nil)
-
- You can also change this with Customize. Type `M-x
-customize-variable <RET> isearch-highlight <RET>'.
-
- Note also that isearch-highlight affects query-replace and ispell.
-Instead of disabling isearch-highlight you may find that a better
-solution consists of customizing the `isearch' face.
-
-\1f
-File: xemacs-faq.info, Node: Q3.3.5, Next: Q3.3.6, Prev: Q3.3.4, Up: Editing
-
-Q3.3.5: Why is killing so slow?
--------------------------------
-
-This actually is an X Windows question, although you'll notice it with
-keyboard operations as well as while using the GUI. Basically, there
-are four ways to communicate interprogram via the X server:
-
-*Primary selection*
- a transient selection that gets replaced every time a new
- selection is made
-
-*Secondary selection*
- for "exchanging" with the primary selection
-
-*Cut buffers*
- a clipboard internal to the X server (deprecated)
-
-*Clipboard selection*
- a selection with a notification protocol that allows a separate
- app to manage the clipboard
-
- The cut buffers are deprecated because managing them is even more
-inefficient than the clipboard notification protocol. The primary
-selection works fine for many users and applications, but is not very
-robust under intensive or sophisticated use.
-
- In Motif and MS Windows, a clipboard has become the primary means for
-managing cut and paste. These means that "modern" applications tend to
-be oriented toward a true clipboard, rather than the primary selection.
-(On Windows, there is nothing equivalent to the primary selection.)
-It's not that XEmacs doesn't support the simple primary selection
-method, it's that more and more other applications don't.
-
- So the slowdown occurs because XEmacs now engages in the clipboard
-notification protocol on _every_ kill. This is especially slow on
-Motif.
-
- With most people running most clients and server on the same host,
-and many of the rest working over very fast communication, you may
-expect that the situation is not going to improve.
-
- There are a number of workarounds. The most effective is to use a
-special command to do selection ownership only when you intend to paste
-to another application. Useful commands are `kill-primary-selection'
-and `copy-primary-selection'. These work only on text selected with
-the mouse (probably; experiment), and are bound by default to the `Cut'
-and `Copy', respectively, buttons on the toolbar.
-`copy-primary-selection' is also bound to `C-Insert'. You can yank the
-clipboard contents with `yank-primary-selection', bound to the `Paste'
-toolbar button and `Sh-Insert'.
-
- If you are communicating by cut and paste with applications that use
-the primary selection, then you can customize
-`interprogram-cut-function' to `nil', restoring the XEmacs version 20
-behavior. How can you tell if a program will support this?
-Motifly-correct programs require the clipboard; you lose. For others,
-only by trying it. You also need to customize the complementary
-`interprogram-paste-function' to `nil'. (Otherwise XEmacs-to-XEmacs
-pastes will not work correctly.)
-
- You may get some relief on Motif by setting
-`x-selection-strict-motif-ownership' to nil, but this means you will
-only intermittently be able to paste XEmacs kills to Motif applications.
-
- Thanks to Jeff Mincy and Glynn Clements for corrections.
-
-\1f
-File: xemacs-faq.info, Node: Q3.3.6, Next: Q3.4.1, Prev: Q3.3.5, Up: Editing
-
-Q3.3.6: Why does `M-w' take so long?
-------------------------------------
-
-It actually doesn't. It leaves the region visible for a second so that
-you can see what area is being yanked. If you start working, though, it
-will immediately complete its operation. In other words, it will only
-delay for a second if you let it.
-
-3.4: Editing Source Code
-========================
-
-\1f
-File: xemacs-faq.info, Node: Q3.4.1, Next: Q3.4.2, Prev: Q3.3.6, Up: Editing
-
-Q3.4.1: I do not like cc-mode. How do I use the old c-mode?
-------------------------------------------------------------
-
-Well, first off, consider if you really want to do this. cc-mode is
-much more powerful than the old c-mode. If you're having trouble
-getting your old offsets to work, try using `c-set-offset' instead.
-You might also consider using the package `cc-compat'.
-
- But, if you still insist, add the following lines to your `init.el':
-
- (fmakunbound 'c-mode)
- (makunbound 'c-mode-map)
- (fmakunbound 'c++-mode)
- (makunbound 'c++-mode-map)
- (makunbound 'c-style-alist)
- (load-library "old-c-mode")
- (load-library "old-c++-mode")
-
- This must be done before any other reference is made to either
-c-mode or c++-mode.
-
-\1f
-File: xemacs-faq.info, Node: Q3.4.2, Prev: Q3.4.1, Up: Editing
-
-Q3.4.2: How do you make XEmacs indent CL if-clauses correctly?
---------------------------------------------------------------
-
-I'd like XEmacs to indent all the clauses of a Common Lisp `if' the
-same amount instead of indenting the 3rd clause differently from the
-first two.
-
- The package `cl-indent' that comes with XEmacs sets up this kind of
-indentation by default. `cl-indent' also knows about many other
-CL-specific forms. To use `cl-indent', one can do this:
-
- (setq lisp-indent-function 'common-lisp-indent-function)
-
- One can also customize `cl-indent.el' so it mimics the default `if'
-indentation `then' indented more than the `else'. Here's how:
-
- (put 'if 'common-lisp-indent-function '(nil nil &body))
-
-\1f
-File: xemacs-faq.info, Node: Display, Next: External Subsystems, Prev: Editing, Up: Top
-
-4 Display Functions
-*******************
-
-This is part 4 of the XEmacs Frequently Asked Questions list. This
-section is devoted to the display-related capabilities of XEmacs
-(fonts, colors, modeline, menubar, toolbar, scrollbar, etc.) and how to
-customize them.
-
-* Menu:
-
-4.0: Textual Fonts and Colors
-* Q4.0.1:: How do I specify a font?
-* Q4.0.2:: How do I set the text, menu and modeline fonts?
-* Q4.0.3:: How can I set color options from `init.el'?
-* Q4.0.4:: How can I set the colors when highlighting a region?
-* Q4.0.5:: How can I limit color map usage?
-* Q4.0.6:: My tty supports color, but XEmacs doesn't use them.
-* Q4.0.7:: Can I have pixmap backgrounds in XEmacs?
-* Q4.0.8:: How do I display non-ASCII characters?
-* Q4.0.9:: Font selections in don't get saved after `Save Options'.
-
-4.1: Syntax Highlighting (Font Lock)
-* Q4.1.1:: How can I do source code highlighting using font-lock?
-* Q4.1.2:: How do I get `More' Syntax Highlighting on by default?
-
-4.2: The Modeline
-* Q4.2.1:: How can I make the modeline go away?
-* Q4.2.2:: How do you have XEmacs display the line number in the modeline?
-* Q4.2.3:: How do I get XEmacs to put the time of day on the modeline?
-* Q4.2.4:: How can I change the modeline color based on the mode used?
-
-4.3: The Cursor
-* Q4.3.1:: Is there a way to make the bar cursor thicker?
-* Q4.3.2:: Is there a way to get back the block cursor?
-* Q4.3.3:: Can I make the cursor blink?
-
-4.4: The Menubar
-* Q4.4.1:: How do I get rid of the menubar?
-* Q4.4.2:: How can I customize the menubar?
-* Q4.4.3:: How do I enable use of the keyboard (Alt) to access menu items?
-* Q4.4.4:: How do I control how many buffers are listed in the menu `Buffers List'?
-* Q4.4.5:: Resources like `Emacs*menubar*font' are not working?
-
-4.5: The Toolbar
-* Q4.5.1:: How do I get rid of the toolbar?
-* Q4.5.2:: How can I customize the toolbar?
-* Q4.5.3:: How can I bind a key to a function to toggle the toolbar?
-* Q4.5.4:: `Can't instantiate image error...' in toolbar
-
-4.6: Scrollbars and Scrolling
-* Q4.6.1:: How can I disable the scrollbar?
-* Q4.6.2:: How can I change the scrollbar width?
-* Q4.6.3:: How can I use resources to change scrollbar colors?
-* Q4.6.4:: Moving the scrollbar can move the point; can I disable this?
-* Q4.6.5:: Scrolling one line at a time.
-* Q4.6.6:: How can I turn off automatic horizontal scrolling in specific modes?
-* Q4.6.7:: I find auto-show-mode disconcerting. How do I turn it off?
-
-4.7: The Gutter Tabs, The Progress Bar, Widgets
-* Q4.7.1:: How can I disable the gutter tabs?
-* Q4.7.2:: How can I disable the progress bar?
-* Q4.7.3:: There are bugs in the gutter or widgets.
-* Q4.7.4:: How can I customize the gutter or gutter tabs?
-
-4.0: Textual Fonts and Colors
-=============================
-
-\1f
-File: xemacs-faq.info, Node: Q4.0.1, Next: Q4.0.2, Prev: Display, Up: Display
-
-Q4.0.1: How do I specify a font?
---------------------------------
-
-#### Update me.
-
- In 21.4 and above, you can use the `Options' menu to change the font.
-You can also do it in your init file, e.g. like this (for MS Windows):
-
- (set-face-font 'default "Lucida Console:Regular:10")
- (set-face-font 'modeline "MS Sans Serif:Regular:10")
-
-\1f
-File: xemacs-faq.info, Node: Q4.0.2, Next: Q4.0.3, Prev: Q4.0.1, Up: Display
-
-Q4.0.2: How do I set the text, menu and modeline fonts?
--------------------------------------------------------
-
-#### Update me.
-
- Note that you should use `Emacs.' and not `Emacs*' when setting face
-values.
-
- In `.Xresources':
-
- Emacs.default.attributeFont: -*-*-medium-r-*-*-*-120-*-*-m-*-*-*
- Emacs*menubar*font: fixed
- Emacs.modeline.attributeFont: fixed
-
- This is confusing because `default' and `modeline' are face names,
-and can be found listed with all faces in the current mode by using
-`M-x set-face-font (enter) ?'. They use the face-specific resource
-`attributeFont'.
-
- On the other hand, `menubar' is a normal X thing that uses the
-resource `font'. With Motif it _may be_ necessary to use `fontList'
-_instead of_ `font'. In _non-Motif_ configurations with Mule it _is_
-necessary to use `fontSet' instead of `font'. (Sorry, there just is no
-simple recipe here.)
-
-\1f
-File: xemacs-faq.info, Node: Q4.0.3, Next: Q4.0.4, Prev: Q4.0.2, Up: Display
-
-Q4.0.3: How can I set color options from `init.el'?
----------------------------------------------------
-
-How can I set the most commonly used color options from my `init.el'
-instead of from my `.Xresources'?
-
- Like this:
-
- (set-face-background 'default "bisque") ; frame background
- (set-face-foreground 'default "black") ; normal text
- (set-face-background 'zmacs-region "red") ; When selecting w/
- ; mouse
- (set-face-foreground 'zmacs-region "yellow")
- (set-face-font 'default "*courier-bold-r*120-100-100*")
- (set-face-background 'highlight "blue") ; Ie when selecting
- ; buffers
- (set-face-foreground 'highlight "yellow")
- (set-face-background 'modeline "blue") ; Line at bottom
- ; of buffer
- (set-face-foreground 'modeline "white")
- (set-face-font 'modeline "*bold-r-normal*140-100-100*")
- (set-face-background 'isearch "yellow") ; When highlighting
- ; while searching
- (set-face-foreground 'isearch "red")
- (setq x-pointer-foreground-color "black") ; Adds to bg color,
- ; so keep black
- (setq x-pointer-background-color "blue") ; This is color
- ; you really
- ; want ptr/crsr
-
-\1f
-File: xemacs-faq.info, Node: Q4.0.4, Next: Q4.0.5, Prev: Q4.0.3, Up: Display
-
-Q4.0.4: How can I set the colors when highlighting a region?
-------------------------------------------------------------
-
-How can I set the background/foreground colors when highlighting a
-region?
-
- You can change the face `zmacs-region' either in your `.Xresources':
-
- Emacs.zmacs-region.attributeForeground: firebrick
- Emacs.zmacs-region.attributeBackground: lightseagreen
-
- or in your `init.el':
-
- (set-face-background 'zmacs-region "red")
- (set-face-foreground 'zmacs-region "yellow")
-
-\1f
-File: xemacs-faq.info, Node: Q4.0.5, Next: Q4.0.6, Prev: Q4.0.4, Up: Display
-
-Q4.0.5: How can I limit color map usage?
-----------------------------------------
-
-I'm using Netscape (or another color grabber like XEmacs); is there any
-way to limit the number of available colors in the color map?
-
- Answer: No, but you can start Netscape before XEmacs, and it will use
-the closest available color if the colormap is full. You can also limit
-the number of colors Netscape uses, using the flags -mono, -ncols <#> or
--install (for mono, limiting to <#> colors, or for using a private color
-map).
-
- If you have the money, another solution would be to use a truecolor
-or direct color video.
-
-\1f
-File: xemacs-faq.info, Node: Q4.0.6, Next: Q4.0.7, Prev: Q4.0.5, Up: Display
-
-Q4.0.6: My tty supports color, but XEmacs doesn't use them.
------------------------------------------------------------
-
-XEmacs tries to automatically determine whether your tty supports color,
-but sometimes guesses wrong. In that case, you can make XEmacs Do The
-Right Thing using this Lisp code:
-
- (if (eq 'tty (device-type))
- (set-device-class nil 'color))
-
-\1f
-File: xemacs-faq.info, Node: Q4.0.7, Next: Q4.0.8, Prev: Q4.0.6, Up: Display
-
-Q4.0.7: Can I have pixmap backgrounds in XEmacs?
-------------------------------------------------
-
-Juan Villacis <jvillaci@wahnsinnig.extreme.indiana.edu> writes:
-
- There are several ways to do it. For example, you could specify a
- default pixmap image to use in your `~/.Xresources', e.g.,
-
- Emacs*EmacsFrame.default.attributeBackgroundPixmap: /path/to/image.xpm
-
- and then reload ~/.Xresources and restart XEmacs. Alternatively,
- since each face can have its own pixmap background, a better way
- would be to set a face's pixmap within your XEmacs init file, e.g.,
-
- (set-face-background-pixmap 'default "/path/to/image.xpm")
- (set-face-background-pixmap 'bold "/path/to/another_image.xpm")
-
- and so on. You can also do this interactively via `M-x
- edit-faces'.
-
-
-\1f
-File: xemacs-faq.info, Node: Q4.0.8, Next: Q4.0.9, Prev: Q4.0.7, Up: Display
-
-Q4.0.8: How do I display non-ASCII characters?
-----------------------------------------------
-
-If you're using a Mule-enabled XEmacs, then display is automatic. If
-you're not seeing the characters you expect, either (1) you don't have
-appropriate fonts available or (2) XEmacs did not correctly detect the
-coding system (*note Recognize Coding: (xemacs)Recognize Coding.). In
-case (1), install fonts as is customary for your platform. In case
-(2), you need to tell XEmacs explicitly what coding systems you're
-using. *Note Specify Coding: (xemacs)Specify Coding.
-
- If your XEmacs is not Mule-enabled, and for some reason getting a
-Mule-enabled XEmacs seems like the wrong thing to do, all is not lost.
-You can arrange it by brute force. In `event-Xt.c' (suppress the urge
-to look in this file--play Doom instead, because you'll survive
-longer), it is written:
-
- In a non-Mule world, a user can still have a multi-lingual editor,
- by doing `(set-face-font "-*-iso8859-2" (current-buffer))' for all
- their Latin-2 buffers, etc.
-
- For the related problem of _inputting_ non-ASCII characters in a
-non-Mule XEmacs, *Note How can you type in special characters in
-XEmacs?: Q3.0.6.
-
-\1f
-File: xemacs-faq.info, Node: Q4.0.9, Next: Q4.1.1, Prev: Q4.0.8, Up: Display
-
-Q4.0.9: Font selections in don't get saved after `Save Options'.
-----------------------------------------------------------------
-
-John Mann <mannj@ll.mit.edu> writes:
-
- You have to go to `Options->Menubars' and unselect `Frame-Local
- Font Menu'. If this option is selected, font changes are only
- applied to the _current_ frame and do _not_ get saved when you
- save options.
-
- Also, set the following in your `init.el':
-
- (setq options-save-faces t)
-
-4.1: Syntax Highlighting (Font Lock)
-====================================
-
-\1f
-File: xemacs-faq.info, Node: Q4.1.1, Next: Q4.1.2, Prev: Q4.0.9, Up: Display
-
-Q4.1.1: How can I do source code highlighting using font-lock?
---------------------------------------------------------------
-
-For most modes, font-lock is already set up and just needs to be turned
-on. This can be done by adding the line:
-
- (require 'font-lock)
-
- to your `init.el'. (You can turn it on for the current buffer and
-session only by `M-x font-lock-mode'.) See the file
-`etc/sample.init.el' (`etc/sample.emacs' in XEmacs versions prior to
-21.4) for more information.
-
- See also `Syntax Highlighting' from the `Options' menu. Remember to
-save options.
-
-\1f
-File: xemacs-faq.info, Node: Q4.1.2, Next: Q4.2.1, Prev: Q4.1.1, Up: Display
-
-Q4.1.2: How do I get `More' Syntax Highlighting on by default?
---------------------------------------------------------------
-
-Use the following code in your `init.el':
-
- (setq-default font-lock-maximum-decoration t)
-
- See also `Syntax Highlighting' from the `Options' menu. Remember to
-save options.
-
-4.2: The Modeline
-=================
-
-\1f
-File: xemacs-faq.info, Node: Q4.2.1, Next: Q4.2.2, Prev: Q4.1.2, Up: Display
-
-Q4.2.1: How can I make the modeline go away?
---------------------------------------------
-
- (set-specifier has-modeline-p nil)
-
-\1f
-File: xemacs-faq.info, Node: Q4.2.2, Next: Q4.2.3, Prev: Q4.2.1, Up: Display
-
-Q4.2.2: How do you have XEmacs display the line number in the modeline?
------------------------------------------------------------------------
-
-Add the following line to your `init.el' file to display the line
-number:
-
- (line-number-mode 1)
-
- Use the following to display the column number:
-
- (column-number-mode 1)
-
- Or select from the `Options' menu `Advanced
-(Customize)->Emacs->Editing->Basics->Line Number Mode' and/or `Advanced
-(Customize)->Emacs->Editing->Basics->Column Number Mode'
-
- Or type `M-x customize <RET> editing-basics <RET>'.
-
-\1f
-File: xemacs-faq.info, Node: Q4.2.3, Next: Q4.2.4, Prev: Q4.2.2, Up: Display
-
-Q4.2.3: How do I get XEmacs to put the time of day on the modeline?
--------------------------------------------------------------------
-
-Add the following line to your `init.el' file to display the time:
-
- (display-time)
-
- See `Customize' from the `Options' menu for customization.
-
-\1f
-File: xemacs-faq.info, Node: Q4.2.4, Next: Q4.3.1, Prev: Q4.2.3, Up: Display
-
-Q4.2.4: How can I change the modeline color based on the mode used?
--------------------------------------------------------------------
-
-You can use something like the following:
-
- (add-hook 'lisp-mode-hook
- (lambda ()
- (set-face-background 'modeline "red" (current-buffer))))
-
- Then, when editing a Lisp file (i.e. when in Lisp mode), the modeline
-colors change from the default set in your `init.el'. The change will
-only be made in the buffer you just entered (which contains the Lisp
-file you are editing) and will not affect the modeline colors anywhere
-else.
-
- Notes:
-
- * The hook is the mode name plus `-hook'. eg. c-mode-hook,
- c++-mode-hook, emacs-lisp-mode-hook (used for your `init.el' or a
- `xx.el' file), lisp-interaction-mode-hook (the `*scratch*' buffer),
- text-mode-hook, etc.
-
- * Be sure to use `add-hook', not `(setq c-mode-hook xxxx)',
- otherwise you will erase anything that anybody has already put on
- the hook.
-
- * You can also do `(set-face-font 'modeline FONT)', eg.
- `(set-face-font 'modeline "*bold-r-normal*140-100-100*"
- (current-buffer))' if you wish the modeline font to vary based on
- the current mode.
-
- There are additional modeline faces, `modeline-buffer-id',
-`modeline-mousable', and `modeline-mousable-minor-mode', which you may
-want to customize.
-
-4.3: The Cursor
-===============
-
-\1f
-File: xemacs-faq.info, Node: Q4.3.1, Next: Q4.3.2, Prev: Q4.2.4, Up: Display
-
-Q4.3.1: Is there a way to make the bar cursor thicker?
-------------------------------------------------------
-
-I'd like to have the bar cursor a little thicker, as I tend to "lose" it
-often.
-
- For a 1 pixel bar cursor, use:
-
- (setq bar-cursor t)
-
- For a 2 pixel bar cursor, use:
-
- (setq bar-cursor 'anything-else)
-
- You can also change these with Customize. Select from the `Options'
-menu `Advanced (Customize)->Emacs->Environment->Display->Bar Cursor...'
-or type `M-x customize <RET> display <RET>'.
-
- You can use a color to make it stand out better:
-
- Emacs*cursorColor: Red
-
-\1f
-File: xemacs-faq.info, Node: Q4.3.2, Next: Q4.3.3, Prev: Q4.3.1, Up: Display
-
-Q4.3.2: Is there a way to get back the block cursor?
-----------------------------------------------------
-
- (setq bar-cursor nil)
-
- You can also change this with Customize. Select from the `Options'
-menu `Advanced (Customize)->Emacs->Environment->Display->Bar Cursor...'
-or type `M-x customize <RET> display <RET>'.
-
-\1f
-File: xemacs-faq.info, Node: Q4.3.3, Next: Q4.4.1, Prev: Q4.3.2, Up: Display
-
-Q4.3.3: Can I make the cursor blink?
-------------------------------------
-
-Yes, like this:
-
- (blink-cursor-mode)
-
- This function toggles between a steady cursor and a blinking cursor.
-You may also set this mode from the menu bar by selecting
-`Options->Display->Blinking Cursor'. Remember to save options.
-
-4.4: The Menubar
-================
-
-\1f
-File: xemacs-faq.info, Node: Q4.4.1, Next: Q4.4.2, Prev: Q4.3.3, Up: Display
-
-Q4.4.1: How do I get rid of the menubar?
-----------------------------------------
-
- (set-specifier menubar-visible-p nil)
-
-\1f
-File: xemacs-faq.info, Node: Q4.4.2, Next: Q4.4.3, Prev: Q4.4.1, Up: Display
-
-Q4.4.2: How can I customize the menubar?
-----------------------------------------
-
-For an extensive menubar, add this line to your `init.el':
-
- (load "big-menubar")
-
- If you'd like to write your own, this file provides as good a set of
-examples as any to start from. The file is located in edit-utils
-package.
-
-\1f
-File: xemacs-faq.info, Node: Q4.4.3, Next: Q4.4.4, Prev: Q4.4.2, Up: Display
-
-Q4.4.3: How do I enable use of the keyboard (`Alt') to access menu items?
--------------------------------------------------------------------------
-
-#### Write me.
-
-\1f
-File: xemacs-faq.info, Node: Q4.4.4, Next: Q4.4.5, Prev: Q4.4.3, Up: Display
-
-Q4.4.4: How do I control how many buffers are listed in the menu `Buffers List'?
---------------------------------------------------------------------------------
-
-Add the following to your `init.el' (suit to fit):
-
- (setq buffers-menu-max-size 20)
-
- For no limit, use an argument of `nil'.
-
- You can also change this with Customize. Select from the `Options'
-menu `Advanced (Customize)->Emacs->Environment->Menu->Buffers Menu->Max
-Size...' or type `M-x customize <RET> buffers-menu <RET>'.
-
-\1f
-File: xemacs-faq.info, Node: Q4.4.5, Next: Q4.5.1, Prev: Q4.4.4, Up: Display
-
-Q4.4.5: Resources like `Emacs*menubar*font' are not working?
-------------------------------------------------------------
-
-I am trying to use a resource like `Emacs*menubar*font' to set the font
-of the menubar but it's not working.
-
- In Motif, the use of `font' resources is obsoleted in order to
-support internationalization. If you are using the real Motif menubar,
-this resource is not recognized at all; you have to say:
-
- Emacs*menubar*fontList: FONT
-
- If you are using the Lucid menubar, for backward compatibility with
-existing user configurations, the `font' resource is recognized. Since
-this is not supported by Motif itself, the code is a kludge and the
-`font' resource will be recognized only if the `fontList' resource
-resource is unset. This means that the resource
-
- *fontList: FONT
-
- will override
-
- Emacs*menubar*font: FONT
-
- even though the latter is more specific.
-
- In non-Motif configurations using `--with-mule' and `--with-xfs' it
-_is_ necessary to use the `fontSet' resource _instead of_ the `font'
-resource. The backward compatibility kludge was never implemented for
-non-Motif builds. Example:
-
- *fontSet: FONT
-
-4.5: The Toolbar
-================
-
-\1f
-File: xemacs-faq.info, Node: Q4.5.1, Next: Q4.5.2, Prev: Q4.4.5, Up: Display
-
-Q4.5.1: How do I get rid of the toolbar?
-----------------------------------------
-
-#### Write me.
-
-\1f
-File: xemacs-faq.info, Node: Q4.5.2, Next: Q4.5.3, Prev: Q4.5.1, Up: Display
-
-Q4.5.2: How can I customize the toolbar?
-----------------------------------------
-
-#### Write me.
-
-\1f
-File: xemacs-faq.info, Node: Q4.5.3, Next: Q4.5.4, Prev: Q4.5.2, Up: Display
-
-Q4.5.3: How can I bind a key to a function to toggle the toolbar?
------------------------------------------------------------------
-
-Try something like:
-
- (defun my-toggle-toolbar ()
- (interactive)
- (set-specifier default-toolbar-visible-p
- (not (specifier-instance default-toolbar-visible-p))))
- (global-set-key "\C-xT" 'my-toggle-toolbar)
-
- Thanks to Martin Buchholz <martin@xemacs.org> for the correct code.
-
-\1f
-File: xemacs-faq.info, Node: Q4.5.4, Next: Q4.6.1, Prev: Q4.5.3, Up: Display
-
-Q4.5.4: `Can't instantiate image error...' in toolbar
------------------------------------------------------
-
-Dr. Ram Samudrala <expt@alanine.ram.org> writes:
-
- I just installed the XEmacs (20.4-2) RPMS that I downloaded from
-`http://www.xemacs.org/'. Everything works fine, except that when I
-place my mouse over the toolbar, it beeps and gives me this message:
-
- Can't instantiate image (probably cached):
- [xbm :mask-file "/usr/include/X11/bitmaps/leftptrmsk :mask-data
- (16 16 <strange control characters> ...
-
- Kyle Jones <kyle_jones@wonderworks.com> writes:
-
- This is problem specific to some Chips and Technologies video
- chips, when running XFree86. Putting
-
- `Option "sw_cursor"'
-
- in `XF86Config' gets rid of the problem.
-
-4.6: Scrollbars and Scrolling
-=============================
-
-\1f
-File: xemacs-faq.info, Node: Q4.6.1, Next: Q4.6.2, Prev: Q4.5.4, Up: Display
-
-Q4.6.1: How can I disable the scrollbar?
-----------------------------------------
-
-To disable them for all frames, add the following line to your
-`.Xresources':
-
- Emacs.scrollBarWidth: 0
-
- Or select `Options->Display->Scrollbars'. Remember to save options.
-
- To turn the scrollbar off on a per-frame basis, use the following
-function:
-
- (set-specifier scrollbar-width 0 (selected-frame))
-
- You can actually turn the scrollbars on at any level you want by
-substituting for (selected-frame) in the above command. For example, to
-turn the scrollbars off only in a single buffer:
-
- (set-specifier scrollbar-width 0 (current-buffer))
-
-\1f
-File: xemacs-faq.info, Node: Q4.6.2, Next: Q4.6.3, Prev: Q4.6.1, Up: Display
-
-Q4.6.2: How can I change the scrollbar width?
----------------------------------------------
-
-#### Write me.
-
-\1f
-File: xemacs-faq.info, Node: Q4.6.3, Next: Q4.6.4, Prev: Q4.6.2, Up: Display
-
-Q4.6.3: How can I use resources to change scrollbar colors?
------------------------------------------------------------
-
-Here's a recap of how to use resources to change your scrollbar colors:
-
- ! Motif scrollbars
-
- Emacs*XmScrollBar.Background: skyblue
- Emacs*XmScrollBar.troughColor: lightgray
-
- ! Athena scrollbars
-
- Emacs*Scrollbar.Foreground: skyblue
- Emacs*Scrollbar.Background: lightgray
-
- Note the capitalization of `Scrollbar' for the Athena widget.
-
-\1f
-File: xemacs-faq.info, Node: Q4.6.4, Next: Q4.6.5, Prev: Q4.6.3, Up: Display
-
-Q4.6.4: Moving the scrollbar can move the point; can I disable this?
---------------------------------------------------------------------
-
-When I move the scrollbar in an XEmacs window, it moves the point as
-well, which should not be the default behavior. Is this a bug or a
-feature? Can I disable it?
-
- The current behavior is a feature, not a bug. Point remains at the
-same buffer position as long as that position does not scroll off the
-screen. In that event, point will end up in either the upper-left or
-lower-left hand corner.
-
- This cannot be changed.
-
-\1f
-File: xemacs-faq.info, Node: Q4.6.5, Next: Q4.6.6, Prev: Q4.6.4, Up: Display
-
-Q4.6.5: Scrolling one line at a time.
--------------------------------------
-
-Can the cursor keys scroll the screen a line at a time, rather than the
-default half page jump? I tend it to find it disorienting.
-
- Use the following:
-
- (setq scroll-step 1)
-
- You can also change this with Customize. Select from the `Options'
-menu `Advanced (Customize)->Emacs->Environment->Windows->Scroll Step...'
-or type `M-x customize <RET> windows <RET>'.
-
-\1f
-File: xemacs-faq.info, Node: Q4.6.6, Next: Q4.6.7, Prev: Q4.6.5, Up: Display
-
-Q4.6.6: How can I turn off automatic horizontal scrolling in specific modes?
-----------------------------------------------------------------------------
-
-Do `(setq truncate-lines t)' in the mode-hooks for any modes in which
-you want lines truncated.
-
- More precisely: If `truncate-lines' is nil, horizontal scrollbars
-will never appear. Otherwise, they will appear only if the value of
-`scrollbar-height' for that buffer/window/etc. is non-zero. If you do
-
- (set-specifier scrollbar-height 0)
-
- then horizontal scrollbars will not appear in truncated buffers
-unless the package specifically asked for them.
-
-\1f
-File: xemacs-faq.info, Node: Q4.6.7, Next: Q4.7.1, Prev: Q4.6.6, Up: Display
-
-Q4.6.7: I find auto-show-mode disconcerting. How do I turn it off?
--------------------------------------------------------------------
-
-`auto-show-mode' controls whether or not a horizontal scrollbar
-magically appears when a line is too long to be displayed. This is
-enabled by default. To turn it off, put the following in your
-`init.el':
-
- (setq auto-show-mode nil)
- (setq-default auto-show-mode nil)
-
-4.7: The Gutter Tabs, The Progress Bar, Widgets
-===============================================
-
-\1f
-File: xemacs-faq.info, Node: Q4.7.1, Next: Q4.7.2, Prev: Q4.6.7, Up: Display
-
-Q4.7.1: How can I disable the gutter tabs?
-------------------------------------------
-
-#### Write me.
-
-\1f
-File: xemacs-faq.info, Node: Q4.7.2, Next: Q4.7.3, Prev: Q4.7.1, Up: Display
-
-Q4.7.2: How can I disable the progress bar?
--------------------------------------------
-
-#### Write me.
-
-\1f
-File: xemacs-faq.info, Node: Q4.7.3, Next: Q4.7.4, Prev: Q4.7.2, Up: Display
-
-Q4.7.3: There are bugs in the gutter or widgets.
-------------------------------------------------
-
-#### Write me.
-
-\1f
-File: xemacs-faq.info, Node: Q4.7.4, Prev: Q4.7.3, Up: Display
-
-Q4.7.4: How can I customize the gutter or gutter tabs?
-------------------------------------------------------
-
-#### Write me.
-
-\1f
-File: xemacs-faq.info, Node: External Subsystems, Next: Internet, Prev: Display, Up: Top
-
-5 Interfacing with the Operating System and External Devices
-************************************************************
-
-This is part 5 of the XEmacs Frequently Asked Questions list. This
-section is devoted to the various ways that XEmacs interfaces with the
-operating system, with other processes and with external devices such
-as speakers and the printer.
-
-* Menu:
-
-5.0: X Window System and Resources
-* Q5.0.1:: Where is a list of X resources?
-* Q5.0.2:: How can I detect a color display?
-* Q5.0.3:: How can I get the icon to just say `XEmacs'?
-* Q5.0.4:: How can I have the window title area display the full path?
-* Q5.0.5:: `xemacs -name junk' doesn't work?
-* Q5.0.6:: `-iconic' doesn't work.
-
-5.1: Microsoft Windows
-* Q5.1.1:: Does XEmacs rename all the `win32-*' symbols to `w32-*'?
-* Q5.1.2:: How do I get Windows Explorer to associate a file type with XEmacs?
-
-5.2: Printing
-* Q5.2.1:: What do I need to change to make printing work?
-* Q5.2.2:: How can I print WYSIWYG a font-locked buffer?
-* Q5.2.3:: Getting M-x lpr to work with postscript printer.
-* Q5.2.4:: Can you print under MS Windows?
-
-5.3: Sound
-* Q5.3.1:: How do I turn off the sound?
-* Q5.3.2:: How do I get funky sounds instead of a boring beep?
-* Q5.3.3:: What are NAS and ESD (EsounD)?
-* Q5.3.4:: Sunsite sounds don't play.
-
-5.4: Running an Interior Shell, Invoking Subprocesses
-* Q5.4.1:: What is an interior shell?
-* Q5.4.2:: How do I start up a second shell buffer?
-* Q5.4.3:: Telnet from shell filters too much
-* Q5.4.4:: Strange things are happening in Shell Mode.
-* Q5.4.5:: XEmacs complains "No such file or directory, diff"
-* Q5.4.6:: Cygwin error "fork_copy: linked dll/bss pass 0 failed"
-
-5.5: Multiple Device Support
-* Q5.5.1:: How do I open a frame on another screen of my multi-headed display?
-* Q5.5.2:: Can I really connect to a running XEmacs after calling up over a modem? How?
-* Q5.5.3:: How do I disable gnuserv from opening a new frame?
-* Q5.5.4:: How do I start gnuserv so that each subsequent XEmacs is a client?
-* Q5.5.5:: Is there a way to start a new XEmacs if there's no gnuserv running, and otherwise use gnuclient?
-
-5.0: X Window System and Resources
-==================================
-
-\1f
-File: xemacs-faq.info, Node: Q5.0.1, Next: Q5.0.2, Prev: External Subsystems, Up: External Subsystems
-
-Q5.0.1: Where is a list of X resources?
----------------------------------------
-
-Search through the `NEWS' file for `X Resources'. A fairly
-comprehensive list is given after it.
-
- In addition, an `app-defaults' file `etc/Emacs.ad' is supplied,
-listing the defaults. The file `etc/sample.Xresources' gives a
-different set of defaults that you might consider for installation in
-your `~/.Xresources' file. It is nearly the same as `etc/Emacs.ad',
-but a few entries are altered. Be careful about installing the
-contents of this file into your `.Xresources' (or legacy `.Xdefaults')
-file if you use GNU Emacs under X11 as well.
-
-\1f
-File: xemacs-faq.info, Node: Q5.0.2, Next: Q5.0.3, Prev: Q5.0.1, Up: External Subsystems
-
-Q5.0.2: How can I detect a color display?
------------------------------------------
-
-You can test the return value of the function `(device-class)', as in:
-
- (when (eq (device-class) 'color)
- (set-face-foreground 'font-lock-comment-face "Grey")
- (set-face-foreground 'font-lock-string-face "Red")
- ....
- )
-
-\1f
-File: xemacs-faq.info, Node: Q5.0.3, Next: Q5.0.4, Prev: Q5.0.2, Up: External Subsystems
-
-Q5.0.3: How can I get the icon to just say `XEmacs'?
-----------------------------------------------------
-
-I'd like the icon to just say `XEmacs', and not include the name of the
-current file in it.
-
- Add the following line to your `init.el':
-
- (setq frame-icon-title-format "XEmacs")
-
-\1f
-File: xemacs-faq.info, Node: Q5.0.4, Next: Q5.0.5, Prev: Q5.0.3, Up: External Subsystems
-
-Q5.0.4: How can I have the window title area display the full path?
--------------------------------------------------------------------
-
-I'd like to have the window title area display the full directory/name
-of the current buffer file and not just the name.
-
- Add the following line to your `init.el':
-
- (setq frame-title-format "%S: %f")
-
- A more sophisticated title might be:
-
- (setq frame-title-format
- '("%S: " (buffer-file-name "%f"
- (dired-directory dired-directory "%b"))))
-
- That is, use the file name, or the dired-directory, or the buffer
-name.
-
-\1f
-File: xemacs-faq.info, Node: Q5.0.5, Next: Q5.0.6, Prev: Q5.0.4, Up: External Subsystems
-
-Q5.0.5: `xemacs -name junk' doesn't work?
------------------------------------------
-
-When I run `xterm -name junk', I get an xterm whose class name
-according to xprop, is `junk'. This is the way it's supposed to work,
-I think. When I run `xemacs -name junk' the class name is not set to
-`junk'. It's still `emacs'. What does `xemacs -name' really do? The
-reason I ask is that my window manager (fvwm) will make a window sticky
-and I use XEmacs to read my mail. I want that XEmacs window to be
-sticky, without having to use the window manager's function to set the
-window sticky. What gives?
-
- `xemacs -name' sets the application name for the program (that is,
-the thing which normally comes from `argv[0]'). Using `-name' is the
-same as making a copy of the executable with that new name. The
-`WM_CLASS' property on each frame is set to the frame-name, and the
-application-class. So, if you did `xemacs -name FOO' and then created
-a frame named BAR, you'd get an X window with WM_CLASS = `( "BAR",
-"Emacs")'. However, the resource hierarchy for this widget would be:
-
- Name: FOO .shell .container .BAR
- Class: Emacs .TopLevelEmacsShell.EmacsManager.EmacsFrame
-
- instead of the default
-
- Name: xemacs.shell .container .emacs
- Class: Emacs .TopLevelEmacsShell.EmacsManager.EmacsFrame
-
- It is arguable that the first element of WM_CLASS should be set to
-the application-name instead of the frame-name, but I think that's less
-flexible, since it does not give you the ability to have multiple frames
-with different WM_CLASS properties. Another possibility would be for
-the default frame name to come from the application name instead of
-simply being `emacs'. However, at this point, making that change would
-be troublesome: it would mean that many users would have to make yet
-another change to their resource files (since the default frame name
-would suddenly change from `emacs' to `xemacs', or whatever the
-executable happened to be named), so we'd rather avoid it.
-
- To make a frame with a particular name use:
-
- (make-frame '((name . "the-name")))
-
-\1f
-File: xemacs-faq.info, Node: Q5.0.6, Next: Q5.1.1, Prev: Q5.0.5, Up: External Subsystems
-
-Q5.0.6: `-iconic' doesn't work.
--------------------------------
-
-When I start up XEmacs using `-iconic' it doesn't work right. Using
-`-unmapped' on the command line, and setting the `initiallyUnmapped' X
-Resource don't seem to help much either...
-
- Ben Wing <ben@xemacs.org> writes:
-
- Ugh, this stuff is such an incredible mess that I've about given up
- getting it to work. The principal problem is numerous
- window-manager bugs...
-
-5.1: Microsoft Windows
-======================
-
-\1f
-File: xemacs-faq.info, Node: Q5.1.1, Next: Q5.1.2, Prev: Q5.0.6, Up: External Subsystems
-
-Q5.1.1: Does XEmacs rename all the `win32-*' symbols to `w32-*'?
-----------------------------------------------------------------
-
-In his flavor of Emacs 20, Richard Stallman has renamed all the
-`win32-*' symbols to `w32-*'. Does XEmacs do the same?
-
- We consider such a move counter-productive, thus we do not use the
-`w32' prefix. (His rather questionable justification was that he did
-not consider Windows to be a "winning" platform.) However, the name
-`Win32' is not particularly descriptive outside the Windows world, and
-using just `windows-' would be too generic. So we chose a compromise,
-the prefix `mswindows-' for Windows-related variables and functions.
-
- Thus all the XEmacs variables and functions directly related to
-either the Windows GUI or OS are prefixed `mswindows-' (except for a
-couple of debugging variables, prefixed `debug-mswindows-'). From an
-architectural perspective, however, we believe that this is mostly a
-non-issue because there should be a very small number of
-window-systems-specific variables anyway. Whenever possible, we try to
-provide generic interfaces that apply to all window systems.
-
-\1f
-File: xemacs-faq.info, Node: Q5.1.2, Next: Q5.2.1, Prev: Q5.1.1, Up: External Subsystems
-
-Q5.1.2: How do I get Windows Explorer to associate a file type with XEmacs?
----------------------------------------------------------------------------
-
-Associating a new file type with XEmacs.
-........................................
-
-In Explorer select `View->Options->File Types', press `[New Type...]'
-and fill in the dialog box, e.g.:
-
- Description of type: Emacs Lisp source
- Associated extension: el
- Content Type (MIME): text/plain
-
- then press `[New...]' and fill in the `Action' dialog box as follows:
-
- Action:
- Open
-
- Application used to perform action:
- D:\Full\path\for\xemacs.exe "%1"
-
- [x] Use DDE
-
- DDE Message:
- open("%1")
-
- Application:
- <leave blank>
-
- DDE Application Not Running:
- <leave blank>
-
- Topic:
- <leave blank>
-
-Associating an existing file type with XEmacs.
-..............................................
-
-In Explorer select `View->Options->File Types'. Click on the file type
-in the list and press `[Edit...]'. If the file type already has an
-`Open' action, double click on it and fill in the `Action' dialog box
-as described above; otherwise create a new action.
-
- If the file type has more than one action listed, you probably want
-to make the `Open' action that you just edited the default by clicking
-on it and pressing `Set Default'.
-
- Note for Windows 2000 users: Under Windows 2000, get to `File Types'
-using `Control Panel->Folder Options->File Types'.
-
-5.2: Printing
-=============
-
-\1f
-File: xemacs-faq.info, Node: Q5.2.1, Next: Q5.2.2, Prev: Q5.1.2, Up: External Subsystems
-
-Q5.2.1: What do I need to change to make printing work?
--------------------------------------------------------
-
-For regular printing there are two variables that can be customized.
-
-`lpr-command'
- This should be set to a command that takes standard input and sends
- it to a printer. Something like:
-
- (setq lpr-command "lp")
-
-`lpr-switches'
- This should be set to a list that contains whatever the print
- command requires to do its job. Something like:
-
- (setq lpr-switches '("-depson"))
-
- For postscript printing there are three analogous variables to
-customize.
-
-`ps-lpr-command'
- This should be set to a command that takes postscript on standard
- input and directs it to a postscript printer.
-
-`ps-lpr-switches'
- This should be set to a list of switches required for
- `ps-lpr-command' to do its job.
-
-`ps-print-color-p'
- This boolean variable should be set `t' if printing will be done in
- color, otherwise it should be set to `nil'.
-
- NOTE: It is an undocumented limitation in XEmacs that postscript
-printing (the `Pretty Print Buffer' menu item) *requires* a window
-system environment. It cannot be used outside of X11.
-
-\1f
-File: xemacs-faq.info, Node: Q5.2.2, Next: Q5.2.3, Prev: Q5.2.1, Up: External Subsystems
-
-Q5.2.2: How can I print WYSIWYG a font-locked buffer?
------------------------------------------------------
-
-Font-lock looks nice. How can I print (WYSIWYG) the highlighted
-document?
-
- The package `ps-print', which is now included with XEmacs, provides
-the ability to do this. The source code contains complete instructions
-on its use, in
-`$prefix/lib/xemacs/xemacs-packages/lisp/ps-print/ps-print.el', being
-the default location of an installed ps-print package.
-
-\1f
-File: xemacs-faq.info, Node: Q5.2.3, Next: Q5.2.4, Prev: Q5.2.2, Up: External Subsystems
-
-Q5.2.3: Getting `M-x lpr' to work with postscript printer.
-----------------------------------------------------------
-
-My printer is a Postscript printer and `lpr' only works for Postscript
-files, so how do I get `M-x lpr-region' and `M-x lpr-buffer' to work?
-
- Put something like this in your `init.el':
-
- (setq lpr-command "a2ps")
- (setq lpr-switches '("-p" "-1"))
-
- If you don't use a2ps to convert ASCII to postscript (why not, it's
-free?), replace with the command you do use. Note also that some
-versions of a2ps require a `-Pprinter' to ensure spooling.
-
-\1f
-File: xemacs-faq.info, Node: Q5.2.4, Next: Q5.3.1, Prev: Q5.2.3, Up: External Subsystems
-
-Q5.2.4: Can you print under MS Windows?
----------------------------------------
-
-As of 21.4, printing works on Windows, using simply `File->Print
-BUFFER...', and can be configured with `File->Page Setup...'.
-
- Prior to 21.4, there is no built-in support, but there are some
-clever hacks out there. If you know how, please let us know and we'll
-put it here.
-
-5.3: Sound
-==========
-
-\1f
-File: xemacs-faq.info, Node: Q5.3.1, Next: Q5.3.2, Prev: Q5.2.4, Up: External Subsystems
-
-Q5.3.1: How do I turn off the sound?
-------------------------------------
-
-Add the following line to your `init.el':
-
- (setq bell-volume 0)
- (setq sound-alist nil)
-
- That will make your XEmacs totally silent--even the default ding
-sound (TTY beep on TTY-s) will be gone.
-
- You can also change these with Customize. Select from the `Options'
-menu `Advanced (Customize)->Emacs->Environment->Sound->Sound...' or
-type `M-x customize <RET> sound <RET>'.
-
-\1f
-File: xemacs-faq.info, Node: Q5.3.2, Next: Q5.3.3, Prev: Q5.3.1, Up: External Subsystems
-
-Q5.3.2: How do I get funky sounds instead of a boring beep?
------------------------------------------------------------
-
-Make sure your XEmacs was compiled with sound support, and then put this
-in your `init.el':
-
- (load-default-sounds)
-
-\1f
-File: xemacs-faq.info, Node: Q5.3.3, Next: Q5.3.4, Prev: Q5.3.2, Up: External Subsystems
-
-Q5.3.3: What are NAS and ESD (EsounD)?
---------------------------------------
-
-"Network Audio System" (NAS) is a client-server sound library for X.
-
- `http://radscan.com/nas.html'.
-
- To build XEmacs with it, use the `configure' flag `--with-sound=nas'
-(`--enable-sound=nas' in 21.5 or later).
-
- "Enlightened Sound Daemon" (ESD or EsounD) is yet another sound
-system.
-
- `http://www.tux.org/~ricdude/EsounD.html'.
-
- To build XEmacs with it, use the `configure' flag `--with-sound=esd'
-(`--enable-sound=esd' in 21.5 or later).
-
- You can specify support for both with a flag like
-`--with-sound=nas,esd' (`--enable-sound=nas,esd' in 21.5 or later).
-
-\1f
-File: xemacs-faq.info, Node: Q5.3.4, Next: Q5.4.1, Prev: Q5.3.3, Up: External Subsystems
-
-Q5.3.4: Sunsite sounds don't play.
-----------------------------------
-
-I'm having some trouble with sounds I've downloaded from sunsite. They
-play when I run them through `showaudio' or cat them directly to
-`/dev/audio', but XEmacs refuses to play them.
-
- Markus Gutschke <gutschk@uni-muenster.de> writes:
-
- [Many of] These files have an (erroneous) 24byte header that tells
- about the format that they have been recorded in. If you cat them
- to `/dev/audio', the header will be ignored and the default
- behavior for /dev/audio will be used. This happens to be 8kHz
- uLaw. It is probably possible to fix the header by piping through
- `sox' and passing explicit parameters for specifying the sampling
- format; you then need to perform a 'null' conversion from SunAudio
- to SunAudio.
-
-5.4: Running an Interior Shell, Invoking Subprocesses
-=====================================================
-
-\1f
-File: xemacs-faq.info, Node: Q5.4.1, Next: Q5.4.2, Prev: Q5.3.4, Up: External Subsystems
-
-Q5.4.1: What is an interior shell?
-----------------------------------
-
-#### Write me.
-
-\1f
-File: xemacs-faq.info, Node: Q5.4.2, Next: Q5.4.3, Prev: Q5.4.1, Up: External Subsystems
-
-Q5.4.2: How do I start up a second shell buffer?
-------------------------------------------------
-
-In the `*shell*' buffer:
-
- M-x rename-buffer <RET> *shell-1* <RET>
- M-x shell RET
-
- This will then start a second shell. The key is that no buffer named
-`*shell*' can exist. It might be preferable to use `M-x
-rename-uniquely' to rename the `*shell*' buffer instead of `M-x
-rename-buffer'.
-
- Alternately, you can set the variable `shell-multiple-shells'. If
-the value of this variable is non-nil, each time shell mode is invoked,
-a new shell is made
-
-\1f
-File: xemacs-faq.info, Node: Q5.4.3, Next: Q5.4.4, Prev: Q5.4.2, Up: External Subsystems
-
-Q5.4.3: Telnet from shell filters too much
-------------------------------------------
-
-I'm using the Emacs `M-x shell' function, and I would like to invoke
-and use a telnet session within it. Everything works fine except that
-now all `^M''s are filtered out by Emacs. Fixes?
-
- Use `M-x rsh' or `M-x telnet' to open remote sessions rather than
-doing rsh or telnet within the local shell buffer. You can also use
-`M-x ssh' to open secure remote session if you have `ssh' installed.
-
-\1f
-File: xemacs-faq.info, Node: Q5.4.4, Next: Q5.4.5, Prev: Q5.4.3, Up: External Subsystems
-
-Q5.4.4: Strange things are happening in Shell Mode.
----------------------------------------------------
-
-Sometimes (i.e. it's not repeatable, and I can't work out why it
-happens) when I'm typing into shell mode, I hit return and only a
-portion of the command is given to the shell, and a blank prompt is
-returned. If I hit return again, the rest of the previous command is
-given to the shell.
-
- Martin Buchholz <martin@xemacs.org> writes:
-
- There is a known problem with interaction between `csh' and the
- `filec' option and XEmacs. You should add the following to your
- `.cshrc':
-
- if ( "$TERM" == emacs || "$TERM" == unknown ) unset filec
-
-\1f
-File: xemacs-faq.info, Node: Q5.4.5, Next: Q5.4.6, Prev: Q5.4.4, Up: External Subsystems
-
-Q5.4.5: XEmacs complains "No such file or directory, diff"
-----------------------------------------------------------
-
-or "ispell" or other commands that seem related to whatever you just
-tried to do (M-x ediff or M-$, for example).
-
- There are a large number of common (in the sense that "everyone has
-these, they really do") Unix utilities that are not provided with
-XEmacs. The GNU Project's implementations are available for Windows in
-the the Cygwin distribution (`http://www.cygwin.com/'), which also
-provides a complete Unix emulation environment (and thus makes ports of
-Unix utilities nearly trivial). Another implementation is that from
-MinGW (`http://www.mingw.org/msys.shtml'). If you know of others,
-please let us know!
-
-\1f
-File: xemacs-faq.info, Node: Q5.4.6, Next: Q5.5.1, Prev: Q5.4.5, Up: External Subsystems
-
-Q5.4.6: Cygwin error "fork_copy: linked dll/bss pass 0 failed"
---------------------------------------------------------------
-
-If you are getting an error like
-
- 17797832 [main] bash 3468 fork_copy: linked dll/bss pass 0 failed,
- 0x675000..0x6756A0, done 0, windows pid 2708, Win 32 error 487
- bash: fork: resource temporarily unavailable
-
- when trying to run bash using `M-x shell', then you need to rebase
-your Cygwin DLL's. This is a known problem with Cygwin. To fix:
-
- 1. Download the `rebase' utility from Cygwin setup (it's under
- `System').
-
- 2. Kill *all* of your Cygwin processes, including all of your shells
- and all background processes. Use `ps -a' to list all the
- processes you need to kill.
-
- 3. From a DOS prompt, run `ash' (*not* `bash', `tcsh' or `zsh'). Do
- not try to be clever and `exec /bin/ash' from your last shell; it
- won't work.
-
- 4. Type `/bin/rebaseall -v'.
-
- The problem should now be fixed - at least, until you install another
-Cygwin package with DLL's, in which case you may have to repeat the
-procedure.
-
-5.5: Multiple Device Support
-============================
-
-\1f
-File: xemacs-faq.info, Node: Q5.5.1, Next: Q5.5.2, Prev: Q5.4.6, Up: External Subsystems
-
-Q5.5.1: How do I open a frame on another screen of my multi-headed display?
----------------------------------------------------------------------------
-
-Use the command `M-x make-frame-on-display'. This command is also on
-the File menu in the menubar.
-
- The command `make-frame-on-tty' also exists, which will establish a
-connection to any tty-like device. Opening the TTY devices should be
-left to `gnuclient', though.
-
-\1f
-File: xemacs-faq.info, Node: Q5.5.2, Next: Q5.5.3, Prev: Q5.5.1, Up: External Subsystems
-
-Q5.5.2: Can I really connect to a running XEmacs after calling up over a modem? How?
--------------------------------------------------------------------------------------
-
-Yes. Use `gnuclient -nw'.
-
- Also see *Note How do I disable gnuserv from opening a new frame?:
-Q5.5.3.
-
-\1f
-File: xemacs-faq.info, Node: Q5.5.3, Next: Q5.5.4, Prev: Q5.5.2, Up: External Subsystems
-
-Q5.5.3: How do I disable gnuserv from opening a new frame?
-----------------------------------------------------------
-
-If you set the `gnuserv-frame' variable to the frame that should be
-used to display buffers that are pulled up, a new frame will not be
-created. For example, you could put
-
- (setq gnuserv-frame (selected-frame))
-
- early on in your `init.el', to ensure that the first frame created
-is the one used for your gnuserv buffers.
-
- There is an option to set the gnuserv target to the current frame.
-See `Options->Display->"Other Window" Location->Make Current Frame
-Gnuserv Target'
-
- You can also change this with Customize. Select from the `Options'
-menu `Advanced (Customize)->Emacs->Environment->Gnuserv->Gnuserv
-Frame...' or type `M-x customize <RET> gnuserv <RET>'.
-
-\1f
-File: xemacs-faq.info, Node: Q5.5.4, Next: Q5.5.5, Prev: Q5.5.3, Up: External Subsystems
-
-Q5.5.4: How do I start gnuserv so that each subsequent XEmacs is a client?
---------------------------------------------------------------------------
-
-Put the following in your `init.el' file to start the server:
-
- (gnuserv-start)
-
- Start your first XEmacs as usual. After that, you can do:
-
- gnuclient randomfilename
-
- from the command line to get your existing XEmacs process to open a
-new frame and visit randomfilename in that window. When you're done
-editing randomfilename, hit `C-x #' to kill the buffer and get rid of
-the frame.
-
- See also man page of gnuclient.
-
-\1f
-File: xemacs-faq.info, Node: Q5.5.5, Prev: Q5.5.4, Up: External Subsystems
-
-Q5.5.5: Is there a way to start a new XEmacs if there's no gnuserv running, and otherwise use gnuclient?
---------------------------------------------------------------------------------------------------------
-
-Jan Vroonhof <vroonhof@math.ethz.ch> writes:
-
- Here is one of the solutions, we have this in a script called
- `etc/editclient.sh'.
- #!/bin/sh
- if gnuclient -batch -eval t >/dev/null 2>&1
- then
- exec gnuclient ${1+"$@"}
- else
- xemacs -unmapped -f gnuserv-start &
- until gnuclient -batch -eval t >/dev/null 2>&1
- do
- sleep 1
- done
- exec gnuclient ${1+"$@"}
- fi
-
- Note that there is a known problem when running XEmacs and
- 'gnuclient -nw' on the same TTY.
-
-\1f
-File: xemacs-faq.info, Node: Internet, Next: Advanced, Prev: External Subsystems, Up: Top
-
-6 Connecting to the Internet
-****************************
-
-This is part 6 of the XEmacs Frequently Asked Questions list. This
-section is devoted connecting to the Internet.
-
-* Menu:
-
-6.0: General Mail and News
-* Q6.0.1:: What are the various packages for reading mail?
-* Q6.0.2:: How can I send mail?
-* Q6.0.3:: How do I get my outgoing mail archived?
-* Q6.0.4:: How can I read and/or compose MIME messages?
-* Q6.0.5:: How do I customize the From line?
-* Q6.0.6:: How do I get my MUA to filter mail for me?
-* Q6.0.7:: Remote mail reading with an MUA.
-* Q6.0.8:: An MUA gets an error incorporating new mail.
-* Q6.0.9:: Why isn't `movemail' working?
-* Q6.0.10:: How do I make my MUA display graphical smilies?
-* Q6.0.11:: How can I get those oh-so-neat X-Face lines?
-
-6.1: Reading Mail with VM
-* Q6.1.1:: How do I set up VM to retrieve mail from a remote site using POP?
-* Q6.1.2:: How can I get VM to automatically check for new mail?
-* Q6.1.3:: I have various addresses at which I receive mail. How can I tell VM to ignore them when doing a "reply-all"?
-* Q6.1.4:: Is there a mailing list or FAQ for VM?
-* Q6.1.5:: How do I make VM stay in a single frame?
-* Q6.1.6:: Customization of VM not covered in the manual, or here.
-
-6.2: Reading Netnews and Mail with Gnus
-* Q6.2.1:: GNUS, (ding) Gnus, Gnus 5, September Gnus, Red Gnus, Quassia Gnus, argh!
-* Q6.2.2:: How do I make Gnus stay within a single frame?
-
-6.3: FTP Access
-* Q6.3.1:: Can I edit files on other hosts?
-* Q6.3.2:: What is EFS?
-
-6.4: Web Browsing with W3
-* Q6.4.1:: What is W3?
-* Q6.4.2:: How do I run W3 from behind a firewall?
-* Q6.4.3:: Is it true that W3 supports style sheets and tables?
-
-6.0: General Mail and News
-==========================
-
-\1f
-File: xemacs-faq.info, Node: Q6.0.1, Next: Q6.0.2, Prev: Internet, Up: Internet
-
-Q6.0.1: What are the various packages for reading mail?
--------------------------------------------------------
-
-#### Write me.
-
-\1f
-File: xemacs-faq.info, Node: Q6.0.2, Next: Q6.0.3, Prev: Q6.0.1, Up: Internet
-
-Q6.0.2: How can I send mail?
-----------------------------
-
-Under Unix and Mac OS X, the `sendmail' package is normally used for
-this. #### Write me.
-
- Under Windows, you need to use `smtpmail', which communicates
-directly with the mail server, as there is no `sendmail' program
-running. To get it working, use code like the following in your
-`init.el' file:
-
- ;; Get mail working under Windows.
- (setq message-send-mail-function 'smtpmail-send-it) ; for message/Gnus
- (setq send-mail-function 'smtpmail-send-it) ; for C-x m, etc.
- ;; the following ensures that mail problems can be debugged: it logs a trace
- ;; of the SMTP conversation to *trace of SMTP session to <somewhere>*.
- (setq smtpmail-debug-info t)
- ;; Substitute your info here.
- ;(setq user-mail-address "ben@xemacs.org")
- ;(setq user-full-name "Ben Wing")
- ;(setq smtpmail-default-smtp-server "smtp.myserver.myisp.com")
- ;; The following two aren't completely necessary but may help.
- ;(setq smtpmail-local-domain "666.com")
- ;(setq smtpmail-sendto-domain "666.com")
- ;; If your SMTP server requires a username/password to authenticate, as
- ;; many do nowadays, set them like this:
- ;(setq smtpmail-auth-credentials ; or use ~/.authinfo
- ; '(("smtp.myserver.myisp.com" 25 "USER@SOMEWHERE" "PASSWORD")))
-
- ;; Other possibilities for getting smtpmail to work:
- ;;
- ;; If for some reason you need to authenticate using the STARTTLS protocol
- ;; (don't look into this unless you know what it is), use
- ;; (setq smtpmail-starttls-credentials
- ;; '(("YOUR SMTP HOST" 25 "~/.my_smtp_tls.key" "~/.my_smtp_tls.cert")))
- ;; Requires external program
- ;; ftp://ftp.opaopa.org/pub/elisp/starttls-*.tar.gz.
- ;; See http://www.ietf.org/rfc/rfc2246.txt,
- ;; http://www.ietf.org/rfc/rfc2487.txt
-
- The lines you need to care about are those that set
-`user-mail-address', `user-full-name', `smtpmail-default-smtp-server',
-and `smtpmail-auth-credentials'. You need to set these with,
-respectively, your email address, your full name, the SMTP server you
-use for outgoing mail, and the username and password you need to log in
-to your SMTP server. (If for some reason your SMTP server doesn't
-require logging in to send mail, don't uncomment this last line.)
-
- The other settings may be useful in specific cases, but you should
-know what you're doing before enabling them.
-
-\1f
-File: xemacs-faq.info, Node: Q6.0.3, Next: Q6.0.4, Prev: Q6.0.2, Up: Internet
-
-Q6.0.3: How do I get my outgoing mail archived?
------------------------------------------------
-
- (setq mail-archive-file-name "~/outbox")
-
-\1f
-File: xemacs-faq.info, Node: Q6.0.4, Next: Q6.0.5, Prev: Q6.0.3, Up: Internet
-
-Q6.0.4: How can I read and/or compose MIME messages?
-----------------------------------------------------
-
-VM, MH-E and GNUS support MIME natively. Other MUAs may or may not
-have MIME support; refer to their documentation and other resources,
-such as web pages and mailing lists. Packages like SEMI/WEMI may be
-useful in connection with MUAs like mew and Wanderlust.
-
-\1f
-File: xemacs-faq.info, Node: Q6.0.5, Next: Q6.0.6, Prev: Q6.0.4, Up: Internet
-
-Q6.0.5: How do I customize the From line?
------------------------------------------
-
-How do I change the `From:' line? I have set gnus-user-from-line to
- Gail Gurman <gail.gurman@sybase.com>
- , but XEmacs Gnus doesn't use it. [This should apply to all MUA's.
--ed] Instead it uses
- Gail Mara Gurman <gailg@deall>
- and then complains that it's incorrect. Also, as you perhaps can
-see, my Message-ID is screwy. How can I change that?
-
- Lars Magne Ingebrigtsen <larsi@ifi.uio.no> writes:
-
- Set `user-mail-address' to `gail.gurman@sybase.com' or
- `mail-host-address' to `sybase.com'.
-
-\1f
-File: xemacs-faq.info, Node: Q6.0.6, Next: Q6.0.7, Prev: Q6.0.5, Up: Internet
-
-Q6.0.6: How do I get my MUA to filter mail for me?
---------------------------------------------------
-
-One possibility is to use procmail to split your mail before it gets to
-the MUA. I prefer this personally, since there are many strange and
-wonderful things one can do with procmail. Procmail may be found at
-`http://www.procmail.org/'.
-
- Also see the Mail Filtering FAQ at:
-`http://www.faqs.org/faqs/mail/filtering-faq/'.
-
-\1f
-File: xemacs-faq.info, Node: Q6.0.7, Next: Q6.0.8, Prev: Q6.0.6, Up: Internet
-
-Q6.0.7: Remote mail reading with an MUA.
-----------------------------------------
-
-My mailbox lives at the office on a big honkin server. My regular INBOX
-lives on my honkin desktop machine. I now can PPP to the office from
-home which is far from honking... I'd like to be able to read mail at
-home without storing it here and I'd like to use xemacs and the MUA at
-home... Is there a recommended setup?
-
- Joseph J. Nuspl Jr. <nuspl@nvwls.cc.purdue.edu> writes:
-
- There are several ways to do this.
-
- 1. Set your display to your home machine and run dxpc or one of
- the other X compressors.
-
- 2. NFS mount your desktop machine on your home machine and
- modify your pop command on your home machine to rsh to your
- desktop machine and actually do the pop get's.
-
- 3. Run a POP server on your desktop machine as well and do a
- sort of two tiered POP get.
-
- William Perry <wmperry@monolith.spry.com> adds:
-
- Or you could run a pop script periodically on your desktop
- machine, and just use ange-ftp or NFS to get to your mailbox. I
- used to do this all the time back at IU.
-
-\1f
-File: xemacs-faq.info, Node: Q6.0.8, Next: Q6.0.9, Prev: Q6.0.7, Up: Internet
-
-Q6.0.8: An MUA gets an error incorporating new mail.
-----------------------------------------------------
-
-rmail and VM, and probably other MUA's as well, get new mail from your
-mailbox (called `/var/mail/$USER' or `/var/spool/mail/$USER' or
-something similar) using a program called `movemail'. This program
-interlocks with `/bin/mail' using the protocol defined by `/bin/mail'.
-
- There are various different protocols in general use, which you need
-to specify using the `--mail-locking' option (`--with-mail-locking' in
-21.5 or later) to `configure':
-
-`lockf'
- POSIX file locking with `lockf()'
-
-`flock'
- BSD file locking with `flock()'
-
-`dot'
- To manipulate mail file `foo', first create file `foo.lock'
-
-`locking'
- Use `locking()', Microsoft's renamed `flock()'
-
-`mmdf'
- Use `lk_open()' and `lk_close()' as defined by the Multi-channel
- Memo Distribution Facility
-
-`pop'
- Retrieve mail using POP (the Post Office Protocol). This is the
- default for Cygwin/MinGW.
-
- *IF YOU DON'T USE THE FORM OF INTERLOCKING THAT IS NORMAL ON YOUR
-SYSTEM, YOU CAN LOSE MAIL!*
-
- Usually the value is correctly determined automatically: `configure'
-tries to detect the method in use, and defaults exist on systems for
-which this doesn't work.
-
- However, if you run into problems incorporating new mail, it may be
-because an incorrect method is being used.
-
- If your system uses the lock file protocol, and permissions are set
-so that ordinary users cannot write lock files in the mail spool
-directory, you may need to make `movemail' setgid to a suitable group
-such as `mail'. You can use these commands (as root):
-
- chgrp mail movemail
- chmod 2755 movemail
-
- If you are using the `pop' locking method, `movemail' must be setuid
-root.
-
- Installation normally copies movemail from the build directory to an
-installation directory which is usually under `/usr/local/lib'. The
-installed copy of `movemail' is usually in the directory
-`/usr/local/lib/xemacs-VERSION/TARGET' (for example,
-`/usr/local/lib/xemacs-21.4.15/i686-pc-cygwin'). You must change the
-group and mode of the installed copy; changing the group and mode of
-the build directory copy is ineffective.
-
-\1f
-File: xemacs-faq.info, Node: Q6.0.9, Next: Q6.0.10, Prev: Q6.0.8, Up: Internet
-
-Q6.0.9: Why isn't `movemail' working?
--------------------------------------
-
-*Note Q6.0.8::.
-
- Note also that older versions of Mozilla came with a `movemail'
-program that is *not* compatible with XEmacs. Do not use it. Always
-use the `movemail' installed with your XEmacs. Failure to do so can
-result in lost mail.
-
-\1f
-File: xemacs-faq.info, Node: Q6.0.10, Next: Q6.0.11, Prev: Q6.0.9, Up: Internet
-
-Q6.0.10: How do I make my MUA display graphical smilies?
---------------------------------------------------------
-
-For mh-e use the following:
-
- (add-hook 'mh-show-mode-hook '(lambda ()
- (smiley-region (point-min)
- (point-max))))
-
- WJCarpenter <bill@carpenter.ORG> writes: For VM use the following:
- (autoload 'smiley-region "smiley" nil t)
- (add-hook 'vm-select-message-hook
- '(lambda ()
- (smiley-region (point-min)
- (point-max))))
-
- For tm use the following:
- (autoload 'smiley-buffer "smiley" nil t)
- (add-hook 'mime-viewer/plain-text-preview-hook 'smiley-buffer)
-
-\1f
-File: xemacs-faq.info, Node: Q6.0.11, Next: Q6.1.1, Prev: Q6.0.10, Up: Internet
-
-Q6.0.11: How can I get those oh-so-neat X-Face lines?
------------------------------------------------------
-
-Firstly there is an ftp site which describes X-faces and has the
-associated tools mentioned below, at
-`http://ftp.cs.indiana.edu/pub/faces/'.
-
- Then the steps are
-
- 1. Create 48x48x1 bitmap with your favorite tool
-
- 2. Convert to "icon" format using one of xbm2ikon, pbmtoicon, etc.,
- and then compile the face.
-
- 3. cat file.xbm | xbm2ikon |compface > file.face
-
- 4. Then be sure to quote things that are necessary for emacs strings:
-
- cat ./file.face | sed 's/\\/\\\\/g'
- | sed 's/\"/\\\"/g' > ./file.face.quoted
-
- 5. Then set up emacs to include the file as a mail header - there
- were a couple of suggestions here--either something like:
-
- (setq mail-default-headers
- "X-Face: <Ugly looking text string here>")
-
- Or, alternatively, as:
-
- (defun mail-insert-x-face ()
- (save-excursion
- (goto-char (point-min))
- (search-forward mail-header-separator)
- (beginning-of-line)
- (insert "X-Face:")
- (insert-file-contents "~/.face")))
-
- (add-hook 'mail-setup-hook 'mail-insert-x-face)
-
- However, 2 things might be wrong:
-
- Some versions of pbmtoicon produces some header lines that is not
-expected by the version of compface that I grabbed. So I found I had to
-include a `tail +3' in the pipeline like this:
-
- cat file.xbm | xbm2ikon | tail +3 |compface > file.face
-
- Some people have also found that if one uses the `(insert-file)'
-method, one should NOT quote the face string using the sed script .
-
- It might also be helpful to use Stig's <stig@hackvan.com> script
-xbm2face (included in the compface distribution at XEmacs.org) to do the
-conversion.
-
- Contributors for this item:
-
- Paul Emsley, Ricardo Marek, Amir J. Katz, Glen McCort, Heinz Uphoff,
-Peter Arius, Paul Harrison, and Vegard Vesterheim
-
-6.1: Reading Mail with VM
-=========================
-
-\1f
-File: xemacs-faq.info, Node: Q6.1.1, Next: Q6.1.2, Prev: Q6.0.11, Up: Internet
-
-Q6.1.1: How do I set up VM to retrieve mail from a remote site using POP?
--------------------------------------------------------------------------
-
-Use `vm-spool-files', like this for example:
-
- (setq vm-spool-files '("/var/spool/mail/wing"
- "netcom23.netcom.com:110:pass:wing:MYPASS"))
-
- Of course substitute your actual password for MYPASS.
-
-\1f
-File: xemacs-faq.info, Node: Q6.1.2, Next: Q6.1.3, Prev: Q6.1.1, Up: Internet
-
-Q6.1.2: How can I get VM to automatically check for new mail?
--------------------------------------------------------------
-
-John Turner <turner@lanl.gov> writes:
-
- Use the following:
-
- (setq vm-auto-get-new-mail 60)
-
-\1f
-File: xemacs-faq.info, Node: Q6.1.3, Next: Q6.1.4, Prev: Q6.1.2, Up: Internet
-
-Q6.1.3: I have various addresses at which I receive mail. How can I tell VM to ignore them when doing a "reply-all"?
----------------------------------------------------------------------------------------------------------------------
-
-Set `vm-reply-ignored-addresses' to a list, like
-
- (setq vm-reply-ignored-addresses
- '("wing@nuspl@nvwls.cc.purdue.edu,netcom[0-9]*.netcom.com"
- "wing@netcom.com" "wing@xemacs.org"))
-
- Note that each string is a regular expression.
-
-\1f
-File: xemacs-faq.info, Node: Q6.1.4, Next: Q6.1.5, Prev: Q6.1.3, Up: Internet
-
-Q6.1.4: Is there a mailing list or FAQ for VM?
-----------------------------------------------
-
-A FAQ for VM exists at `http://www.wonderworks.com/vm/FAQ.html'.
-
- VM has its own newsgroups gnu.emacs.vm.info and gnu.emacs.vm.bug.
-
-\1f
-File: xemacs-faq.info, Node: Q6.1.5, Next: Q6.1.6, Prev: Q6.1.4, Up: Internet
-
-Q6.1.5: How do I make VM stay in a single frame?
-------------------------------------------------
-
-John.John S Cooper <Cooper@Eng.Sun.COM> writes:
-
- ; Don't use multiple frames
- (setq vm-frame-per-composition nil)
- (setq vm-frame-per-folder nil)
- (setq vm-frame-per-edit nil)
- (setq vm-frame-per-summary nil)
-
-\1f
-File: xemacs-faq.info, Node: Q6.1.6, Next: Q6.2.1, Prev: Q6.1.5, Up: Internet
-
-Q6.1.6: Customization of VM not covered in the manual, or here.
----------------------------------------------------------------
-
-giacomo boffi <boffi@hp735.stru.polimi.it> writes:
-
- The meta-answer is to look into the file `vm-vars.el', in the vm
- directory of the lisp library.
-
- `vm-vars.el' contains, initializes and carefully describes, with
- examples of usage, the plethora of user options that _fully_
- control VM's behavior.
-
- Enter vm-vars, `forward-search' for toolbar, find the variables
- that control the toolbar placement, appearance, existence, copy to
- your `init.el' or `.vm' and modify according to the detailed
- instructions.
-
- The above also applies to all the various features of VM: search
- for some keywords, maybe the first you conjure isn't appropriate,
- find the appropriate variables, copy and experiment.
-
-6.2: Reading Netnews and Mail with Gnus
-=======================================
-
-\1f
-File: xemacs-faq.info, Node: Q6.2.1, Next: Q6.2.2, Prev: Q6.1.6, Up: Internet
-
-Q6.2.1: GNUS, (ding) Gnus, Gnus 5, September Gnus, Red Gnus, Quassia Gnus, argh!
---------------------------------------------------------------------------------
-
-The Gnus numbering issues are not meant for mere mortals to know them.
-If you feel you _must_ enter the muddy waters of Gnus, visit the
-excellent FAQ, maintained by Justin Sheehy, at:
-
- `http://my.gnus.org/FAQ/'
-
- See also Gnus home page
- `http://www.gnus.org/'
-
-\1f
-File: xemacs-faq.info, Node: Q6.2.2, Next: Q6.3.1, Prev: Q6.2.1, Up: Internet
-
-Q6.2.2: How do I make Gnus stay within a single frame?
-------------------------------------------------------
-
-The toolbar code to start Gnus opens the new frame--and it's a feature
-rather than a bug. If you don't like it, but would still like to click
-on the seemly icon, use the following code:
-
- (defun toolbar-news ()
- (gnus))
-
- It will redefine the callback function of the icon to just call
-`gnus', without all the fancy frame stuff.
-
-6.3: FTP Access
-===============
-
-\1f
-File: xemacs-faq.info, Node: Q6.3.1, Next: Q6.3.2, Prev: Q6.2.2, Up: Internet
-
-Q6.3.1: Can I edit files on other hosts?
-----------------------------------------
-
-Yes. Of course XEmacs can use any network file system (such as NFS or
-Windows file sharing) you have available, and includes some
-optimizations and safety features appropriate to those environments.
-
- It is also possible to transparently edit files via FTP, ssh, or
-rsh. That is, XEmacs makes a local copy using the transport in the
-background, and automatically refreshes the remote original from that
-copy when you save it. XEmacs also is capable of doing file system
-manipulations like creating and removing directories and files. The
-FTP interface is provided by the standard `efs' package *Note EFS:
-(efs)Top. The ssh/rsh interface is provided by the optional `tramp'
-package *Note TRAMP: (tramp)Top.
-
-\1f
-File: xemacs-faq.info, Node: Q6.3.2, Next: Q6.4.1, Prev: Q6.3.1, Up: Internet
-
-Q6.3.2: What is EFS?
---------------------
-
-#### Write me.
-
-6.4: Web Browsing with W3
-=========================
-
-\1f
-File: xemacs-faq.info, Node: Q6.4.1, Next: Q6.4.2, Prev: Q6.3.2, Up: Internet
-
-Q6.4.1: What is W3?
--------------------
-
-W3 is an advanced graphical browser written in Emacs lisp that runs on
-XEmacs. It has full support for cascaded style sheets, and more...
-
- It has a home web page at
-`http://www.cs.indiana.edu/elisp/w3/docs.html'.
-
-\1f
-File: xemacs-faq.info, Node: Q6.4.2, Next: Q6.4.3, Prev: Q6.4.1, Up: Internet
-
-Q6.4.2: How do I run W3 from behind a firewall?
------------------------------------------------
-
-There is a long, well-written, detailed section in the W3 manual that
-describes how to do this. Look in the section entitled "Firewalls".
-
-\1f
-File: xemacs-faq.info, Node: Q6.4.3, Prev: Q6.4.2, Up: Internet
-
-Q6.4.3: Is it true that W3 supports style sheets and tables?
-------------------------------------------------------------
-
-Yes, and much more. W3, as distributed with the latest XEmacs is a
-full-featured web browser.
-
-\1f
-File: xemacs-faq.info, Node: Advanced, Next: Other Packages, Prev: Internet, Up: Top
-
-7 Advanced Customization Using XEmacs Lisp
-******************************************
-
-This is part 7 of the XEmacs Frequently Asked Questions list. This
-section is devoted to advanced customization using XEmacs Lisp.
-
-* Menu:
-
-7.0: Emacs Lisp and `init.el'
-* Q7.0.1:: What version of Emacs am I running?
-* Q7.0.2:: How can I evaluate Emacs-Lisp expressions?
-* Q7.0.3:: `(setq tab-width 6)' behaves oddly.
-* Q7.0.4:: How can I add directories to the `load-path'?
-* Q7.0.5:: How to check if a lisp function is defined?
-* Q7.0.6:: Can I force the output of `(face-list)' to a buffer?
-
-7.1: Emacs Lisp Programming Techniques
-* Q7.1.1:: What is the difference in key sequences between XEmacs and GNU Emacs?
-* Q7.1.2:: Can I generate "fake" keyboard events?
-* Q7.1.3:: Could you explain `read-kbd-macro' in more detail?
-* Q7.1.4:: What is the performance hit of `let'?
-* Q7.1.5:: What is the recommended use of `setq'?
-* Q7.1.6:: What is the typical misuse of `setq'?
-* Q7.1.7:: I like the `do' form of cl, does it slow things down?
-* Q7.1.8:: I like recursion, does it slow things down?
-* Q7.1.9:: How do I put a glyph as annotation in a buffer?
-* Q7.1.10:: `map-extents' won't traverse all of my extents!
-* Q7.1.11:: My elisp program is horribly slow. Is there an easy way to find out where it spends time?
-
-7.2: Mathematics
-* Q7.2.1:: What are bignums, ratios, and bigfloats in Lisp?
-* Q7.2.2:: XEmacs segfaults when I use very big numbers!
-* Q7.2.3:: Bignums are really slow!
-* Q7.2.4:: Equal bignums don't compare as equal! What gives?
-
-7.0: Emacs Lisp and `init.el'
-=============================
-
-\1f
-File: xemacs-faq.info, Node: Q7.0.1, Next: Q7.0.2, Prev: Advanced, Up: Advanced
-
-Q7.0.1: What version of Emacs am I running?
--------------------------------------------
-
-How can `init.el' determine which of the family of Emacsen I am using?
-
- To determine if you are currently running GNU Emacs 18, GNU Emacs 19,
-XEmacs 19, XEmacs 20, or Epoch, and use appropriate code, check out the
-example given in `etc/sample.init.el' (`etc/sample.emacs' in XEmacs
-versions prior to 21.4). There are other nifty things in there as well!
-
- For all new code, all you really need to do is:
-
- (defvar running-xemacs (string-match "XEmacs\\|Lucid" emacs-version))
-
-\1f
-File: xemacs-faq.info, Node: Q7.0.2, Next: Q7.0.3, Prev: Q7.0.1, Up: Advanced
-
-Q7.0.2: How can I evaluate Emacs-Lisp expressions?
---------------------------------------------------
-
-I know I can evaluate Elisp expressions from `*scratch*' buffer with
-`C-j' after the expression. How do I do it from another buffer?
-
- Press `M-:' (the default binding of `eval-expression'), and enter
-the expression to the minibuffer.
-
-\1f
-File: xemacs-faq.info, Node: Q7.0.3, Next: Q7.0.4, Prev: Q7.0.2, Up: Advanced
-
-Q7.0.3: `(setq tab-width 6)' behaves oddly.
--------------------------------------------
-
-If you put `(setq tab-width 6)' in your `init.el' file it does not
-work! Is there a reason for this? If you do it at the EVAL prompt it
-works fine!! How strange.
-
- Use `setq-default' instead, since `tab-width' is all-buffer-local.
-
-\1f
-File: xemacs-faq.info, Node: Q7.0.4, Next: Q7.0.5, Prev: Q7.0.3, Up: Advanced
-
-Q7.0.4: How can I add directories to the `load-path'?
------------------------------------------------------
-
-Here are two ways to do that, one that puts your directories at the
-front of the load-path, the other at the end:
-
- ;;; Add things at the beginning of the load-path, do not add
- ;;; duplicate directories:
- (pushnew "bar" load-path :test 'equal)
-
- (pushnew "foo" load-path :test 'equal)
-
- ;;; Add things at the end, unconditionally
- (setq load-path (nconc load-path '("foo" "bar")))
-
- keith (k.p.) hanlan <keithh@nortel.ca> writes:
-
- To add directories using Unix shell metacharacters use
- `expand-file-name' like this:
-
- (push (expand-file-name "~keithh/.emacsdir") load-path)
-
-\1f
-File: xemacs-faq.info, Node: Q7.0.5, Next: Q7.0.6, Prev: Q7.0.4, Up: Advanced
-
-Q7.0.5: How to check if a lisp function is defined?
----------------------------------------------------
-
-Use the following elisp:
-
- (fboundp 'foo)
-
- It's almost always a mistake to test `emacs-version' or any similar
-variables.
-
- Instead, use feature-tests, such as `featurep', `boundp', `fboundp',
-or even simple behavioral tests, eg.:
-
- (defvar foo-old-losing-code-p
- (condition-case nil (progn (losing-code t) nil)
- (wrong-number-of-arguments t)))
-
- There is an incredible amount of broken code out there which could
-work much better more often in more places if it did the above instead
-of trying to divine its environment from the value of one variable.
-
-\1f
-File: xemacs-faq.info, Node: Q7.0.6, Next: Q7.1.1, Prev: Q7.0.5, Up: Advanced
-
-Q7.0.6: Can I force the output of `(face-list)' to a buffer?
-------------------------------------------------------------
-
-It would be good having it in a buffer, as the output of `(face-list)'
-is too wide to fit to a minibuffer.
-
- Evaluate the expression in the `*scratch*' buffer with point after
-the rightmost paren and typing `C-j'.
-
- If the minibuffer smallness is the only problem you encounter, you
-can simply press `C-h l' to get the former minibuffer contents in a
-buffer.
-
-7.1: Emacs Lisp Programming Techniques
-======================================
-
-\1f
-File: xemacs-faq.info, Node: Q7.1.1, Next: Q7.1.2, Prev: Q7.0.6, Up: Advanced
-
-Q7.1.1: What is the difference in key sequences between XEmacs and GNU Emacs?
------------------------------------------------------------------------------
-
-Erik Naggum <clerik@naggum.no> writes;
-
- Emacs has a legacy of keyboards that produced characters with
- modifier bits, and therefore map a variety of input systems into
- this scheme even today. XEmacs is instead optimized for X events.
- This causes an incompatibility in the way key sequences are
- specified, but both Emacs and XEmacs will accept a key sequence as
- a vector of lists of modifiers that ends with a key, e.g., to bind
- `M-C-a', you would say `[(meta control a)]' in both Emacsen.
- XEmacs has an abbreviated form for a single key, just (meta
- control a). Emacs has an abbreviated form for the Control and the
- Meta modifiers to string-characters (the ASCII characters), as in
- `\M-\C-a'. XEmacs users need to be aware that the abbreviated
- form works only for one-character key sequences, while Emacs users
- need to be aware that the string-character is rather limited.
- Specifically, the string-character can accommodate only 256
- different values, 128 of which have the Meta modifier and 128 of
- which have not. In each of these blocks, only 32 characters have
- the Control modifier. Whereas `[(meta control A)]' differs from
- `[(meta control a)]' because the case differs, `\M-\C-a' and
- `\M-\C-A' do not. Programmers are advised to use the full common
- form, both because it is more readable and less error-prone, and
- because it is supported by both Emacsen.
-
- Another (even safer) way to be sure of the key-sequences is to use
-the `read-kbd-macro' function, which takes a string like `C-c <up>',
-and converts it to the internal key representation of the Emacs you
-use. The function is available both on XEmacs and GNU Emacs.
-
-\1f
-File: xemacs-faq.info, Node: Q7.1.2, Next: Q7.1.3, Prev: Q7.1.1, Up: Advanced
-
-Q7.1.2: Can I generate "fake" keyboard events?
-----------------------------------------------
-
-I wonder if there is an interactive function that can generate "fake"
-keyboard events. This way, I could simply map them inside XEmacs.
-
- This seems to work:
-
- (defun cg--generate-char-event (ch)
- "Generate an event, as if ch has been typed"
- (dispatch-event (character-to-event ch)))
-
- ;; Backspace and Delete stuff
- (global-set-key [backspace]
- (lambda () (interactive) (cg--generate-char-event 127)))
- (global-set-key [unknown_keysym_0x4]
- (lambda () (interactive) (cg--generate-char-event 4)))
-
-\1f
-File: xemacs-faq.info, Node: Q7.1.3, Next: Q7.1.4, Prev: Q7.1.2, Up: Advanced
-
-Q7.1.3: Could you explain `read-kbd-macro' in more detail?
-----------------------------------------------------------
-
-The `read-kbd-macro' function returns the internal Emacs representation
-of a human-readable string (which is its argument). Thus:
-
- (read-kbd-macro "C-c C-a")
- => [(control ?c) (control ?a)]
-
- (read-kbd-macro "C-c C-. <up>")
- => [(control ?c) (control ?.) up]
-
- In GNU Emacs the same forms will be evaluated to what GNU Emacs
-understands internally--the sequences `"\C-x\C-c"' and `[3 67108910
-up]', respectively.
-
- The exact "human-readable" syntax is defined in the docstring of
-`edmacro-mode'. I'll repeat it here, for completeness.
-
- Format of keyboard macros during editing:
-
- Text is divided into "words" separated by whitespace. Except for
- the words described below, the characters of each word go directly
- as characters of the macro. The whitespace that separates words is
- ignored. Whitespace in the macro must be written explicitly, as in
- `foo <SPC> bar <RET>'.
-
- * The special words `RET', `SPC', `TAB', `DEL', `LFD', `ESC',
- and `NUL' represent special control characters. The words
- must be written in uppercase.
-
- * A word in angle brackets, e.g., `<return>', `<down>', or
- `<f1>', represents a function key. (Note that in the standard
- configuration, the function key `<return>' and the control key
- <RET> are synonymous.) You can use angle brackets on the
- words <RET>, <SPC>, etc., but they are not required there.
-
- * Keys can be written by their ASCII code, using a backslash
- followed by up to six octal digits. This is the only way to
- represent keys with codes above \377.
-
- * One or more prefixes `M-' (meta), `C-' (control), `S-'
- (shift), `A-' (alt), `H-' (hyper), and `s-' (super) may
- precede a character or key notation. For function keys, the
- prefixes may go inside or outside of the brackets: `C-<down>'
- == `<C-down>'. The prefixes may be written in any order:
- `M-C-x' == `C-M-x'.
-
- Prefixes are not allowed on multi-key words, e.g., `C-abc',
- except that the Meta prefix is allowed on a sequence of
- digits and optional minus sign: `M--123' == `M-- M-1 M-2 M-3'.
-
- * The `^' notation for control characters also works: `^M' ==
- `C-m'.
-
- * Double angle brackets enclose command names: `<<next-line>>'
- is shorthand for `M-x next-line <RET>'.
-
- * Finally, `REM' or `;;' causes the rest of the line to be
- ignored as a comment.
-
- Any word may be prefixed by a multiplier in the form of a decimal
- number and `*': `3*<right>' == `<right> <right> <right>', and
- `10*foo' == `foofoofoofoofoofoofoofoofoofoo'.
-
- Multiple text keys can normally be strung together to form a word,
- but you may need to add whitespace if the word would look like one
- of the above notations: `; ; ;' is a keyboard macro with three
- semicolons, but `;;;' is a comment. Likewise, `\ 1 2 3' is four
- keys but `\123' is a single key written in octal, and `< right >'
- is seven keys but `<right>' is a single function key. When in
- doubt, use whitespace.
-
-\1f
-File: xemacs-faq.info, Node: Q7.1.4, Next: Q7.1.5, Prev: Q7.1.3, Up: Advanced
-
-Q7.1.4: What is the performance hit of `let'?
----------------------------------------------
-
-In most cases, not noticeable. Besides, there's no avoiding `let'--you
-have to bind your local variables, after all. Some pose a question
-whether to nest `let's, or use one `let' per function. I think because
-of clarity and maintenance (and possible future implementation),
-`let'-s should be used (nested) in a way to provide the clearest code.
-
-\1f
-File: xemacs-faq.info, Node: Q7.1.5, Next: Q7.1.6, Prev: Q7.1.4, Up: Advanced
-
-Q7.1.5: What is the recommended use of `setq'?
-----------------------------------------------
-
- * Global variables
-
- You will typically `defvar' your global variable to a default
- value, and use `setq' to set it later.
-
- It is never a good practice to `setq' user variables (like
- `case-fold-search', etc.), as it ignores the user's choice
- unconditionally. Note that `defvar' doesn't change the value of a
- variable if it was bound previously. If you wish to change a
- user-variable temporarily, use `let':
-
- (let ((case-fold-search nil))
- ... ; code with searches that must be case-sensitive
- ...)
-
- You will notice the user-variables by their docstrings beginning
- with an asterisk (a convention).
-
- * Local variables
-
- Bind them with `let', which will unbind them (or restore their
- previous value, if they were bound) after exiting from the `let'
- form. Change the value of local variables with `setq' or whatever
- you like (e.g. `incf', `setf' and such). The `let' form can even
- return one of its local variables.
-
- Typical usage:
-
- ;; iterate through the elements of the list returned by
- ;; `hairy-function-that-returns-list'
- (let ((l (hairy-function-that-returns-list)))
- (while l
- ... do something with (car l) ...
- (setq l (cdr l))))
-
- Another typical usage includes building a value simply to work
- with it.
-
- ;; Build the mode keymap out of the key-translation-alist
- (let ((inbox (file-truename (expand-file-name box)))
- (i 0))
- ... code dealing with inbox ...
- inbox)
-
- This piece of code uses the local variable `inbox', which becomes
- unbound (or regains old value) after exiting the form. The form
- also returns the value of `inbox', which can be reused, for
- instance:
-
- (setq foo-processed-inbox
- (let .....))
-
-\1f
-File: xemacs-faq.info, Node: Q7.1.6, Next: Q7.1.7, Prev: Q7.1.5, Up: Advanced
-
-Q7.1.6: What is the typical misuse of `setq'?
----------------------------------------------
-
-A typical misuse is probably `setq'ing a variable that was meant to be
-local. Such a variable will remain bound forever, never to be
-garbage-collected. For example, the code doing:
-
- (defun my-function (whatever)
- (setq a nil)
- ... build a large list ...
- ... and exit ...)
-
- does a bad thing, as `a' will keep consuming memory, never to be
-unbound. The correct thing is to do it like this:
-
- (defun my-function (whatever)
- (let (a) ; default initialization is to nil
- ... build a large list ...
- ... and exit, unbinding `a' in the process ...)
-
- Not only is this prettier syntactically, but it makes it possible for
-Emacs to garbage-collect the objects which `a' used to reference.
-
- Note that even global variables should not be `setq'ed without
-`defvar'ing them first, because the byte-compiler issues warnings. The
-reason for the warning is the following:
-
- (defun flurgoze nil) ; ok, global internal variable
- ...
-
- (setq flurghoze t) ; ops! a typo, but semantically correct.
- ; however, the byte-compiler warns.
-
- While compiling toplevel forms:
- ** assignment to free variable flurghoze
-
-\1f
-File: xemacs-faq.info, Node: Q7.1.7, Next: Q7.1.8, Prev: Q7.1.6, Up: Advanced
-
-Q7.1.7: I like the `do' form of cl, does it slow things down?
--------------------------------------------------------------
-
-It shouldn't. Here is what Dave Gillespie has to say about cl.el
-performance:
-
- Many of the advanced features of this package, such as `defun*',
- `loop', and `setf', are implemented as Lisp macros. In
- byte-compiled code, these complex notations will be expanded into
- equivalent Lisp code which is simple and efficient. For example,
- the forms
-
- (incf i n)
- (push x (car p))
-
- are expanded at compile-time to the Lisp forms
-
- (setq i (+ i n))
- (setcar p (cons x (car p)))
-
- which are the most efficient ways of doing these respective
- operations in Lisp. Thus, there is no performance penalty for
- using the more readable `incf' and `push' forms in your compiled
- code.
-
- _Interpreted_ code, on the other hand, must expand these macros
- every time they are executed. For this reason it is strongly
- recommended that code making heavy use of macros be compiled. (The
- features labelled "Special Form" instead of "Function" in this
- manual are macros.) A loop using `incf' a hundred times will
- execute considerably faster if compiled, and will also
- garbage-collect less because the macro expansion will not have to
- be generated, used, and thrown away a hundred times.
-
- You can find out how a macro expands by using the `cl-prettyexpand'
- function.
-
-\1f
-File: xemacs-faq.info, Node: Q7.1.8, Next: Q7.1.9, Prev: Q7.1.7, Up: Advanced
-
-Q7.1.8: I like recursion, does it slow things down?
----------------------------------------------------
-
-Yes. The Emacs byte-compiler cannot do much to optimize recursion. But
-think well whether this is a real concern in Emacs. Much of the Emacs
-slowness comes from internal mechanisms such as redisplay, or from the
-fact that it is an interpreter.
-
- Please try not to make your code much uglier to gain a very small
-speed gain. It's not usually worth it.
-
-\1f
-File: xemacs-faq.info, Node: Q7.1.9, Next: Q7.1.10, Prev: Q7.1.8, Up: Advanced
-
-Q7.1.9: How do I put a glyph as annotation in a buffer?
--------------------------------------------------------
-
-Here is a solution that will insert the glyph annotation at the
-beginning of buffer:
-
- (make-annotation (make-glyph '([FORMAT :file FILE]
- [string :data "fallback-text"]))
- (point-min)
- 'text
- (current-buffer))
-
- Replace `FORMAT' with an unquoted symbol representing the format of
-the image (e.g. `xpm', `xbm', `gif', `jpeg', etc.) Instead of `FILE',
-use the image file name (e.g.
-`/usr/local/lib/xemacs-21.4/etc/recycle.xpm').
-
- You can turn this to a function (that optionally prompts you for a
-file name), and inserts the glyph at `(point)' instead of `(point-min)'.
-
-\1f
-File: xemacs-faq.info, Node: Q7.1.10, Next: Q7.1.11, Prev: Q7.1.9, Up: Advanced
-
-Q7.1.10: `map-extents' won't traverse all of my extents!
---------------------------------------------------------
-
-I tried to use `map-extents' to do an operation on all the extents in a
-region. However, it seems to quit after processing a random number of
-extents. Is it buggy?
-
- No. The documentation of `map-extents' states that it will iterate
-across the extents as long as FUNCTION returns `nil'. Unexperienced
-programmers often forget to return `nil' explicitly, which results in
-buggy code. For instance, the following code is supposed to delete all
-the extents in a buffer, and issue as many `fubar!' messages.
-
- (map-extents (lambda (ext ignore)
- (delete-extent ext)
- (message "fubar!")))
-
- Instead, it will delete only the first extent, and stop right there -
-because `message' will return a non-nil value. The correct code is:
-
- (map-extents (lambda (ext ignore)
- (delete-extent ext)
- (message "fubar!")
- nil))
-
-\1f
-File: xemacs-faq.info, Node: Q7.1.11, Next: Q7.2.1, Prev: Q7.1.10, Up: Advanced
-
-Q7.1.11: My elisp program is horribly slow. Is there an easy way to find out where it spends time?
----------------------------------------------------------------------------------------------------
-
-Hrvoje Niksic <hniksic@xemacs.org> writes:
-
- Under XEmacs 20.4 and later you can use `M-x profile-key-sequence',
- press a key (say <RET> in the Gnus Group buffer), and get the
- results using `M-x profile-results'. It should give you an idea of
- where the time is being spent.
-
-7.2: Mathematics
-================
-
-\1f
-File: xemacs-faq.info, Node: Q7.2.1, Next: Q7.2.2, Prev: Q7.1.11, Up: Advanced
-
-Q7.2.1: What are bignums, ratios, and bigfloats in Lisp?
---------------------------------------------------------
-
-Thanks to Jerry James <james@xemacs.org>, XEmacs 21.5.18 and later can
-use the capabilities of multiple-precision libraries that may be
-available for your platform. The GNU Multiple Precision (GMP) and BSD
-Multiple Precision (MP) libraries are partially supported. GMP gives
-you "bignums" (arbitrary precision integers), "ratios" (arbitrary
-precision fractions), and "bigfloats" (arbitrary precision floating
-point numbers). GNU MP is better-supported by XEmacs at the time of
-writing (2004-04-06). BSD MP support does not include ratios or
-bigfloats, and it throws errors that aren't understood.
-
- In most cases, bignum support should be transparent to users and Lisp
-programmers. A bignum-enabled XEmacs will automatically convert from
-fixnums to bignums and back in pure integer arithmetic, and for GNU MP,
-from floats to bigfloats. (Bigfloats must be explicitly coerced to
-other types, even if they are exactly representable by less precise
-types.) The Lisp reader and printer have been enhanced to handle
-bignums, as have the mathematical functions. Rationals (fixnums,
-bignums, and ratios) are printed using the `%d', `%o', `%x', and `%u'
-format conversions. The read syntax for ratios is `3/5'.
-
- User-visible changes in behavior include (in probable order of
-annoyance)
-
- * Arithmetic can cause a segfault, depending on your MP library
- *Note XEmacs segfaults when I use very big numbers!: Q7.2.2.
-
- * Terminology is not Common-Lisp-conforming. For example, "integer"
- for Emacs Lisp means what Common Lisp calls "fixnum". This issue
- is being investigated, but the use of "integer" for fixnum is
- pervasive and may cause backward-compatibility and
- GNU-Emacs-compatibility problems.
-
- * Many operations that used to cause a range error now succeed, with
- intermediate results and return values coerced to bignums as
- needed.
-
- * An atom with ratio read syntax now returns a number, not a symbol.
-
- * The `%u' format conversion will now give an error if its argument
- is negative. (Without MP, it prints a number which Lisp can't
- read.)
-
- _Surgeon General's Warning_: The automatic conversions cannot be
-disabled at runtime. New functions have been added which produce
-ratios, so there should be few surprises with type conflicts, but they
-can't be ruled out. "Arbitrary" precision means precisely what it
-says. If you work with extremely large numbers, your machine may
-arbitrarily decide to hand you an unpleasant surprise rather than a
-bignum *Note XEmacs segfaults when I use very big numbers!: Q7.2.2.
-
- To configure with GNU MP, add `--use-number-lib=gmp'
-(`--enable-bignum=gmp' in 21.5 or later) to your invocation of
-`configure'. For BSD MP, use `--use-number-lib=mp'
-(`--enable-bignum=mp' for 21.5).
-
- If you would like to help with bignum support, especially on BSD MP,
-please subscribe to the XEmacs Beta mailing list
-(http://www.xemacs.org/Lists/#xemacs-beta), and book up on
-`number-gmp.h' and `number-mp.h'. Jerry has promised to write
-internals documentation eventually, but if your skills run more to
-analysis and documentation than to writing new code, feel free to fill
-in the gap!
-