XEmacs 21.4.18 (Social Property).
authortomo <tomo>
Tue, 23 May 2006 15:02:25 +0000 (15:02 +0000)
committertomo <tomo>
Tue, 23 May 2006 15:02:25 +0000 (15:02 +0000)
55 files changed:
ChangeLog
configure
configure.in
etc/NEWS
etc/OXYMORONS
etc/PACKAGES
etc/TUTORIAL.cs [new file with mode: 0644]
etc/TUTORIAL.sl [new file with mode: 0644]
lib-src/ChangeLog
lib-src/installexe.sh
lisp/ChangeLog
lisp/about.el
lisp/auto-autoloads.el
lisp/buffer.el
lisp/cmdloop.el
lisp/code-process.el
lisp/derived.el
lisp/easymenu.el
lisp/finder.el
lisp/font.el
lisp/help.el
lisp/minibuf.el
lisp/package-get.el
lisp/package-ui.el
lisp/simple.el
lisp/window-xemacs.el
lwlib/ChangeLog
lwlib/lwlib-Xlw.c
man/ChangeLog
man/custom.texi
man/lispref/extents.texi
man/lispref/faces.texi
man/lispref/glyphs.texi
man/lispref/lispref.texi
man/lispref/mule.texi
man/lispref/searching.texi
netinstall/ChangeLog
nt/ChangeLog
src/ChangeLog
src/callproc.c
src/chartab.c
src/config.h.in
src/console-tty.h
src/database.c
src/depend
src/emacs.c
src/glyphs-gtk.c
src/mule-ccl.c
src/process-unix.c
src/redisplay-tty.c
src/select-x.c
src/sysdll.c
src/unexelf.c
tests/ChangeLog
version.sh

index 36309bb..e47efd0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,60 @@
+2005-12-03  Vin Shelton <acs@xemacs.org>
+
+       * XEmacs 21.4.18 is released
+
+2005-12-01  Vin Shelton  <acs@xemacs.org>
+
+       * etc/TUTORIAL.cs: copied from 21.5.
+       * etc/TUTORIAL.sl: copied from 21.5.
+
+2005-11-29  Ilya Golubev  <golubev@xemacs.org>
+
+       * configure.in: Merge revision 1.19 change: fix ldap libraries
+       configuration lossage when `-lldap -llber' links and but `-lldap'
+       does not; allow `ldap_libs' to be empty or overridden by builder.
+       The lossage was introduced in upstream revision 1.151.2.31
+       (2005/01/31 02:54:47 vins) by (extremely hasty and unwise) merge
+       of revision 1.232 change.
+       * etc/NEWS: Document it.
+
+2005-03-12  Aidan Kehoe  <kehoea@parhasard.net>
+
+       * configure.in (XE_COMPUTE_RUNPATH): Check XtRegisterDrawable
+       availability. 
+
+2005-04-11  Norbert Koch  <viteno@xemacs.org>
+
+       * etc/PACKAGES: etc/PACKAGES: Announce re-builder, xetla.
+
+2005-11-15  Dr. Volker Zell  <Dr.Volker.Zell@oracle.com>
+
+       * configure.in: Avoid using Motif also for cygwin
+
+2005-11-15  Dr. Volker Zell  <Dr.Volker.Zell@oracle.com>
+
+       * configure.in: Check for u_int*_t typedefs and use them in
+       Berkeley DB detection.
+
+2005-04-11  Norbert Koch  <viteno@xemacs.org>
+
+       * etc/PACKAGES: etc/PACKAGES: Announce re-builder, xetla.
+
+2005-03-23  Vin Shelton  <acs@xemacs.org>
+
+       * configure.in: Remove -fno-gnu-linker option from Solaris
+       dynodump builds; it doesn't do anything.
+
+       Don't use 'head -1' - it's deprecated by coreutils-5.3.0 on some
+       platforms.
+
+2005-02-19  Norbert Koch  <viteno@xemacs.org>
+
+       * etc/PACKAGES: Announce latin-euro-standards, update mule-base.
+
+2005-02-12  Vin Shelton  <acs@xemacs.org>
+
+       * etc/OXYMORONS: New list.
+
 2005-02-06  Vin Shelton <acs@xemacs.org>
 
        * XEmacs 21.4.17 is released
 2005-02-06  Vin Shelton <acs@xemacs.org>
 
        * XEmacs 21.4.17 is released
index e5e0e03..78bdaf8 100755 (executable)
--- a/configure
+++ b/configure
@@ -2986,7 +2986,6 @@ EOF
     *86*    ) dynodump_arch=i386  ;;
     powerpc ) dynodump_arch=ppc   ;;
   esac
     *86*    ) dynodump_arch=i386  ;;
     powerpc ) dynodump_arch=ppc   ;;
   esac
-    test "$GCC" = "yes" && ld_switch_site="$ld_switch_site -fno-gnu-linker" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \"-fno-gnu-linker\" to \$ld_switch_site"; fi
 fi
 
 
 fi
 
 
@@ -3003,12 +3002,12 @@ if test "$unexec" = "unexaix.o"; then
   done
   
 echo $ac_n "checking for terminateAndUnload in -lC""... $ac_c" 1>&6
   done
   
 echo $ac_n "checking for terminateAndUnload in -lC""... $ac_c" 1>&6
-echo "configure:3007: checking for terminateAndUnload in -lC" >&5
+echo "configure:3006: checking for terminateAndUnload in -lC" >&5
 ac_lib_var=`echo C'_'terminateAndUnload | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lC "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo C'_'terminateAndUnload | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lC "
 cat > conftest.$ac_ext <<EOF
-#line 3012 "configure"
+#line 3011 "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
 #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
@@ -3019,7 +3018,7 @@ int main() {
 terminateAndUnload()
 ; return 0; }
 EOF
 terminateAndUnload()
 ; return 0; }
 EOF
-if { (eval echo configure:3023: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3022: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3127,7 +3126,7 @@ fi
 
 if test "$add_runtime_path" = "yes"; then
       echo $ac_n "checking "for runtime libraries flag"""... $ac_c" 1>&6
 
 if test "$add_runtime_path" = "yes"; then
       echo $ac_n "checking "for runtime libraries flag"""... $ac_c" 1>&6
-echo "configure:3131: checking "for runtime libraries flag"" >&5
+echo "configure:3130: checking "for runtime libraries flag"" >&5
   case "$opsys" in
     sol2 ) dash_r="-R" ;;
     decosf* | linux* | irix*) dash_r="-rpath " ;;
   case "$opsys" in
     sol2 ) dash_r="-R" ;;
     decosf* | linux* | irix*) dash_r="-rpath " ;;
@@ -3149,14 +3148,14 @@ if test "$GCC" = "yes"; then
   done
 fi
         cat > conftest.$ac_ext <<EOF
   done
 fi
         cat > conftest.$ac_ext <<EOF
-#line 3153 "configure"
+#line 3152 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:3160: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3159: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   dash_r="$try_dash_r"
 else
   rm -rf conftest*
   dash_r="$try_dash_r"
 else
@@ -3257,10 +3256,10 @@ else
 fi
 after_morecore_hook_exists=yes
 echo $ac_n "checking for malloc_set_state""... $ac_c" 1>&6
 fi
 after_morecore_hook_exists=yes
 echo $ac_n "checking for malloc_set_state""... $ac_c" 1>&6
-echo "configure:3261: checking for malloc_set_state" >&5
+echo "configure:3260: checking for malloc_set_state" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 3264 "configure"
+#line 3263 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char malloc_set_state(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char malloc_set_state(); below.  */
@@ -3283,7 +3282,7 @@ malloc_set_state();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:3287: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3286: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_malloc_set_state=yes"
 else
   rm -rf conftest*
   eval "ac_cv_func_malloc_set_state=yes"
 else
@@ -3303,16 +3302,16 @@ doug_lea_malloc=no
 fi
 
 echo $ac_n "checking whether __after_morecore_hook exists""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking whether __after_morecore_hook exists""... $ac_c" 1>&6
-echo "configure:3307: checking whether __after_morecore_hook exists" >&5
+echo "configure:3306: checking whether __after_morecore_hook exists" >&5
 cat > conftest.$ac_ext <<EOF
 cat > conftest.$ac_ext <<EOF
-#line 3309 "configure"
+#line 3308 "configure"
 #include "confdefs.h"
 extern void (* __after_morecore_hook)();
 int main() {
 __after_morecore_hook = 0
 ; return 0; }
 EOF
 #include "confdefs.h"
 extern void (* __after_morecore_hook)();
 int main() {
 __after_morecore_hook = 0
 ; return 0; }
 EOF
-if { (eval echo configure:3316: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3315: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
@@ -3368,7 +3367,7 @@ fi
 # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
 # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3372: checking for $ac_word" >&5
+echo "configure:3371: checking for $ac_word" >&5
 
 if test -n "$RANLIB"; then
   ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
 
 if test -n "$RANLIB"; then
   ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
@@ -3423,7 +3422,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:3427: checking for a BSD compatible install" >&5
+echo "configure:3426: checking for a BSD compatible install" >&5
 if test -z "$INSTALL"; then
 
   IFS="${IFS=  }"; ac_save_IFS="$IFS"; IFS=":"
 if test -z "$INSTALL"; then
 
   IFS="${IFS=  }"; ac_save_IFS="$IFS"; IFS=":"
@@ -3477,7 +3476,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3481: checking for $ac_word" >&5
+echo "configure:3480: checking for $ac_word" >&5
 
 if test -n "$YACC"; then
   ac_cv_prog_YACC="$YACC" # Let the user override the test.
 
 if test -n "$YACC"; then
   ac_cv_prog_YACC="$YACC" # Let the user override the test.
@@ -3509,15 +3508,15 @@ for ac_hdr in   a.out.h   elf.h   cygwin/version.h   fcntl.h   inttypes.h   libg
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3513: checking for $ac_hdr" >&5
+echo "configure:3512: checking for $ac_hdr" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 3516 "configure"
+#line 3515 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3521: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3520: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3547,10 +3546,10 @@ fi
 done
 
 echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
 done
 
 echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
-echo "configure:3551: checking for sys/wait.h that is POSIX.1 compatible" >&5
+echo "configure:3550: checking for sys/wait.h that is POSIX.1 compatible" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 3554 "configure"
+#line 3553 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/wait.h>
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/wait.h>
@@ -3566,7 +3565,7 @@ wait (&s);
 s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
 ; return 0; }
 EOF
 s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
 ; return 0; }
 EOF
-if { (eval echo configure:3570: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3569: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_sys_wait_h=yes
 else
   rm -rf conftest*
   ac_cv_header_sys_wait_h=yes
 else
@@ -3590,10 +3589,10 @@ EOF
 fi
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:3594: checking for ANSI C header files" >&5
+echo "configure:3593: checking for ANSI C header files" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 3597 "configure"
+#line 3596 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -3601,7 +3600,7 @@ cat > conftest.$ac_ext <<EOF
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3605: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3604: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3618,7 +3617,7 @@ rm -f conftest*
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 3622 "configure"
+#line 3621 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -3636,7 +3635,7 @@ fi
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 3640 "configure"
+#line 3639 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -3654,7 +3653,7 @@ fi
 if test $ac_cv_header_stdc = yes; then
   # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
 cat > conftest.$ac_ext <<EOF
 if test $ac_cv_header_stdc = yes; then
   # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
 cat > conftest.$ac_ext <<EOF
-#line 3658 "configure"
+#line 3657 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -3665,7 +3664,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
 exit (0); }
 
 EOF
 exit (0); }
 
 EOF
-if { (eval echo configure:3669: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:3668: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   :
 else
 then
   :
 else
@@ -3691,10 +3690,10 @@ EOF
 fi
 
 echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:3695: checking whether time.h and sys/time.h may both be included" >&5
+echo "configure:3694: checking whether time.h and sys/time.h may both be included" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 3698 "configure"
+#line 3697 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/time.h>
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/time.h>
@@ -3703,7 +3702,7 @@ int main() {
 struct tm *tp;
 ; return 0; }
 EOF
 struct tm *tp;
 ; return 0; }
 EOF
-if { (eval echo configure:3707: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3706: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_time=yes
 else
   rm -rf conftest*
   ac_cv_header_time=yes
 else
@@ -3727,10 +3726,10 @@ EOF
 fi
 
 echo $ac_n "checking for sys_siglist declaration in signal.h or unistd.h""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking for sys_siglist declaration in signal.h or unistd.h""... $ac_c" 1>&6
-echo "configure:3731: checking for sys_siglist declaration in signal.h or unistd.h" >&5
+echo "configure:3730: checking for sys_siglist declaration in signal.h or unistd.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 3734 "configure"
+#line 3733 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
@@ -3742,7 +3741,7 @@ int main() {
 char *msg = *(sys_siglist + 1);
 ; return 0; }
 EOF
 char *msg = *(sys_siglist + 1);
 ; return 0; }
 EOF
-if { (eval echo configure:3746: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3745: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_decl_sys_siglist=yes
 else
   rm -rf conftest*
   ac_cv_decl_sys_siglist=yes
 else
@@ -3768,9 +3767,9 @@ fi
 
 
 echo $ac_n "checking for utime""... $ac_c" 1>&6
 
 
 echo $ac_n "checking for utime""... $ac_c" 1>&6
-echo "configure:3772: checking for utime" >&5
+echo "configure:3771: checking for utime" >&5
 cat > conftest.$ac_ext <<EOF
 cat > conftest.$ac_ext <<EOF
-#line 3774 "configure"
+#line 3773 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <utime.h>
 #include "confdefs.h"
 #include <sys/types.h>
 #include <utime.h>
@@ -3778,7 +3777,7 @@ int main() {
 struct utimbuf x; x.actime = x.modtime = 0; utime ("/", &x);
 ; return 0; }
 EOF
 struct utimbuf x; x.actime = x.modtime = 0; utime ("/", &x);
 ; return 0; }
 EOF
-if { (eval echo configure:3782: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3781: \"$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 -rf conftest*
   echo "$ac_t""yes" 1>&6
    { test "$extra_verbose" = "yes" && cat << \EOF
@@ -3797,10 +3796,10 @@ else
       for ac_func in utimes
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
       for ac_func in utimes
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3801: checking for $ac_func" >&5
+echo "configure:3800: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 3804 "configure"
+#line 3803 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3823,7 +3822,7 @@ $ac_func();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:3827: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3826: \"$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
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -3855,10 +3854,10 @@ rm -f conftest*
 
 
 echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
 
 
 echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:3859: checking return type of signal handlers" >&5
+echo "configure:3858: checking return type of signal handlers" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 3862 "configure"
+#line 3861 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
@@ -3875,7 +3874,7 @@ int main() {
 int i;
 ; return 0; }
 EOF
 int i;
 ; return 0; }
 EOF
-if { (eval echo configure:3879: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3878: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_type_signal=void
 else
   rm -rf conftest*
   ac_cv_type_signal=void
 else
@@ -3897,10 +3896,10 @@ EOF
 
 
 echo $ac_n "checking for size_t""... $ac_c" 1>&6
 
 
 echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:3901: checking for size_t" >&5
+echo "configure:3900: checking for size_t" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 3904 "configure"
+#line 3903 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3931,10 +3930,10 @@ EOF
 fi
 
 echo $ac_n "checking for pid_t""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:3935: checking for pid_t" >&5
+echo "configure:3934: checking for pid_t" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 3938 "configure"
+#line 3937 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3965,10 +3964,10 @@ EOF
 fi
 
 echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:3969: checking for uid_t in sys/types.h" >&5
+echo "configure:3968: checking for uid_t in sys/types.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 3972 "configure"
+#line 3971 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 EOF
 #include "confdefs.h"
 #include <sys/types.h>
 EOF
@@ -4004,10 +4003,10 @@ EOF
 fi
 
 echo $ac_n "checking for mode_t""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking for mode_t""... $ac_c" 1>&6
-echo "configure:4008: checking for mode_t" >&5
+echo "configure:4007: checking for mode_t" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 4011 "configure"
+#line 4010 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -4038,10 +4037,10 @@ EOF
 fi
 
 echo $ac_n "checking for off_t""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:4042: checking for off_t" >&5
+echo "configure:4041: checking for off_t" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 4045 "configure"
+#line 4044 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -4072,10 +4071,10 @@ EOF
 fi
 
 echo $ac_n "checking for ssize_t""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking for ssize_t""... $ac_c" 1>&6
-echo "configure:4076: checking for ssize_t" >&5
+echo "configure:4075: checking for ssize_t" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 4079 "configure"
+#line 4078 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -4107,9 +4106,9 @@ fi
 
 
 echo $ac_n "checking for socklen_t""... $ac_c" 1>&6
 
 
 echo $ac_n "checking for socklen_t""... $ac_c" 1>&6
-echo "configure:4111: checking for socklen_t" >&5
+echo "configure:4110: checking for socklen_t" >&5
 cat > conftest.$ac_ext <<EOF
 cat > conftest.$ac_ext <<EOF
-#line 4113 "configure"
+#line 4112 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/socket.h>
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/socket.h>
@@ -4119,7 +4118,7 @@ int main() {
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:4123: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4122: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
@@ -4128,7 +4127,7 @@ else
   rm -rf conftest*
   
 cat > conftest.$ac_ext <<EOF
   rm -rf conftest*
   
 cat > conftest.$ac_ext <<EOF
-#line 4132 "configure"
+#line 4131 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/socket.h>
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/socket.h>
@@ -4138,7 +4137,7 @@ int main() {
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:4142: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4141: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
 echo "$ac_t""size_t" 1>&6
   rm -rf conftest*
   
 echo "$ac_t""size_t" 1>&6
@@ -4170,9 +4169,9 @@ fi
 rm -f conftest*
 
 echo $ac_n "checking for struct timeval""... $ac_c" 1>&6
 rm -f conftest*
 
 echo $ac_n "checking for struct timeval""... $ac_c" 1>&6
-echo "configure:4174: checking for struct timeval" >&5
+echo "configure:4173: checking for struct timeval" >&5
 cat > conftest.$ac_ext <<EOF
 cat > conftest.$ac_ext <<EOF
-#line 4176 "configure"
+#line 4175 "configure"
 #include "confdefs.h"
 #ifdef TIME_WITH_SYS_TIME
 #include <sys/time.h>
 #include "confdefs.h"
 #ifdef TIME_WITH_SYS_TIME
 #include <sys/time.h>
@@ -4188,7 +4187,7 @@ int main() {
 static struct timeval x; x.tv_sec = x.tv_usec;
 ; return 0; }
 EOF
 static struct timeval x; x.tv_sec = x.tv_usec;
 ; return 0; }
 EOF
-if { (eval echo configure:4192: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4191: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
   HAVE_TIMEVAL=yes
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
   HAVE_TIMEVAL=yes
@@ -4210,10 +4209,10 @@ fi
 rm -f conftest*
 
 echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6
 rm -f conftest*
 
 echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6
-echo "configure:4214: checking whether struct tm is in sys/time.h or time.h" >&5
+echo "configure:4213: checking whether struct tm is in sys/time.h or time.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 4217 "configure"
+#line 4216 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <time.h>
 #include "confdefs.h"
 #include <sys/types.h>
 #include <time.h>
@@ -4221,7 +4220,7 @@ int main() {
 struct tm *tp; tp->tm_sec;
 ; return 0; }
 EOF
 struct tm *tp; tp->tm_sec;
 ; return 0; }
 EOF
-if { (eval echo configure:4225: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4224: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_struct_tm=time.h
 else
   rm -rf conftest*
   ac_cv_struct_tm=time.h
 else
@@ -4245,10 +4244,10 @@ EOF
 fi
 
 echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6
-echo "configure:4249: checking for tm_zone in struct tm" >&5
+echo "configure:4248: checking for tm_zone in struct tm" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 4252 "configure"
+#line 4251 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <$ac_cv_struct_tm>
 #include "confdefs.h"
 #include <sys/types.h>
 #include <$ac_cv_struct_tm>
@@ -4256,7 +4255,7 @@ int main() {
 struct tm tm; tm.tm_zone;
 ; return 0; }
 EOF
 struct tm tm; tm.tm_zone;
 ; return 0; }
 EOF
-if { (eval echo configure:4260: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4259: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_struct_tm_zone=yes
 else
   rm -rf conftest*
   ac_cv_struct_tm_zone=yes
 else
@@ -4279,10 +4278,10 @@ EOF
 
 else
   echo $ac_n "checking for tzname""... $ac_c" 1>&6
 
 else
   echo $ac_n "checking for tzname""... $ac_c" 1>&6
-echo "configure:4283: checking for tzname" >&5
+echo "configure:4282: checking for tzname" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 4286 "configure"
+#line 4285 "configure"
 #include "confdefs.h"
 #include <time.h>
 #ifndef tzname /* For SGI.  */
 #include "confdefs.h"
 #include <time.h>
 #ifndef tzname /* For SGI.  */
@@ -4292,7 +4291,7 @@ int main() {
 atoi(*tzname);
 ; return 0; }
 EOF
 atoi(*tzname);
 ; return 0; }
 EOF
-if { (eval echo configure:4296: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4295: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_var_tzname=yes
 else
   rm -rf conftest*
   ac_cv_var_tzname=yes
 else
@@ -4318,10 +4317,10 @@ fi
 
 
 echo $ac_n "checking for working const""... $ac_c" 1>&6
 
 
 echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:4322: checking for working const" >&5
+echo "configure:4321: checking for working const" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 4325 "configure"
+#line 4324 "configure"
 #include "confdefs.h"
 
 int main() {
 #include "confdefs.h"
 
 int main() {
@@ -4370,7 +4369,7 @@ ccp = (char const *const *) p;
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:4374: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4373: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_const=yes
 else
   rm -rf conftest*
   ac_cv_c_const=yes
 else
@@ -4395,7 +4394,7 @@ fi
 
 
 echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
 
 
 echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:4399: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:4398: checking whether ${MAKE-make} sets \${MAKE}" >&5
 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
 
 cat > conftestmake <<\EOF
 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
 
 cat > conftestmake <<\EOF
@@ -4420,12 +4419,12 @@ fi
 
 
 echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
 
 
 echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
-echo "configure:4424: checking whether byte ordering is bigendian" >&5
+echo "configure:4423: checking whether byte ordering is bigendian" >&5
 
 ac_cv_c_bigendian=unknown
 # See if sys/param.h defines the BYTE_ORDER macro.
 cat > conftest.$ac_ext <<EOF
 
 ac_cv_c_bigendian=unknown
 # See if sys/param.h defines the BYTE_ORDER macro.
 cat > conftest.$ac_ext <<EOF
-#line 4429 "configure"
+#line 4428 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -4436,11 +4435,11 @@ int main() {
 #endif
 ; return 0; }
 EOF
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:4440: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4439: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   # It does; now see whether it defined to BIG_ENDIAN or not.
 cat > conftest.$ac_ext <<EOF
   rm -rf conftest*
   # It does; now see whether it defined to BIG_ENDIAN or not.
 cat > conftest.$ac_ext <<EOF
-#line 4444 "configure"
+#line 4443 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -4451,7 +4450,7 @@ int main() {
 #endif
 ; return 0; }
 EOF
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:4455: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4454: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_bigendian=yes
 else
   rm -rf conftest*
   ac_cv_c_bigendian=yes
 else
@@ -4468,7 +4467,7 @@ fi
 rm -f conftest*
 if test $ac_cv_c_bigendian = unknown; then
 cat > conftest.$ac_ext <<EOF
 rm -f conftest*
 if test $ac_cv_c_bigendian = unknown; then
 cat > conftest.$ac_ext <<EOF
-#line 4472 "configure"
+#line 4471 "configure"
 #include "confdefs.h"
 main () {
   /* Are we little or big endian?  From Harbison&Steele.  */
 #include "confdefs.h"
 main () {
   /* Are we little or big endian?  From Harbison&Steele.  */
@@ -4481,7 +4480,7 @@ main () {
   exit (u.c[sizeof (long) - 1] == 1);
 }
 EOF
   exit (u.c[sizeof (long) - 1] == 1);
 }
 EOF
-if { (eval echo configure:4485: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4484: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_c_bigendian=no
 else
 then
   ac_cv_c_bigendian=no
 else
@@ -4508,10 +4507,10 @@ fi
 
 
 echo $ac_n "checking size of short""... $ac_c" 1>&6
 
 
 echo $ac_n "checking size of short""... $ac_c" 1>&6
-echo "configure:4512: checking size of short" >&5
+echo "configure:4511: checking size of short" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 4515 "configure"
+#line 4514 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -4522,7 +4521,7 @@ main()
   exit(0);
 }
 EOF
   exit(0);
 }
 EOF
-if { (eval echo configure:4526: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4525: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_sizeof_short=`cat conftestval`
 else
 then
   ac_cv_sizeof_short=`cat conftestval`
 else
@@ -4550,10 +4549,10 @@ if test "$ac_cv_sizeof_short" = 0; then
   exit 1
 fi
 echo $ac_n "checking size of int""... $ac_c" 1>&6
   exit 1
 fi
 echo $ac_n "checking size of int""... $ac_c" 1>&6
-echo "configure:4554: checking size of int" >&5
+echo "configure:4553: checking size of int" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 4557 "configure"
+#line 4556 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -4564,7 +4563,7 @@ main()
   exit(0);
 }
 EOF
   exit(0);
 }
 EOF
-if { (eval echo configure:4568: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4567: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_sizeof_int=`cat conftestval`
 else
 then
   ac_cv_sizeof_int=`cat conftestval`
 else
@@ -4586,10 +4585,10 @@ EOF
 
 
 echo $ac_n "checking size of long""... $ac_c" 1>&6
 
 
 echo $ac_n "checking size of long""... $ac_c" 1>&6
-echo "configure:4590: checking size of long" >&5
+echo "configure:4589: checking size of long" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 4593 "configure"
+#line 4592 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -4600,7 +4599,7 @@ main()
   exit(0);
 }
 EOF
   exit(0);
 }
 EOF
-if { (eval echo configure:4604: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4603: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_sizeof_long=`cat conftestval`
 else
 then
   ac_cv_sizeof_long=`cat conftestval`
 else
@@ -4622,10 +4621,10 @@ EOF
 
 
 echo $ac_n "checking size of long long""... $ac_c" 1>&6
 
 
 echo $ac_n "checking size of long long""... $ac_c" 1>&6
-echo "configure:4626: checking size of long long" >&5
+echo "configure:4625: checking size of long long" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 4629 "configure"
+#line 4628 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -4636,7 +4635,7 @@ main()
   exit(0);
 }
 EOF
   exit(0);
 }
 EOF
-if { (eval echo configure:4640: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4639: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_sizeof_long_long=`cat conftestval`
 else
 then
   ac_cv_sizeof_long_long=`cat conftestval`
 else
@@ -4658,10 +4657,10 @@ EOF
 
 
 echo $ac_n "checking size of void *""... $ac_c" 1>&6
 
 
 echo $ac_n "checking size of void *""... $ac_c" 1>&6
-echo "configure:4662: checking size of void *" >&5
+echo "configure:4661: checking size of void *" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 4665 "configure"
+#line 4664 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -4672,7 +4671,7 @@ main()
   exit(0);
 }
 EOF
   exit(0);
 }
 EOF
-if { (eval echo configure:4676: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4675: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_sizeof_void_p=`cat conftestval`
 else
 then
   ac_cv_sizeof_void_p=`cat conftestval`
 else
@@ -4696,7 +4695,7 @@ EOF
 
 case $opsys in
   cygwin* ) cat > conftest.$ac_ext <<EOF
 
 case $opsys in
   cygwin* ) cat > conftest.$ac_ext <<EOF
-#line 4700 "configure"
+#line 4699 "configure"
 #include "confdefs.h"
 #include <cygwin/types.h>
 EOF
 #include "confdefs.h"
 #include <cygwin/types.h>
 EOF
@@ -4721,7 +4720,7 @@ rm -f conftest*
 esac
 
 echo $ac_n "checking for long file names""... $ac_c" 1>&6
 esac
 
 echo $ac_n "checking for long file names""... $ac_c" 1>&6
-echo "configure:4725: checking for long file names" >&5
+echo "configure:4724: checking for long file names" >&5
 
 ac_cv_sys_long_file_names=yes
 # Test for long file names in all the places we know might matter:
 
 ac_cv_sys_long_file_names=yes
 # Test for long file names in all the places we know might matter:
@@ -4767,10 +4766,10 @@ fi
 
 
 echo $ac_n "checking for sin""... $ac_c" 1>&6
 
 
 echo $ac_n "checking for sin""... $ac_c" 1>&6
-echo "configure:4771: checking for sin" >&5
+echo "configure:4770: checking for sin" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 4774 "configure"
+#line 4773 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char sin(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char sin(); below.  */
@@ -4793,7 +4792,7 @@ sin();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:4797: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4796: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_sin=yes"
 else
   rm -rf conftest*
   eval "ac_cv_func_sin=yes"
 else
@@ -4811,12 +4810,12 @@ else
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6
-echo "configure:4815: checking for sin in -lm" >&5
+echo "configure:4814: checking for sin in -lm" >&5
 ac_lib_var=`echo m'_'sin | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lm "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo m'_'sin | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lm "
 cat > conftest.$ac_ext <<EOF
-#line 4820 "configure"
+#line 4819 "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
 #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
@@ -4827,7 +4826,7 @@ int main() {
 sin()
 ; return 0; }
 EOF
 sin()
 ; return 0; }
 EOF
-if { (eval echo configure:4831: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4830: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4871,14 +4870,14 @@ EOF
 
 
 cat > conftest.$ac_ext <<EOF
 
 
 cat > conftest.$ac_ext <<EOF
-#line 4875 "configure"
+#line 4874 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
 return atanh(1.0) + asinh(1.0) + acosh(1.0); 
 ; return 0; }
 EOF
 #include "confdefs.h"
 #include <math.h>
 int main() {
 return atanh(1.0) + asinh(1.0) + acosh(1.0); 
 ; return 0; }
 EOF
-if { (eval echo configure:4882: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4881: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_INVERSE_HYPERBOLIC
   rm -rf conftest*
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_INVERSE_HYPERBOLIC
@@ -4895,14 +4894,14 @@ fi
 rm -f conftest*
 
 echo "checking type of mail spool file locking" 1>&6
 rm -f conftest*
 
 echo "checking type of mail spool file locking" 1>&6
-echo "configure:4899: checking type of mail spool file locking" >&5
+echo "configure:4898: checking type of mail spool file locking" >&5
 for ac_func in lockf flock
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
 for ac_func in lockf flock
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4903: checking for $ac_func" >&5
+echo "configure:4902: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 4906 "configure"
+#line 4905 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -4925,7 +4924,7 @@ $ac_func();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:4929: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4928: \"$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
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -5007,12 +5006,12 @@ test "$mail_locking" = "locking" -a "$ac_cv_func_locking" != "yes" && \
 case "$opsys" in decosf*)
   
 echo $ac_n "checking for cma_open in -lpthreads""... $ac_c" 1>&6
 case "$opsys" in decosf*)
   
 echo $ac_n "checking for cma_open in -lpthreads""... $ac_c" 1>&6
-echo "configure:5011: checking for cma_open in -lpthreads" >&5
+echo "configure:5010: checking for cma_open in -lpthreads" >&5
 ac_lib_var=`echo pthreads'_'cma_open | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lpthreads "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo pthreads'_'cma_open | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lpthreads "
 cat > conftest.$ac_ext <<EOF
-#line 5016 "configure"
+#line 5015 "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
 #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
@@ -5023,7 +5022,7 @@ int main() {
 cma_open()
 ; return 0; }
 EOF
 cma_open()
 ; return 0; }
 EOF
-if { (eval echo configure:5027: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5026: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5060,7 +5059,7 @@ esac
 
 
 echo $ac_n "checking whether the -xildoff compiler flag is required""... $ac_c" 1>&6
 
 
 echo $ac_n "checking whether the -xildoff compiler flag is required""... $ac_c" 1>&6
-echo "configure:5064: checking whether the -xildoff compiler flag is required" >&5
+echo "configure:5063: checking whether the -xildoff compiler flag is required" >&5
 if   ${CC-cc} '-###' -xildon  no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ; then
   if ${CC-cc} '-###' -xildoff no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ;
     then echo "$ac_t""no" 1>&6;
 if   ${CC-cc} '-###' -xildon  no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ; then
   if ${CC-cc} '-###' -xildoff no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ;
     then echo "$ac_t""no" 1>&6;
@@ -5072,7 +5071,7 @@ fi
 if test "$opsys" = "sol2"; then
   if test "$os_release" -ge 506; then
     echo $ac_n "checking for \"-z ignore\" linker flag""... $ac_c" 1>&6
 if test "$opsys" = "sol2"; then
   if test "$os_release" -ge 506; then
     echo $ac_n "checking for \"-z ignore\" linker flag""... $ac_c" 1>&6
-echo "configure:5076: checking for \"-z ignore\" linker flag" >&5
+echo "configure:5075: checking for \"-z ignore\" linker flag" >&5
     case "`ld -h 2>&1`" in
       *-z\ ignore\|record* ) echo "$ac_t""yes" 1>&6
         ld_switch_site="-z ignore $ld_switch_site" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-z ignore\" to \$ld_switch_site"; fi ;;
     case "`ld -h 2>&1`" in
       *-z\ ignore\|record* ) echo "$ac_t""yes" 1>&6
         ld_switch_site="-z ignore $ld_switch_site" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-z ignore\" to \$ld_switch_site"; fi ;;
@@ -5083,7 +5082,7 @@ fi
 
 
 echo "checking "for specified window system"" 1>&6
 
 
 echo "checking "for specified window system"" 1>&6
-echo "configure:5087: checking "for specified window system"" >&5
+echo "configure:5086: checking "for specified window system"" >&5
 
 
 GNOME_CONFIG=no
 
 
 GNOME_CONFIG=no
@@ -5091,7 +5090,7 @@ GTK_CONFIG=no
 
 if test "$with_gnome" != "no"; then
    echo $ac_n "checking for GNOME configuration script""... $ac_c" 1>&6
 
 if test "$with_gnome" != "no"; then
    echo $ac_n "checking for GNOME configuration script""... $ac_c" 1>&6
-echo "configure:5095: checking for GNOME configuration script" >&5
+echo "configure:5094: checking for GNOME configuration script" >&5
    for possible in gnome-config
    do
       possible_version=`${possible} --version 2> /dev/null`
    for possible in gnome-config
    do
       possible_version=`${possible} --version 2> /dev/null`
@@ -5122,7 +5121,7 @@ fi
 
 if test "$with_gtk" != "no";then
    echo $ac_n "checking for GTK configuration script""... $ac_c" 1>&6
 
 if test "$with_gtk" != "no";then
    echo $ac_n "checking for GTK configuration script""... $ac_c" 1>&6
-echo "configure:5126: checking for GTK configuration script" >&5
+echo "configure:5125: checking for GTK configuration script" >&5
    for possible in gtk12-config gtk14-config gtk-config
    do
       possible_version=`${possible} --version 2> /dev/null`
    for possible in gtk12-config gtk14-config gtk-config
    do
       possible_version=`${possible} --version 2> /dev/null`
@@ -5144,18 +5143,18 @@ fi
 
 if test "${GTK_CONFIG}" != "no"; then
       echo $ac_n "checking gtk version""... $ac_c" 1>&6
 
 if test "${GTK_CONFIG}" != "no"; then
       echo $ac_n "checking gtk version""... $ac_c" 1>&6
-echo "configure:5148: checking gtk version" >&5
+echo "configure:5147: checking gtk version" >&5
       GTK_VERSION=`${GTK_CONFIG} --version`
       echo "$ac_t""${GTK_VERSION}" 1>&6
 
       echo $ac_n "checking gtk libs""... $ac_c" 1>&6
       GTK_VERSION=`${GTK_CONFIG} --version`
       echo "$ac_t""${GTK_VERSION}" 1>&6
 
       echo $ac_n "checking gtk libs""... $ac_c" 1>&6
-echo "configure:5153: checking gtk libs" >&5
+echo "configure:5152: checking gtk libs" >&5
       GTK_LIBS=`${GTK_CONFIG} --libs`
       libs_gtk="$libs_gtk ${GTK_LIBS}" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \"${GTK_LIBS}\" to \$libs_gtk"; fi
       echo "$ac_t""${GTK_LIBS}" 1>&6
 
       echo $ac_n "checking gtk cflags""... $ac_c" 1>&6
       GTK_LIBS=`${GTK_CONFIG} --libs`
       libs_gtk="$libs_gtk ${GTK_LIBS}" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \"${GTK_LIBS}\" to \$libs_gtk"; fi
       echo "$ac_t""${GTK_LIBS}" 1>&6
 
       echo $ac_n "checking gtk cflags""... $ac_c" 1>&6
-echo "configure:5159: checking gtk cflags" >&5
+echo "configure:5158: checking gtk cflags" >&5
       GTK_CFLAGS=`${GTK_CONFIG} --cflags`
       if test "$GCC" = "yes"; then
        GTK_CFLAGS="${GTK_CFLAGS} -Wno-shadow"
       GTK_CFLAGS=`${GTK_CONFIG} --cflags`
       if test "$GCC" = "yes"; then
        GTK_CFLAGS="${GTK_CFLAGS} -Wno-shadow"
@@ -5165,19 +5164,19 @@ echo "configure:5159: checking gtk cflags" >&5
 
       
 echo $ac_n "checking for main in -lgdk_imlib""... $ac_c" 1>&6
 
       
 echo $ac_n "checking for main in -lgdk_imlib""... $ac_c" 1>&6
-echo "configure:5169: checking for main in -lgdk_imlib" >&5
+echo "configure:5168: checking for main in -lgdk_imlib" >&5
 ac_lib_var=`echo gdk_imlib'_'main | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lgdk_imlib "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo gdk_imlib'_'main | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lgdk_imlib "
 cat > conftest.$ac_ext <<EOF
-#line 5174 "configure"
+#line 5173 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:5181: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5180: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5199,12 +5198,12 @@ fi
 
       
 echo $ac_n "checking for Imlib_init in -lImlib""... $ac_c" 1>&6
 
       
 echo $ac_n "checking for Imlib_init in -lImlib""... $ac_c" 1>&6
-echo "configure:5203: checking for Imlib_init in -lImlib" >&5
+echo "configure:5202: checking for Imlib_init in -lImlib" >&5
 ac_lib_var=`echo Imlib'_'Imlib_init | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lImlib "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo Imlib'_'Imlib_init | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lImlib "
 cat > conftest.$ac_ext <<EOF
-#line 5208 "configure"
+#line 5207 "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
 #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
@@ -5215,7 +5214,7 @@ int main() {
 Imlib_init()
 ; return 0; }
 EOF
 Imlib_init()
 ; return 0; }
 EOF
-if { (eval echo configure:5219: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5218: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5238,10 +5237,10 @@ fi
       for ac_func in gdk_imlib_init
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
       for ac_func in gdk_imlib_init
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5242: checking for $ac_func" >&5
+echo "configure:5241: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 5245 "configure"
+#line 5244 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -5264,7 +5263,7 @@ $ac_func();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:5268: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5267: \"$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
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -5343,15 +5342,15 @@ EOF
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:5347: checking for $ac_hdr" >&5
+echo "configure:5346: checking for $ac_hdr" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 5350 "configure"
+#line 5349 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5355: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5354: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -5382,19 +5381,19 @@ done
 
       
 echo $ac_n "checking for main in -lxml""... $ac_c" 1>&6
 
       
 echo $ac_n "checking for main in -lxml""... $ac_c" 1>&6
-echo "configure:5386: checking for main in -lxml" >&5
+echo "configure:5385: checking for main in -lxml" >&5
 ac_lib_var=`echo xml'_'main | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lxml "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo xml'_'main | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lxml "
 cat > conftest.$ac_ext <<EOF
-#line 5391 "configure"
+#line 5390 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:5398: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5397: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5416,19 +5415,19 @@ fi
 
       
 echo $ac_n "checking for main in -lglade""... $ac_c" 1>&6
 
       
 echo $ac_n "checking for main in -lglade""... $ac_c" 1>&6
-echo "configure:5420: checking for main in -lglade" >&5
+echo "configure:5419: checking for main in -lglade" >&5
 ac_lib_var=`echo glade'_'main | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lglade "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo glade'_'main | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lglade "
 cat > conftest.$ac_ext <<EOF
-#line 5425 "configure"
+#line 5424 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:5432: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5431: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5450,19 +5449,19 @@ fi
 
       
 echo $ac_n "checking for main in -lglade-gnome""... $ac_c" 1>&6
 
       
 echo $ac_n "checking for main in -lglade-gnome""... $ac_c" 1>&6
-echo "configure:5454: checking for main in -lglade-gnome" >&5
+echo "configure:5453: checking for main in -lglade-gnome" >&5
 ac_lib_var=`echo glade-gnome'_'main | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lglade-gnome "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo glade-gnome'_'main | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lglade-gnome "
 cat > conftest.$ac_ext <<EOF
-#line 5459 "configure"
+#line 5458 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:5466: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5465: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5483,7 +5482,7 @@ fi
 
 
       cat > conftest.$ac_ext <<EOF
 
 
       cat > conftest.$ac_ext <<EOF
-#line 5487 "configure"
+#line 5486 "configure"
 #include "confdefs.h"
 #include <glade/glade-xml.h>
 EOF
 #include "confdefs.h"
 #include <glade/glade-xml.h>
 EOF
@@ -5542,7 +5541,7 @@ if test "$with_x11" != "no"; then
 # Uses ac_ vars as temps to allow command line to override cache and checks.
 # --without-x overrides everything else, but does not touch the cache.
 echo $ac_n "checking for X""... $ac_c" 1>&6
 # Uses ac_ vars as temps to allow command line to override cache and checks.
 # --without-x overrides everything else, but does not touch the cache.
 echo $ac_n "checking for X""... $ac_c" 1>&6
-echo "configure:5546: checking for X" >&5
+echo "configure:5545: checking for X" >&5
 
 # Check whether --with-x or --without-x was given.
 if test "${with_x+set}" = set; then
 
 # Check whether --with-x or --without-x was given.
 if test "${with_x+set}" = set; then
@@ -5602,12 +5601,12 @@ if test "$ac_x_includes" = NO; then
 
   # First, try using that file with no special directory specified.
 cat > conftest.$ac_ext <<EOF
 
   # First, try using that file with no special directory specified.
 cat > conftest.$ac_ext <<EOF
-#line 5606 "configure"
+#line 5605 "configure"
 #include "confdefs.h"
 #include <$x_direct_test_include>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <$x_direct_test_include>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5611: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5610: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -5676,14 +5675,14 @@ if test "$ac_x_libraries" = NO; then
   ac_save_LIBS="$LIBS"
   LIBS="-l$x_direct_test_library $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
   LIBS="-l$x_direct_test_library $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5680 "configure"
+#line 5679 "configure"
 #include "confdefs.h"
 
 int main() {
 ${x_direct_test_function}()
 ; return 0; }
 EOF
 #include "confdefs.h"
 
 int main() {
 ${x_direct_test_function}()
 ; return 0; }
 EOF
-if { (eval echo configure:5687: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5686: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   LIBS="$ac_save_LIBS"
 # We can link X programs with no special library path.
   rm -rf conftest*
   LIBS="$ac_save_LIBS"
 # We can link X programs with no special library path.
@@ -5792,17 +5791,17 @@ else
     case "`(uname -sr) 2>/dev/null`" in
     "SunOS 5"*)
       echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6
     case "`(uname -sr) 2>/dev/null`" in
     "SunOS 5"*)
       echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6
-echo "configure:5796: checking whether -R must be followed by a space" >&5
+echo "configure:5795: checking whether -R must be followed by a space" >&5
       ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries"
       cat > conftest.$ac_ext <<EOF
       ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries"
       cat > conftest.$ac_ext <<EOF
-#line 5799 "configure"
+#line 5798 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:5806: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5805: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_R_nospace=yes
 else
   rm -rf conftest*
   ac_R_nospace=yes
 else
@@ -5818,14 +5817,14 @@ rm -f conftest*
       else
        LIBS="$ac_xsave_LIBS -R $x_libraries"
        cat > conftest.$ac_ext <<EOF
       else
        LIBS="$ac_xsave_LIBS -R $x_libraries"
        cat > conftest.$ac_ext <<EOF
-#line 5822 "configure"
+#line 5821 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:5829: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5828: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_R_space=yes
 else
   rm -rf conftest*
   ac_R_space=yes
 else
@@ -5861,12 +5860,12 @@ ac_cv_lib_dnet_dnet_ntoa=no
 else
 
 echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6
 else
 
 echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6
-echo "configure:5865: checking for dnet_ntoa in -ldnet" >&5
+echo "configure:5864: checking for dnet_ntoa in -ldnet" >&5
 ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ldnet "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ldnet "
 cat > conftest.$ac_ext <<EOF
-#line 5870 "configure"
+#line 5869 "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
 #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
@@ -5877,7 +5876,7 @@ int main() {
 dnet_ntoa()
 ; return 0; }
 EOF
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:5881: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5880: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5901,12 +5900,12 @@ fi
     if test $ac_cv_lib_dnet_dnet_ntoa = no; then
       
 echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6
     if test $ac_cv_lib_dnet_dnet_ntoa = no; then
       
 echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6
-echo "configure:5905: checking for dnet_ntoa in -ldnet_stub" >&5
+echo "configure:5904: checking for dnet_ntoa in -ldnet_stub" >&5
 ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ldnet_stub "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ldnet_stub "
 cat > conftest.$ac_ext <<EOF
-#line 5910 "configure"
+#line 5909 "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
 #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
@@ -5917,7 +5916,7 @@ int main() {
 dnet_ntoa()
 ; return 0; }
 EOF
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:5921: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5920: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5946,10 +5945,10 @@ fi
     # The nsl library prevents programs from opening the X display
     # on Irix 5.2, according to dickey@clark.net.
     echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6
     # The nsl library prevents programs from opening the X display
     # on Irix 5.2, according to dickey@clark.net.
     echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6
-echo "configure:5950: checking for gethostbyname" >&5
+echo "configure:5949: checking for gethostbyname" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 5953 "configure"
+#line 5952 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char gethostbyname(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char gethostbyname(); below.  */
@@ -5972,7 +5971,7 @@ gethostbyname();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:5976: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5975: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_gethostbyname=yes"
 else
   rm -rf conftest*
   eval "ac_cv_func_gethostbyname=yes"
 else
@@ -5993,12 +5992,12 @@ fi
     if test $ac_cv_func_gethostbyname = no; then
       
 echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
     if test $ac_cv_func_gethostbyname = no; then
       
 echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
-echo "configure:5997: checking for gethostbyname in -lnsl" >&5
+echo "configure:5996: checking for gethostbyname in -lnsl" >&5
 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lnsl "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lnsl "
 cat > conftest.$ac_ext <<EOF
-#line 6002 "configure"
+#line 6001 "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
 #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
@@ -6009,7 +6008,7 @@ int main() {
 gethostbyname()
 ; return 0; }
 EOF
 gethostbyname()
 ; return 0; }
 EOF
-if { (eval echo configure:6013: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6012: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6039,10 +6038,10 @@ fi
     # -lsocket must be given before -lnsl if both are needed.
     # We assume that if connect needs -lnsl, so does gethostbyname.
     echo $ac_n "checking for connect""... $ac_c" 1>&6
     # -lsocket must be given before -lnsl if both are needed.
     # We assume that if connect needs -lnsl, so does gethostbyname.
     echo $ac_n "checking for connect""... $ac_c" 1>&6
-echo "configure:6043: checking for connect" >&5
+echo "configure:6042: checking for connect" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 6046 "configure"
+#line 6045 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char connect(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char connect(); below.  */
@@ -6065,7 +6064,7 @@ connect();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:6069: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6068: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_connect=yes"
 else
   rm -rf conftest*
   eval "ac_cv_func_connect=yes"
 else
@@ -6088,12 +6087,12 @@ fi
 xe_msg_checking="for connect in -lsocket"
 test -n "$X_EXTRA_LIBS" && xe_msg_checking="$xe_msg_checking using extra libs $X_EXTRA_LIBS"
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
 xe_msg_checking="for connect in -lsocket"
 test -n "$X_EXTRA_LIBS" && xe_msg_checking="$xe_msg_checking using extra libs $X_EXTRA_LIBS"
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:6092: checking "$xe_msg_checking"" >&5
+echo "configure:6091: checking "$xe_msg_checking"" >&5
 ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lsocket $X_EXTRA_LIBS"
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lsocket $X_EXTRA_LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6097 "configure"
+#line 6096 "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
 #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
@@ -6104,7 +6103,7 @@ int main() {
 connect()
 ; return 0; }
 EOF
 connect()
 ; return 0; }
 EOF
-if { (eval echo configure:6108: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6107: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6128,10 +6127,10 @@ fi
 
     # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX.
     echo $ac_n "checking for remove""... $ac_c" 1>&6
 
     # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX.
     echo $ac_n "checking for remove""... $ac_c" 1>&6
-echo "configure:6132: checking for remove" >&5
+echo "configure:6131: checking for remove" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 6135 "configure"
+#line 6134 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char remove(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char remove(); below.  */
@@ -6154,7 +6153,7 @@ remove();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:6158: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6157: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_remove=yes"
 else
   rm -rf conftest*
   eval "ac_cv_func_remove=yes"
 else
@@ -6175,12 +6174,12 @@ fi
     if test $ac_cv_func_remove = no; then
       
 echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
     if test $ac_cv_func_remove = no; then
       
 echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
-echo "configure:6179: checking for remove in -lposix" >&5
+echo "configure:6178: checking for remove in -lposix" >&5
 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lposix "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lposix "
 cat > conftest.$ac_ext <<EOF
-#line 6184 "configure"
+#line 6183 "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
 #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
@@ -6191,7 +6190,7 @@ int main() {
 remove()
 ; return 0; }
 EOF
 remove()
 ; return 0; }
 EOF
-if { (eval echo configure:6195: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6194: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6215,10 +6214,10 @@ fi
 
     # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
     echo $ac_n "checking for shmat""... $ac_c" 1>&6
 
     # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
     echo $ac_n "checking for shmat""... $ac_c" 1>&6
-echo "configure:6219: checking for shmat" >&5
+echo "configure:6218: checking for shmat" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 6222 "configure"
+#line 6221 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char shmat(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char shmat(); below.  */
@@ -6241,7 +6240,7 @@ shmat();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:6245: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6244: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_shmat=yes"
 else
   rm -rf conftest*
   eval "ac_cv_func_shmat=yes"
 else
@@ -6262,12 +6261,12 @@ fi
     if test $ac_cv_func_shmat = no; then
       
 echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
     if test $ac_cv_func_shmat = no; then
       
 echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
-echo "configure:6266: checking for shmat in -lipc" >&5
+echo "configure:6265: checking for shmat in -lipc" >&5
 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lipc "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lipc "
 cat > conftest.$ac_ext <<EOF
-#line 6271 "configure"
+#line 6270 "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
 #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
@@ -6278,7 +6277,7 @@ int main() {
 shmat()
 ; return 0; }
 EOF
 shmat()
 ; return 0; }
 EOF
-if { (eval echo configure:6282: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6281: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6314,12 +6313,12 @@ fi
 xe_msg_checking="for IceConnectionNumber in -lICE"
 test -n "$X_EXTRA_LIBS" && xe_msg_checking="$xe_msg_checking using extra libs $X_EXTRA_LIBS"
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
 xe_msg_checking="for IceConnectionNumber in -lICE"
 test -n "$X_EXTRA_LIBS" && xe_msg_checking="$xe_msg_checking using extra libs $X_EXTRA_LIBS"
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:6318: checking "$xe_msg_checking"" >&5
+echo "configure:6317: checking "$xe_msg_checking"" >&5
 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lICE $X_EXTRA_LIBS"
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lICE $X_EXTRA_LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6323 "configure"
+#line 6322 "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
 #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
@@ -6330,7 +6329,7 @@ int main() {
 IceConnectionNumber()
 ; return 0; }
 EOF
 IceConnectionNumber()
 ; return 0; }
 EOF
-if { (eval echo configure:6334: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6333: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6376,15 +6375,15 @@ EOF
 
     ac_safe=`echo "Xm/Xm.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for Xm/Xm.h""... $ac_c" 1>&6
 
     ac_safe=`echo "Xm/Xm.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for Xm/Xm.h""... $ac_c" 1>&6
-echo "configure:6380: checking for Xm/Xm.h" >&5
+echo "configure:6379: checking for Xm/Xm.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 6383 "configure"
+#line 6382 "configure"
 #include "confdefs.h"
 #include <Xm/Xm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <Xm/Xm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6388: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6387: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6401,12 +6400,12 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   
 echo $ac_n "checking for XmStringFree in -lXm""... $ac_c" 1>&6
   echo "$ac_t""yes" 1>&6
   
 echo $ac_n "checking for XmStringFree in -lXm""... $ac_c" 1>&6
-echo "configure:6405: checking for XmStringFree in -lXm" >&5
+echo "configure:6404: checking for XmStringFree in -lXm" >&5
 ac_lib_var=`echo Xm'_'XmStringFree | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXm "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo Xm'_'XmStringFree | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXm "
 cat > conftest.$ac_ext <<EOF
-#line 6410 "configure"
+#line 6409 "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
 #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
@@ -6417,7 +6416,7 @@ int main() {
 XmStringFree()
 ; return 0; }
 EOF
 XmStringFree()
 ; return 0; }
 EOF
-if { (eval echo configure:6421: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6420: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6569,7 +6568,7 @@ EOF
 
 
     echo "checking for X defines extracted by xmkmf" 1>&6
 
 
     echo "checking for X defines extracted by xmkmf" 1>&6
-echo "configure:6573: checking for X defines extracted by xmkmf" >&5
+echo "configure:6572: checking for X defines extracted by xmkmf" >&5
   rm -fr conftestdir
   if mkdir conftestdir; then
     cd conftestdir
   rm -fr conftestdir
   if mkdir conftestdir; then
     cd conftestdir
@@ -6618,15 +6617,15 @@ EOF
 
     ac_safe=`echo "X11/Intrinsic.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/Intrinsic.h""... $ac_c" 1>&6
 
     ac_safe=`echo "X11/Intrinsic.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/Intrinsic.h""... $ac_c" 1>&6
-echo "configure:6622: checking for X11/Intrinsic.h" >&5
+echo "configure:6621: checking for X11/Intrinsic.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 6625 "configure"
+#line 6624 "configure"
 #include "confdefs.h"
 #include <X11/Intrinsic.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <X11/Intrinsic.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6630: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6629: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6650,12 +6649,12 @@ fi
 
       
 echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6
 
       
 echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6
-echo "configure:6654: checking for XOpenDisplay in -lX11" >&5
+echo "configure:6653: checking for XOpenDisplay in -lX11" >&5
 ac_lib_var=`echo X11'_'XOpenDisplay | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lX11 "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo X11'_'XOpenDisplay | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lX11 "
 cat > conftest.$ac_ext <<EOF
-#line 6659 "configure"
+#line 6658 "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
 #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
@@ -6666,7 +6665,7 @@ int main() {
 XOpenDisplay()
 ; return 0; }
 EOF
 XOpenDisplay()
 ; return 0; }
 EOF
-if { (eval echo configure:6670: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6669: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6691,12 +6690,12 @@ fi
 xe_msg_checking="for XGetFontProperty in -lX11"
 test -n "-b i486-linuxaout" && xe_msg_checking="$xe_msg_checking using extra libs -b i486-linuxaout"
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
 xe_msg_checking="for XGetFontProperty in -lX11"
 test -n "-b i486-linuxaout" && xe_msg_checking="$xe_msg_checking using extra libs -b i486-linuxaout"
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:6695: checking "$xe_msg_checking"" >&5
+echo "configure:6694: checking "$xe_msg_checking"" >&5
 ac_lib_var=`echo X11'_'XGetFontProperty | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lX11 -b i486-linuxaout"
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo X11'_'XGetFontProperty | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lX11 -b i486-linuxaout"
 cat > conftest.$ac_ext <<EOF
-#line 6700 "configure"
+#line 6699 "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
 #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
@@ -6707,7 +6706,7 @@ int main() {
 XGetFontProperty()
 ; return 0; }
 EOF
 XGetFontProperty()
 ; return 0; }
 EOF
-if { (eval echo configure:6711: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6710: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6734,12 +6733,12 @@ fi
 
     
 echo $ac_n "checking for XShapeSelectInput in -lXext""... $ac_c" 1>&6
 
     
 echo $ac_n "checking for XShapeSelectInput in -lXext""... $ac_c" 1>&6
-echo "configure:6738: checking for XShapeSelectInput in -lXext" >&5
+echo "configure:6737: checking for XShapeSelectInput in -lXext" >&5
 ac_lib_var=`echo Xext'_'XShapeSelectInput | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXext "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo Xext'_'XShapeSelectInput | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXext "
 cat > conftest.$ac_ext <<EOF
-#line 6743 "configure"
+#line 6742 "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
 #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
@@ -6750,7 +6749,7 @@ int main() {
 XShapeSelectInput()
 ; return 0; }
 EOF
 XShapeSelectInput()
 ; return 0; }
 EOF
-if { (eval echo configure:6754: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6753: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6773,12 +6772,12 @@ fi
 
     
 echo $ac_n "checking for XtOpenDisplay in -lXt""... $ac_c" 1>&6
 
     
 echo $ac_n "checking for XtOpenDisplay in -lXt""... $ac_c" 1>&6
-echo "configure:6777: checking for XtOpenDisplay in -lXt" >&5
+echo "configure:6776: checking for XtOpenDisplay in -lXt" >&5
 ac_lib_var=`echo Xt'_'XtOpenDisplay | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXt "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo Xt'_'XtOpenDisplay | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXt "
 cat > conftest.$ac_ext <<EOF
-#line 6782 "configure"
+#line 6781 "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
 #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
@@ -6789,7 +6788,7 @@ int main() {
 XtOpenDisplay()
 ; return 0; }
 EOF
 XtOpenDisplay()
 ; return 0; }
 EOF
-if { (eval echo configure:6793: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6792: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6812,14 +6811,14 @@ fi
 
 
   echo $ac_n "checking the version of X11 being used""... $ac_c" 1>&6
 
 
   echo $ac_n "checking the version of X11 being used""... $ac_c" 1>&6
-echo "configure:6816: checking the version of X11 being used" >&5
+echo "configure:6815: checking the version of X11 being used" >&5
   cat > conftest.$ac_ext <<EOF
   cat > conftest.$ac_ext <<EOF
-#line 6818 "configure"
+#line 6817 "configure"
 #include "confdefs.h"
 #include <X11/Intrinsic.h>
     int main(int c, char *v[]) { return c>1 ? XlibSpecificationRelease : 0; }
 EOF
 #include "confdefs.h"
 #include <X11/Intrinsic.h>
     int main(int c, char *v[]) { return c>1 ? XlibSpecificationRelease : 0; }
 EOF
-if { (eval echo configure:6823: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:6822: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ./conftest foobar; x11_release=$?
 else
 then
   ./conftest foobar; x11_release=$?
 else
@@ -6847,13 +6846,13 @@ EOF
     esac
   fi
 
     esac
   fi
 
-  for ac_func in XConvertCase
+  for ac_func in XConvertCase XtRegisterDrawable
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6854: checking for $ac_func" >&5
+echo "configure:6853: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 6857 "configure"
+#line 6856 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -6876,7 +6875,7 @@ $ac_func();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:6880: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6879: \"$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
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -6908,15 +6907,15 @@ done
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:6912: checking for $ac_hdr" >&5
+echo "configure:6911: checking for $ac_hdr" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 6915 "configure"
+#line 6914 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6920: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6919: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6949,10 +6948,10 @@ done
     for ac_func in XRegisterIMInstantiateCallback
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
     for ac_func in XRegisterIMInstantiateCallback
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6953: checking for $ac_func" >&5
+echo "configure:6952: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 6956 "configure"
+#line 6955 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -6975,7 +6974,7 @@ $ac_func();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:6979: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6978: \"$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
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -7003,9 +7002,9 @@ fi
 done
 
   echo $ac_n "checking for standard XRegisterIMInstantiateCallback prototype""... $ac_c" 1>&6
 done
 
   echo $ac_n "checking for standard XRegisterIMInstantiateCallback prototype""... $ac_c" 1>&6
-echo "configure:7007: checking for standard XRegisterIMInstantiateCallback prototype" >&5
+echo "configure:7006: checking for standard XRegisterIMInstantiateCallback prototype" >&5
   cat > conftest.$ac_ext <<EOF
   cat > conftest.$ac_ext <<EOF
-#line 7009 "configure"
+#line 7008 "configure"
 #include "confdefs.h"
 
 #define NeedFunctionPrototypes 1
 #include "confdefs.h"
 
 #define NeedFunctionPrototypes 1
@@ -7017,7 +7016,7 @@ int main() {
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:7021: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7020: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
@@ -7038,12 +7037,12 @@ rm -f conftest*
 
     test -z "$with_xmu" && { 
 echo $ac_n "checking for XmuReadBitmapDataFromFile in -lXmu""... $ac_c" 1>&6
 
     test -z "$with_xmu" && { 
 echo $ac_n "checking for XmuReadBitmapDataFromFile in -lXmu""... $ac_c" 1>&6
-echo "configure:7042: checking for XmuReadBitmapDataFromFile in -lXmu" >&5
+echo "configure:7041: checking for XmuReadBitmapDataFromFile in -lXmu" >&5
 ac_lib_var=`echo Xmu'_'XmuReadBitmapDataFromFile | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXmu "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo Xmu'_'XmuReadBitmapDataFromFile | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXmu "
 cat > conftest.$ac_ext <<EOF
-#line 7047 "configure"
+#line 7046 "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
 #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
@@ -7054,7 +7053,7 @@ int main() {
 XmuReadBitmapDataFromFile()
 ; return 0; }
 EOF
 XmuReadBitmapDataFromFile()
 ; return 0; }
 EOF
-if { (eval echo configure:7058: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7057: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7093,19 +7092,19 @@ EOF
 
       
 echo $ac_n "checking for main in -lXbsd""... $ac_c" 1>&6
 
       
 echo $ac_n "checking for main in -lXbsd""... $ac_c" 1>&6
-echo "configure:7097: checking for main in -lXbsd" >&5
+echo "configure:7096: checking for main in -lXbsd" >&5
 ac_lib_var=`echo Xbsd'_'main | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXbsd "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo Xbsd'_'main | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXbsd "
 cat > conftest.$ac_ext <<EOF
-#line 7102 "configure"
+#line 7101 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:7109: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7108: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7129,7 +7128,7 @@ fi
     if test "$unexec" = "unexaix.o" -a "$x11_release" = "6"; then
         if test "$GCC" = "yes"; then
                   echo $ac_n "checking for name of AIX gcc threads option""... $ac_c" 1>&6
     if test "$unexec" = "unexaix.o" -a "$x11_release" = "6"; then
         if test "$GCC" = "yes"; then
                   echo $ac_n "checking for name of AIX gcc threads option""... $ac_c" 1>&6
-echo "configure:7133: checking for name of AIX gcc threads option" >&5
+echo "configure:7132: checking for name of AIX gcc threads option" >&5
       case `$CC -v --help 2>&1` in
         *-mthreads*) aix_threads=-mthreads ;;
                   *) aix_threads=-pthread  ;;
       case `$CC -v --help 2>&1` in
         *-mthreads*) aix_threads=-mthreads ;;
                   *) aix_threads=-pthread  ;;
@@ -7143,10 +7142,10 @@ echo "configure:7133: checking for name of AIX gcc threads option" >&5
          xe_save_CC="$CC"
          CC="${CC}_r"
          echo $ac_n "checking size of short""... $ac_c" 1>&6
          xe_save_CC="$CC"
          CC="${CC}_r"
          echo $ac_n "checking size of short""... $ac_c" 1>&6
-echo "configure:7147: checking size of short" >&5
+echo "configure:7146: checking size of short" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 7150 "configure"
+#line 7149 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -7157,7 +7156,7 @@ main()
   exit(0);
 }
 EOF
   exit(0);
 }
 EOF
-if { (eval echo configure:7161: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:7160: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_sizeof_short=`cat conftestval`
 else
 then
   ac_cv_sizeof_short=`cat conftestval`
 else
@@ -7186,22 +7185,22 @@ EOF
 fi 
 if test "$with_msw" != "no"; then
   echo "checking for MS-Windows" 1>&6
 fi 
 if test "$with_msw" != "no"; then
   echo "checking for MS-Windows" 1>&6
-echo "configure:7190: checking for MS-Windows" >&5
+echo "configure:7189: checking for MS-Windows" >&5
   
 echo $ac_n "checking for main in -lgdi32""... $ac_c" 1>&6
   
 echo $ac_n "checking for main in -lgdi32""... $ac_c" 1>&6
-echo "configure:7193: checking for main in -lgdi32" >&5
+echo "configure:7192: checking for main in -lgdi32" >&5
 ac_lib_var=`echo gdi32'_'main | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lgdi32 "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo gdi32'_'main | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lgdi32 "
 cat > conftest.$ac_ext <<EOF
-#line 7198 "configure"
+#line 7197 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:7205: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7204: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7274,12 +7273,12 @@ EOF
  fi
     fi
         cat > conftest.$ac_ext <<EOF
  fi
     fi
         cat > conftest.$ac_ext <<EOF
-#line 7278 "configure"
+#line 7277 "configure"
 #include "confdefs.h"
 #include <fcntl.h>
     int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; }
 EOF
 #include "confdefs.h"
 #include <fcntl.h>
     int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; }
 EOF
-if { (eval echo configure:7283: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:7282: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   need_event_unixoid=yes; { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_MSG_SELECT
 then
   need_event_unixoid=yes; { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_MSG_SELECT
@@ -7343,15 +7342,15 @@ fi
 if test "$with_x11" = "yes"; then
   ac_safe=`echo "X11/extensions/shape.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/shape.h""... $ac_c" 1>&6
 if test "$with_x11" = "yes"; then
   ac_safe=`echo "X11/extensions/shape.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/shape.h""... $ac_c" 1>&6
-echo "configure:7347: checking for X11/extensions/shape.h" >&5
+echo "configure:7346: checking for X11/extensions/shape.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 7350 "configure"
+#line 7349 "configure"
 #include "confdefs.h"
 #include <X11/extensions/shape.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <X11/extensions/shape.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7355: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7354: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7403,7 +7402,7 @@ case "$x_libraries" in *X11R4* )
 esac
 
 echo "checking for WM_COMMAND option" 1>&6
 esac
 
 echo "checking for WM_COMMAND option" 1>&6
-echo "configure:7407: checking for WM_COMMAND option" >&5;
+echo "configure:7406: checking for WM_COMMAND option" >&5;
 if test "$with_wmcommand" != "no"; then
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_WMCOMMAND
 if test "$with_wmcommand" != "no"; then
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_WMCOMMAND
@@ -7418,15 +7417,15 @@ fi
 test -z "$with_xauth" && test "$window_system" = "none" && with_xauth=no
 test -z "$with_xauth" && { ac_safe=`echo "X11/Xauth.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/Xauth.h""... $ac_c" 1>&6
 test -z "$with_xauth" && test "$window_system" = "none" && with_xauth=no
 test -z "$with_xauth" && { ac_safe=`echo "X11/Xauth.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/Xauth.h""... $ac_c" 1>&6
-echo "configure:7422: checking for X11/Xauth.h" >&5
+echo "configure:7421: checking for X11/Xauth.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 7425 "configure"
+#line 7424 "configure"
 #include "confdefs.h"
 #include <X11/Xauth.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <X11/Xauth.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7430: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7429: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7449,12 +7448,12 @@ fi
  }
 test -z "$with_xauth" && { 
 echo $ac_n "checking for XauGetAuthByAddr in -lXau""... $ac_c" 1>&6
  }
 test -z "$with_xauth" && { 
 echo $ac_n "checking for XauGetAuthByAddr in -lXau""... $ac_c" 1>&6
-echo "configure:7453: checking for XauGetAuthByAddr in -lXau" >&5
+echo "configure:7452: checking for XauGetAuthByAddr in -lXau" >&5
 ac_lib_var=`echo Xau'_'XauGetAuthByAddr | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXau "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo Xau'_'XauGetAuthByAddr | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXau "
 cat > conftest.$ac_ext <<EOF
-#line 7458 "configure"
+#line 7457 "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
 #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
@@ -7465,7 +7464,7 @@ int main() {
 XauGetAuthByAddr()
 ; return 0; }
 EOF
 XauGetAuthByAddr()
 ; return 0; }
 EOF
-if { (eval echo configure:7469: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7468: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7510,15 +7509,15 @@ if test "$with_tooltalk" != "no" ; then
       for dir in "" "Tt/" "desktop/" ; do
     ac_safe=`echo "${dir}tt_c.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ${dir}tt_c.h""... $ac_c" 1>&6
       for dir in "" "Tt/" "desktop/" ; do
     ac_safe=`echo "${dir}tt_c.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ${dir}tt_c.h""... $ac_c" 1>&6
-echo "configure:7514: checking for ${dir}tt_c.h" >&5
+echo "configure:7513: checking for ${dir}tt_c.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 7517 "configure"
+#line 7516 "configure"
 #include "confdefs.h"
 #include <${dir}tt_c.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <${dir}tt_c.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7522: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7521: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7554,12 +7553,12 @@ if test "$with_tooltalk" != "no" ; then
 xe_msg_checking="for tt_message_create in -ltt"
 test -n "$extra_libs" && xe_msg_checking="$xe_msg_checking using extra libs $extra_libs"
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
 xe_msg_checking="for tt_message_create in -ltt"
 test -n "$extra_libs" && xe_msg_checking="$xe_msg_checking using extra libs $extra_libs"
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:7558: checking "$xe_msg_checking"" >&5
+echo "configure:7557: checking "$xe_msg_checking"" >&5
 ac_lib_var=`echo tt'_'tt_message_create | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ltt $extra_libs"
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo tt'_'tt_message_create | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ltt $extra_libs"
 cat > conftest.$ac_ext <<EOF
-#line 7563 "configure"
+#line 7562 "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
 #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
@@ -7570,7 +7569,7 @@ int main() {
 tt_message_create()
 ; return 0; }
 EOF
 tt_message_create()
 ; return 0; }
 EOF
-if { (eval echo configure:7574: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7573: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7627,15 +7626,15 @@ fi
 
 test -z "$with_cde" && { ac_safe=`echo "Dt/Dt.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for Dt/Dt.h""... $ac_c" 1>&6
 
 test -z "$with_cde" && { ac_safe=`echo "Dt/Dt.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for Dt/Dt.h""... $ac_c" 1>&6
-echo "configure:7631: checking for Dt/Dt.h" >&5
+echo "configure:7630: checking for Dt/Dt.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 7634 "configure"
+#line 7633 "configure"
 #include "confdefs.h"
 #include <Dt/Dt.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <Dt/Dt.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7639: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7638: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7658,12 +7657,12 @@ fi
  }
 test -z "$with_cde" && { 
 echo $ac_n "checking for DtDndDragStart in -lDtSvc""... $ac_c" 1>&6
  }
 test -z "$with_cde" && { 
 echo $ac_n "checking for DtDndDragStart in -lDtSvc""... $ac_c" 1>&6
-echo "configure:7662: checking for DtDndDragStart in -lDtSvc" >&5
+echo "configure:7661: checking for DtDndDragStart in -lDtSvc" >&5
 ac_lib_var=`echo DtSvc'_'DtDndDragStart | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lDtSvc "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo DtSvc'_'DtDndDragStart | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lDtSvc "
 cat > conftest.$ac_ext <<EOF
-#line 7667 "configure"
+#line 7666 "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
 #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
@@ -7674,7 +7673,7 @@ int main() {
 DtDndDragStart()
 ; return 0; }
 EOF
 DtDndDragStart()
 ; return 0; }
 EOF
-if { (eval echo configure:7678: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7677: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7747,7 +7746,7 @@ fi
 
 if test "$with_dragndrop" != "no" ; then
   echo $ac_n "checking if drag and drop API is needed""... $ac_c" 1>&6
 
 if test "$with_dragndrop" != "no" ; then
   echo $ac_n "checking if drag and drop API is needed""... $ac_c" 1>&6
-echo "configure:7751: checking if drag and drop API is needed" >&5
+echo "configure:7750: checking if drag and drop API is needed" >&5
   if test -n "$dragndrop_proto" ; then
     with_dragndrop=yes
     echo "$ac_t""yes (${dragndrop_proto} )" 1>&6
   if test -n "$dragndrop_proto" ; then
     with_dragndrop=yes
     echo "$ac_t""yes (${dragndrop_proto} )" 1>&6
@@ -7767,18 +7766,18 @@ EOF
 fi
 
 echo "checking for LDAP" 1>&6
 fi
 
 echo "checking for LDAP" 1>&6
-echo "configure:7771: checking for LDAP" >&5
+echo "configure:7770: checking for LDAP" >&5
 test -z "$with_ldap" && { ac_safe=`echo "ldap.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ldap.h""... $ac_c" 1>&6
 test -z "$with_ldap" && { ac_safe=`echo "ldap.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ldap.h""... $ac_c" 1>&6
-echo "configure:7774: checking for ldap.h" >&5
+echo "configure:7773: checking for ldap.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 7777 "configure"
+#line 7776 "configure"
 #include "confdefs.h"
 #include <ldap.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <ldap.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7782: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7781: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7801,15 +7800,15 @@ fi
  }
 test -z "$with_ldap" && { ac_safe=`echo "lber.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for lber.h""... $ac_c" 1>&6
  }
 test -z "$with_ldap" && { ac_safe=`echo "lber.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for lber.h""... $ac_c" 1>&6
-echo "configure:7805: checking for lber.h" >&5
+echo "configure:7804: checking for lber.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 7808 "configure"
+#line 7807 "configure"
 #include "confdefs.h"
 #include <lber.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <lber.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7813: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7812: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7830,26 +7829,73 @@ else
 with_ldap=no
 fi
  }
 with_ldap=no
 fi
  }
-if test "$with_ldap" != "no"; then
-  
-echo $ac_n "checking for ldap_search in -lldap""... $ac_c" 1>&6
-echo "configure:7837: checking for ldap_search in -lldap" >&5
-ac_lib_var=`echo ldap'_'ldap_search | sed 'y%./+-%__p_%'`
+if test no != "$with_ldap";then
+  if test . != "${ldap_libs+.}";then
+    ldap_libs=
+    echo $ac_n "checking for ldap_open""... $ac_c" 1>&6
+echo "configure:7837: checking for ldap_open" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 7840 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char ldap_open(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char ldap_open();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_ldap_open) || defined (__stub___ldap_open)
+choke me
+#else
+ldap_open();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:7863: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_ldap_open=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_ldap_open=no"
+fi
+rm -f conftest*
+
+if eval "test \"`echo '$ac_cv_func_'ldap_open`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+        with_ldap=yes
+      test yes = "$extra_verbose" &&
+       echo "Setting ldap_libs to $ldap_libs"
+else
+  echo "$ac_t""no" 1>&6
+      
+echo $ac_n "checking for ldap_open in -lldap""... $ac_c" 1>&6
+echo "configure:7883: checking for ldap_open in -lldap" >&5
+ac_lib_var=`echo ldap'_'ldap_open | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lldap "
 cat > conftest.$ac_ext <<EOF
 
 xe_check_libs=" -lldap "
 cat > conftest.$ac_ext <<EOF
-#line 7842 "configure"
+#line 7888 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
 #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
     builtin and then its argument prototype would still apply.  */
-char ldap_search();
+char ldap_open();
 
 int main() {
 
 int main() {
-ldap_search()
+ldap_open()
 ; return 0; }
 EOF
 ; return 0; }
 EOF
-if { (eval echo configure:7853: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7899: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7866,19 +7912,17 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
   with_ldap=yes
 else
   echo "$ac_t""no" 1>&6
   with_ldap=yes
 else
   echo "$ac_t""no" 1>&6
-fi
-
-
-    test "$with_ldap" != "yes" && { 
+ldap_needs_lber=yes ldap_other_libs=-llber
+       
 xe_msg_checking="for ldap_open in -lldap"
 xe_msg_checking="for ldap_open in -lldap"
-test -n "-llber" && xe_msg_checking="$xe_msg_checking using extra libs -llber"
+test -n "$ldap_other_libs" && xe_msg_checking="$xe_msg_checking using extra libs $ldap_other_libs"
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:7877: checking "$xe_msg_checking"" >&5
+echo "configure:7921: checking "$xe_msg_checking"" >&5
 ac_lib_var=`echo ldap'_'ldap_open | sed 'y%./+-%__p_%'`
 
 ac_lib_var=`echo ldap'_'ldap_open | sed 'y%./+-%__p_%'`
 
-xe_check_libs=" -lldap -llber"
+xe_check_libs=" -lldap $ldap_other_libs"
 cat > conftest.$ac_ext <<EOF
 cat > conftest.$ac_ext <<EOF
-#line 7882 "configure"
+#line 7926 "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
 #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
@@ -7889,7 +7933,7 @@ int main() {
 ldap_open()
 ; return 0; }
 EOF
 ldap_open()
 ; return 0; }
 EOF
-if { (eval echo configure:7893: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7937: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7903,22 +7947,20 @@ xe_check_libs=""
 
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
   echo "$ac_t""yes" 1>&6
 
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
   echo "$ac_t""yes" 1>&6
-  with_ldap=yes with_ldap_lber=yes
+  with_ldap=yes
 else
   echo "$ac_t""no" 1>&6
 else
   echo "$ac_t""no" 1>&6
-fi
-
- }
-  test "$with_ldap" != "yes" && { 
+ldap_needs_krb=yes ldap_other_libs="$ldap_other_libs -lkrb"
+         
 xe_msg_checking="for ldap_open in -lldap"
 xe_msg_checking="for ldap_open in -lldap"
-test -n "-llber -lkrb" && xe_msg_checking="$xe_msg_checking using extra libs -llber -lkrb"
+test -n "$ldap_other_libs" && xe_msg_checking="$xe_msg_checking using extra libs $ldap_other_libs"
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:7917: checking "$xe_msg_checking"" >&5
+echo "configure:7959: checking "$xe_msg_checking"" >&5
 ac_lib_var=`echo ldap'_'ldap_open | sed 'y%./+-%__p_%'`
 
 ac_lib_var=`echo ldap'_'ldap_open | sed 'y%./+-%__p_%'`
 
-xe_check_libs=" -lldap -llber -lkrb"
+xe_check_libs=" -lldap $ldap_other_libs"
 cat > conftest.$ac_ext <<EOF
 cat > conftest.$ac_ext <<EOF
-#line 7922 "configure"
+#line 7964 "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
 #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
@@ -7929,7 +7971,7 @@ int main() {
 ldap_open()
 ; return 0; }
 EOF
 ldap_open()
 ; return 0; }
 EOF
-if { (eval echo configure:7933: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7975: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7943,22 +7985,20 @@ xe_check_libs=""
 
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
   echo "$ac_t""yes" 1>&6
 
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
   echo "$ac_t""yes" 1>&6
-  with_ldap=yes with_ldap_lber=yes with_ldap_krb=yes
+  with_ldap=yes
 else
   echo "$ac_t""no" 1>&6
 else
   echo "$ac_t""no" 1>&6
-fi
-
- }
-  test "$with_ldap" != "yes" && { 
+ldap_needs_des=yes ldap_other_libs="$ldap_other_libs -ldes"
+           
 xe_msg_checking="for ldap_open in -lldap"
 xe_msg_checking="for ldap_open in -lldap"
-test -n "-llber -lkrb -ldes" && xe_msg_checking="$xe_msg_checking using extra libs -llber -lkrb -ldes"
+test -n "$ldap_other_libs" && xe_msg_checking="$xe_msg_checking using extra libs $ldap_other_libs"
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:7957: checking "$xe_msg_checking"" >&5
+echo "configure:7997: checking "$xe_msg_checking"" >&5
 ac_lib_var=`echo ldap'_'ldap_open | sed 'y%./+-%__p_%'`
 
 ac_lib_var=`echo ldap'_'ldap_open | sed 'y%./+-%__p_%'`
 
-xe_check_libs=" -lldap -llber -lkrb -ldes"
+xe_check_libs=" -lldap $ldap_other_libs"
 cat > conftest.$ac_ext <<EOF
 cat > conftest.$ac_ext <<EOF
-#line 7962 "configure"
+#line 8002 "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
 #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
@@ -7969,7 +8009,7 @@ int main() {
 ldap_open()
 ; return 0; }
 EOF
 ldap_open()
 ; return 0; }
 EOF
-if { (eval echo configure:7973: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8013: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7983,50 +8023,88 @@ xe_check_libs=""
 
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
   echo "$ac_t""yes" 1>&6
 
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
   echo "$ac_t""yes" 1>&6
-  with_ldap=yes with_ldap_lber=yes with_ldap_krb=yes with_ldap_des=yes
+  with_ldap=yes
 else
   echo "$ac_t""no" 1>&6
 else
   echo "$ac_t""no" 1>&6
+with_ldap=no
 fi
 
 fi
 
- }
-              test "$with_ldap_lber" != "yes" && { 
-echo $ac_n "checking for ber_pvt_opt_on in -llber""... $ac_c" 1>&6
-echo "configure:7995: checking for ber_pvt_opt_on in -llber" >&5
-ac_lib_var=`echo lber'_'ber_pvt_opt_on | sed 'y%./+-%__p_%'`
 
 
-xe_check_libs=" -llber "
+fi
+
+
+fi
+
+
+fi
+
+
+      if test yes = "$with_ldap";then
+       if test yes = "$ldap_needs_des";then
+         ldap_libs="-ldes $ldap_libs" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-ldes\" to \$ldap_libs"; fi
+       fi
+       if test yes = "$ldap_needs_krb";then
+         ldap_libs="-lkrb $ldap_libs" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-lkrb\" to \$ldap_libs"; fi
+       fi
+       if test yes = "$ldap_needs_lber";then
+         ldap_libs="-llber $ldap_libs" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-llber\" to \$ldap_libs"; fi
+       fi
+       ldap_libs="-lldap $ldap_libs" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-lldap\" to \$ldap_libs"; fi
+      fi
+fi
+
+  else
+    save_LIBS="$LIBS" LIBS="$ldap_libs $LIBS"
+    echo $ac_n "checking for ldap_open""... $ac_c" 1>&6
+echo "configure:8060: checking for ldap_open" >&5
+
 cat > conftest.$ac_ext <<EOF
 cat > conftest.$ac_ext <<EOF
-#line 8000 "configure"
+#line 8063 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char ldap_open(); below.  */
+#include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
-char ber_pvt_opt_on();
+char ldap_open();
 
 int main() {
 
 int main() {
-ber_pvt_opt_on()
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_ldap_open) || defined (__stub___ldap_open)
+choke me
+#else
+ldap_open();
+#endif
+
 ; return 0; }
 EOF
 ; return 0; }
 EOF
-if { (eval echo configure:8011: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8086: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+  eval "ac_cv_func_ldap_open=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  eval "ac_cv_func_ldap_open=no"
 fi
 rm -f conftest*
 fi
 rm -f conftest*
-xe_check_libs=""
 
 
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
+if eval "test \"`echo '$ac_cv_func_'ldap_open`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   echo "$ac_t""yes" 1>&6
-  with_ldap_lber=yes
+        with_ldap=yes
+      test yes = "$extra_verbose" &&
+       echo "Setting ldap_libs to $ldap_libs"
 else
   echo "$ac_t""no" 1>&6
 else
   echo "$ac_t""no" 1>&6
+      with_ldap=no
 fi
 
 fi
 
- }
+    LIBS="$save_LIBS"
+  fi
 fi
 if test "$with_ldap" = "yes"; then
   { test "$extra_verbose" = "yes" && cat << \EOF
 fi
 if test "$with_ldap" = "yes"; then
   { test "$extra_verbose" = "yes" && cat << \EOF
@@ -8040,23 +8118,14 @@ EOF
   extra_objs="$extra_objs eldap.o" &&  if test "$extra_verbose" = "yes"; then
    echo "    xemacs will be linked with \"eldap.o\""
  fi
   extra_objs="$extra_objs eldap.o" &&  if test "$extra_verbose" = "yes"; then
    echo "    xemacs will be linked with \"eldap.o\""
  fi
-  if test "$with_ldap_des" = "yes" ; then
-    LIBS="-ldes $LIBS" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-ldes\" to \$LIBS"; fi
-  fi
-  if test "$with_ldap_krb" = "yes" ; then
-    LIBS="-lkrb $LIBS" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-lkrb\" to \$LIBS"; fi
-  fi
-  if test "$with_ldap_lber" = "yes" ; then
-    LIBS="-llber $LIBS" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-llber\" to \$LIBS"; fi
-  fi
-  LIBS="-lldap $LIBS" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-lldap\" to \$LIBS"; fi
+  LIBS="$ldap_libs $LIBS"
   for ac_func in ldap_set_option ldap_get_lderrno ldap_result2error ldap_parse_result
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
   for ac_func in ldap_set_option ldap_get_lderrno ldap_result2error ldap_parse_result
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8057: checking for $ac_func" >&5
+echo "configure:8126: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 8060 "configure"
+#line 8129 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -8079,7 +8148,7 @@ $ac_func();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:8083: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8152: \"$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
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -8110,20 +8179,20 @@ fi
 
 if test "$with_postgresql" != "no"; then
   echo "checking for PostgreSQL" 1>&6
 
 if test "$with_postgresql" != "no"; then
   echo "checking for PostgreSQL" 1>&6
-echo "configure:8114: checking for PostgreSQL" >&5
+echo "configure:8183: checking for PostgreSQL" >&5
 
   for header_dir in "" "pgsql/" "postgresql/"; do
     ac_safe=`echo "${header_dir}libpq-fe.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ${header_dir}libpq-fe.h""... $ac_c" 1>&6
 
   for header_dir in "" "pgsql/" "postgresql/"; do
     ac_safe=`echo "${header_dir}libpq-fe.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ${header_dir}libpq-fe.h""... $ac_c" 1>&6
-echo "configure:8119: checking for ${header_dir}libpq-fe.h" >&5
+echo "configure:8188: checking for ${header_dir}libpq-fe.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 8122 "configure"
+#line 8191 "configure"
 #include "confdefs.h"
 #include <${header_dir}libpq-fe.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <${header_dir}libpq-fe.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8127: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8196: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8147,12 +8216,12 @@ fi
 
   test -n "$libpq_fe_h_file" && { 
 echo $ac_n "checking for PQconnectdb in -lpq""... $ac_c" 1>&6
 
   test -n "$libpq_fe_h_file" && { 
 echo $ac_n "checking for PQconnectdb in -lpq""... $ac_c" 1>&6
-echo "configure:8151: checking for PQconnectdb in -lpq" >&5
+echo "configure:8220: checking for PQconnectdb in -lpq" >&5
 ac_lib_var=`echo pq'_'PQconnectdb | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lpq "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo pq'_'PQconnectdb | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lpq "
 cat > conftest.$ac_ext <<EOF
-#line 8156 "configure"
+#line 8225 "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
 #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
@@ -8163,7 +8232,7 @@ int main() {
 PQconnectdb()
 ; return 0; }
 EOF
 PQconnectdb()
 ; return 0; }
 EOF
-if { (eval echo configure:8167: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8236: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8196,12 +8265,12 @@ EOF
 
     
 echo $ac_n "checking for PQconnectStart in -lpq""... $ac_c" 1>&6
 
     
 echo $ac_n "checking for PQconnectStart in -lpq""... $ac_c" 1>&6
-echo "configure:8200: checking for PQconnectStart in -lpq" >&5
+echo "configure:8269: checking for PQconnectStart in -lpq" >&5
 ac_lib_var=`echo pq'_'PQconnectStart | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lpq "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo pq'_'PQconnectStart | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lpq "
 cat > conftest.$ac_ext <<EOF
-#line 8205 "configure"
+#line 8274 "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
 #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
@@ -8212,7 +8281,7 @@ int main() {
 PQconnectStart()
 ; return 0; }
 EOF
 PQconnectStart()
 ; return 0; }
 EOF
-if { (eval echo configure:8216: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8285: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8260,7 +8329,7 @@ fi
 
 if test "$window_system" != "none"; then
   echo "checking for graphics libraries" 1>&6
 
 if test "$window_system" != "none"; then
   echo "checking for graphics libraries" 1>&6
-echo "configure:8264: checking for graphics libraries" >&5
+echo "configure:8333: checking for graphics libraries" >&5
 
       libpath_xpm=
   incpath_xpm=
 
       libpath_xpm=
   incpath_xpm=
@@ -8286,10 +8355,10 @@ echo "configure:8264: checking for graphics libraries" >&5
     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
     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:8290: checking for Xpm - no older than 3.4f" >&5
+echo "configure:8359: checking for Xpm - no older than 3.4f" >&5
     xe_check_libs=-lXpm
     cat > conftest.$ac_ext <<EOF
     xe_check_libs=-lXpm
     cat > conftest.$ac_ext <<EOF
-#line 8293 "configure"
+#line 8362 "configure"
 #include "confdefs.h"
 #define XPM_NUMBERS
 #include <X11/xpm.h>
 #include "confdefs.h"
 #define XPM_NUMBERS
 #include <X11/xpm.h>
@@ -8298,7 +8367,7 @@ echo "configure:8290: checking for Xpm - no older than 3.4f" >&5
       XpmIncludeVersion != XpmLibraryVersion() ? 1 :
       XpmIncludeVersion < 30406 ? 2 : 0 ;}
 EOF
       XpmIncludeVersion != XpmLibraryVersion() ? 1 :
       XpmIncludeVersion < 30406 ? 2 : 0 ;}
 EOF
-if { (eval echo configure:8302: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:8371: \"$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
 then
   ./conftest dummy_arg; xpm_status=$?;
       if test "$xpm_status" = "0"; then
@@ -8342,17 +8411,17 @@ EOF
     libs_x="-lXpm $libs_x" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-lXpm\" 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
     libs_x="-lXpm $libs_x" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-lXpm\" 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:8346: checking for \"FOR_MSW\" xpm" >&5
+echo "configure:8415: checking for \"FOR_MSW\" xpm" >&5
     xe_check_libs=-lXpm
     cat > conftest.$ac_ext <<EOF
     xe_check_libs=-lXpm
     cat > conftest.$ac_ext <<EOF
-#line 8349 "configure"
+#line 8418 "configure"
 #include "confdefs.h"
 
 int main() {
 XpmCreatePixmapFromData()
 ; return 0; }
 EOF
 #include "confdefs.h"
 
 int main() {
 XpmCreatePixmapFromData()
 ; return 0; }
 EOF
-if { (eval echo configure:8356: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8425: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   xpm_for_msw=no
 else
   rm -rf conftest*
   xpm_for_msw=no
 else
@@ -8378,15 +8447,15 @@ EOF
 
     test -z "$with_xface" && { ac_safe=`echo "compface.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for compface.h""... $ac_c" 1>&6
 
     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:8382: checking for compface.h" >&5
+echo "configure:8451: checking for compface.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 8385 "configure"
+#line 8454 "configure"
 #include "confdefs.h"
 #include <compface.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <compface.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8390: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8459: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8409,12 +8478,12 @@ fi
  }
   test -z "$with_xface" && { 
 echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6
  }
   test -z "$with_xface" && { 
 echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6
-echo "configure:8413: checking for UnGenFace in -lcompface" >&5
+echo "configure:8482: checking for UnGenFace in -lcompface" >&5
 ac_lib_var=`echo compface'_'UnGenFace | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lcompface "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo compface'_'UnGenFace | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lcompface "
 cat > conftest.$ac_ext <<EOF
-#line 8418 "configure"
+#line 8487 "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
 #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
@@ -8425,7 +8494,7 @@ int main() {
 UnGenFace()
 ; return 0; }
 EOF
 UnGenFace()
 ; return 0; }
 EOF
-if { (eval echo configure:8429: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8498: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8477,12 +8546,12 @@ EOF
       if test "$with_png $with_tiff" != "no no"; then
     
 echo $ac_n "checking for inflate in -lc""... $ac_c" 1>&6
       if test "$with_png $with_tiff" != "no no"; then
     
 echo $ac_n "checking for inflate in -lc""... $ac_c" 1>&6
-echo "configure:8481: checking for inflate in -lc" >&5
+echo "configure:8550: checking for inflate in -lc" >&5
 ac_lib_var=`echo c'_'inflate | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lc "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo c'_'inflate | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lc "
 cat > conftest.$ac_ext <<EOF
-#line 8486 "configure"
+#line 8555 "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
 #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
@@ -8493,7 +8562,7 @@ int main() {
 inflate()
 ; return 0; }
 EOF
 inflate()
 ; return 0; }
 EOF
-if { (eval echo configure:8497: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8566: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8512,12 +8581,12 @@ else
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for inflate in -lz""... $ac_c" 1>&6
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for inflate in -lz""... $ac_c" 1>&6
-echo "configure:8516: checking for inflate in -lz" >&5
+echo "configure:8585: checking for inflate in -lz" >&5
 ac_lib_var=`echo z'_'inflate | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lz "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo z'_'inflate | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lz "
 cat > conftest.$ac_ext <<EOF
-#line 8521 "configure"
+#line 8590 "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
 #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
@@ -8528,7 +8597,7 @@ int main() {
 inflate()
 ; return 0; }
 EOF
 inflate()
 ; return 0; }
 EOF
-if { (eval echo configure:8532: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8601: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8547,12 +8616,12 @@ else
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for inflate in -lgz""... $ac_c" 1>&6
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for inflate in -lgz""... $ac_c" 1>&6
-echo "configure:8551: checking for inflate in -lgz" >&5
+echo "configure:8620: checking for inflate in -lgz" >&5
 ac_lib_var=`echo gz'_'inflate | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lgz "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo gz'_'inflate | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lgz "
 cat > conftest.$ac_ext <<EOF
-#line 8556 "configure"
+#line 8625 "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
 #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
@@ -8563,7 +8632,7 @@ int main() {
 inflate()
 ; return 0; }
 EOF
 inflate()
 ; return 0; }
 EOF
-if { (eval echo configure:8567: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8636: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8593,15 +8662,15 @@ fi
 
     test -z "$with_jpeg" && { ac_safe=`echo "jpeglib.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for jpeglib.h""... $ac_c" 1>&6
 
     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:8597: checking for jpeglib.h" >&5
+echo "configure:8666: checking for jpeglib.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 8600 "configure"
+#line 8669 "configure"
 #include "confdefs.h"
 #include <jpeglib.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <jpeglib.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8605: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8674: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8624,12 +8693,12 @@ fi
  }
   test -z "$with_jpeg" && { 
 echo $ac_n "checking for jpeg_destroy_decompress in -ljpeg""... $ac_c" 1>&6
  }
   test -z "$with_jpeg" && { 
 echo $ac_n "checking for jpeg_destroy_decompress in -ljpeg""... $ac_c" 1>&6
-echo "configure:8628: checking for jpeg_destroy_decompress in -ljpeg" >&5
+echo "configure:8697: 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
 ac_lib_var=`echo jpeg'_'jpeg_destroy_decompress | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ljpeg "
 cat > conftest.$ac_ext <<EOF
-#line 8633 "configure"
+#line 8702 "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
 #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
@@ -8640,7 +8709,7 @@ int main() {
 jpeg_destroy_decompress()
 ; return 0; }
 EOF
 jpeg_destroy_decompress()
 ; return 0; }
 EOF
-if { (eval echo configure:8644: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8713: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8676,10 +8745,10 @@ EOF
 
     png_problem=""
   test -z "$with_png" && { echo $ac_n "checking for pow""... $ac_c" 1>&6
 
     png_problem=""
   test -z "$with_png" && { echo $ac_n "checking for pow""... $ac_c" 1>&6
-echo "configure:8680: checking for pow" >&5
+echo "configure:8749: checking for pow" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 8683 "configure"
+#line 8752 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char pow(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char pow(); below.  */
@@ -8702,7 +8771,7 @@ pow();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:8706: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8775: \"$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
   rm -rf conftest*
   eval "ac_cv_func_pow=yes"
 else
@@ -8723,15 +8792,15 @@ fi
  }
   test -z "$with_png" && { ac_safe=`echo "png.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for png.h""... $ac_c" 1>&6
  }
   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:8727: checking for png.h" >&5
+echo "configure:8796: checking for png.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 8730 "configure"
+#line 8799 "configure"
 #include "confdefs.h"
 #include <png.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <png.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8735: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8804: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8754,12 +8823,12 @@ fi
  }
   test -z "$with_png" && { 
 echo $ac_n "checking for png_read_image in -lpng""... $ac_c" 1>&6
  }
   test -z "$with_png" && { 
 echo $ac_n "checking for png_read_image in -lpng""... $ac_c" 1>&6
-echo "configure:8758: checking for png_read_image in -lpng" >&5
+echo "configure:8827: 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
 ac_lib_var=`echo png'_'png_read_image | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lpng "
 cat > conftest.$ac_ext <<EOF
-#line 8763 "configure"
+#line 8832 "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
 #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
@@ -8770,7 +8839,7 @@ int main() {
 png_read_image()
 ; return 0; }
 EOF
 png_read_image()
 ; return 0; }
 EOF
-if { (eval echo configure:8774: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8843: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8793,10 +8862,10 @@ fi
  }
   if test -z "$with_png"; then
     echo $ac_n "checking for workable png version information""... $ac_c" 1>&6
  }
   if test -z "$with_png"; then
     echo $ac_n "checking for workable png version information""... $ac_c" 1>&6
-echo "configure:8797: checking for workable png version information" >&5
+echo "configure:8866: checking for workable png version information" >&5
     xe_check_libs="-lpng -lz"
     cat > conftest.$ac_ext <<EOF
     xe_check_libs="-lpng -lz"
     cat > conftest.$ac_ext <<EOF
-#line 8800 "configure"
+#line 8869 "configure"
 #include "confdefs.h"
 #include <png.h>
     int main(int c, char **v) {
 #include "confdefs.h"
 #include <png.h>
     int main(int c, char **v) {
@@ -8804,7 +8873,7 @@ echo "configure:8797: checking for workable png version information" >&5
     if (strcmp(png_libpng_ver, PNG_LIBPNG_VER_STRING) != 0) return 1;
     return (PNG_LIBPNG_VER < 10002) ? 2 : 0 ;}
 EOF
     if (strcmp(png_libpng_ver, PNG_LIBPNG_VER_STRING) != 0) return 1;
     return (PNG_LIBPNG_VER < 10002) ? 2 : 0 ;}
 EOF
-if { (eval echo configure:8808: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:8877: \"$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
 then
   ./conftest dummy_arg; png_status=$?;
       if test "$png_status" = "0"; then
@@ -8847,15 +8916,15 @@ EOF
 
     test -z "$with_tiff" && { ac_safe=`echo "tiffio.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for tiffio.h""... $ac_c" 1>&6
 
     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:8851: checking for tiffio.h" >&5
+echo "configure:8920: checking for tiffio.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 8854 "configure"
+#line 8923 "configure"
 #include "confdefs.h"
 #include <tiffio.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <tiffio.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8859: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8928: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8878,12 +8947,12 @@ fi
  }
   test -z "$with_tiff" && { 
 echo $ac_n "checking for TIFFClientOpen in -ltiff""... $ac_c" 1>&6
  }
   test -z "$with_tiff" && { 
 echo $ac_n "checking for TIFFClientOpen in -ltiff""... $ac_c" 1>&6
-echo "configure:8882: checking for TIFFClientOpen in -ltiff" >&5
+echo "configure:8951: checking for TIFFClientOpen in -ltiff" >&5
 ac_lib_var=`echo tiff'_'TIFFClientOpen | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ltiff "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo tiff'_'TIFFClientOpen | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ltiff "
 cat > conftest.$ac_ext <<EOF
-#line 8887 "configure"
+#line 8956 "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
 #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
@@ -8894,7 +8963,7 @@ int main() {
 TIFFClientOpen()
 ; return 0; }
 EOF
 TIFFClientOpen()
 ; return 0; }
 EOF
-if { (eval echo configure:8898: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8967: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8933,15 +9002,15 @@ fi
 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
 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:8937: checking for compface.h" >&5
+echo "configure:9006: checking for compface.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 8940 "configure"
+#line 9009 "configure"
 #include "confdefs.h"
 #include <compface.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <compface.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8945: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9014: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8964,12 +9033,12 @@ fi
  }
   test -z "$with_xface" && { 
 echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6
  }
   test -z "$with_xface" && { 
 echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6
-echo "configure:8968: checking for UnGenFace in -lcompface" >&5
+echo "configure:9037: checking for UnGenFace in -lcompface" >&5
 ac_lib_var=`echo compface'_'UnGenFace | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lcompface "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo compface'_'UnGenFace | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lcompface "
 cat > conftest.$ac_ext <<EOF
-#line 8973 "configure"
+#line 9042 "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
 #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
@@ -8980,7 +9049,7 @@ int main() {
 UnGenFace()
 ; return 0; }
 EOF
 UnGenFace()
 ; return 0; }
 EOF
-if { (eval echo configure:8984: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9053: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -9019,12 +9088,12 @@ fi
 
 if test "$with_x11" = "yes"; then
   echo "checking for X11 graphics libraries" 1>&6
 
 if test "$with_x11" = "yes"; then
   echo "checking for X11 graphics libraries" 1>&6
-echo "configure:9023: checking for X11 graphics libraries" >&5
+echo "configure:9092: checking for X11 graphics libraries" >&5
 fi
 
 if test "$with_x11" = "yes"; then
   echo "checking for the Athena widgets" 1>&6
 fi
 
 if test "$with_x11" = "yes"; then
   echo "checking for the Athena widgets" 1>&6
-echo "configure:9028: checking for the Athena widgets" >&5
+echo "configure:9097: checking for the Athena widgets" >&5
 
     case "$with_athena" in
         "xaw" | "")    athena_variant=Xaw      athena_3d=no  ;;
 
     case "$with_athena" in
         "xaw" | "")    athena_variant=Xaw      athena_3d=no  ;;
@@ -9040,12 +9109,12 @@ echo "configure:9028: checking for the Athena widgets" >&5
     if test "$athena_3d" = "no"; then
     
 echo $ac_n "checking for XawScrollbarSetThumb in -l$athena_variant""... $ac_c" 1>&6
     if test "$athena_3d" = "no"; then
     
 echo $ac_n "checking for XawScrollbarSetThumb in -l$athena_variant""... $ac_c" 1>&6
-echo "configure:9044: checking for XawScrollbarSetThumb in -l$athena_variant" >&5
+echo "configure:9113: 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
 ac_lib_var=`echo $athena_variant'_'XawScrollbarSetThumb | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -l$athena_variant "
 cat > conftest.$ac_ext <<EOF
-#line 9049 "configure"
+#line 9118 "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
 #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
@@ -9056,7 +9125,7 @@ int main() {
 XawScrollbarSetThumb()
 ; return 0; }
 EOF
 XawScrollbarSetThumb()
 ; return 0; }
 EOF
-if { (eval echo configure:9060: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9129: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -9072,12 +9141,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
   echo "$ac_t""yes" 1>&6
           
 echo $ac_n "checking for $athena_3d_function in -l$athena_variant""... $ac_c" 1>&6
   echo "$ac_t""yes" 1>&6
           
 echo $ac_n "checking for $athena_3d_function in -l$athena_variant""... $ac_c" 1>&6
-echo "configure:9076: checking for $athena_3d_function in -l$athena_variant" >&5
+echo "configure:9145: 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
 ac_lib_var=`echo $athena_variant'_'$athena_3d_function | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -l$athena_variant "
 cat > conftest.$ac_ext <<EOF
-#line 9081 "configure"
+#line 9150 "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
 #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
@@ -9088,7 +9157,7 @@ int main() {
 $athena_3d_function()
 ; return 0; }
 EOF
 $athena_3d_function()
 ; return 0; }
 EOF
-if { (eval echo configure:9092: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9161: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -9119,12 +9188,12 @@ fi
   else
         
 echo $ac_n "checking for $athena_3d_function in -l$athena_variant""... $ac_c" 1>&6
   else
         
 echo $ac_n "checking for $athena_3d_function in -l$athena_variant""... $ac_c" 1>&6
-echo "configure:9123: checking for $athena_3d_function in -l$athena_variant" >&5
+echo "configure:9192: 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
 ac_lib_var=`echo $athena_variant'_'$athena_3d_function | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -l$athena_variant "
 cat > conftest.$ac_ext <<EOF
-#line 9128 "configure"
+#line 9197 "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
 #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
@@ -9135,7 +9204,7 @@ int main() {
 $athena_3d_function()
 ; return 0; }
 EOF
 $athena_3d_function()
 ; return 0; }
 EOF
-if { (eval echo configure:9139: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9208: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -9153,12 +9222,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for $athena_3d_function in -lXaw""... $ac_c" 1>&6
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for $athena_3d_function in -lXaw""... $ac_c" 1>&6
-echo "configure:9157: checking for $athena_3d_function in -lXaw" >&5
+echo "configure:9226: 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
 ac_lib_var=`echo Xaw'_'$athena_3d_function | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXaw "
 cat > conftest.$ac_ext <<EOF
-#line 9162 "configure"
+#line 9231 "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
 #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
@@ -9169,7 +9238,7 @@ int main() {
 $athena_3d_function()
 ; return 0; }
 EOF
 $athena_3d_function()
 ; return 0; }
 EOF
-if { (eval echo configure:9173: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9242: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -9200,15 +9269,15 @@ fi
     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
     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:9204: checking for X11/Xaw/ThreeD.h" >&5
+echo "configure:9273: checking for X11/Xaw/ThreeD.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 9207 "configure"
+#line 9276 "configure"
 #include "confdefs.h"
 #include <X11/Xaw/ThreeD.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <X11/Xaw/ThreeD.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9212: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9281: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9228,15 +9297,15 @@ else
   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 "$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:9232: checking for X11/Xaw/XawInit.h" >&5
+echo "configure:9301: checking for X11/Xaw/XawInit.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 9235 "configure"
+#line 9304 "configure"
 #include "confdefs.h"
 #include <X11/Xaw/XawInit.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <X11/Xaw/XawInit.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9240: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9309: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9262,15 +9331,15 @@ fi
   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
   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:9266: checking for X11/$athena_variant/XawInit.h" >&5
+echo "configure:9335: checking for X11/$athena_variant/XawInit.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 9269 "configure"
+#line 9338 "configure"
 #include "confdefs.h"
 #include <X11/$athena_variant/XawInit.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #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:9274: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9343: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9287,15 +9356,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   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 "$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:9291: checking for X11/$athena_variant/ThreeD.h" >&5
+echo "configure:9360: checking for X11/$athena_variant/ThreeD.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 9294 "configure"
+#line 9363 "configure"
 #include "confdefs.h"
 #include <X11/$athena_variant/ThreeD.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #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:9299: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9368: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9323,15 +9392,15 @@ fi
         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
         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:9327: checking for $athena_variant/XawInit.h" >&5
+echo "configure:9396: checking for $athena_variant/XawInit.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 9330 "configure"
+#line 9399 "configure"
 #include "confdefs.h"
 #include <$athena_variant/XawInit.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <$athena_variant/XawInit.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9335: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9404: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9348,15 +9417,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   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 "$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:9352: checking for $athena_variant/ThreeD.h" >&5
+echo "configure:9421: checking for $athena_variant/ThreeD.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 9355 "configure"
+#line 9424 "configure"
 #include "confdefs.h"
 #include <$athena_variant/ThreeD.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <$athena_variant/ThreeD.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9360: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9429: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9385,15 +9454,15 @@ fi
         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
         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:9389: checking for X11/Xaw3d/XawInit.h" >&5
+echo "configure:9458: checking for X11/Xaw3d/XawInit.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 9392 "configure"
+#line 9461 "configure"
 #include "confdefs.h"
 #include <X11/Xaw3d/XawInit.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <X11/Xaw3d/XawInit.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9397: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9466: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9410,15 +9479,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   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 "$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:9414: checking for X11/Xaw3d/ThreeD.h" >&5
+echo "configure:9483: checking for X11/Xaw3d/ThreeD.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 9417 "configure"
+#line 9486 "configure"
 #include "confdefs.h"
 #include <X11/Xaw3d/ThreeD.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <X11/Xaw3d/ThreeD.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9422: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9491: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9450,15 +9519,15 @@ fi
         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
         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:9454: checking for Xaw3d/XawInit.h" >&5
+echo "configure:9523: checking for Xaw3d/XawInit.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 9457 "configure"
+#line 9526 "configure"
 #include "confdefs.h"
 #include <Xaw3d/XawInit.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <Xaw3d/XawInit.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9462: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9531: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9475,15 +9544,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   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 "$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:9479: checking for Xaw3d/ThreeD.h" >&5
+echo "configure:9548: checking for Xaw3d/ThreeD.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 9482 "configure"
+#line 9551 "configure"
 #include "confdefs.h"
 #include <Xaw3d/ThreeD.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <Xaw3d/ThreeD.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9487: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9556: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9515,15 +9584,15 @@ fi
             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
             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:9519: checking for X11/Xaw/ThreeD.h" >&5
+echo "configure:9588: checking for X11/Xaw/ThreeD.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 9522 "configure"
+#line 9591 "configure"
 #include "confdefs.h"
 #include <X11/Xaw/ThreeD.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <X11/Xaw/ThreeD.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9527: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9596: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9562,15 +9631,15 @@ fi
 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
 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:9566: checking for Xm/Xm.h" >&5
+echo "configure:9635: checking for Xm/Xm.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 9569 "configure"
+#line 9638 "configure"
 #include "confdefs.h"
 #include <Xm/Xm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <Xm/Xm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9574: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9643: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9587,12 +9656,12 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   
 echo $ac_n "checking for XmStringFree in -lXm""... $ac_c" 1>&6
   echo "$ac_t""yes" 1>&6
   
 echo $ac_n "checking for XmStringFree in -lXm""... $ac_c" 1>&6
-echo "configure:9591: checking for XmStringFree in -lXm" >&5
+echo "configure:9660: checking for XmStringFree in -lXm" >&5
 ac_lib_var=`echo Xm'_'XmStringFree | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXm "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo Xm'_'XmStringFree | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXm "
 cat > conftest.$ac_ext <<EOF
-#line 9596 "configure"
+#line 9665 "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
 #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
@@ -9603,7 +9672,7 @@ int main() {
 XmStringFree()
 ; return 0; }
 EOF
 XmStringFree()
 ; return 0; }
 EOF
-if { (eval echo configure:9607: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9676: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -9632,9 +9701,9 @@ fi
 
   if test "$have_motif" = "yes"; then
         echo $ac_n "checking for Lesstif""... $ac_c" 1>&6
 
   if test "$have_motif" = "yes"; then
         echo $ac_n "checking for Lesstif""... $ac_c" 1>&6
-echo "configure:9636: checking for Lesstif" >&5
+echo "configure:9705: checking for Lesstif" >&5
     cat > conftest.$ac_ext <<EOF
     cat > conftest.$ac_ext <<EOF
-#line 9638 "configure"
+#line 9707 "configure"
 #include "confdefs.h"
 #include <Xm/Xm.h>
 #ifdef LESSTIF_VERSION
 #include "confdefs.h"
 #include <Xm/Xm.h>
 #ifdef LESSTIF_VERSION
@@ -9658,7 +9727,7 @@ rm -f conftest*
 fi 
 
 case "$opsys" in
 fi 
 
 case "$opsys" in
-  *linux* )  lucid_prefers_motif="no"  ;;
+  *linux* | cygwin* )  lucid_prefers_motif="no"  ;;
   * )        lucid_prefers_motif="yes" ;;
 esac
 
   * )        lucid_prefers_motif="yes" ;;
 esac
 
@@ -10080,7 +10149,7 @@ fi
 
 if test "$with_mule" = "yes" ; then
   echo "checking for Mule-related features" 1>&6
 
 if test "$with_mule" = "yes" ; then
   echo "checking for Mule-related features" 1>&6
-echo "configure:10084: checking for Mule-related features" >&5
+echo "configure:10153: checking for Mule-related features" >&5
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining MULE
 EOF
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining MULE
 EOF
@@ -10105,15 +10174,15 @@ EOF
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:10109: checking for $ac_hdr" >&5
+echo "configure:10178: checking for $ac_hdr" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 10112 "configure"
+#line 10181 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10117: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10186: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -10144,12 +10213,12 @@ done
 
   
 echo $ac_n "checking for strerror in -lintl""... $ac_c" 1>&6
 
   
 echo $ac_n "checking for strerror in -lintl""... $ac_c" 1>&6
-echo "configure:10148: checking for strerror in -lintl" >&5
+echo "configure:10217: checking for strerror in -lintl" >&5
 ac_lib_var=`echo intl'_'strerror | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lintl "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo intl'_'strerror | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lintl "
 cat > conftest.$ac_ext <<EOF
-#line 10153 "configure"
+#line 10222 "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
 #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
@@ -10160,7 +10229,7 @@ int main() {
 strerror()
 ; return 0; }
 EOF
 strerror()
 ; return 0; }
 EOF
-if { (eval echo configure:10164: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10233: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
 
 
   echo "checking for Mule input methods" 1>&6
 
 
   echo "checking for Mule input methods" 1>&6
-echo "configure:10197: checking for Mule input methods" >&5
+echo "configure:10266: checking for Mule input methods" >&5
         case "$with_xim" in "" | "yes" )
     echo "checking for XIM" 1>&6
         case "$with_xim" in "" | "yes" )
     echo "checking for XIM" 1>&6
-echo "configure:10200: checking for XIM" >&5
+echo "configure:10269: checking for XIM" >&5
     
 echo $ac_n "checking for XOpenIM in -lX11""... $ac_c" 1>&6
     
 echo $ac_n "checking for XOpenIM in -lX11""... $ac_c" 1>&6
-echo "configure:10203: checking for XOpenIM in -lX11" >&5
+echo "configure:10272: checking for XOpenIM in -lX11" >&5
 ac_lib_var=`echo X11'_'XOpenIM | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lX11 "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo X11'_'XOpenIM | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lX11 "
 cat > conftest.$ac_ext <<EOF
-#line 10208 "configure"
+#line 10277 "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
 #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
@@ -10215,7 +10284,7 @@ int main() {
 XOpenIM()
 ; return 0; }
 EOF
 XOpenIM()
 ; return 0; }
 EOF
-if { (eval echo configure:10219: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10288: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   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
             if test "$need_motif $have_lesstif" = "yes no"; then
       
 echo $ac_n "checking for XmImMbLookupString in -lXm""... $ac_c" 1>&6
-echo "configure:10243: checking for XmImMbLookupString in -lXm" >&5
+echo "configure:10312: checking for XmImMbLookupString in -lXm" >&5
 ac_lib_var=`echo Xm'_'XmImMbLookupString | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXm "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo Xm'_'XmImMbLookupString | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXm "
 cat > conftest.$ac_ext <<EOF
-#line 10248 "configure"
+#line 10317 "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
 #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
@@ -10255,7 +10324,7 @@ int main() {
 XmImMbLookupString()
 ; return 0; }
 EOF
 XmImMbLookupString()
 ; return 0; }
 EOF
-if { (eval echo configure:10259: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10328: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   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
     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:10282: checking for XmImMbLookupString in -lXm" >&5
+echo "configure:10351: checking for XmImMbLookupString in -lXm" >&5
 ac_lib_var=`echo Xm'_'XmImMbLookupString | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXm "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo Xm'_'XmImMbLookupString | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXm "
 cat > conftest.$ac_ext <<EOF
-#line 10287 "configure"
+#line 10356 "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
 #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
@@ -10294,7 +10363,7 @@ int main() {
 XmImMbLookupString()
 ; return 0; }
 EOF
 XmImMbLookupString()
 ; return 0; }
 EOF
-if { (eval echo configure:10298: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10367: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -10359,15 +10428,15 @@ EOF
 
     if test "$with_xfs" = "yes" ; then
     echo "checking for XFontSet" 1>&6
 
     if test "$with_xfs" = "yes" ; then
     echo "checking for XFontSet" 1>&6
-echo "configure:10363: checking for XFontSet" >&5
+echo "configure:10432: checking for XFontSet" >&5
     
 echo $ac_n "checking for XmbDrawString in -lX11""... $ac_c" 1>&6
     
 echo $ac_n "checking for XmbDrawString in -lX11""... $ac_c" 1>&6
-echo "configure:10366: checking for XmbDrawString in -lX11" >&5
+echo "configure:10435: checking for XmbDrawString in -lX11" >&5
 ac_lib_var=`echo X11'_'XmbDrawString | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lX11 "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo X11'_'XmbDrawString | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lX11 "
 cat > conftest.$ac_ext <<EOF
-#line 10371 "configure"
+#line 10440 "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
 #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
@@ -10378,7 +10447,7 @@ int main() {
 XmbDrawString()
 ; return 0; }
 EOF
 XmbDrawString()
 ; return 0; }
 EOF
-if { (eval echo configure:10382: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10451: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -10418,15 +10487,15 @@ EOF
     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
     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:10422: checking for wnn/jllib.h" >&5
+echo "configure:10491: checking for wnn/jllib.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 10425 "configure"
+#line 10494 "configure"
 #include "confdefs.h"
 #include <wnn/jllib.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <wnn/jllib.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10430: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10499: \"$ac_try\") 1>&5; (eval $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_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
  }
     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:10453: checking for wnn/commonhd.h" >&5
+echo "configure:10522: checking for wnn/commonhd.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 10456 "configure"
+#line 10525 "configure"
 #include "confdefs.h"
 #include <wnn/commonhd.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <wnn/commonhd.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10461: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10530: \"$ac_try\") 1>&5; (eval $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_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
     for ac_func in crypt
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:10486: checking for $ac_func" >&5
+echo "configure:10555: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 10489 "configure"
+#line 10558 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -10508,7 +10577,7 @@ $ac_func();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:10512: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10581: \"$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
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -10537,12 +10606,12 @@ done
 
     test "$ac_cv_func_crypt" != "yes" && { 
 echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6
 
     test "$ac_cv_func_crypt" != "yes" && { 
 echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6
-echo "configure:10541: checking for crypt in -lcrypt" >&5
+echo "configure:10610: checking for crypt in -lcrypt" >&5
 ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lcrypt "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lcrypt "
 cat > conftest.$ac_ext <<EOF
-#line 10546 "configure"
+#line 10615 "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
 #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
@@ -10553,7 +10622,7 @@ int main() {
 crypt()
 ; return 0; }
 EOF
 crypt()
 ; return 0; }
 EOF
-if { (eval echo configure:10557: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10626: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   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
     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:10592: checking for jl_dic_list_e in -lwnn" >&5
+echo "configure:10661: 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
 ac_lib_var=`echo wnn'_'jl_dic_list_e | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lwnn "
 cat > conftest.$ac_ext <<EOF
-#line 10597 "configure"
+#line 10666 "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
 #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
@@ -10604,7 +10673,7 @@ int main() {
 jl_dic_list_e()
 ; return 0; }
 EOF
 jl_dic_list_e()
 ; return 0; }
 EOF
-if { (eval echo configure:10608: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10677: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -10622,12 +10691,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for jl_dic_list_e in -lwnn4""... $ac_c" 1>&6
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for jl_dic_list_e in -lwnn4""... $ac_c" 1>&6
-echo "configure:10626: checking for jl_dic_list_e in -lwnn4" >&5
+echo "configure:10695: 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
 ac_lib_var=`echo wnn4'_'jl_dic_list_e | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lwnn4 "
 cat > conftest.$ac_ext <<EOF
-#line 10631 "configure"
+#line 10700 "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
 #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
@@ -10638,7 +10707,7 @@ int main() {
 jl_dic_list_e()
 ; return 0; }
 EOF
 jl_dic_list_e()
 ; return 0; }
 EOF
-if { (eval echo configure:10642: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10711: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -10656,12 +10725,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for jl_dic_list_e in -lwnn6""... $ac_c" 1>&6
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for jl_dic_list_e in -lwnn6""... $ac_c" 1>&6
-echo "configure:10660: checking for jl_dic_list_e in -lwnn6" >&5
+echo "configure:10729: 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
 ac_lib_var=`echo wnn6'_'jl_dic_list_e | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lwnn6 "
 cat > conftest.$ac_ext <<EOF
-#line 10665 "configure"
+#line 10734 "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
 #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
@@ -10672,7 +10741,7 @@ int main() {
 jl_dic_list_e()
 ; return 0; }
 EOF
 jl_dic_list_e()
 ; return 0; }
 EOF
-if { (eval echo configure:10676: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10745: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -10690,12 +10759,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for dic_list_e in -lwnn6_fromsrc""... $ac_c" 1>&6
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for dic_list_e in -lwnn6_fromsrc""... $ac_c" 1>&6
-echo "configure:10694: checking for dic_list_e in -lwnn6_fromsrc" >&5
+echo "configure:10763: 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
 ac_lib_var=`echo wnn6_fromsrc'_'dic_list_e | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lwnn6_fromsrc "
 cat > conftest.$ac_ext <<EOF
-#line 10699 "configure"
+#line 10768 "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
 #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
@@ -10706,7 +10775,7 @@ int main() {
 dic_list_e()
 ; return 0; }
 EOF
 dic_list_e()
 ; return 0; }
 EOF
-if { (eval echo configure:10710: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10779: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -10754,12 +10823,12 @@ EOF
     if test "$with_wnn6" != "no"; then
       
 echo $ac_n "checking for jl_fi_dic_list in -l$libwnn""... $ac_c" 1>&6
     if test "$with_wnn6" != "no"; then
       
 echo $ac_n "checking for jl_fi_dic_list in -l$libwnn""... $ac_c" 1>&6
-echo "configure:10758: checking for jl_fi_dic_list in -l$libwnn" >&5
+echo "configure:10827: 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
 ac_lib_var=`echo $libwnn'_'jl_fi_dic_list | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -l$libwnn "
 cat > conftest.$ac_ext <<EOF
-#line 10763 "configure"
+#line 10832 "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
 #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
@@ -10770,7 +10839,7 @@ int main() {
 jl_fi_dic_list()
 ; return 0; }
 EOF
 jl_fi_dic_list()
 ; return 0; }
 EOF
-if { (eval echo configure:10774: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10843: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -10805,15 +10874,15 @@ EOF
   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
   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:10809: checking for canna/jrkanji.h" >&5
+echo "configure:10878: checking for canna/jrkanji.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 10812 "configure"
+#line 10881 "configure"
 #include "confdefs.h"
 #include <canna/jrkanji.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <canna/jrkanji.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10817: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10886: \"$ac_try\") 1>&5; (eval $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_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
     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:10844: checking for canna/jrkanji.h" >&5
+echo "configure:10913: checking for canna/jrkanji.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 10847 "configure"
+#line 10916 "configure"
 #include "confdefs.h"
 #include <canna/jrkanji.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <canna/jrkanji.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10852: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10921: \"$ac_try\") 1>&5; (eval $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_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
 
   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:10880: checking for canna/RK.h" >&5
+echo "configure:10949: checking for canna/RK.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 10883 "configure"
+#line 10952 "configure"
 #include "confdefs.h"
 #include <canna/RK.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <canna/RK.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10888: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10957: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
 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
  }
   test -z "$with_canna" && { 
 echo $ac_n "checking for RkBgnBun in -lRKC""... $ac_c" 1>&6
-echo "configure:10911: checking for RkBgnBun in -lRKC" >&5
+echo "configure:10980: checking for RkBgnBun in -lRKC" >&5
 ac_lib_var=`echo RKC'_'RkBgnBun | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lRKC "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo RKC'_'RkBgnBun | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lRKC "
 cat > conftest.$ac_ext <<EOF
-#line 10916 "configure"
+#line 10985 "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
 #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
@@ -10923,7 +10992,7 @@ int main() {
 RkBgnBun()
 ; return 0; }
 EOF
 RkBgnBun()
 ; return 0; }
 EOF
-if { (eval echo configure:10927: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10996: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   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
  }
   test -z "$with_canna" && { 
 echo $ac_n "checking for jrKanjiControl in -lcanna""... $ac_c" 1>&6
-echo "configure:10950: checking for jrKanjiControl in -lcanna" >&5
+echo "configure:11019: checking for jrKanjiControl in -lcanna" >&5
 ac_lib_var=`echo canna'_'jrKanjiControl | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lcanna "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo canna'_'jrKanjiControl | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lcanna "
 cat > conftest.$ac_ext <<EOF
-#line 10955 "configure"
+#line 11024 "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
 #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
@@ -10962,7 +11031,7 @@ int main() {
 jrKanjiControl()
 ; return 0; }
 EOF
 jrKanjiControl()
 ; return 0; }
 EOF
-if { (eval echo configure:10966: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11035: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -11011,12 +11080,12 @@ if test "$need_motif" = "yes" ; then
   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
   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:11015: checking for layout_object_getvalue in -li18n" >&5
+echo "configure:11084: 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
 ac_lib_var=`echo i18n'_'layout_object_getvalue | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -li18n "
 cat > conftest.$ac_ext <<EOF
-#line 11020 "configure"
+#line 11089 "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
 #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
@@ -11027,7 +11096,7 @@ int main() {
 layout_object_getvalue()
 ; return 0; }
 EOF
 layout_object_getvalue()
 ; return 0; }
 EOF
-if { (eval echo configure:11031: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11100: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   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
 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:11118: checking for $ac_func" >&5
+echo "configure:11187: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 11121 "configure"
+#line 11190 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -11140,7 +11209,7 @@ $ac_func();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:11144: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11213: \"$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
   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
 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:11185: checking for $ac_func" >&5
+echo "configure:11254: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 11188 "configure"
+#line 11257 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -11207,7 +11276,7 @@ $ac_func();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:11211: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11280: \"$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
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -11236,10 +11305,10 @@ done
 
 
 echo $ac_n "checking for openpty""... $ac_c" 1>&6
 
 
 echo $ac_n "checking for openpty""... $ac_c" 1>&6
-echo "configure:11240: checking for openpty" >&5
+echo "configure:11309: checking for openpty" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 11243 "configure"
+#line 11312 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char openpty(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char openpty(); below.  */
@@ -11262,7 +11331,7 @@ openpty();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:11266: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11335: \"$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
   rm -rf conftest*
   eval "ac_cv_func_openpty=yes"
 else
@@ -11281,12 +11350,12 @@ else
 
   
 echo $ac_n "checking for openpty in -lutil""... $ac_c" 1>&6
 
   
 echo $ac_n "checking for openpty in -lutil""... $ac_c" 1>&6
-echo "configure:11285: checking for openpty in -lutil" >&5
+echo "configure:11354: checking for openpty in -lutil" >&5
 ac_lib_var=`echo util'_'openpty | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lutil "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo util'_'openpty | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lutil "
 cat > conftest.$ac_ext <<EOF
-#line 11290 "configure"
+#line 11359 "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
 #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
@@ -11297,7 +11366,7 @@ int main() {
 openpty()
 ; return 0; }
 EOF
 openpty()
 ; return 0; }
 EOF
-if { (eval echo configure:11301: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11370: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -11332,15 +11401,15 @@ EOF
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:11336: checking for $ac_hdr" >&5
+echo "configure:11405: checking for $ac_hdr" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 11339 "configure"
+#line 11408 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11344: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11413: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -11376,15 +11445,15 @@ for ac_hdr in stropts.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:11380: checking for $ac_hdr" >&5
+echo "configure:11449: checking for $ac_hdr" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 11383 "configure"
+#line 11452 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11388: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11457: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -11417,10 +11486,10 @@ if test "$ac_cv_header_stropts_h" = "yes"; then
   for ac_func in isastream
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
   for ac_func in isastream
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11421: checking for $ac_func" >&5
+echo "configure:11490: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 11424 "configure"
+#line 11493 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -11443,7 +11512,7 @@ $ac_func();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:11447: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11516: \"$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
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -11474,15 +11543,15 @@ done
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:11478: checking for $ac_hdr" >&5
+echo "configure:11547: checking for $ac_hdr" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 11481 "configure"
+#line 11550 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11486: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11555: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -11519,10 +11588,10 @@ extra_objs="$extra_objs realpath.o" &&  if test "$extra_verbose" = "yes"; then
 for ac_func in getloadavg
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
 for ac_func in getloadavg
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11523: checking for $ac_func" >&5
+echo "configure:11592: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 11526 "configure"
+#line 11595 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -11545,7 +11614,7 @@ $ac_func();
 
 ; return 0; }
 EOF
 
 ; 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:11618: \"$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
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -11578,15 +11647,15 @@ if test "$ac_cv_func_getloadavg" = "yes"; then
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:11582: checking for $ac_hdr" >&5
+echo "configure:11651: checking for $ac_hdr" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 11585 "configure"
+#line 11654 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11590: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11659: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -11622,12 +11691,12 @@ else
 
     
 echo $ac_n "checking for kstat_open in -lkstat""... $ac_c" 1>&6
 
     
 echo $ac_n "checking for kstat_open in -lkstat""... $ac_c" 1>&6
-echo "configure:11626: checking for kstat_open in -lkstat" >&5
+echo "configure:11695: 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
 ac_lib_var=`echo kstat'_'kstat_open | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lkstat "
 cat > conftest.$ac_ext <<EOF
-#line 11631 "configure"
+#line 11700 "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
 #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
@@ -11638,7 +11707,7 @@ int main() {
 kstat_open()
 ; return 0; }
 EOF
 kstat_open()
 ; return 0; }
 EOF
-if { (eval echo configure:11642: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11711: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   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
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:11677: checking for $ac_hdr" >&5
+echo "configure:11746: checking for $ac_hdr" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 11680 "configure"
+#line 11749 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11685: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11754: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -11713,12 +11782,12 @@ done
 
     
 echo $ac_n "checking for kvm_read in -lkvm""... $ac_c" 1>&6
 
     
 echo $ac_n "checking for kvm_read in -lkvm""... $ac_c" 1>&6
-echo "configure:11717: checking for kvm_read in -lkvm" >&5
+echo "configure:11786: 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
 ac_lib_var=`echo kvm'_'kvm_read | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lkvm "
 cat > conftest.$ac_ext <<EOF
-#line 11722 "configure"
+#line 11791 "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
 #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
@@ -11729,7 +11798,7 @@ int main() {
 kvm_read()
 ; return 0; }
 EOF
 kvm_read()
 ; return 0; }
 EOF
-if { (eval echo configure:11733: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11802: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   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
 fi
 
 echo $ac_n "checking whether netdb declares h_errno""... $ac_c" 1>&6
-echo "configure:11767: checking whether netdb declares h_errno" >&5
+echo "configure:11836: checking whether netdb declares h_errno" >&5
 cat > conftest.$ac_ext <<EOF
 cat > conftest.$ac_ext <<EOF
-#line 11769 "configure"
+#line 11838 "configure"
 #include "confdefs.h"
 #include <netdb.h>
 int main() {
 return h_errno;
 ; return 0; }
 EOF
 #include "confdefs.h"
 #include <netdb.h>
 int main() {
 return h_errno;
 ; return 0; }
 EOF
-if { (eval echo configure:11776: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11845: \"$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 -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
 rm -f conftest*
 
 echo $ac_n "checking for sigsetjmp""... $ac_c" 1>&6
-echo "configure:11796: checking for sigsetjmp" >&5
+echo "configure:11865: checking for sigsetjmp" >&5
 cat > conftest.$ac_ext <<EOF
 cat > conftest.$ac_ext <<EOF
-#line 11798 "configure"
+#line 11867 "configure"
 #include "confdefs.h"
 #include <setjmp.h>
 int main() {
 sigjmp_buf bar; sigsetjmp (bar, 0);
 ; return 0; }
 EOF
 #include "confdefs.h"
 #include <setjmp.h>
 int main() {
 sigjmp_buf bar; sigsetjmp (bar, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:11805: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11874: \"$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 -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
 rm -f conftest*
 
 echo $ac_n "checking whether localtime caches TZ""... $ac_c" 1>&6
-echo "configure:11825: checking whether localtime caches TZ" >&5
+echo "configure:11894: checking whether localtime caches TZ" >&5
 
 if test "$ac_cv_func_tzset" = "yes"; then
 cat > conftest.$ac_ext <<EOF
 
 if test "$ac_cv_func_tzset" = "yes"; then
 cat > conftest.$ac_ext <<EOF
-#line 11829 "configure"
+#line 11898 "configure"
 #include "confdefs.h"
 #include <time.h>
 #if STDC_HEADERS
 #include "confdefs.h"
 #include <time.h>
 #if STDC_HEADERS
@@ -11860,7 +11929,7 @@ main()
   exit (0);
 }
 EOF
   exit (0);
 }
 EOF
-if { (eval echo configure:11864: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:11933: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   emacs_cv_localtime_cache=no
 else
 then
   emacs_cv_localtime_cache=no
 else
@@ -11890,9 +11959,9 @@ fi
 
 if test "$HAVE_TIMEVAL" = "yes"; then
 echo $ac_n "checking whether gettimeofday accepts one or two arguments""... $ac_c" 1>&6
 
 if test "$HAVE_TIMEVAL" = "yes"; then
 echo $ac_n "checking whether gettimeofday accepts one or two arguments""... $ac_c" 1>&6
-echo "configure:11894: checking whether gettimeofday accepts one or two arguments" >&5
+echo "configure:11963: checking whether gettimeofday accepts one or two arguments" >&5
 cat > conftest.$ac_ext <<EOF
 cat > conftest.$ac_ext <<EOF
-#line 11896 "configure"
+#line 11965 "configure"
 #include "confdefs.h"
 
 #ifdef TIME_WITH_SYS_TIME
 #include "confdefs.h"
 
 #ifdef TIME_WITH_SYS_TIME
@@ -11913,7 +11982,7 @@ int main() {
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:11917: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11986: \"$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
   rm -rf conftest*
   echo "$ac_t""two" 1>&6
 else
 
 
 echo $ac_n "checking for inline""... $ac_c" 1>&6
 
 
 echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:11939: checking for inline" >&5
+echo "configure:12008: checking for inline" >&5
 
 ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat > conftest.$ac_ext <<EOF
 
 ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat > conftest.$ac_ext <<EOF
-#line 11944 "configure"
+#line 12013 "configure"
 #include "confdefs.h"
 
 int main() {
 } $ac_kw foo() {
 ; return 0; }
 EOF
 #include "confdefs.h"
 
 int main() {
 } $ac_kw foo() {
 ; return 0; }
 EOF
-if { (eval echo configure:11951: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12020: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_inline=$ac_kw; break
 else
   rm -rf conftest*
   ac_cv_c_inline=$ac_kw; break
 else
@@ -11988,17 +12057,17 @@ if test "$__DECC" != "yes"; then
   # 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
   # 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:11992: checking for working alloca.h" >&5
+echo "configure:12061: checking for working alloca.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 11995 "configure"
+#line 12064 "configure"
 #include "confdefs.h"
 #include <alloca.h>
 int main() {
 char *p = alloca(2 * sizeof(int));
 ; return 0; }
 EOF
 #include "confdefs.h"
 #include <alloca.h>
 int main() {
 char *p = alloca(2 * sizeof(int));
 ; return 0; }
 EOF
-if { (eval echo configure:12002: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12071: \"$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
   rm -rf conftest*
   ac_cv_header_alloca_h=yes
 else
@@ -12022,10 +12091,10 @@ EOF
 fi
 
 echo $ac_n "checking for alloca""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:12026: checking for alloca" >&5
+echo "configure:12095: checking for alloca" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 12029 "configure"
+#line 12098 "configure"
 #include "confdefs.h"
 
 #ifdef __GNUC__
 #include "confdefs.h"
 
 #ifdef __GNUC__
@@ -12053,7 +12122,7 @@ int main() {
 char *p = (char *) alloca(1);
 ; return 0; }
 EOF
 char *p = (char *) alloca(1);
 ; return 0; }
 EOF
-if { (eval echo configure:12057: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12126: \"$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
   rm -rf conftest*
   ac_cv_func_alloca_works=yes
 else
@@ -12092,10 +12161,10 @@ EOF
 
 
 echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
 
 
 echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:12096: checking whether alloca needs Cray hooks" >&5
+echo "configure:12165: checking whether alloca needs Cray hooks" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 12099 "configure"
+#line 12168 "configure"
 #include "confdefs.h"
 #if defined(CRAY) && ! defined(CRAY2)
 webecray
 #include "confdefs.h"
 #if defined(CRAY) && ! defined(CRAY2)
 webecray
@@ -12119,10 +12188,10 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6
 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
 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:12123: checking for $ac_func" >&5
+echo "configure:12192: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 12126 "configure"
+#line 12195 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -12145,7 +12214,7 @@ $ac_func();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:12149: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12218: \"$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
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -12175,10 +12244,10 @@ done
 fi
 
 echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:12179: checking stack direction for C alloca" >&5
+echo "configure:12248: checking stack direction for C alloca" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 12182 "configure"
+#line 12251 "configure"
 #include "confdefs.h"
 find_stack_direction ()
 {
 #include "confdefs.h"
 find_stack_direction ()
 {
@@ -12197,7 +12266,7 @@ main ()
   exit (find_stack_direction() < 0);
 }
 EOF
   exit (find_stack_direction() < 0);
 }
 EOF
-if { (eval echo configure:12201: \"$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
   ac_cv_c_stack_direction=1
 else
 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
 
 ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for vfork.h""... $ac_c" 1>&6
-echo "configure:12231: checking for vfork.h" >&5
+echo "configure:12300: checking for vfork.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 12234 "configure"
+#line 12303 "configure"
 #include "confdefs.h"
 #include <vfork.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <vfork.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12239: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12308: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -12263,10 +12332,10 @@ else
 fi
 
 echo $ac_n "checking for working vfork""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking for working vfork""... $ac_c" 1>&6
-echo "configure:12267: checking for working vfork" >&5
+echo "configure:12336: checking for working vfork" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 12270 "configure"
+#line 12339 "configure"
 #include "confdefs.h"
 /* Thanks to Paul Eggert for this test.  */
 #include <stdio.h>
 #include "confdefs.h"
 /* Thanks to Paul Eggert for this test.  */
 #include <stdio.h>
@@ -12361,7 +12430,7 @@ main() {
   }
 }
 EOF
   }
 }
 EOF
-if { (eval echo configure:12365: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:12434: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_func_vfork_works=yes
 else
 then
   ac_cv_func_vfork_works=yes
 else
 
 
 echo $ac_n "checking for working strcoll""... $ac_c" 1>&6
 
 
 echo $ac_n "checking for working strcoll""... $ac_c" 1>&6
-echo "configure:12391: checking for working strcoll" >&5
+echo "configure:12460: checking for working strcoll" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 12394 "configure"
+#line 12463 "configure"
 #include "confdefs.h"
 #include <string.h>
 main ()
 #include "confdefs.h"
 #include <string.h>
 main ()
@@ -12400,7 +12469,7 @@ main ()
        strcoll ("123", "456") >= 0);
 }
 EOF
        strcoll ("123", "456") >= 0);
 }
 EOF
-if { (eval echo configure:12404: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:12473: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_func_strcoll_works=yes
 else
 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
 for ac_func in getpgrp
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12432: checking for $ac_func" >&5
+echo "configure:12501: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 12435 "configure"
+#line 12504 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -12454,7 +12523,7 @@ $ac_func();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:12458: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12527: \"$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
   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
 done
 
 echo $ac_n "checking whether getpgrp takes no argument""... $ac_c" 1>&6
-echo "configure:12486: checking whether getpgrp takes no argument" >&5
+echo "configure:12555: checking whether getpgrp takes no argument" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 12489 "configure"
+#line 12558 "configure"
 #include "confdefs.h"
 
 /*
 #include "confdefs.h"
 
 /*
@@ -12540,7 +12609,7 @@ main()
 }
 
 EOF
 }
 
 EOF
-if { (eval echo configure:12544: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:12613: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_func_getpgrp_void=yes
 else
 then
   ac_cv_func_getpgrp_void=yes
 else
 
 
 echo $ac_n "checking for working mmap""... $ac_c" 1>&6
 
 
 echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:12571: checking for working mmap" >&5
+echo "configure:12640: checking for working mmap" >&5
 case "$opsys" in ultrix* ) have_mmap=no ;; *)
 cat > conftest.$ac_ext <<EOF
 case "$opsys" in ultrix* ) have_mmap=no ;; *)
 cat > conftest.$ac_ext <<EOF
-#line 12574 "configure"
+#line 12643 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #include <unistd.h>
 #include "confdefs.h"
 #include <stdio.h>
 #include <unistd.h>
@@ -12603,7 +12672,7 @@ int main (int argc, char *argv[])
   return 1;
 }
 EOF
   return 1;
 }
 EOF
-if { (eval echo configure:12607: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:12676: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   have_mmap=yes
 else
 then
   have_mmap=yes
 else
@@ -12632,9 +12701,9 @@ test "$GNU_MALLOC" != "yes" -a "$have_mmap" != "yes" && rel_alloc=no
 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
 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:12636: checking for M_MMAP_THRESHOLD" >&5
+echo "configure:12705: checking for M_MMAP_THRESHOLD" >&5
     cat > conftest.$ac_ext <<EOF
     cat > conftest.$ac_ext <<EOF
-#line 12638 "configure"
+#line 12707 "configure"
 #include "confdefs.h"
 #include <malloc.h>
 int main() {
 #include "confdefs.h"
 #include <malloc.h>
 int main() {
@@ -12646,7 +12715,7 @@ int main() {
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:12650: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12719: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   rel_alloc=no; echo "$ac_t""yes" 1>&6;
 else
   rm -rf conftest*
   rel_alloc=no; echo "$ac_t""yes" 1>&6;
 else
@@ -12671,15 +12740,15 @@ EOF
 
 ac_safe=`echo "termios.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for termios.h""... $ac_c" 1>&6
 
 ac_safe=`echo "termios.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for termios.h""... $ac_c" 1>&6
-echo "configure:12675: checking for termios.h" >&5
+echo "configure:12744: checking for termios.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 12678 "configure"
+#line 12747 "configure"
 #include "confdefs.h"
 #include <termios.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <termios.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12683: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12752: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -12722,15 +12791,15 @@ else
   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 "$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:12726: checking for termio.h" >&5
+echo "configure:12795: checking for termio.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 12729 "configure"
+#line 12798 "configure"
 #include "confdefs.h"
 #include <termio.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <termio.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12734: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12803: \"$ac_try\") 1>&5; (eval $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_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 $ac_n "checking for socket""... $ac_c" 1>&6
-echo "configure:12766: checking for socket" >&5
+echo "configure:12835: checking for socket" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 12769 "configure"
+#line 12838 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char socket(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char socket(); below.  */
@@ -12788,7 +12857,7 @@ socket();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:12792: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12861: \"$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
   rm -rf conftest*
   eval "ac_cv_func_socket=yes"
 else
@@ -12803,15 +12872,15 @@ if eval "test \"`echo '$ac_cv_func_'socket`\" = yes"; then
   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 "$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:12807: checking for netinet/in.h" >&5
+echo "configure:12876: checking for netinet/in.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 12810 "configure"
+#line 12879 "configure"
 #include "confdefs.h"
 #include <netinet/in.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <netinet/in.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12815: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12884: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -12828,15 +12897,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   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 "$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:12832: checking for arpa/inet.h" >&5
+echo "configure:12901: checking for arpa/inet.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 12835 "configure"
+#line 12904 "configure"
 #include "confdefs.h"
 #include <arpa/inet.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <arpa/inet.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12840: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12909: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -12861,9 +12930,9 @@ EOF
 }
 
       echo $ac_n "checking "for sun_len member in struct sockaddr_un"""... $ac_c" 1>&6
 }
 
       echo $ac_n "checking "for sun_len member in struct sockaddr_un"""... $ac_c" 1>&6
-echo "configure:12865: checking "for sun_len member in struct sockaddr_un"" >&5
+echo "configure:12934: checking "for sun_len member in struct sockaddr_un"" >&5
       cat > conftest.$ac_ext <<EOF
       cat > conftest.$ac_ext <<EOF
-#line 12867 "configure"
+#line 12936 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -12874,7 +12943,7 @@ int main() {
 static struct sockaddr_un x; x.sun_len = 1;
 ; return 0; }
 EOF
 static struct sockaddr_un x; x.sun_len = 1;
 ; return 0; }
 EOF
-if { (eval echo configure:12878: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12947: \"$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
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6; { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_SOCKADDR_SUN_LEN
@@ -12892,9 +12961,9 @@ else
 fi
 rm -f conftest*
       echo $ac_n "checking "for ip_mreq struct in netinet/in.h"""... $ac_c" 1>&6
 fi
 rm -f conftest*
       echo $ac_n "checking "for ip_mreq struct in netinet/in.h"""... $ac_c" 1>&6
-echo "configure:12896: checking "for ip_mreq struct in netinet/in.h"" >&5
+echo "configure:12965: checking "for ip_mreq struct in netinet/in.h"" >&5
       cat > conftest.$ac_ext <<EOF
       cat > conftest.$ac_ext <<EOF
-#line 12898 "configure"
+#line 12967 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -12904,7 +12973,7 @@ int main() {
 static struct ip_mreq x;
 ; return 0; }
 EOF
 static struct ip_mreq x;
 ; return 0; }
 EOF
-if { (eval echo configure:12908: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12977: \"$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
   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 $ac_n "checking for msgget""... $ac_c" 1>&6
-echo "configure:12939: checking for msgget" >&5
+echo "configure:13008: checking for msgget" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 12942 "configure"
+#line 13011 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char msgget(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char msgget(); below.  */
@@ -12961,7 +13030,7 @@ msgget();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:12965: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13034: \"$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
   rm -rf conftest*
   eval "ac_cv_func_msgget=yes"
 else
@@ -12976,15 +13045,15 @@ if eval "test \"`echo '$ac_cv_func_'msgget`\" = yes"; then
   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 "$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:12980: checking for sys/ipc.h" >&5
+echo "configure:13049: checking for sys/ipc.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 12983 "configure"
+#line 13052 "configure"
 #include "confdefs.h"
 #include <sys/ipc.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <sys/ipc.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12988: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13057: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -13001,15 +13070,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   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 "$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:13005: checking for sys/msg.h" >&5
+echo "configure:13074: checking for sys/msg.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 13008 "configure"
+#line 13077 "configure"
 #include "confdefs.h"
 #include <sys/msg.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <sys/msg.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13013: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13082: \"$ac_try\") 1>&5; (eval $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_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
 
 ac_safe=`echo "dirent.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for dirent.h""... $ac_c" 1>&6
-echo "configure:13051: checking for dirent.h" >&5
+echo "configure:13120: checking for dirent.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 13054 "configure"
+#line 13123 "configure"
 #include "confdefs.h"
 #include <dirent.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <dirent.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13059: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13128: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -13082,15 +13151,15 @@ else
   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 "$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:13086: checking for sys/dir.h" >&5
+echo "configure:13155: checking for sys/dir.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 13089 "configure"
+#line 13158 "configure"
 #include "confdefs.h"
 #include <sys/dir.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <sys/dir.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13094: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13163: \"$ac_try\") 1>&5; (eval $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_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
 
 ac_safe=`echo "nlist.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for nlist.h""... $ac_c" 1>&6
-echo "configure:13127: checking for nlist.h" >&5
+echo "configure:13196: checking for nlist.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 13130 "configure"
+#line 13199 "configure"
 #include "confdefs.h"
 #include <nlist.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <nlist.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13135: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13204: \"$ac_try\") 1>&5; (eval $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_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 "checking "for sound support"" 1>&6
-echo "configure:13165: checking "for sound support"" >&5
+echo "configure:13234: 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
 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:13172: checking for multimedia/audio_device.h" >&5
+echo "configure:13241: checking for multimedia/audio_device.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 13175 "configure"
+#line 13244 "configure"
 #include "confdefs.h"
 #include <multimedia/audio_device.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <multimedia/audio_device.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13180: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13249: \"$ac_try\") 1>&5; (eval $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_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
       if test -z "$native_sound_lib"; then
         
 echo $ac_n "checking for ALopenport in -laudio""... $ac_c" 1>&6
-echo "configure:13236: checking for ALopenport in -laudio" >&5
+echo "configure:13305: checking for ALopenport in -laudio" >&5
 ac_lib_var=`echo audio'_'ALopenport | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -laudio "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo audio'_'ALopenport | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -laudio "
 cat > conftest.$ac_ext <<EOF
-#line 13241 "configure"
+#line 13310 "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
 #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
@@ -13248,7 +13317,7 @@ int main() {
 ALopenport()
 ; return 0; }
 EOF
 ALopenport()
 ; return 0; }
 EOF
-if { (eval echo configure:13252: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13321: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   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
       if test -z "$native_sound_lib"; then
        
 echo $ac_n "checking for AOpenAudio in -lAlib""... $ac_c" 1>&6
-echo "configure:13283: checking for AOpenAudio in -lAlib" >&5
+echo "configure:13352: checking for AOpenAudio in -lAlib" >&5
 ac_lib_var=`echo Alib'_'AOpenAudio | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lAlib "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo Alib'_'AOpenAudio | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lAlib "
 cat > conftest.$ac_ext <<EOF
-#line 13288 "configure"
+#line 13357 "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
 #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
@@ -13295,7 +13364,7 @@ int main() {
 AOpenAudio()
 ; return 0; }
 EOF
 AOpenAudio()
 ; return 0; }
 EOF
-if { (eval echo configure:13299: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13368: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   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
     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:13344: checking for ${dir}/soundcard.h" >&5
+echo "configure:13413: checking for ${dir}/soundcard.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 13347 "configure"
+#line 13416 "configure"
 #include "confdefs.h"
 #include <${dir}/soundcard.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <${dir}/soundcard.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13352: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13421: \"$ac_try\") 1>&5; (eval $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_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
 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:13406: checking for audio/audiolib.h" >&5
+echo "configure:13475: checking for audio/audiolib.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 13409 "configure"
+#line 13478 "configure"
 #include "confdefs.h"
 #include <audio/audiolib.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <audio/audiolib.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13414: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13483: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -13428,12 +13497,12 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   
     
 echo $ac_n "checking for AuOpenServer in -laudio""... $ac_c" 1>&6
   
     
 echo $ac_n "checking for AuOpenServer in -laudio""... $ac_c" 1>&6
-echo "configure:13432: checking for AuOpenServer in -laudio" >&5
+echo "configure:13501: checking for AuOpenServer in -laudio" >&5
 ac_lib_var=`echo audio'_'AuOpenServer | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -laudio "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo audio'_'AuOpenServer | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -laudio "
 cat > conftest.$ac_ext <<EOF
-#line 13437 "configure"
+#line 13506 "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
 #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
@@ -13444,7 +13513,7 @@ int main() {
 AuOpenServer()
 ; return 0; }
 EOF
 AuOpenServer()
 ; return 0; }
 EOF
-if { (eval echo configure:13448: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13517: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -13483,7 +13552,7 @@ EOF
  fi
     libs_x="-laudio $libs_x" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-laudio\" to \$libs_x"; fi
             cat > conftest.$ac_ext <<EOF
  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 13487 "configure"
+#line 13556 "configure"
 #include "confdefs.h"
 #include <audio/Xtutil.h>
 EOF
 #include "confdefs.h"
 #include <audio/Xtutil.h>
 EOF
@@ -13514,7 +13583,7 @@ if test "$with_esd_sound" != "no"; then
   # 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
   # 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:13518: checking for $ac_word" >&5
+echo "configure:13587: 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.
 
 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
     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:13547: checking for esd_play_stream" >&5
+echo "configure:13616: checking for esd_play_stream" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 13550 "configure"
+#line 13619 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char esd_play_stream(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char esd_play_stream(); below.  */
@@ -13569,7 +13638,7 @@ esd_play_stream();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:13573: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13642: \"$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
   rm -rf conftest*
   eval "ac_cv_func_esd_play_stream=yes"
 else
@@ -13620,7 +13689,7 @@ test -z "$with_tty" && with_tty=yes
 
 if test "$with_tty" = "yes"  ; then
   echo "checking for TTY-related features" 1>&6
 
 if test "$with_tty" = "yes"  ; then
   echo "checking for TTY-related features" 1>&6
-echo "configure:13624: checking for TTY-related features" >&5
+echo "configure:13693: checking for TTY-related features" >&5
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_TTY
 EOF
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_TTY
 EOF
@@ -13636,12 +13705,12 @@ EOF
     if test -z "$with_ncurses"; then
     
 echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6
     if test -z "$with_ncurses"; then
     
 echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6
-echo "configure:13640: checking for tgetent in -lncurses" >&5
+echo "configure:13709: checking for tgetent in -lncurses" >&5
 ac_lib_var=`echo ncurses'_'tgetent | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lncurses "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo ncurses'_'tgetent | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lncurses "
 cat > conftest.$ac_ext <<EOF
-#line 13645 "configure"
+#line 13714 "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
 #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
@@ -13652,7 +13721,7 @@ int main() {
 tgetent()
 ; return 0; }
 EOF
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:13656: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13725: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -13685,15 +13754,15 @@ EOF
 
     ac_safe=`echo "ncurses/curses.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ncurses/curses.h""... $ac_c" 1>&6
 
     ac_safe=`echo "ncurses/curses.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ncurses/curses.h""... $ac_c" 1>&6
-echo "configure:13689: checking for ncurses/curses.h" >&5
+echo "configure:13758: checking for ncurses/curses.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 13692 "configure"
+#line 13761 "configure"
 #include "confdefs.h"
 #include <ncurses/curses.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <ncurses/curses.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13697: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13766: \"$ac_try\") 1>&5; (eval $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_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
 
     ac_safe=`echo "ncurses/term.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ncurses/term.h""... $ac_c" 1>&6
-echo "configure:13719: checking for ncurses/term.h" >&5
+echo "configure:13788: checking for ncurses/term.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 13722 "configure"
+#line 13791 "configure"
 #include "confdefs.h"
 #include <ncurses/term.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <ncurses/term.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13727: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13796: \"$ac_try\") 1>&5; (eval $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_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
       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:13757: checking for ncurses/curses.h" >&5
+echo "configure:13826: checking for ncurses/curses.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 13760 "configure"
+#line 13829 "configure"
 #include "confdefs.h"
 #include <ncurses/curses.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <ncurses/curses.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13765: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13834: \"$ac_try\") 1>&5; (eval $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_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
        for lib in curses termlib termcap; do
          
 echo $ac_n "checking for tgetent in -l$lib""... $ac_c" 1>&6
-echo "configure:13800: checking for tgetent in -l$lib" >&5
+echo "configure:13869: 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
 ac_lib_var=`echo $lib'_'tgetent | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -l$lib "
 cat > conftest.$ac_ext <<EOF
-#line 13805 "configure"
+#line 13874 "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
 #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
@@ -13812,7 +13881,7 @@ int main() {
 tgetent()
 ; return 0; }
 EOF
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:13816: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13885: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   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
     else       if test -n "$libs_termcap" -a "$opsys" = "openbsd"; then
                                 
 echo $ac_n "checking for tgoto in -ltermcap""... $ac_c" 1>&6
-echo "configure:13841: checking for tgoto in -ltermcap" >&5
+echo "configure:13910: checking for tgoto in -ltermcap" >&5
 ac_lib_var=`echo termcap'_'tgoto | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ltermcap "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo termcap'_'tgoto | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ltermcap "
 cat > conftest.$ac_ext <<EOF
-#line 13846 "configure"
+#line 13915 "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
 #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
@@ -13853,7 +13922,7 @@ int main() {
 tgoto()
 ; return 0; }
 EOF
 tgoto()
 ; return 0; }
 EOF
-if { (eval echo configure:13857: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13926: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   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
       else
        
 echo $ac_n "checking for tgetent in -lcurses""... $ac_c" 1>&6
-echo "configure:13902: checking for tgetent in -lcurses" >&5
+echo "configure:13971: checking for tgetent in -lcurses" >&5
 ac_lib_var=`echo curses'_'tgetent | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lcurses "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo curses'_'tgetent | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lcurses "
 cat > conftest.$ac_ext <<EOF
-#line 13907 "configure"
+#line 13976 "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
 #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
@@ -13914,7 +13983,7 @@ int main() {
 tgetent()
 ; return 0; }
 EOF
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:13918: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13987: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -13932,12 +14001,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6
-echo "configure:13936: checking for tgetent in -ltermcap" >&5
+echo "configure:14005: checking for tgetent in -ltermcap" >&5
 ac_lib_var=`echo termcap'_'tgetent | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ltermcap "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo termcap'_'tgetent | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ltermcap "
 cat > conftest.$ac_ext <<EOF
-#line 13941 "configure"
+#line 14010 "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
 #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
@@ -13948,7 +14017,7 @@ int main() {
 tgetent()
 ; return 0; }
 EOF
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:13952: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14021: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -13997,15 +14066,15 @@ EOF
     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
     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:14001: checking for gpm.h" >&5
+echo "configure:14070: checking for gpm.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 14004 "configure"
+#line 14073 "configure"
 #include "confdefs.h"
 #include <gpm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <gpm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:14009: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:14078: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -14023,12 +14092,12 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   
       
 echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6
   
       
 echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6
-echo "configure:14027: checking for Gpm_Open in -lgpm" >&5
+echo "configure:14096: 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
 ac_lib_var=`echo gpm'_'Gpm_Open | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lgpm "
 cat > conftest.$ac_ext <<EOF
-#line 14032 "configure"
+#line 14101 "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
 #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
@@ -14039,7 +14108,7 @@ int main() {
 Gpm_Open()
 ; return 0; }
 EOF
 Gpm_Open()
 ; return 0; }
 EOF
-if { (eval echo configure:14043: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14112: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -14098,20 +14167,20 @@ test "$with_x11" = "yes" -o "$with_tty" = "yes" -o "$need_event_unixoid" = "yes"
 
 test "$with_database_gdbm $with_database_dbm $with_database_berkdb" \
   != "no no no" && echo "checking for database support" 1>&6
 
 test "$with_database_gdbm $with_database_dbm $with_database_berkdb" \
   != "no no no" && echo "checking for database support" 1>&6
-echo "configure:14102: checking for database support" >&5
+echo "configure:14171: 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
 
 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:14107: checking for ndbm.h" >&5
+echo "configure:14176: checking for ndbm.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 14110 "configure"
+#line 14179 "configure"
 #include "confdefs.h"
 #include <ndbm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <ndbm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:14115: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:14184: \"$ac_try\") 1>&5; (eval $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_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
 if test "$with_database_gdbm" != "no"; then
   
 echo $ac_n "checking for dbm_open in -lgdbm""... $ac_c" 1>&6
-echo "configure:14145: checking for dbm_open in -lgdbm" >&5
+echo "configure:14214: 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
 ac_lib_var=`echo gdbm'_'dbm_open | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lgdbm "
 cat > conftest.$ac_ext <<EOF
-#line 14150 "configure"
+#line 14219 "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
 #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
@@ -14157,7 +14226,7 @@ int main() {
 dbm_open()
 ; return 0; }
 EOF
 dbm_open()
 ; return 0; }
 EOF
-if { (eval echo configure:14161: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14230: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   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
 
 if test "$with_database_dbm" != "no"; then
   echo $ac_n "checking for dbm_open""... $ac_c" 1>&6
-echo "configure:14189: checking for dbm_open" >&5
+echo "configure:14258: checking for dbm_open" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 14192 "configure"
+#line 14261 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char dbm_open(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char dbm_open(); below.  */
@@ -14211,7 +14280,7 @@ dbm_open();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:14215: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14284: \"$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
   rm -rf conftest*
   eval "ac_cv_func_dbm_open=yes"
 else
@@ -14230,12 +14299,12 @@ else
 
     
 echo $ac_n "checking for dbm_open in -ldbm""... $ac_c" 1>&6
 
     
 echo $ac_n "checking for dbm_open in -ldbm""... $ac_c" 1>&6
-echo "configure:14234: checking for dbm_open in -ldbm" >&5
+echo "configure:14303: 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
 ac_lib_var=`echo dbm'_'dbm_open | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ldbm "
 cat > conftest.$ac_ext <<EOF
-#line 14239 "configure"
+#line 14308 "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
 #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
@@ -14246,7 +14315,7 @@ int main() {
 dbm_open()
 ; return 0; }
 EOF
 dbm_open()
 ; return 0; }
 EOF
-if { (eval echo configure:14250: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14319: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   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:14359: checking for u_int8_t" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 14362 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])u_int8_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  rm -rf conftest*
+  ac_cv_type_u_int8_t=yes
+else
+  rm -rf conftest*
+  ac_cv_type_u_int8_t=no
+fi
+rm -f conftest*
+
+echo "$ac_t""$ac_cv_type_u_int8_t" 1>&6
+if test $ac_cv_type_u_int8_t = no; then
+  { test "$extra_verbose" = "yes" && cat << \EOF
+    Defining u_int8_t = uint8_t
+EOF
+cat >> confdefs.h <<\EOF
+#define u_int8_t uint8_t
+EOF
+}
+
+fi
+
+if test $ac_cv_type_u_int8_t = yes; then
+{ test "$extra_verbose" = "yes" && cat << \EOF
+    Defining HAVE_U_INT8_T = 1
+EOF
+cat >> confdefs.h <<\EOF
+#define HAVE_U_INT8_T 1
+EOF
+}
+
+fi
+echo $ac_n "checking for u_int16_t""... $ac_c" 1>&6
+echo "configure:14403: checking for u_int16_t" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 14406 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])u_int16_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  rm -rf conftest*
+  ac_cv_type_u_int16_t=yes
+else
+  rm -rf conftest*
+  ac_cv_type_u_int16_t=no
+fi
+rm -f conftest*
+
+echo "$ac_t""$ac_cv_type_u_int16_t" 1>&6
+if test $ac_cv_type_u_int16_t = no; then
+  { test "$extra_verbose" = "yes" && cat << \EOF
+    Defining u_int16_t = uint16_t
+EOF
+cat >> confdefs.h <<\EOF
+#define u_int16_t uint16_t
+EOF
+}
+
+fi
+
+if test $ac_cv_type_u_int16_t = yes; then
+{ test "$extra_verbose" = "yes" && cat << \EOF
+    Defining HAVE_U_INT16_T = 1
+EOF
+cat >> confdefs.h <<\EOF
+#define HAVE_U_INT16_T 1
+EOF
+}
+
+fi
+echo $ac_n "checking for u_int32_t""... $ac_c" 1>&6
+echo "configure:14447: checking for u_int32_t" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 14450 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])u_int32_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  rm -rf conftest*
+  ac_cv_type_u_int32_t=yes
+else
+  rm -rf conftest*
+  ac_cv_type_u_int32_t=no
+fi
+rm -f conftest*
+
+echo "$ac_t""$ac_cv_type_u_int32_t" 1>&6
+if test $ac_cv_type_u_int32_t = no; then
+  { test "$extra_verbose" = "yes" && cat << \EOF
+    Defining u_int32_t = uint32_t
+EOF
+cat >> confdefs.h <<\EOF
+#define u_int32_t uint32_t
+EOF
+}
+
+fi
+
+if test $ac_cv_type_u_int32_t = yes; then
+{ test "$extra_verbose" = "yes" && cat << \EOF
+    Defining HAVE_U_INT32_T = 1
+EOF
+cat >> confdefs.h <<\EOF
+#define HAVE_U_INT32_T 1
+EOF
+}
+
+fi
+echo $ac_n "checking for u_int64_t""... $ac_c" 1>&6
+echo "configure:14491: checking for u_int64_t" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 14494 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])u_int64_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  rm -rf conftest*
+  ac_cv_type_u_int64_t=yes
+else
+  rm -rf conftest*
+  ac_cv_type_u_int64_t=no
+fi
+rm -f conftest*
+
+echo "$ac_t""$ac_cv_type_u_int64_t" 1>&6
+if test $ac_cv_type_u_int64_t = no; then
+  { test "$extra_verbose" = "yes" && cat << \EOF
+    Defining u_int64_t = uint64_t
+EOF
+cat >> confdefs.h <<\EOF
+#define u_int64_t uint64_t
+EOF
+}
+
+fi
+
+if test $ac_cv_type_u_int64_t = yes; then
+{ test "$extra_verbose" = "yes" && cat << \EOF
+    Defining HAVE_U_INT64_T = 1
+EOF
+cat >> confdefs.h <<\EOF
+#define HAVE_U_INT64_T 1
+EOF
+}
+
+fi
+
 if test "$with_database_berkdb" != "no"; then
   echo $ac_n "checking for Berkeley db.h""... $ac_c" 1>&6
 if test "$with_database_berkdb" != "no"; then
   echo $ac_n "checking for Berkeley db.h""... $ac_c" 1>&6
-echo "configure:14291: checking for Berkeley db.h" >&5
+echo "configure:14537: checking for Berkeley db.h" >&5
   for header in "db/db.h" "db.h"; do
     case "$opsys" in
         *freebsd*)
     cat > conftest.$ac_ext <<EOF
   for header in "db/db.h" "db.h"; do
     case "$opsys" in
         *freebsd*)
     cat > conftest.$ac_ext <<EOF
-#line 14296 "configure"
+#line 14542 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -14308,7 +14554,7 @@ int main() {
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:14312: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14558: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   db_h_file="$header"; break
 else
   rm -rf conftest*
   db_h_file="$header"; break
 else
@@ -14319,7 +14565,7 @@ rm -f conftest*
         ;;
         *)
     cat > conftest.$ac_ext <<EOF
         ;;
         *)
     cat > conftest.$ac_ext <<EOF
-#line 14323 "configure"
+#line 14569 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -14327,21 +14573,29 @@ rm -f conftest*
 #ifdef HAVE_INTTYPES_H
 #define __BIT_TYPES_DEFINED__
 #include <inttypes.h>
 #ifdef HAVE_INTTYPES_H
 #define __BIT_TYPES_DEFINED__
 #include <inttypes.h>
+#if !HAVE_U_INT8_T
 typedef uint8_t  u_int8_t;
 typedef uint8_t  u_int8_t;
+#endif
+#if !HAVE_U_INT16_T
 typedef uint16_t u_int16_t;
 typedef uint16_t u_int16_t;
+#endif
+#if !HAVE_U_INT32_T
 typedef uint32_t u_int32_t;
 typedef uint32_t u_int32_t;
+#endif
 #ifdef WE_DONT_NEED_QUADS
 #ifdef WE_DONT_NEED_QUADS
+#if !HAVE_U_INT64_T
 typedef uint64_t u_int64_t;
 #endif
 #endif
 #endif
 typedef uint64_t u_int64_t;
 #endif
 #endif
 #endif
+#endif
 #include <$header>
 
 int main() {
 
 ; return 0; }
 EOF
 #include <$header>
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:14345: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14599: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   db_h_file="$header"; break
 else
   rm -rf conftest*
   db_h_file="$header"; break
 else
@@ -14359,9 +14613,9 @@ rm -f conftest*
 
   if test "$with_database_berkdb" != "no"; then
     echo $ac_n "checking for Berkeley DB version""... $ac_c" 1>&6
 
   if test "$with_database_berkdb" != "no"; then
     echo $ac_n "checking for Berkeley DB version""... $ac_c" 1>&6
-echo "configure:14363: checking for Berkeley DB version" >&5
+echo "configure:14617: checking for Berkeley DB version" >&5
     cat > conftest.$ac_ext <<EOF
     cat > conftest.$ac_ext <<EOF
-#line 14365 "configure"
+#line 14619 "configure"
 #include "confdefs.h"
 #include <$db_h_file>
 #if DB_VERSION_MAJOR > 1
 #include "confdefs.h"
 #include <$db_h_file>
 #if DB_VERSION_MAJOR > 1
@@ -14373,7 +14627,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "yes" >/dev/null 2>&1; then
   rm -rf conftest*
   cat > conftest.$ac_ext <<EOF
   egrep "yes" >/dev/null 2>&1; then
   rm -rf conftest*
   cat > conftest.$ac_ext <<EOF
-#line 14377 "configure"
+#line 14631 "configure"
 #include "confdefs.h"
 #include <$db_h_file>
 #if DB_VERSION_MAJOR > 2
 #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
 rm -f conftest*
 
     echo $ac_n "checking for $dbfunc""... $ac_c" 1>&6
-echo "configure:14404: checking for $dbfunc" >&5
+echo "configure:14658: checking for $dbfunc" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 14407 "configure"
+#line 14661 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $dbfunc(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $dbfunc(); below.  */
@@ -14426,7 +14680,7 @@ $dbfunc();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:14430: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14684: \"$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
   rm -rf conftest*
   eval "ac_cv_func_$dbfunc=yes"
 else
@@ -14445,12 +14699,12 @@ else
 
     
 echo $ac_n "checking for $dbfunc in -ldb""... $ac_c" 1>&6
 
     
 echo $ac_n "checking for $dbfunc in -ldb""... $ac_c" 1>&6
-echo "configure:14449: checking for $dbfunc in -ldb" >&5
+echo "configure:14703: checking for $dbfunc in -ldb" >&5
 ac_lib_var=`echo db'_'$dbfunc | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ldb "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo db'_'$dbfunc | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ldb "
 cat > conftest.$ac_ext <<EOF
-#line 14454 "configure"
+#line 14708 "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
 #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
@@ -14461,7 +14715,7 @@ int main() {
 $dbfunc()
 ; return 0; }
 EOF
 $dbfunc()
 ; return 0; }
 EOF
-if { (eval echo configure:14465: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14719: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   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
 if test "$with_socks" = "yes"; then
   
 echo $ac_n "checking for SOCKSinit in -lsocks""... $ac_c" 1>&6
-echo "configure:14529: checking for SOCKSinit in -lsocks" >&5
+echo "configure:14783: checking for SOCKSinit in -lsocks" >&5
 ac_lib_var=`echo socks'_'SOCKSinit | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lsocks "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo socks'_'SOCKSinit | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lsocks "
 cat > conftest.$ac_ext <<EOF
-#line 14534 "configure"
+#line 14788 "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
 #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
@@ -14541,7 +14795,7 @@ int main() {
 SOCKSinit()
 ; return 0; }
 EOF
 SOCKSinit()
 ; return 0; }
 EOF
-if { (eval echo configure:14545: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14799: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -14596,7 +14850,7 @@ fi
 
 if test "$with_modules" != "no"; then
   echo "checking for module support" 1>&6
 
 if test "$with_modules" != "no"; then
   echo "checking for module support" 1>&6
-echo "configure:14600: checking for module support" >&5
+echo "configure:14854: checking for module support" >&5
 
     if test "$with_msw" = "yes"; then
     have_dl=yes;
 
     if test "$with_msw" = "yes"; then
     have_dl=yes;
@@ -14612,15 +14866,15 @@ EOF
  ;;
       *)          ac_safe=`echo "dlfcn.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for dlfcn.h""... $ac_c" 1>&6
  ;;
       *)          ac_safe=`echo "dlfcn.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for dlfcn.h""... $ac_c" 1>&6
-echo "configure:14616: checking for dlfcn.h" >&5
+echo "configure:14870: checking for dlfcn.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 14619 "configure"
+#line 14873 "configure"
 #include "confdefs.h"
 #include <dlfcn.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <dlfcn.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:14624: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:14878: \"$ac_try\") 1>&5; (eval $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_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -14637,16 +14891,16 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   
            echo $ac_n "checking for dlopen in -lc""... $ac_c" 1>&6
   echo "$ac_t""yes" 1>&6
   
            echo $ac_n "checking for dlopen in -lc""... $ac_c" 1>&6
-echo "configure:14641: checking for dlopen in -lc" >&5
+echo "configure:14895: checking for dlopen in -lc" >&5
            cat > conftest.$ac_ext <<EOF
            cat > conftest.$ac_ext <<EOF
-#line 14643 "configure"
+#line 14897 "configure"
 #include "confdefs.h"
 #include <dlfcn.h>
 int main() {
              dlopen ("", 0);
 ; return 0; }
 EOF
 #include "confdefs.h"
 #include <dlfcn.h>
 int main() {
              dlopen ("", 0);
 ; return 0; }
 EOF
-if { (eval echo configure:14650: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14904: \"$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*
    have_dl=yes 
 else
@@ -14655,18 +14909,18 @@ else
   rm -rf conftest*
   
                echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
   rm -rf conftest*
   
                echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:14659: checking for dlopen in -ldl" >&5
+echo "configure:14913: checking for dlopen in -ldl" >&5
                ac_save_LIBS="$LIBS"
                LIBS="-ldl $LIBS"
                cat > conftest.$ac_ext <<EOF
                ac_save_LIBS="$LIBS"
                LIBS="-ldl $LIBS"
                cat > conftest.$ac_ext <<EOF
-#line 14663 "configure"
+#line 14917 "configure"
 #include "confdefs.h"
 #include <dlfcn.h>
 int main() {
                 dlopen ("", 0);
 ; return 0; }
 EOF
 #include "confdefs.h"
 #include <dlfcn.h>
 int main() {
                 dlopen ("", 0);
 ; return 0; }
 EOF
-if { (eval echo configure:14670: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14924: \"$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*
    have_dl=yes 
 else
@@ -14695,12 +14949,12 @@ EOF
         else
            
 echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
         else
            
 echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
-echo "configure:14699: checking for shl_load in -ldld" >&5
+echo "configure:14953: 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
 ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ldld "
 cat > conftest.$ac_ext <<EOF
-#line 14704 "configure"
+#line 14958 "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
 #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
@@ -14711,7 +14965,7 @@ int main() {
 shl_load()
 ; return 0; }
 EOF
 shl_load()
 ; return 0; }
 EOF
-if { (eval echo configure:14715: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14969: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -14738,12 +14992,12 @@ else
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for dld_init in -ldld""... $ac_c" 1>&6
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for dld_init in -ldld""... $ac_c" 1>&6
-echo "configure:14742: checking for dld_init in -ldld" >&5
+echo "configure:14996: 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
 ac_lib_var=`echo dld'_'dld_init | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ldld "
 cat > conftest.$ac_ext <<EOF
-#line 14747 "configure"
+#line 15001 "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
 #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
@@ -14754,7 +15008,7 @@ int main() {
 dld_init()
 ; return 0; }
 EOF
 dld_init()
 ; return 0; }
 EOF
-if { (eval echo configure:14758: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15012: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -14801,7 +15055,7 @@ xehost=$canonical
 xealias=$internal_configuration
 
 echo "checking how to build dynamic libraries for ${xehost}" 1>&6
 xealias=$internal_configuration
 
 echo "checking how to build dynamic libraries for ${xehost}" 1>&6
-echo "configure:14805: checking how to build dynamic libraries for ${xehost}" >&5
+echo "configure:15059: checking how to build dynamic libraries for ${xehost}" >&5
 # Transform *-*-linux* to *-*-linux-gnu*, to support old configure scripts.
 case "$xehost" in
 *-*-linux-gnu*) ;;
 # Transform *-*-linux* to *-*-linux-gnu*, to support old configure scripts.
 case "$xehost" in
 *-*-linux-gnu*) ;;
@@ -14829,9 +15083,9 @@ if test "$GCC" = "yes"; then
   XEGCC=yes
 else
   echo $ac_n "checking checking whether we are using GNU C""... $ac_c" 1>&6
   XEGCC=yes
 else
   echo $ac_n "checking checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:14833: checking checking whether we are using GNU C" >&5
+echo "configure:15087: checking checking whether we are using GNU C" >&5
   cat > conftest.$ac_ext <<EOF
   cat > conftest.$ac_ext <<EOF
-#line 14835 "configure"
+#line 15089 "configure"
 #include "confdefs.h"
 
 #ifdef __GNUC__
 #include "confdefs.h"
 
 #ifdef __GNUC__
@@ -14853,7 +15107,7 @@ rm -f conftest*
 fi
 
 echo $ac_n "checking how to produce PIC code""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking how to produce PIC code""... $ac_c" 1>&6
-echo "configure:14857: checking how to produce PIC code" >&5
+echo "configure:15111: checking how to produce PIC code" >&5
 wl=
 
 can_build_shared=yes
 wl=
 
 can_build_shared=yes
@@ -14954,18 +15208,18 @@ if test -n "$dll_cflags"; then
 
   # Check to make sure the dll_cflags actually works.
   echo $ac_n "checking if PIC flag ${dll_cflags} really works""... $ac_c" 1>&6
 
   # 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:14958: checking if PIC flag ${dll_cflags} really works" >&5
+echo "configure:15212: checking if PIC flag ${dll_cflags} really works" >&5
   save_CFLAGS="$CFLAGS"
   CFLAGS="$CFLAGS $dll_cflags -DPIC"
   cat > conftest.$ac_ext <<EOF
   save_CFLAGS="$CFLAGS"
   CFLAGS="$CFLAGS $dll_cflags -DPIC"
   cat > conftest.$ac_ext <<EOF
-#line 14962 "configure"
+#line 15216 "configure"
 #include "confdefs.h"
 
 int main() {
 int x=0;
 ; return 0; }
 EOF
 #include "confdefs.h"
 
 int main() {
 int x=0;
 ; return 0; }
 EOF
-if { (eval echo configure:14969: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15223: \"$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
   rm -rf conftest*
   
     # On HP-UX, the stripped-down bundled CC doesn't accept +Z, but also
@@ -14996,7 +15250,7 @@ cc_produces_so=no
 xldf=
 xcldf=
 echo $ac_n "checking if C compiler can produce shared libraries""... $ac_c" 1>&6
 xldf=
 xcldf=
 echo $ac_n "checking if C compiler can produce shared libraries""... $ac_c" 1>&6
-echo "configure:15000: checking if C compiler can produce shared libraries" >&5
+echo "configure:15254: checking if C compiler can produce shared libraries" >&5
 if test "$XEGCC" = yes -o "$__ICC" = yes; then
   xcldf="-shared"
   xldf="-shared"
 if test "$XEGCC" = yes -o "$__ICC" = yes; then
   xcldf="-shared"
   xldf="-shared"
@@ -15047,14 +15301,14 @@ if test -n "$xcldf"; then
   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
   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 15051 "configure"
+#line 15305 "configure"
 #include "confdefs.h"
 
 int main() {
 int x=0;
 ; return 0; }
 EOF
 #include "confdefs.h"
 
 int main() {
 int x=0;
 ; return 0; }
 EOF
-if { (eval echo configure:15058: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15312: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cc_produces_so=yes
 else
   rm -rf conftest*
   cc_produces_so=yes
 else
@@ -15079,7 +15333,7 @@ if test -z "$LTLD"; then
   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
   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:15083: checking for ld used by GCC" >&5
+echo "configure:15337: checking for ld used by GCC" >&5
     ac_prog=`($CC -print-prog-name=ld) 2>&5`
     case "$ac_prog" in
     # Accept absolute paths.
     ac_prog=`($CC -print-prog-name=ld) 2>&5`
     case "$ac_prog" in
     # Accept absolute paths.
@@ -15105,7 +15359,7 @@ echo "configure:15083: checking for ld used by GCC" >&5
     esac
   else
     echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
     esac
   else
     echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
-echo "configure:15109: checking for GNU ld" >&5
+echo "configure:15363: checking for GNU ld" >&5
   fi
 
   if test -z "$LTLD"; then
   fi
 
   if test -z "$LTLD"; then
@@ -15143,7 +15397,7 @@ ld_dynamic_link_flags=
 
 # 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
 
 # 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:15147: checking if the linker is GNU ld" >&5
+echo "configure:15401: 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
 # 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
@@ -15171,7 +15425,7 @@ else
   # 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
   # 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:15175: checking whether the linker supports shared libraries" >&5
+echo "configure:15429: checking whether the linker supports shared libraries" >&5
   dll_ld=$CC
   dll_ldflags=$LDFLAGS
   ld_shlibs=yes
   dll_ld=$CC
   dll_ldflags=$LDFLAGS
   ld_shlibs=yes
@@ -15382,10 +15636,10 @@ EOF
     for ac_func in dlerror _dlerror
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
     for ac_func in dlerror _dlerror
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15386: checking for $ac_func" >&5
+echo "configure:15640: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 15389 "configure"
+#line 15643 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -15408,7 +15662,7 @@ $ac_func();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:15412: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15666: \"$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
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -15447,11 +15701,11 @@ done
 fi
 
 cat > conftest.$ac_ext <<EOF
 fi
 
 cat > conftest.$ac_ext <<EOF
-#line 15451 "configure"
+#line 15705 "configure"
 #include "confdefs.h"
 int main(int c,char *v[]){return 0;}
 EOF
 #include "confdefs.h"
 int main(int c,char *v[]){return 0;}
 EOF
-if { (eval echo configure:15455: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:15709: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   :
 else
 then
   :
 else
@@ -16092,8 +16346,8 @@ fi
 
 echo "  Compiler:                          $CC $CFLAGS"
 case "$CC" in
 
 echo "  Compiler:                          $CC $CFLAGS"
 case "$CC" in
-  gcc*)        echo "  Compiler version:                  `$CC --version | head -1`"
-        echo "  Compiler specs file:               `$CC -v 2>&1 | sed 's/.* \([^ ]\)/\1/' | head -1`"
+  gcc*)        echo "  Compiler version:                  `$CC --version | sed 1q`"
+        echo "  Compiler specs file:               `$CC -v 2>&1 | sed 's/.* \([^ ]\)/\1/' | sed 1q`"
        ;;
   *) case "$canonical" in
        *-*-aix*   ) 
        ;;
   *) case "$canonical" in
        *-*-aix*   ) 
@@ -16120,7 +16374,7 @@ case "$CC" in
        ;;
        
        *-*-solaris*)
        ;;
        
        *-*-solaris*)
-         ccvers=`$CC -V 2>&1 | head -1`
+         ccvers=`$CC -V 2>&1 | sed 1q`
          if test ! -z "$ccvers" ; then
            echo "  Compiler version:                  $ccvers"
          fi
          if test ! -z "$ccvers" ; then
            echo "  Compiler version:                  $ccvers"
          fi
index 449f47c..0e645ae 100644 (file)
@@ -2090,8 +2090,6 @@ else
     *86*    ) dynodump_arch=i386  ;;
     powerpc ) dynodump_arch=ppc   ;;
   esac
     *86*    ) dynodump_arch=i386  ;;
     powerpc ) dynodump_arch=ppc   ;;
   esac
-  dnl Dynodump requires the system linker
-  test "$GCC" = "yes" && XE_APPEND(-fno-gnu-linker, ld_switch_site)
 fi
 
 dnl Feed s&m crud to src/Makefile
 fi
 
 dnl Feed s&m crud to src/Makefile
@@ -2913,7 +2911,7 @@ dnl Avoid re-AC_DEFINE-ing xmkmf symbols we've already defined above.
     esac
   fi
 
     esac
   fi
 
-  AC_CHECK_FUNCS(XConvertCase)
+  AC_CHECK_FUNCS(XConvertCase XtRegisterDrawable)
 
   AC_CHECK_HEADERS(X11/Xlocale.h)
 
 
   AC_CHECK_HEADERS(X11/Xlocale.h)
 
@@ -3208,33 +3206,63 @@ dnl Autodetect LDAP
 AC_CHECKING(for LDAP)
 test -z "$with_ldap" && { AC_CHECK_HEADER(ldap.h, ,with_ldap=no) }
 test -z "$with_ldap" && { AC_CHECK_HEADER(lber.h, ,with_ldap=no) }
 AC_CHECKING(for LDAP)
 test -z "$with_ldap" && { AC_CHECK_HEADER(ldap.h, ,with_ldap=no) }
 test -z "$with_ldap" && { AC_CHECK_HEADER(lber.h, ,with_ldap=no) }
-if test "$with_ldap" != "no"; then
-  AC_CHECK_LIB(ldap, ldap_search, with_ldap=yes)
-  dnl Check for other libraries we need to link with to get the main routines.
-  test "$with_ldap" != "yes" && { AC_CHECK_LIB(ldap, ldap_open, [with_ldap=yes with_ldap_lber=yes], , -llber) }
-  test "$with_ldap" != "yes" && { AC_CHECK_LIB(ldap, ldap_open, [with_ldap=yes with_ldap_lber=yes with_ldap_krb=yes], , -llber -lkrb) }
-  test "$with_ldap" != "yes" && { AC_CHECK_LIB(ldap, ldap_open, [with_ldap=yes with_ldap_lber=yes with_ldap_krb=yes with_ldap_des=yes], , -llber -lkrb -ldes) }
-  dnl Recently, we need -lber even though the main routines are elsewhere,
-  dnl because otherwise be get link errors w.r.t. ber_pvt_opt_on.  So just
-  dnl check for that (it's a variable not a fun but that doesn't seem to
-  dnl matter in these checks)  and stick in -lber if so.  Can't hurt (even to
-  dnl stick it in always shouldn't hurt, I don't think) ... #### Someone who
-  dnl #### understands LDAP needs to fix this properly.
-  test "$with_ldap_lber" != "yes" && { AC_CHECK_LIB(lber, ber_pvt_opt_on, with_ldap_lber=yes) }
+if test no != "$with_ldap";then
+  if test . != "${ldap_libs+.}";then
+    ldap_libs=
+    AC_CHECK_FUNC(ldap_open,dnl Allow it to be in generic "$LIBS"
+      [with_ldap=yes
+      test yes = "$extra_verbose" &&
+       echo "Setting ldap_libs to $ldap_libs"],dnl
+      [AC_CHECK_LIB(ldap, ldap_open,dnl
+       [with_ldap=yes],dnl
+       [ldap_needs_lber=yes ldap_other_libs=-llber
+dnl This requires `AC_CACHE_VAL' (which is called by `AC_CHECK_LIB')
+dnl to be redefined to ignore cached (shell variable) value, as it is
+dnl done above, because the same variable is used in all
+dnl `AC_CHECK_LIB' expansions in macro invocation below.  Worse, if it
+dnl is not done, there is no portable way to compensate for this
+dnl locally since `unset' command is not supported by all shells.  The
+dnl other solution would be changing `AC_CHECK_LIB' so that cache
+dnl variable name depends on the macro OTHER-LIBRARIES argument.
+       AC_CHECK_LIB(ldap, ldap_open,dnl
+         [with_ldap=yes],dnl
+         [ldap_needs_krb=yes ldap_other_libs="$ldap_other_libs -lkrb"
+         AC_CHECK_LIB(ldap, ldap_open,dnl
+           [with_ldap=yes],dnl
+           [ldap_needs_des=yes ldap_other_libs="$ldap_other_libs -ldes"
+           AC_CHECK_LIB(ldap, ldap_open,dnl
+             [with_ldap=yes],dnl
+             [with_ldap=no],dnl
+             $ldap_other_libs)],dnl
+           $ldap_other_libs)],dnl
+         $ldap_other_libs)])
+      if test yes = "$with_ldap";then
+       if test yes = "$ldap_needs_des";then
+         XE_PREPEND(-ldes, ldap_libs)
+       fi
+       if test yes = "$ldap_needs_krb";then
+         XE_PREPEND(-lkrb, ldap_libs)
+       fi
+       if test yes = "$ldap_needs_lber";then
+         XE_PREPEND(-llber, ldap_libs)
+       fi
+       XE_PREPEND(-lldap, ldap_libs)
+      fi])
+  else
+dnl Allow builder to override "$ldap_libs".
+    save_LIBS="$LIBS" LIBS="$ldap_libs $LIBS"
+    AC_CHECK_FUNC(ldap_open,dnl
+      [with_ldap=yes
+      test yes = "$extra_verbose" &&
+       echo "Setting ldap_libs to $ldap_libs"],dnl
+      [with_ldap=no])
+    LIBS="$save_LIBS"
+  fi
 fi
 if test "$with_ldap" = "yes"; then
   AC_DEFINE(HAVE_LDAP)
   XE_ADD_OBJS(eldap.o)
 fi
 if test "$with_ldap" = "yes"; then
   AC_DEFINE(HAVE_LDAP)
   XE_ADD_OBJS(eldap.o)
-  if test "$with_ldap_des" = "yes" ; then
-    XE_PREPEND(-ldes, LIBS)
-  fi
-  if test "$with_ldap_krb" = "yes" ; then
-    XE_PREPEND(-lkrb, LIBS)
-  fi
-  if test "$with_ldap_lber" = "yes" ; then
-    XE_PREPEND(-llber, LIBS)
-  fi
-  XE_PREPEND(-lldap, LIBS)
+  LIBS="$ldap_libs $LIBS"
   AC_CHECK_FUNCS(ldap_set_option ldap_get_lderrno ldap_result2error ldap_parse_result)
 fi
 
   AC_CHECK_FUNCS(ldap_set_option ldap_get_lderrno ldap_result2error ldap_parse_result)
 fi
 
@@ -3594,7 +3622,7 @@ dnl Not all toolkits support all widgets
 
 dnl Avoid using Motif :-(
 case "$opsys" in
 
 dnl Avoid using Motif :-(
 case "$opsys" in
-  *linux* )  lucid_prefers_motif="no"  ;;
+  *linux* | cygwin* )  lucid_prefers_motif="no"  ;;
   * )        lucid_prefers_motif="yes" ;;
 esac
 
   * )        lucid_prefers_motif="yes" ;;
 esac
 
@@ -4456,6 +4484,24 @@ test "$with_database_gdbm" = "yes" -o \
      "$with_database_dbm"  = "yes" && \
   AC_DEFINE(HAVE_DBM)
 
      "$with_database_dbm"  = "yes" && \
   AC_DEFINE(HAVE_DBM)
 
+dnl Check for u_int*_t typedefs.
+AC_CHECK_TYPE(u_int8_t, uint8_t)
+if test $ac_cv_type_u_int8_t = yes; then
+AC_DEFINE(HAVE_U_INT8_T,1)
+fi
+AC_CHECK_TYPE(u_int16_t, uint16_t)
+if test $ac_cv_type_u_int16_t = yes; then
+AC_DEFINE(HAVE_U_INT16_T,1)
+fi
+AC_CHECK_TYPE(u_int32_t, uint32_t)
+if test $ac_cv_type_u_int32_t = yes; then
+AC_DEFINE(HAVE_U_INT32_T,1)
+fi
+AC_CHECK_TYPE(u_int64_t, uint64_t)
+if test $ac_cv_type_u_int64_t = yes; then
+AC_DEFINE(HAVE_U_INT64_T,1)
+fi
+
 dnl Check for Berkeley DB.
 if test "$with_database_berkdb" != "no"; then
   AC_MSG_CHECKING(for Berkeley db.h)
 dnl Check for Berkeley DB.
 if test "$with_database_berkdb" != "no"; then
   AC_MSG_CHECKING(for Berkeley db.h)
@@ -4480,14 +4526,22 @@ if test "$with_database_berkdb" != "no"; then
 #ifdef HAVE_INTTYPES_H
 #define __BIT_TYPES_DEFINED__
 #include <inttypes.h>
 #ifdef HAVE_INTTYPES_H
 #define __BIT_TYPES_DEFINED__
 #include <inttypes.h>
+#if !HAVE_U_INT8_T
 typedef uint8_t  u_int8_t;
 typedef uint8_t  u_int8_t;
+#endif
+#if !HAVE_U_INT16_T
 typedef uint16_t u_int16_t;
 typedef uint16_t u_int16_t;
+#endif
+#if !HAVE_U_INT32_T
 typedef uint32_t u_int32_t;
 typedef uint32_t u_int32_t;
+#endif
 #ifdef WE_DONT_NEED_QUADS
 #ifdef WE_DONT_NEED_QUADS
+#if !HAVE_U_INT64_T
 typedef uint64_t u_int64_t;
 #endif
 #endif
 #endif
 typedef uint64_t u_int64_t;
 #endif
 #endif
 #endif
+#endif
 #include <$header>
 ],[], db_h_file="$header"; break)
         ;;
 #include <$header>
 ],[], db_h_file="$header"; break)
         ;;
@@ -5031,8 +5085,8 @@ echo "  Compiler:                          $CC $CFLAGS"
 dnl Let's save some helpful-for-debugging info like compiler and libc versions..
 dnl First, see if it's gcc - the same check works everyplace...
 case "$CC" in
 dnl Let's save some helpful-for-debugging info like compiler and libc versions..
 dnl First, see if it's gcc - the same check works everyplace...
 case "$CC" in
-  gcc*)        echo "  Compiler version:                  `$CC --version | head -1`"
-        echo "  Compiler specs file:               `$CC -v 2>&1 | sed 's/.* \([[^ ]]\)/\1/' | head -1`"
+  gcc*)        echo "  Compiler version:                  `$CC --version | sed 1q`"
+        echo "  Compiler specs file:               `$CC -v 2>&1 | sed 's/.* \([[^ ]]\)/\1/' | sed 1q`"
        ;;
 dnl non-gcc machine-specific magic - contributions welcome
   *) case "$canonical" in
        ;;
 dnl non-gcc machine-specific magic - contributions welcome
   *) case "$canonical" in
@@ -5063,7 +5117,7 @@ dnl non-gcc machine-specific magic - contributions welcome
        ;;
        
        *-*-solaris*)
        ;;
        
        *-*-solaris*)
-         ccvers=`$CC -V 2>&1 | head -1`
+         ccvers=`$CC -V 2>&1 | sed 1q`
          if test ! -z "$ccvers" ; then
            echo "  Compiler version:                  $ccvers"
          fi
          if test ! -z "$ccvers" ; then
            echo "  Compiler version:                  $ccvers"
          fi
index 99800a4..87866eb 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -117,6 +117,7 @@ consulted for a more detailed list of changes.
     - In Perl, the --globals option tags global variables.
     - Python now supported.
     - New file extensions recognized: .ss, .pdb, .psw.
     - In Perl, the --globals option tags global variables.
     - Python now supported.
     - New file extensions recognized: .ss, .pdb, .psw.
+  -- Fixed ldap libraries configuration.
 
 ** The delete key now deletes forward by default.
 
 
 ** The delete key now deletes forward by default.
 
@@ -599,6 +600,11 @@ def and class at the beginning of a line are tags.
 .ss files are Scheme files, .pdb is Postscript with C syntax, .psw is
 for PSWrap.
 
 .ss files are Scheme files, .pdb is Postscript with C syntax, .psw is
 for PSWrap.
 
+** Fixed ldap libraries configuration.
+
+It used to fail when `-lldap' requires `-llber'.  Introduced in
+upstream `configure.in' revision 1.151.2.31 (2005/01/31 02:54:47 +0).
+
 \f
 * Lisp and internal changes in XEmacs 21.4
 ==========================================
 \f
 * Lisp and internal changes in XEmacs 21.4
 ==========================================
index 6005b5c..1e92bb5 100644 (file)
@@ -14,11 +14,6 @@ two months, and for the success of the GTK merge.  Without the
 prospect of such a big win, I could not have justified trying to
 coordinate a release myself.
 
 prospect of such a big win, I could not have justified trying to
 coordinate a release myself.
 
-The rest of the codenames are in alphabetical order.
-
-N.B. I expect that the Stable Release Maintainer will choose a new
-theme for the releases following the promotion of 21.4 from "gamma" to
-"stable".  So 15 or so should be enough....
 
 21.4.0: Solid Vapor
 21.4.1: Copyleft
 
 21.4.0: Solid Vapor
 21.4.1: Copyleft
@@ -38,14 +33,14 @@ theme for the releases following the promotion of 21.4 from "gamma" to
 21.4.15: Security Through Obscurity
 21.4.16: Corporate Culture
 21.4.17: Jumbo Shrimp
 21.4.15: Security Through Obscurity
 21.4.16: Corporate Culture
 21.4.17: Jumbo Shrimp
-21.4.18: Social Property
-21.4.19: Stable Release Maintainer
-21.4.20: Standard C
-21.4.21: Successful IPO
-21.4.22: Sufficiently Smart Compiler
-21.4.23: The Gift Economy
+21.4.18: Constant Variable
+21.4.19: Double Solitaire
+21.4.20: Educational Television
+21.4.21: Instant Classic
+21.4.22: Moral Majority
+21.4.23: Standard C
 21.4.24: Too Much Mozart
 21.4.24: Too Much Mozart
-21.4.25: UTF-8 BOM
+21.4.25: Working Vacation
+
 
 
-N.B.  Only incredibly redeeming suggestions can be accepted now.
 
 
index e1720e1..f6b687d 100644 (file)
@@ -234,6 +234,9 @@ Deprecated collection of DTDs for psgml.
 *** python-modes
 Python support.
 
 *** python-modes
 Python support.
 
+*** re-builder
+Interactive development tool for regular expressions.
+
 *** reftex
 Emacs support for LaTeX cross-references, citations.
 
 *** reftex
 Emacs support for LaTeX cross-references, citations.
 
@@ -341,6 +344,9 @@ XEmacs Lisp developer support.  This package contains utilities for
 supporting Lisp development.  It is a single-file package so it may be 
 tailored.
 
 supporting Lisp development.  It is a single-file package so it may be 
 tailored.
 
+*** xetla
+(setq mm-coding-system-priorities '(iso-8859-1 iso-8859-15 utf-8))
+
 *** xlib
 Emacs interface to X server.
 
 *** xlib
 Emacs interface to X server.
 
@@ -370,6 +376,9 @@ MULE: Lisp Interface to EDICT, Kanji Dictionary.
 *** egg-its
 MULE: Wnn (4.2 and 6) support.  SJ3 support.
 
 *** egg-its
 MULE: Wnn (4.2 and 6) support.  SJ3 support.
 
+*** latin-euro-standards
+MULE: Support for the Latin{7,8,9,10} character sets & coding systems.
+
 *** latin-unity
 MULE: find single ISO 8859 character set to encode a buffer.
 
 *** latin-unity
 MULE: find single ISO 8859 character set to encode a buffer.
 
@@ -383,7 +392,7 @@ MULE: Localized menubars and localized splash screens.
 MULE: Dictionary support.
 
 *** mule-base
 MULE: Dictionary support.
 
 *** mule-base
-MULE: Basic Mule support, required for building with Mule.
+MULE: Basic Mule support.
 
 *** mule-ucs
 MULE: Extended coding systems (including Unicode) for XEmacs.
 
 *** mule-ucs
 MULE: Extended coding systems (including Unicode) for XEmacs.
diff --git a/etc/TUTORIAL.cs b/etc/TUTORIAL.cs
new file mode 100644 (file)
index 0000000..163c3e5
--- /dev/null
@@ -0,0 +1,1043 @@
+Copyright (c) 1985 Free Software Foundation, Inc;  podmínky viz na konci.
+Do èe¹tiny pøelo¾il Milan Zamazal <pdm@zamazal.org>.
+
+Máte pøed sebou tutoriál k Emacsu.
+
+Pøíkazy Emacsu obecnì vyu¾ívají klávesu CONTROL (obèas oznaèovanou CTRL nebo
+CTL) nebo klávesu META (obèas oznaèovanou EDIT nebo ALT).  Abychom tyto názvy
+nemuseli stále psát v plném znìní, budeme pou¾ívat následující zkratky:
+
+ C-<chr>  znamená pøidr¾et klávesu CONTROL a stisknout znak <chr>.
+          Tedy C-f znamená: pøidr¾te klávesu CONTROL a stisknìte f.
+ M-<chr>  znamená pøidr¾et klávesu META, EDIT nebo ALT a stisknout <chr>.
+          Pokud ¾ádnou z kláves META, EDIT ani ALT nemáte, tak místo toho
+          stisknìte a pus»te klávesu ESC a poté <chr>.  Klávesu ESC budeme
+          znaèit <ESC>.
+
+Dùle¾itá poznámka: práci s Emacsem ukonèíte stiskem C-x C-c (dva znaky).
+Znaky ">>" na levém okraji znaèí místa, kde si máte vyzkou¹et pøíkaz.
+Napøíklad:
+<<Blank lines inserted here by startup of help-with-tutorial>>
+>>  Nyní stisknìte C-v (view next screen) pro posun na dal¹í obrazovku.
+        (Smìle do toho, proveïte to pøidr¾ením klávesy CONTROL a stiskem v.)
+       Od této chvíle byste toto mìli provádìt kdykoliv doètete zobrazenou
+        obrazovku.
+
+V¹imnìte si, ¾e pøi posuvu obrazovek v¾dy zùstávají zobrazeny dva øádky
+z pøedchozí obrazovky; to poskytuje urèitou návaznost pøi postupném
+ètení textu.
+
+První vìc, kterou potøebujete vìdìt, je jak se v textu pohybovat
+z jednoho místa na druhé.  U¾ víte, jak se posunout o jednu obrazovku
+vpøed, pomocí C-v.  K pøechodu o obrazovku zpìt pou¾ijte M-v
+(pøidr¾te klávesu META a stisknìte v nebo stisknìte <ESC>v, jestli¾e
+nemáte ¾ádnou z kláves META, EDIT nebo ALT).
+
+>>  Zkuste stisknout M-v a pak C-v, nìkolikrát to zopakujte.
+
+
+* SHRNUTÍ
+---------
+
+K prohlí¾ení obrazovkových stránek jsou u¾iteèné následující pøíkazy:
+
+       C-v     Posun o obrazovku vpøed
+       M-v     Posun o obrazovku zpìt
+       C-l     Smazání obrazovky a znovuzobrazení celého textu,
+                pøitom se text pod kurzorem pøesune ke støedu obrazovky.
+                (Jedná se o CONTROL-L a ne CONTROL-1.)
+
+>> Najdìte kurzor a zapamatujte si, jaký text je kolem nìj.
+   Pak stisknìte C-l.
+   Najdìte kurzor znovu a v¹imnìte si, ¾e je kolem nìj tentý¾ text.
+
+
+* ZÁKLADNÍ OVLÁDÁNÍ KURZORU
+---------------------------
+
+Pohyb mezi obrazovkami je u¾iteèný, ale jak se pøemístíte na konkrétní
+místo v textu na obrazovce?
+
+Je toho mo¾no dosáhnout nìkolika zpùsoby.  Nejzákladnìj¹ím zpùsobem je
+pou¾ití pøíkazù C-p, C-b, C-f a C-n.  Ka¾dý z tìchto pøíkazù pøesune
+kurzor na obrazovce o jeden øádek nebo sloupec v daném smìru.
+Zde je tabulka znázoròující smìr posuvu kurzoru vyvolaný tìmito ètyømi
+pøíkazy:
+                         Pøedchozí øádek, C-p
+                                 :
+                                 :
+      Dozadu, C-b .... Momentální pozice kurzoru .... Dopøedu, C-f
+                                 :
+                                 :
+                        Následující øádek, C-n
+
+>> Pøesuòte kurzor na prostøední øádek tohoto diagramu pomocí
+   C-n nebo C-p.  Potom stisknìte C-l, abyste na obrazovce vidìli celý
+   diagram vycentrován.
+
+Pravdìpodobnì se vám budou tyto pøíkazy snadno pamatovat podle
+poèáteèních písmen anglických názvù: P jako previous (pøedchozí),
+N jako next (následující), B jako backward (zpìt), F jako forward (vpøed).
+Jsou to základní pøíkazy pro pohyb kurzoru a budete je pou¾ívat
+neustále, tak¾e by bylo velmi vhodné, kdybyste se je teï nauèili.
+
+>> Proveïte nìkolikrát C-n, abyste kurzor pøesunuli na tento øádek.
+
+>> Posuòte kurzor dovnitø øádku pomocí nìkolika C-f a pak nahoru stiskem C-p.
+   Pozorujte, co C-p dìlá, kdy¾ je kurzor uprostøed øádku.
+
+Ka¾dý øádek textu konèí znakem nového øádku, který jej oddìluje od øádku
+následujícího.  Znakem nového øádku by mìl být ukonèen i poslední øádek
+souboru (pøesto¾e to Emacs nevy¾aduje).
+
+>> Vyzkou¹ejte C-b na zaèátku øádku.  Kurzor by se mìl pøesunout na konec
+   pøedchozího øádku, nebo» jej tím pøesunete pøes znak nového øádku.
+
+C-f funguje analogicky jako C-b, tj. na konci øádku dojde k pøesunu na
+dal¹í øádek.
+
+>> Proveïte nìkolik C-b, tak¾e uvidíte, kde se nachází kurzor.
+   Pak provádìjte C-f, abyste se vrátili na konec øádku.
+   Pak proveïte je¹tì jednou C-f, abyste se pøesunuli na následující
+   øádek.
+
+Kdy¾ kurzorem pøejdete pøes horní nebo dolní okraj obrazovky, posune se
+text za pøíslu¹ným okrajem na obrazovku.  Tato vlastnost se nazývá
+"scrollování".  Umo¾òuje pøemístit kurzor na libovolné místo v textu,
+ani¾ by kurzor opustil obrazovku.
+
+>> Zkuste posunout kurzor pod dolní okraj obrazovky pomocí C-n a pozorujte,
+   co se stane.
+
+Jestli¾e je posun po znacích pøíli¹ pomalý, mù¾ete se pohybovat po
+slovech.  M-f (META-f) provádí posun o slovo vpøed a M-b provádí posun
+o slovo zpìt.
+
+>> Stisknìte nìkolikrát M-f a M-b.
+
+Pokud se kurzor nachází uprostøed slova, M-f provede pøesun na konec
+tohoto slova.  Nachází-li se kurzor v mezeøe mezi slovy, M-f provede
+pøesun na konec následujícího slova.  M-b pracuje analogicky v opaèném
+smìru.
+
+>> Stisknìte nìkolikrát M-f a M-b prolo¾enì s C-f a C-b, abyste vidìli
+   výsledky pøíkazù M-f a M-b provádìných z rùzných míst uvnitø slov a
+   mezi nimi.
+
+V¹imnìte si analogie mezi C-f a C-b na jedné stranì a M-f a M-b na
+stranì druhé.  Znaky s klávesou META jsou velmi èasto vyu¾ívány pro operace
+vztahující se k entitám definovaným jazykem (slova, vìty, odstavce),
+zatímco znaky s klávesou CONTROL pracují na základních prvcích
+nezávislých na tom, co zrovna editujete (znaky, øádky, apod.).
+
+Tato analogie platí také pro øádky a vìty: C-a a C-e provádí pøesun
+na zaèátek a konec øádku, M-a a M-e provádí pøesun na zaèátek a konec
+vìty.
+
+>> Zkuste nìkolikrát C-a a poté nìkolikrát C-e.
+   Zkuste nìkolikrát M-a a poté nìkolikrát M-e.
+
+V¹imnìte si, ¾e opakované C-a nedìlá nic, zatímco opakované M-a v¾dy
+provádí posun o dal¹í vìtu. Principu analogie to sice pøíli¹
+neodpovídá, ale pøesto je toto chování mo¾no pova¾ovat za pøirozené.
+
+Pozice kurzoru v textu se také nazývá "bod" ("point").  Abychom to
+parafrázovali, kurzor je vidìt na obrazovce v místì, kde je bod umístìn
+v textu.
+
+Zde je pøehled jednoduchých operací pro pohyb kurzoru vèetnì pøíkazù pro
+pohyb mezi slovy a vìtami:
+
+       C-f     Pøesun o znak vpøed
+       C-b     Pøesun o znak zpìt
+
+       M-f     Pøesun o slovo vpøed
+       M-b     Pøesun o slovo zpìt
+
+       C-n     Pøesun na následující øádek
+       C-p     Pøesun na pøedchozí øádek
+
+       C-a     Pøesun na zaèátek øádku
+       C-e     Pøesun na konec øádku
+
+       M-a     Pøesun zpìt na zaèátek vìty
+       M-e     Pøesun vpøed na konec vìty
+
+>> Vyzkou¹ejte si teï nìkolikrát v¹echny tyto pøíkazy pro procvièení.
+   Jsou to nejpou¾ívanìj¹í pøíkazy.
+
+Dal¹í dva dùle¾ité pøíkazy pro pohyb kurzoru jsou M-< (META men¹í-ne¾),
+který provede pøesun na zaèátek celého textu, a M-> (META vìt¹í-ne¾),
+který provede pøesun na konec celého textu.
+
+Na vìt¹inì terminálù je "<" nad èárkou, tak¾e pro vyvolání tohoto znaku
+musíte pou¾ít klávesu Shift.  Na tìchto terminálech je tedy nutno pou¾ít
+klávesu Shift i v pøípadì pøíkazu M-<; bez klávesy Shift byste provedli
+M-èárka.
+
+>> Zkuste teï M-< pro pøesun na zaèátek tutoriálu.
+   Pou¾ijte pak opakovanì C-v, abyste se opìt vrátili sem.
+
+>> Zkuste teï M-> pro pøesun na konec tutoriálu.
+   Pou¾ijte pak opakovanì M-v, abyste se opìt vrátili sem.
+
+Kurzor mù¾ete pøesouvat také pomocí kurzorových kláves (klávesy
+se ¹ipkami), pokud je vá¹ terminál má.  My v¹ak doporuèujeme nauèit se
+C-b, C-f, C-n a C-p, a to ze tøí dùvodù.  Za prvé, tyto klávesy fungují
+na v¹ech typech terminálù.  Za druhé, jakmile jednou získáte cvik
+v pou¾ívání Emacsu, zjistíte, ¾e pou¾ívání tìchto CTRL znakù je
+rychlej¹í ne¾ pou¾ívání kurzorových kláves (proto¾e nemusíte pøesouvat
+ruku z psací pozice).  Za tøetí, zvyknete-li si pou¾ívat tyto CTRL-znak
+pøíkazy, snadno se nauèíte pou¾ívat jiné pokroèilé pøíkazy pro pohyb
+kurzoru.
+
+Vìt¹ina pøíkazù Emacsu akceptuje numerický argument; ten pro vìt¹inu
+pøíkazù slou¾í jako opakovaè.  Poèet opakování pøíkazu zadáte
+prostøednictvím stisku C-u následovaného stiskem pøíslu¹ných èíslic pøed
+vyvoláním pøíkazu.  Máte-li META (nebo EDIT èi ALT) klávesu, existuje
+alternativní mo¾nost zadání numerického argumentu: pøidr¾te klávesu META
+a stisknìte pøíslu¹né èíslice.  Doporuèujeme nauèit se C-u metodu,
+proto¾e ta funguje na jakémkoliv terminálu.
+
+Napøíklad C-u 8 C-f provede pøesun o osm znakù vpøed.
+
+Vìt¹ina pøíkazù pou¾ívá numerický argument jako opakovaè.  Jisté
+výjimeèné pøíkazy jej pou¾ívají jiným zpùsobem.  Mezi tyto výjimky patøí
+C-v a M-v.  Dostanou-li numerický argument, posunou obrazovku nahoru
+nebo dolù o odpovídající poèet øádkù místo obrazovek.  Napøíklad
+C-u 4 C-v posune obrazovku o 4 øádky.
+
+>> Zkuste teï stisknout C-u 8 C-v.
+
+To by mìlo posunout obrazovku o 8 øádkù nahoru.  Pokud byste ji chtìli
+posunout zpìt dolù, mù¾ete dát argument pøíkazu M-v.
+
+Pou¾íváte-li X Window, mìli byste mít na levé stranì emacsového okna
+vysokou obdélníkovou oblast, nazývanou scrollbar.  Mù¾ete pak text
+posouvat klikáním my¹í na scrollbar.
+
+>> Zkuste stisknout prostøední tlaèítko na vrcholu zvýraznìné oblasti
+   uvnitø scrollbaru.  To by mìlo text posunout na pozici danou tím, jak
+   vysoko nebo nízko jste kliknuli.
+
+>> Zkuste pøi stisknutém prostøedním tlaèítku posouvat my¹í nahoru a
+   dolù.  Uvidíte, jak se text posouvá nahoru a dolù podle toho, jak
+   posouváte my¹í.
+
+
+* KDY® EMACS NEREAGUJE
+----------------------
+
+Jestli¾e Emacs pøestane reagovat na va¹e pøíkazy, mù¾ete probíhající
+èinnost bezpeènì zastavit pomocí C-g.  Pomocí C-g mù¾ete zastavit
+pøíkaz, jeho¾ provádìní trvá pøíli¹ dlouho.
+
+C-g mù¾ete pou¾ít také pro odstranìní numerického argumentu pøíkazu,
+který nechcete dokonèit.
+
+>> Stisknìte C-u 100 pro vytvoøení numerického argumentu 100 a pak
+   stisknìte C-g.  Nyní stisknìte C-f.  Mìl by být proveden posun
+   o právì jeden znak, proto¾e jste argument zru¹ili prostøednictvím
+   C-g.
+
+Pokud jste omylem stiskli <ESC>, mù¾ete se jej zbavit pomocí C-g.
+
+
+* DEAKTIVOVANÉ PØÍKAZY
+----------------------
+
+Nìkteré pøíkazy Emacsu jsou "deaktivované" ("disabled"), aby je
+zaèínající u¾ivatelé nemohli vyvolat náhodnì.
+
+Pokud vyvoláte nìkterý z deaktivovaných pøíkazù, Emacs zobrazí hlá¹ení
+oznamující, který pøíkaz to byl, s dotazem, zda chcete tento pøíkaz
+provést.
+
+Pokud opravdu chcete pøíkaz vyzkou¹et, stisknìte mezerník jako odpovìï
+na tuto otázku.  Obyèejnì, jestli¾e nechcete deaktivovaný pøíkaz
+provést, odpovìzte na tuto otázku pomocí "n".
+
+>> Stisknìte <ESC> : (co¾ je deaktivovaný pøíkaz),
+   pak na otázku odpovìzte n.
+
+
+* OKNA
+------
+
+Emacs mù¾e mít nìkolik oken (windows), z nich¾ ka¾dé zobrazuje svùj
+vlastní text.  Jak více oken pou¾ívat, objasníme pozdìji.  Nyní chceme
+objasnit, jak se zbavit nadbyteèných oken a vrátit se do základní
+jednookenní editace.  Je to jednoduché:
+
+       C-x 1   Jedno okno (tj. zru¹ení v¹ech ostatních oken)
+
+Tedy vlo¾ení CONTROL-x následované èíslicí 1.  C-x 1 roz¹íøí okno
+obsahující kurzor pøes celou obrazovku.  Zru¹í to v¹echna ostatní okna.
+
+>> Stisknìte C-h k C-f.
+   Pozorujte, jak se aktuální okno zmen¹í a objeví se nové okno za
+   úèelem zobrazení dokumentace k pøíkazu C-f.
+
+>> Stisknìte C-x 1 a pozorujte, jak okno s dokumentací zmizí.
+
+
+* VKLÁDÁNÍ A MAZÁNÍ
+-------------------
+
+Chcete-li vlo¾it text, prostì jej napi¹te.  Znaky, které vidíte,
+jako A, 7, *, atd., jsou Emacsem chápány jako text a vkládány okam¾itì.
+Pro vlo¾ení znaku nového øádku stisknìte <Return> (klávesu Enter).
+
+Poslední znak, který jste napsali, mù¾ete smazat stiskem <Delete>.
+<Delete> je klávesa, která mù¾e být na klávesnici oznaèena "Del".
+V nìkterých pøípadech jako <Delete> slou¾í klávesa "Backspace", av¹ak ne
+v¾dy!
+
+Obecnìji, <Delete> ma¾e znak bezprostøednì pøed momentální pozicí
+kurzoru.
+
+>> Proveïte to teï -- napi¹te nìkolik znakù a pak je sma¾te nìkolika
+   stisky <Delete>.  Nebojte se zmìn v tomto souboru; originální
+   tutoriál se nezmìní.  Toto je va¹e osobní kopie.
+
+Kdy¾ se øádek textu zvìt¹í natolik, ¾e pøesáhne jeden øádek obrazovky,
+je zobrazen na více øádcích obrazovky.  Øádek textu, který pokraèuje na
+dal¹ím øádku obrazovky, je indikován zpìtným lomítkem ("\") na pravém
+okraji obrazovky.
+
+>> Vkládejte text, a¾ dosáhnete pravého okraje, a pokraèujte ve vkládání.
+   Objeví se vám pokraèovací øádek.
+
+>> Pou¾ijte <Delete> pro smazání textu, a¾ se øádek textu opìt vejde na
+   jeden øádek obrazovky.  Pokraèovací øádek zmizí.
+
+Znak nového øádku mù¾ete smazat jako kterýkoliv jiný znak.  Smazání
+znaku nového øádku mezi dvìma øádky zpùsobí jejich spojení do jediného
+øádku.  Je-li výsledný øádek pøíli¹ dlouhý na to, aby se ve¹el na ¹íøku
+obrazovky, bude zobrazen pokraèovacím øádkem.
+
+>> Pøesuòte kurzor na zaèátek øádku a stisknìte <Delete>.  To tento
+   øádek spojí s øádkem pøedchozím.
+
+>> Stisknìte <Return> pro znovuvlo¾ení smazaného znaku nového øádku.
+
+Vzpomeòte si, ¾e vìt¹ina pøíkazù Emacsu mù¾e dostat poèet opakování;
+vèetnì textových znakù.  Opakování textových znakù je vlo¾í nìkolikrát.
+
+>>  Vyzkou¹ejte si to teï -- stisknìte C-u 8 * pro vlo¾ení ********.
+
+Teï u¾ znáte nejzákladnìj¹í zpùsoby, jak nìco v Emacsu napsat a jak
+opravovat chyby.  Mù¾ete ov¹em také mazat po slovech nebo po øádcích.
+Zde je shrnutí operací pro mazání textu:
+
+       <Delete>     Smazání znaku bezprostøednì pøed kurzorem
+       C-d          Smazání znaku následujícího za kurzorem
+
+       M-<Delete>   Zru¹ení slova bezprostøednì pøed kurzorem
+       M-d          Zru¹ení slova následujícího za kurzorem
+
+       C-k          Zru¹ení textu od pozice kurzoru do konce øádku
+       M-k          Zru¹ení textu do konce aktuální vìty
+
+V¹imnìte si, ¾e <Delete> a C-d, resp. M-<Delete> a M-d, roz¹iøují
+paralelu zapoèatou C-f a M-f (pravda, <Delete> opravdu není CONTROL
+znak, ale netrapme se tím).  C-k a M-k jsou jako C-e a M-e ve smyslu
+vztahu øádkù k vìtám.
+
+Libovolnou èást bufferu mù¾ete té¾ zru¹it následující metodou.
+Pøesuòte se na jeden konec této èásti a stisknìte C-@ nebo C-SPC
+(libovolnou z tìchto kombinací). (SPC oznaèuje mezerník.)  Pøesuòte
+se na druhý konec této èásti a stisknìte C-w.  Text mezi tìmito
+pozicemi bude zru¹en.
+
+>> Pøesuòte kurzor na písmeno L na zaèátku pøedchozího odstavce.
+>> Stisknìte C-SPC.  Emacs by mìl ve spodním øádku obrazovky
+   zobrazit zprávu "Mark set".
+>> Pøesuòte kurzor na písmeno c ve slovì "konec" na druhém øádku
+   odstavce.
+>> Stisknìte C-w.  Text zaèínající písmenem L a konèící pøed písmenem
+   c bude zru¹en.
+
+Uvìdomte si, ¾e rozdíl mezi "ru¹ením" ("killing") a "mazáním"
+("deleting") je ten, ¾e "zru¹ené" vìci mohou být zpìt vhozeny, zatímco
+"smazané" nikoliv.  Obecnì pøíkazy, které mohou smazat vìt¹í mno¾ství
+textu, ukládají text, zatímco pøíkazy, které ma¾ou jediný znak nebo
+pouze prázdné øádky a mezery, mazaný text neukládají.
+
+>> Pøesuòte kurzor na zaèátek neprázdného øádku.
+   Pak stisknìte C-k pro zru¹ení textu na tomto øádku.
+>> Stisknìte C-k podruhé.  Uvidíte, ¾e to zru¹í znak nového øádku, který
+   je za tímto øádkem.
+
+V¹imnìte si, ¾e jedno C-k zru¹í obsah øádku a druhé C-k zru¹í øádek
+samotný a posune v¹echny dal¹í øádky nahoru.  C-k zpracovává numerický
+argument speciálnì: zru¹í odpovídající poèet øádkù VÈETNÌ jejich
+obsahu.  To u¾ není opakování.  C-u 2 C-k zru¹í dva øádky a jejich
+obsah; dvojitý stisk C-k by toto obvykle neudìlal.
+
+Vracení textu zpìt se nazývá "vhazování" ("yanking").  (Pøedstavte
+si opìtovné vhazování, vracení døíve odstranìného textu zpátky.)
+Zru¹ený text mù¾ete vhodit buï na stejné místo, kde byl zru¹en,
+nebo na jiné místo v bufferu, nebo dokonce i do jiného souboru.
+Text mù¾ete vhodit i vícekrát, vytváøíte tak jeho dal¹í kopie.
+
+Pøíkazem pro vhazování je C-y.  Tento pøíkaz vlo¾í poslední smazaný
+text na pozici, na které se nachází kurzor.
+
+>> Zkuste to; stisknìte C-y pro vhození textu zpìt.
+
+Stisknete-li nìkolikrát C-k po sobì, v¹echen smazaný text je ulo¾en
+spoleènì tak, aby bylo mo¾né vhodit zpìt v¹echny øádky najednou.
+
+>> Stisknìte nìkolikrát C-k.
+
+Nyní obnovte poslednì zru¹ený text:
+
+>> Stisknìte C-y.  Pak posuòte kurzor o nìkolik øádkù ní¾e a stisknìte
+   C-y znova.  Nyní vidíte, jak lze text kopírovat.
+
+Co kdy¾ máte nìjaký text, který byste rádi vhodili zpìt a pak zru¹íte
+nìco jiného?  C-y by vlo¾ilo poslední zru¹ený text.  Av¹ak pøedchozí
+text není ztracen.  Mù¾ete jej získat zpìt pou¾itím pøíkazu M-y.  Poté,
+co provedete C-y pro získání posledního zru¹eného textu, stisk M-y
+vymìní tento vhozený text za pøedchozí zru¹ený text.  Dal¹ími a
+dal¹ími stisky M-y dostáváte pøedcházející a pøedcházející zru¹ené
+texty.  Kdy¾ dosáhnete textu, který hledáte, nemusíte s ním pro jeho
+uchování nic dal¹ího provádìt.  Jednodu¹e vhozený text ponechejte, kde
+je, a pokraèujte v editaci.
+
+Pokud opakujete M-y dostateènì dlouho, dostanete se zpátky k výchozímu
+bodu (poslednì zru¹enému textu).
+
+>> Zru¹te øádek, pøesuòte kurzor nìkam jinam a zru¹te jiný øádek.
+   Pak proveïte C-y pro vrácení druhého zru¹eného øádku.
+   Pak proveïte M-y a vhozený øádek bude nahrazen prvním zru¹eným øádkem.
+   Opakujte M-y a pozorujte, co dostáváte.  Pokraèujte v tom, dokud se
+   znovu neobjeví druhý zru¹ený øádek a pak nìkolik dal¹ích.
+   Chcete-li, mù¾ete zkusit pøedat M-y kladné a záporné argumenty.
+
+
+* UNDO
+------
+
+Jestli¾e provedete v textu zmìnu a pak zjistíte, ¾e to byl omyl, mù¾ete
+zmìnu vrátit pøíkazem undo, C-x u.
+
+C-x u obvykle vrátí zmìny provedené jedním pøíkazem; pokud C-x u
+zopakujete nìkolikrát za sebou, ka¾dé opakování vrátí jeden dal¹í
+pøíkaz.
+
+Jsou ale dvì výjimky: pøíkazy, které nemìní text, se nepoèítají (to
+zahrnuje pøíkazy pro pohyb kurzoru a scrollování) a znaky vkládající
+samy sebe jsou obvykle zpracovávány ve skupinách a¾ po 20.  (To je kvùli
+tomu, aby se zredukoval poèet C-x u nutných pro vrácení vkládaného
+textu.)
+
+>> Zru¹te tento øádek pomocí C-k, stisknìte pak C-x u a øádek by se mìl
+   znovu objevit.
+
+Alternativní undo pøíkaz je C-_; pracuje stejnì jako C-x u, je v¹ak
+ménì pracné jej aplikovat nìkolikrát za sebou.  Nevýhodou C-_ je, ¾e
+na nìkterých klávesnicích není zøejmé, jak jej vyvolat.  To je dùvod,
+proè nabízíme i C-x u.  Na nìkterých terminálech mù¾ete C-_ vyvolat
+stiskem / pøi stisknutém CTRL.
+
+Numerický argument pro C-_ a C-x u funguje jako poèet opakování.
+
+Pomocí pøíkazu undo mù¾ete vrátit zru¹ený stejnì jako smazaný text.
+Rozdíl mezi mazáním a ru¹ením textu ovlivòuje mo¾nost vhození tohoto
+textu pomocí C-y, neovlivòuje mo¾nosti pøíkazu undo.
+
+
+* SOUBORY
+---------
+
+Aby text, který editujete, zùstal trvale uchován, musíte jej ulo¾it do
+souboru.  Jinak by byl po ukonèení Emacsu ztracen.  Svoji editaci
+spojíte se souborem "vyhledáním" ("finding") souboru.  (Také se to
+nazývá "nav¹tívení" ("visiting") souboru.)
+
+Vyhledání souboru znamená, ¾e vidíte jeho obsah v Emacsu.  V mnoha
+ohledech je to, jako byste editovali pøímo ten soubor.  Nicménì zmìny,
+které prostøednictvím Emacsu èiníte, se nestanou trvalými, dokud tyto
+zmìny do souboru "neulo¾íte" ("save").  Tím se zamezí nechtìnému ponechání
+èásteènì zmìnìného souboru v systému.  Dokonce i kdy¾ soubor ulo¾íte,
+Emacs uchová pùvodní soubor pod zmìnìným názvem pro pøípad, ¾e byste
+zjistili, ¾e va¹e úpravy byly chybné.
+
+Kdy¾ se podíváte do dolní èásti obrazovky, uvidíte øádek, který zaèíná a
+konèí pomlèkami a na zaèátku má "2J:-- TUTORIAL.cs" nebo nìco podobného.
+Tato èást obrazovky obvykle obsahuje jméno souboru, který je právì
+nav¹tíven.  Zrovna teï máte nav¹tíven soubor nazvaný "TUTORIAL.cs",
+který je va¹í osobní èmárací kopií tutoriálu Emacsu.  Kdy¾ v Emacsu
+vyhledáte soubor, jeho jméno se objeví pøesnì na tom místì.
+
+Pøíkazy pro vyhledávání a ukládání souborù se na rozdíl od ostatních
+pøíkazù, které jste se zatím nauèili, skládají ze dvou znakù.  Oba
+zaèínají znakem CONTROL-x.  Existuje celá øada pøíkazù zaèínajících na
+CONTROL-x; mnoho z nich pracuje se soubory, buffery a podobnými vìcmi.
+Tyto pøíkazy jsou dlouhé dva, tøi nebo ètyøi znaky.
+
+Dal¹í vìcí ohlednì pøíkazu pro vyhledání souboru je to, ¾e musíte øíct,
+které jméno souboru chcete.  Øíkáme, ¾e pøíkaz "ète argument
+z terminálu" (v tomto pøípadì je argumentem jméno souboru).  Poté co
+vyvoláte pøíkaz
+
+       C-x C-f   Vyhledání souboru
+
+Emacs se vás zeptá na jméno souboru.  Jméno souboru, které pí¹ete, se
+objevuje ve spodním øádku obrazovky, který se v této situaci nazývá
+minibuffer.  Pro editaci jména souboru mù¾ete pou¾ívat obvyklé editaèní
+pøíkazy Emacsu.
+
+Zadávání jména souboru (obecnì kterýkoliv vstup z minibufferu) mù¾ete
+zru¹it pøíkazem C-g.
+
+>> Stisknìte C-x C-f a pak C-g.  To minibuffer zru¹í a takté¾ to zru¹í
+   pøíkaz C-x C-f, který minibuffer pou¾il.  Tak¾e nevyhledáte ¾ádný
+   soubor.
+
+Po napsání jména souboru stisknìte <Return>.
+Pøíkaz C-x C-f pak zaène pracovat a vyhledá soubor, který jste zvolili.
+Po skonèení pøíkazu C-x C-f minibuffer zmizí.
+
+Po malé chvilce se obsah souboru objeví na obrazovce a mù¾ete jej
+editovat.  Kdy¾ chcete zmìny trvale ulo¾it, pou¾ijte pøíkaz
+
+       C-x C-s   Ulo¾ení souboru
+
+To zkopíruje text z Emacsu do souboru.  Kdy¾ to provedete poprvé, Emacs
+pøejmenuje pùvodní soubor na soubor s novým jménem, aby nebyl ztracen.
+Nové jméno je vytvoøeno pøidáním "~" na konec pùvodního jména souboru.
+
+Kdy¾ je ukládání dokonèeno, Emacs zobrazí jméno zapsaného souboru.
+Mìli byste ukládat rozumnì èasto, abyste neztratili pøíli¹ mnoho práce
+v pøípadì pádu systému.
+
+>> Stisknìte C-x C-s pro ulo¾ení va¹í kopie tutoriálu.
+   Mìlo by to zobrazit "Wrote ...TUTORIAL.cs" ve spodním øádku obrazovky.
+
+POZNÁMKA: Na nìkterých systémech zpùsobí stisk C-x C-s ztuhnutí
+obrazovky a nevidíte ¾ádný dal¹í výstup z Emacsu.  To znamená, ¾e
+"vlastnost" operaèního systému zvaná "flow control" zachycuje C-s a
+nepropustí jej k Emacsu.  Pro odtuhnutí obrazovky stisknìte C-q.  Pak
+v sekci "Spontaneous Entry to Incremental Search" v manuálu Emacsu
+vyhledejte radu, jak se vypoøádat s touto "vlastností".
+
+Existující soubor mù¾ete vyhledat, abyste jej mohli prohlí¾et nebo
+editovat.  Mù¾ete také vyhledat soubor, který je¹tì neexistuje.  To je
+zpùsob, jakým lze vytvoøit soubor v Emacsu: vyhledejte soubor, který
+bude na zaèátku prázdný a pak zaènìte vkládat text urèený pro tento
+soubor.  Kdy¾ po¾ádáte o ulo¾ení, Emacs skuteènì vytvoøí soubor
+s textem, který jste vlo¾ili.  Od té chvíle se pak mù¾ete cítit, jako
+kdybyste editovali ji¾ existující soubor.
+
+
+* BUFFERY
+---------
+
+Jestli¾e vyhledáte pomocí C-x C-f druhý soubor, první soubor v Emacsu
+zùstává.  Mù¾ete se do nìj zpìt pøepnout jeho opìtovným vyhledáním
+pomocí C-x C-f.  Tímto zpùsobem mù¾ete do Emacsu dostat pomìrnì hodnì
+souborù.
+
+>> Vytvoøte soubor pojmenovaný "foo" stiskem C-x C-f foo <Return>.
+   Potom vlo¾te nìjaký text, zeditujte jej a ulo¾te "foo" stiskem C-x C-s.
+   Nakonec stisknìte C-x C-f TUTORIAL.cs <Return>, èím¾ se vrátíte zpìt do
+   tutoriálu.
+
+Emacs ukládá text ka¾dého souboru do objektu nazývaného "buffer".
+Vyhledání souboru vytvoøí v Emacsu nový buffer.  Chcete-li vidìt seznam
+bufferù, které momentálnì existují ve va¹em procesu Emacs, stisknìte:
+
+       C-x C-b   Seznam bufferù
+
+>> Zkuste teï C-x C-b.
+
+Podívejte se, ¾e ka¾dý buffer má v seznamu jméno a mù¾e tam mít také jméno
+souboru, jeho¾ text obsahuje.  Nìkteré buffery neodpovídají souborùm.
+Napøíklad buffer pojmenovaný "*Buffer List*" nemá ¾ádný soubor.  Je to
+buffer, který obsahuje seznam bufferù vytvoøený pomocí C-x C-b.
+JAKÝKOLIV text, který vidíte v emacsovém oknì, je v¾dy souèástí
+nìjakého bufferu.
+
+>> Stisknìte C-x 1, abyste se zbavili seznamu bufferù.
+
+Pokud provedete zmìny textu jednoho souboru a pak vyhledáte jiný soubor,
+nezpùsobí to ulo¾ení prvního souboru.  Jeho zmìny zùstávají v Emacsu
+uchovány v jemu odpovídajícím bufferu.  Vytvoøení a editace druhého
+souboru nemá ¾ádný vliv na buffer prvního souboru.  To je velmi
+u¾iteèné, ale také to znamená, ¾e potøebujete vhodný zpùsob, jak ulo¾it
+buffer prvního souboru.  Nutnost pøepnout se zpátky pomocí C-x C-f, aby
+jej bylo mo¾no ulo¾it prostøednictvím C-x C-s, by byla nemístnì
+obtì¾ující.  Tak¾e máme
+
+       C-x s     Ulo¾ení nìkterých bufferù
+
+C-x s se vás zeptá na ka¾dý buffer, který obsahuje zmìny, které jste
+neulo¾ili.  Pro ka¾dý takový buffer se vás zeptá, zda jej má ulo¾it.
+
+>> Vlo¾te øádek textu a pak stisknìte C-x s.
+   Mìli byste být dotázáni, zda má být ulo¾en buffer nazvaný TUTORIAL.cs.
+   Odpovìzte na tuto otázku ano (yes) stiskem "y".
+
+
+* ROZ©IØOVÁNÍ SADY PØÍKAZÙ
+--------------------------
+
+Existuje mnohem, mnohem více pøíkazù Emacsu, ne¾ které by vùbec mohly
+být rozmístìny na v¹echny CONTROL a META znaky.  Emacs tento problém
+obchází prostøednictvím X (eXtend) pøíkazu.  Ten vzniká dvìma zpùsoby:
+
+       C-x     Znakový eXtend.  Následován jedním znakem.
+       M-x     Pojmenovaný pøíkaz eXtend.  Následován dlouhým názvem.
+
+To jsou pøíkazy, které jsou obecnì u¾iteèné, av¹ak ménì èasto pou¾ívané
+ne¾ ty, které jste se ji¾ nauèili.  U¾ jste vidìli dva z nich: souborové
+pøíkazy C-x C-f pro vyhledání a C-x C-s pro ulo¾ení.  Jiný pøíklad je
+pøíkaz pro ukonèení Emacsu -- tj. pøíkaz C-x C-c.  (Nemìjte obavy
+o ztrátu zmìn, které jste provedli; C-x C-c nabídne ulo¾ení ka¾dého
+zmìnìného souboru, ne¾ Emacs ukonèí.)
+
+C-z je pøíkaz na *doèasné* opu¹tìní Emacsu -- mù¾ete se po nìm do
+spu¹tìného Emacsu vrátit.
+
+Na systémech, které to umo¾òují, C-z Emacs "pozastaví"; tzn. vrátí vás
+do shellu, av¹ak Emacs neukonèí.  V nejbì¾nìj¹ích shellech se mù¾ete do
+Emacsu vrátit pøíkazem `fg' nebo pomocí `%emacs'.
+
+Na systémech, které pozastavování procesù nemají implementováno, C-z
+vytvoøí subshell bì¾ící pod Emacsem, aby vám dal ¹anci spustit jiné
+programy a pak se do Emacsu vrátit; neprovede tedy pravé opu¹tìní
+Emacsu.  V tom pøípadì je obvyklou cestou návratu ze subshellu do Emacsu
+shellovský pøíkaz `exit'.
+
+Chvíle pro pou¾ití C-x C-c nastane, kdy¾ se chystáte odhlásit ze
+systému.  Správné je to také pøi ukonèování Emacsu vyvolaného po¹tovním
+programem a rùznými jinými utilitami, proto¾e ty nemusí vìdìt, jak si
+poradit s pozastavením Emacsu.  Nicménì za normálních okolností, pokud
+se nechystáte odlogovat, je lépe Emacs pozastavit pomocí C-z ne¾ jej
+ukonèit.
+
+Existuje mnoho C-x pøíkazù.  Zde je seznam tìch, které jste se ji¾ nauèili:
+
+       C-x C-f         Vyhledání souboru
+       C-x C-s         Ulo¾ení soubor
+       C-x C-b         Seznam bufferù
+       C-x C-c         Ukonèení Emacsu
+       C-x u           Undo
+
+Pojmenované eXtended pøíkazy jsou pøíkazy, které jsou pou¾ívány je¹tì
+ménì, nebo pøíkazy, které jsou pou¾ívány jenom v jistých módech.
+Pøíkladem je pøíkaz replace-string, který globálnì nahradí jeden øetìzec
+jiným.  Kdy¾ stisknete M-x, vypí¹e se na spodním øádku obrazovky prompt
+M-x a vy byste mìli zadat jméno pøíkazu; v tomto pøípadì
+"replace-string".  Jednodu¹e napi¹te "repl s<TAB>" a Emacs název doplní.
+Dokonèete zadávání jména pøíkazu pomocí <Return>.
+
+Pøíkaz replace-string vy¾aduje dva argumenty -- øetìzec, který má být
+nahrazen, a øetìzec, který jej má nahradit.  Ka¾dý argument musíte
+ukonèit pomocí <Return>.
+
+>> Pøesuòte kurzor na prázdný øádek dva øádky pod tímto.
+   Pak napi¹te M-x repl s<Return>zmìnil<Return>modifikoval<Return>.
+
+   V¹imnìte si, jak se tento øádek zmìnil: nahradili jste slovo
+   z-m-ì-n-i-l slovem "modifikoval", kdekoliv se za aktuální pozicí
+   kurzoru vyskytlo.
+
+
+* AUTOMATICKÉ UKLÁDÁNÍ
+----------------------
+
+Jestli¾e jste provedli zmìny v souboru, ale nemáte je je¹tì ulo¾eny,
+mohou být v pøípadì pádu systému ztraceny.  Aby vás Emacs od toho
+uchránil, periodicky zapisuje "auto save" soubor pro ka¾dý soubor, který
+editujete.  Jméno auto save souboru má na zaèátku a na konci #;
+napøíklad jestli¾e se vá¹ soubor jmenuje "hello.c", jeho auto save
+soubor se jmenuje "#hello.c#".  Kdy¾ soubor ulo¾íte normálním zpùsobem,
+Emacs auto save soubor sma¾e.
+
+Jestli¾e dojde k pádu systému, mù¾ete svoji editaci obnovit z auto-save
+souboru, a to normálním vyhledáním souboru (toho, který jste editovali,
+ne auto save souboru) a následnou aplikací M-x recover file<return>.
+Na ¾ádost o potvrzení odpovìzte zadáním yes<return> pro pokraèování a
+obnovení auto-save dat.
+
+
+* ECHO OBLAST
+-------------
+
+Kdy¾ Emacs vidí, ¾e pí¹ete pøíkazy pomalu, ukazuje vám je ve spodní
+èásti obrazovky v oblasti nazývané "echo oblast".  Echo oblast obsahuje
+dolní øádek obrazovky.
+
+
+* STAVOVÝ ØÁDEK
+---------------
+
+Øádek bezprostøednì nad echo oblastí se nazývá "stavový øádek" ("mode line").
+Stavový øádek øíká nìco jako:
+
+2J:** TUTORIAL.cs       (Fundamental)--L670--58%----------------
+
+Tento øádek podává u¾iteènou informaci o stavu Emacsu a textu, který
+editujete.
+
+U¾ víte, co znamená jméno souboru -- je to soubor, který jste vyhledali.
+-NN%-- oznaèuje va¹i aktuální pozici v textu; øíká, ¾e NN procent textu
+je nad horním okrajem obrazovky.  Je-li zaèátek souboru na obrazovce, je
+zde --Top-- a ne --00%--.  Je-li konec textu na obrazovce, je zde
+--Bot--.  Jestli¾e se díváte na tak malý text, ¾e se celý vejde na
+obrazovku, stavový øádek øíká --All--.
+
+Hvìzdièky poblí¾ zaèátku znamenají, ¾e jste text zmìnili.  Tìsnì po
+vyhledání nebo ulo¾ení souboru v této èásti stavového øádku nejsou ¾ádné
+hvìzdièky, pouze pomlèky.
+
+Èást stavového øádku v závorkách øíká, v jakých editaèních módech se
+nacházíte.  Implicitní mód je Fundamental, co¾ je ten, který momentálnì
+pou¾íváte.  Je pøíkladem hlavního módu ("major mode").
+
+Emacs má celou øadu hlavních módù.  Nìkteré z nich jsou urèeny pro
+editaci rùzných programovacích jazykù a/nebo textù jako tøeba Lisp mód,
+Text mód, atd.  V libovolném okam¾iku je aktivní právì jeden hlavní mód a
+jeho jméno lze nalézt ve stavovém øádku na místì, kde je teï
+"Fundamental".
+
+Ka¾dý hlavní mód mìní chování nìkterých pøíkazù.  Napøíklad existují
+pøíkazy pro vytváøení komentáøù v programu, a proto¾e ka¾dý programovací
+programovací jazyk má jinou pøedstavu o tom, jak má komentáø vypadat,
+musí ka¾dý hlavní mód vkládat komentáøe jinak.  Ka¾dý hlavní mód je
+vlastnì jméno extended pøíkazu, kterým se do tohoto módu mù¾ete
+pøepnout.  Napøíklad M-x fundamental-mode je pøíkaz pro pøepnutí se do
+Fundamental módu.
+
+Chystáte-li se editovat èeský text, jako tøeba tento soubor,
+pravdìpodobnì byste mìli pou¾ít Text mód.
+>> Napi¹te M-x text-mode<Return>.
+
+Nebojte se, ¾ádný z pøíkazù, které jste se nauèili, chování Emacsu nijak
+významnì nezmìní.  Mù¾ete si ale v¹imnout, ¾e M-f a M-b nyní pracují
+s apostrofy jako se souèástmi slov.  Pøedtím, ve Fundamental módu, M-f a
+M-b pracovaly s apostrofy coby oddìlovaèi slov.
+
+Hlavní módy obvykle dìlají men¹í zmìny, jako byla tato: pøíkazy vìt¹inou
+dìlají "toté¾", ale v ka¾dém hlavním módu pracují tro¹ku jinak.
+
+Dokumentaci k aktuálnímu hlavnímu módu si mù¾ete zobrazit stiskem C-h m.
+
+>> Jednou nebo nìkolikrát pou¾ijte C-u C-v, abyste tento øádek dostali
+   k vrcholu obrazovky.
+>> Stisknìte C-h m, abyste vidìli, jak se Text mód li¹í od Fundamental
+   módu.
+>> Stisknìte C-x 1 pro odstranìní dokumentace z obrazovky.
+
+Hlavní módy se nazývají hlavní proto, ¾e také existují vedlej¹í módy
+(minor modes).  Vedlej¹í módy nejsou alternativou k hlavním módùm, nýbr¾
+jejich malé modifikace.  Ka¾dý vedlej¹í mód mù¾e být zapnut nebo vypnut
+sám o sobì nezávisle na v¹ech ostatních vedlej¹ích módech a nezávisle na
+hlavním módu.  Tak¾e nemusíte pou¾ívat ¾ádný vedlej¹í mód nebo mù¾ete
+pou¾ívat jeden vedlej¹í mód nebo libovolnou kombinaci nìkolika
+vedlej¹ích módù.
+
+Jedním z velmi u¾iteèných vedlej¹ích módù, zejména pro editaci èeských
+textù, je Auto Fill mód.  Kdy¾ je tento mód zapnut, Emacs zalomí øádek
+mezi dvìma slovy, kdykoliv vkládáte text a øádek se stane pøíli¹
+dlouhým.
+
+Auto Fill mód mù¾ete zapnout provedením M-x auto-fill-mode<Return>.
+Je-li tento mód zapnut, mù¾ete jej vypnout provedením M-x
+auto-fill-mode<Return>.  Je-li mód vypnut, tento pøíkaz jej zapíná,
+a je-li mód zapnut, tak jej tento pøíkaz vypíná.  Øíkáme, ¾e tento
+pøíkaz pøepíná ("toggles") tento mód.
+
+>> Napi¹te teï M-x auto-fill-mode<Return>.  Pak vkládejte "asdf " stále
+   dokola tak dlouho, a¾ uvidíte, jak se vkládaný øádek rozdìlí na dva
+   øádky.  Do textu musíte vkládat mezery proto, ¾e Auto Fill mód
+   zalamuje øádky pouze v mezerách.
+
+Okraj je obvykle nastaven na 70 znakù, ale mù¾ete to zmìnit pøíkazem
+C-x f.  Hodnotu okraje, kterou si pøejete, byste mìli pøedat jako
+numerický argument.
+
+>> Napi¹te C-x f s argumentem 20.  (C-u 2 0 C-x f).
+   Pak pi¹te nìjaký text a pozorujte, jak Emacs vyplòuje øádky po
+   20 znacích.  Pak nastavte okraj zpátky na 70 opìtovným pou¾itím
+   C-x f.
+
+Jestli¾e provedete zmìny uprostøed odstavce, Auto Fill mód jej
+nepøeformátuje. 
+Pro pøeformátování odstavce stisknìte M-q (META-q) s kurzorem uvnitø
+odstavce.
+
+>> Pøesuòte kurzor do pøedchozího odstavce a stisknìte M-q.
+
+
+* VYHLEDÁVÁNÍ
+-------------
+
+Emacs umí v textu vyhledávat øetìzce (tj. skupiny spojených znakù nebo
+slov) smìrem vpøed nebo vzad.  Hledání øetìzce je pøíkaz pøesunující
+kurzor; pøesune kurzor na nejbli¾¹í místo, kde se tento øetìzec nachází.
+
+Vyhledávací pøíkaz Emacsu se li¹í od vyhledávacích pøíkazù vìt¹iny
+editorù v tom smyslu, ¾e je "inkrementální".  To znamená, ¾e vyhledávání
+se provádí u¾ v okam¾iku, kdy zadáváte vyhledávací øetìzec.
+
+Pøíkaz pro zahájení hledání vpøed je C-s a pro hledání vzad C-r.
+ALE POZOR!  Nezkou¹ejte to je¹tì.
+
+Kdy¾ stisknete C-s, uvidíte v echo oblasti prompt "I-search".  To vám
+øíká, ¾e Emacs se nachází ve stavu, který se nazývá inkrementální hledání,
+a èeká, a¾ mu zadáte, co chcete hledat.  <RET> hledání ukonèí.
+
+>> Nyní zahajte hledání stiskem C-s.  POMALU, písmeno po písmenu, pi¹te
+   slovo 'kurzor'.  Po ka¾dém písmenu si v¹imnìte, co se dìje s kurzorem.  
+   Teï jste vyhledali "kurzor" poprvé.
+>> Stisknìte C-s znovu, abyste nalezli dal¹í výskyt "kurzor".
+>> Nyní ètyøikrát stisknìte <Delete> a pozorujte, jak se kurzor
+   pøesunuje.
+>> Stisknìte <RET> pro ukonèení hledání.
+
+Vidìli jste, co se stalo?  Emacs se v inkrementálním hledání pokou¹í
+pøejít na dal¹í výskyt øetìzce, který jste dosud napsali.  Chcete-li
+pøejít na dal¹í výskyt 'kurzor', jednodu¹e stisknìte C-s znovu.
+Jestli¾e u¾ ¾ádný takový výskyt není, Emacs pípne a øekne vám, ¾e
+hledání momentálnì "selhává", C-g hledání ukonèí.
+
+POZNÁMKA: Na nìkterých systémech stisk C-s zpùsobí ztuhnutí
+obrazovky a nevidíte ¾ádný dal¹í výstup z Emacsu.  To znamená, ¾e
+"vlastnost" operaèního systému zvaná "flow control" zachycuje C-s a
+nepropustí jej k Emacsu.  Pro odtuhnutí obrazovky stisknìte C-q.  Pak
+v sekci "Spontaneous Entry to Incremental Search" v manuálu Emacsu
+vyhledejte radu, jak se vypoøádat s touto "vlastností".
+
+Jestli¾e uprostøed inkrementálního hledání stisknete <Delete>, uvidíte,
+¾e poslední znak v hledaném øetìzci zmizí a hledání se vrací na poslední
+místo hledání.  Pøedpokládejme napøíklad, ¾e jste napsali "c", abyste
+na¹li první výskyt "k".  Jestli¾e nyní stisknete "u", kurzor se pøesune na
+první výskyt "ku".  Teï stisknìte <Delete>.  To vyma¾e "u" z hledaného
+øetìzce a kurzor se pøesune zpìt na první výskyt "k".
+
+Jestli¾e uprostøed hledání stisknete CONTROL nebo META znak (s nìkolika
+výjimkami -- znaky, které jsou speciální v hledání, jako C-s a C-r),
+hledání se ukonèí.
+
+C-s zahajuje hledání, které hledá jakýkoliv výskyt hledaného øetìzce ZA
+aktuální pozicí kurzoru.  Chcete-li nìco hledat v pøedcházejícím textu,
+stisknìte C-r místo C-s.  V¹e, co jsme øekli o C-s, platí také o C-r
+kromì toho, ¾e smìr hledání je opaèný.
+
+
+* VÍCE OKEN
+-----------
+
+Jednou z pìkných vlastností Emacsu je to, ¾e mù¾e na obrazovce zobrazit
+více oken souèasnì.
+
+>> Pøesuòte kurzor na tento øádek a stisknìte C-u 0 C-l.
+
+>> Teï stisknìte C-x 2, co¾ rozdìlí obrazovku na dvì okna.
+   Obì okna zobrazují tento tutoriál.  Kurzor zùstává navrchu okna.
+
+>> Tisknìte C-M-v pro scrollování spodního okna.
+   (Nemáte-li skuteènou klávesu META, stisknìte ESC C-v.)
+
+>> Stisknìte C-x o ("o" jako "other") pro pøesun kurzoru do dolního okna.
+
+>> Pou¾ijte C-v a M-v ve spodním oknì pro jeho scrollování.
+   Pokraèujte ve ètení tìchto instrukcí v horním oknì.
+
+>> Znovu stisknìte C-x o pro pøesun kurzoru zpìt do horního okna.
+   Kurzor v horním oknì je pøesnì na místì, kde byl pùvodnì.
+
+Mù¾ete dále pou¾ívat C-x o pro pøepínání mezi okny.  Ka¾dé okno má svoji
+vlastní pozici kurzoru, ale jenom jedno okno kurzor skuteènì zobrazuje.
+V¹echny obvyklé editaèní pøíkazy platí pro okno, ve kterém se nachází
+kurzor.  Toto okno nazýváme "aktivní okno" ("selected window").
+
+Pøíkaz C-M-v je velmi u¾iteèný, jestli¾e v jednom oknì editujete text a
+druhé okno pou¾íváte pouze pro pøehled.  Mù¾ete kurzor nechávat stále
+v oknì, kde editujete, a postupovat po druhém oknì pomocí C-M-v.
+
+C-M-v je pøíkladem CONTROL-META znaku.  Máte-li skuteènou META klávesu,
+mù¾ete vyvolat C-M-v pøidr¾ením obou kláves CTRL a META pøi stisku v.
+Nezále¾í na tom, zda je prvnì stisknuta CTRL nebo META, proto¾e obì tyto
+klávesy fungují jako modifikátory kláves, které tisknete.
+
+Pokud nemáte skuteènou META klávesu, mù¾ete místo ní pou¾ít ESC, na
+poøadí zále¾í: musíte stisknout ESC a následnì CTRL-v; CTRL-ESC v by
+nefungovalo.  To proto, ¾e ESC je samostatný znak, nikoliv modifikátor.
+
+>> Stisknìte C-x 1 (v horním oknì), abyste se zbavili dolního okna.
+
+(Kdybyste C-x 1 stiskli v dolním oknì, odstranilo by to horní okno.
+Chápejte tento pøíkaz jako "ponechej právì jedno okno -- to, ve kterém
+zrovna jsem".)
+
+Nemusíte v obou oknech zobrazovat tentý¾ buffer.  Jestli¾e pou¾ijete
+C-x C-f pro vyhledání souboru v jednom z oken, druhé okno se nezmìní.
+Mù¾ete vyhledávat soubory v obou oknech nezávisle.
+
+Zde je dal¹í zpùsob, jak vyu¾ít dvì okna ke zobrazení dvou rùzných vìcí:
+
+>> Stisknìte C-x 4 C-f následované jménem nìkterého z va¹ich souborù.
+   Dokonèete to pomocí <Return>.  Vidíte zadaný soubor v dolním oknì.
+   Pøesunul se tam i kurzor.
+
+>> Stisknìte C-x o pro pøesun zpìt do horního okna a C-x 1 pro smazání
+   dolního okna.
+
+
+* REKURZIVNÍ EDITAÈNÍ ÚROVNÌ
+----------------------------
+
+Obèas se dostanete do nìèeho, co se nazývá "rekurzivní editaèní úroveò"
+("recursive editing level").  To je indikováno hranatými závorkami ve
+stavovém øádku obklopujícími závorky okolo jména hlavního módu.
+Napøíklad mù¾ete vidìt [(Fundamental)] místo (Fundamental).
+
+Abyste se dostali z rekurzivní editaèní úrovnì, stisknìte ESC ESC ESC.
+To je obecný "vyskakovací" pøíkaz.  Mù¾ete jej pou¾ít té¾ pro odstranìní
+nìkterých oken a vyskoèení z minibufferu.
+
+>> Stisknìte M-x, abyste se dostali do minibufferu; pak stisknìte
+   ESC ESC ESC, abyste se z nìj dostali ven.
+
+Z rekurzivní editaèní úrovnì nemù¾ete vyskoèit pomocí C-g.  To proto, ¾e
+C-g je vyu¾íváno pro ru¹ení pøíkazù a argumentù UVNITØ rekurzivní
+editaèní vrstvy.
+
+
+* ZÍSKÁNÍ DAL©Í NÁPOVÌDY
+------------------------
+
+V tomto tutoriálu jsme se pokusili poskytnout vám dostatek informací,
+abyste mohli zaèít Emacs pou¾ívat.  V Emacsu je toho tolik, ¾e by bylo
+nemo¾né to zde v¹echno objasnit.  Nicménì se o Emacsu mù¾ete nauèit
+více, proto¾e má mnoho u¾iteèných vlastností.  Emacs nabízí pøíkazy pro
+ètení dokumentace svých pøíkazù.  V¹echny tyto "help" pøíkazy
+zaèínají znakem CONTROL-h, který se nazývá "help znak".
+
+Pro pou¾ití vlastností nápovìdy stisknìte znak C-h a pak znak øíkající,
+jaký druh nápovìdy ¾ádáte.  Jste-li OPRAVDU ztraceni, stisknìte C-h ? a
+Emacs vám sdìlí, jaké druhy nápovìdy vám mù¾e poskytnout.  Jestli¾e
+jste stiskli C-h a pak jste se rozhodli, ¾e ¾ádnou nápovìdu nechcete,
+jednodu¹e to zru¹te stiskem C-g.
+
+(Na nìkterých poèítaèích je význam znaku C-h zmìnìn.  To by opravdu
+nemìlo být obecným nastavením pro v¹echny u¾ivatele, tak¾e máte právo
+stì¾ovat si systémovému administrátorovi.  Do té doby, jestli¾e C-h
+nezobrazuje hlá¹ení o nápovìdì v dolní èásti obrazovky, zkuste místo
+toho pou¾ívat klávesu F1 nebo M-x help RET.)
+
+Nejzákladnìj¹í help pøíkaz je C-h c.  Stisknìte C-h, znak c a klávesový
+pøíkaz; Emacs pak zobrazí velmi struèný popis pøíkazu.
+
+>> Stisknìte C-h c C-p.
+   Hlá¹ení by mìlo vypadat asi takto
+
+       C-p runs the command previous-line
+
+To vám sdìluje "jméno funkce".  Jména funkcí jsou pou¾ívána zejména pro
+konfiguraci a roz¹iøování Emacsu.  Ale proto¾e jména funkcí jsou volena
+tak, aby naznaèovala, co odpovídající pøíkaz dìlá, mohou slou¾it také
+jako velmi struèná dokumentace -- dostateèná k tomu, aby vám pøipomenula
+pøíkazy, které jste se ji¾ nauèili.
+
+Víceznakové pøíkazy jako C-x C-s a (pokud nemáte META, EDIT ani ALT
+klávesu) <ESC>v jsou po C-h c povoleny také.
+
+K získání více informací o pøíkazu místo C-h c pou¾ijte C-h k.
+
+>> Stisknìte C-h k C-p.
+
+To zobrazí dokumentaci k funkci a její jméno v emacsovém oknì.  A¾
+výstup pøeètete, stisknìte C-x 1, abyste se textu nápovìdy zbavili.
+Nemusíte to dìlat hned.  Mù¾ete chvíli editovat a nahlí¾et do textu
+nápovìdy a teprve pak stisknout C-x 1.
+
+Zde jsou dal¹í u¾iteèné C-h volby:
+
+   C-h f       Popis funkce.  Zadáváte jméno funkce.
+
+>> Zkuste napsat C-h f previous-line<Return>.
+   To vypí¹e ve¹keré informace, které Emacs má o funkci implementující
+   pøíkaz C-p.
+
+Podobný pøíkaz C-h v zobrazí dokumentaci promìnné, její¾ hodnotu
+mù¾ete nastavit a zmìnit tím chování Emacsu.  Jméno promìnné zadáte, a¾
+se na nì Emacs zeptá.
+
+   C-h a       Pøíkazové apropos.  Zadejte klíèové slovo a Emacs vypí¹e
+               v¹echny pøíkazy, jejich¾ jména obsahují toto klíèové
+               slovo.  V¹echny tyto pøíkazy mohou být vyvolány pomocí
+               META-x.  Pro nìkteré pøíkazy pøíkazové apropos vypí¹e
+               také jedno nebo dvouznakové sekvence, které provádìjí
+               tentý¾ pøíkaz.
+
+>> Napi¹te C-h a file<Return>.
+
+To zobrazí v druhém oknì seznam v¹ech M-x pøíkazù obsahujících "file" ve
+svém názvu.  Znakové pøíkazy jako C-x C-f uvidíte vypsané vedle
+odpovídajících jmen pøíkazù jako find-file.
+
+>> Stisknìte C-M-v pro posun okna s nápovìdou.  Proveïte to nìkolikrát.
+
+>> Stisknìte C-x 1 pro smazání okna s nápovìdou.
+
+   C-h i       Ètení on-line manuálù (té¾ Info).  Tento pøíkaz
+               vás pøepne do speciálního bufferu s názvem `*info*',
+               ve kterém mù¾ete èíst on-line manuály pro balíky
+               nainstalované na va¹em systému.  Pokud stisknete
+               m emacs <Return> mù¾ete si napøíklad pøeèíst manuál
+               k Emacsu.  Pokud jste dosud nikdy nepou¾ívali Info,
+               stisknìte ? a Emacs vám pøedstaví hlavní mo¾nosti
+               módu pro Info.  A¾ si tyto mo¾nosti prostudujete,
+               mìli byste pou¾ívat Info manuál Emacsu jako svoji
+               primární dokumentaci.
+
+
+* ZÁVÌR
+-------
+
+Nezapomeòte, Emacs ukonèíte provedením pøíkazu C-x C-c.  Pro doèasný
+odskok do shellu, ze kterého se do Emacsu mù¾ete opìt vrátit,
+pou¾ijte C-z.
+
+Zámìrem tohoto tutoriálu je být srozumitelný v¹em novým u¾ivatelùm, tak¾e
+narazíte-li na nìco nejasného, tak neusedejte a neklaïte to za vinu sobì
+-- stì¾ujte si!
+
+
+KOPÍROVÁNÍ
+----------
+
+Tento tutoriál vychází z dlouhé øady emacsových tutoriálù zahájené
+tutoriálem napsaným Stuartem Cracraftem pro pùvodní Emacs.
+
+Tato verze tutoriálu je, podobnì jako GNU Emacs, chránìna copyrightem a
+je ¹íøena se svolením distribuovat kopie za jistých podmínek:
+
+Copyright (c) 1985, 1996 Free Software Foundation
+
+   Ka¾dému je zaruèeno právo vytváøet a distribuovat pøesné kopie tohoto
+   dokumentu tak, jak jej obdr¾el, na jakémkoliv médiu, s tím, ¾e bude
+   zachována tato poznámka o autorství a poznámka o svolení a ¾e
+   distributor zaruèuje pøíjemci právo na dal¹í redistribuci povolenou
+   touto poznámkou.
+
+   Je zaruèeno právo distribuovat modifikované verze tohoto dokumentu
+   nebo jeho èástí pod vý¹e uvedenými podmínkami za pøedpokladu, ¾e
+   obsahuje jasné poznámky uvádìjící, kdo provedl poslední modifikace.
+
+Podmínky pro kopírování Emacsu samotného jsou slo¾itìj¹í, av¹ak ve
+stejném duchu.  Pøeètìte si prosím soubor COPYING a pak pøedávejte kopie
+GNU Emacsu svým pøátelùm.  Pomáhejte potírat softwarovou obstrukci
+("vlastnictví") pou¾íváním, psaním a sdílením free softwaru!
+
+;;; Local Variables:
+;;; coding: iso-latin-2
+;;; End:
diff --git a/etc/TUTORIAL.sl b/etc/TUTORIAL.sl
new file mode 100644 (file)
index 0000000..8d41225
--- /dev/null
@@ -0,0 +1,1031 @@
+Copyright (c) 1985,96,97 Free Software Foundation, Inc;  See end for conditions.
+Emacs. Prvo berilo.
+
+Ukazi v Emacsu v splo¹nem vkljuèujejo tipki CONTROL (vèasih oznaèeni
+CTRL ali CTL) in META (vèasih oznaèena EDIT ali ALT). Namesto, da bi ju
+vedno izpisali s celim imenom, bomo uporabili naslednji okraj¹avi:
+
+ C-<chr>  pomeni, da moramo dr¾ati pritisnjeno tipko CONTROL, ko
+         vtipkamo znak <chr>. Oznaka C-f tako pomeni: dr¾imo
+         pritisnjeno tipko CONTROL in pritisnemo tipko f.
+ M-<chr>  pomeni, da moramo dr¾ati pritisnjeno tipko META, EDIT ali ALT,
+         ko vtipkamo znak <chr>. Èe na tipkovnici ni tipk META, EDIT
+         ali ALT, pritisnemo tipko ESC, jo spustimo in zatem
+         pritisnemo tipko <chr>. Tipko ESC bomo oznaèevali z <ESC>.
+
+Pomembno: Emacs zapustimo z ukazom C-x C-c (dva znaka).
+V uèbeniku so vaje, s katerimi preskusite nove ukaze. Oznaèujeta jih 
+znaka ,>>` ob levem robu. Primer:
+<<help-with-tutorial napolni preostanek s praznimi vrsticami>>
+>> Vtipkajte zdaj ukaz C-v (View next screen, Prika¾i naslednji zaslon),
+       da se premaknete na naslednji zaslon (kar poskusite, pritisnite
+       hkrati kontrolno tipko in V). Od zdaj naprej boste morali to
+       napraviti sami vsakiè, ko pridete do konca zaslona.
+
+Ste opazili, da sta se dve vrstici s prej¹njega zaslona ponovili? Ta
+kontinuiteta olaj¹a branje pri skakanju s strani na stran.
+
+Prva stvar, ki si jo morate zapomniti, je, kako se premikate po
+datoteki. Zdaj ¾e veste, da se premaknete za cel zaslon naprej z
+ukazom C-v. Za cel zaslon nazaj pa se premaknete z ukazom M-v
+(pritisnite tipko META in jo dr¾ite ter pritisnite tipko v, ali pa
+pritisnite in spustite <ESC> ter zatem pritisnite tipko v, èe tipke
+META, EDIT ali ALT na va¹i tipkovnici ni).
+
+>>  Nekajkrat pritisnite M-v in C-v, da vidite, kako ukaza delujeta.
+
+
+* POVZETEK
+----------
+
+Za pregled celega zaslona besedila so uporabni naslednji ukazi:
+
+       C-v     Premik se za cel zaslon naprej
+       M-v     Premik se za cel zaslon nazaj
+       C-l     Cel zaslon premaknemo tako, da je zdaj po vertikali
+                centriran okoli besedila, kjer se nahaja kazalèek (znak v
+                C-l je èrka L, ne ¹tevka 1)
+
+>> Poi¹èite kazalèek na zaslonu in si zapomnite besedilo okoli njega.
+   Vtipkajte C-l.
+   Ponovno poi¹èite kazalèek. Besedilo okoli njega je ostalo isto.
+
+
+* PREMIKANJE KAZALÈKA
+---------------------
+
+Premiki za celo stran naprej in nazaj so sicer uporabni, ampak kako pa
+pridemo do izbranega mesta na zaslonu?
+
+Naèinov je veè. Najosnovnej¹i je uporaba ukazov C-p, C-b, C-f in
+C-n. Ti po vrsti premaknejo kazalèek v prej¹njo vrstico, znak nazaj,
+znak naprej, in v naslednjo vrstico. Grafièno prikazano:
+
+                         prej¹nja vrstica, C-p
+                                 :
+                                 :
+       nazaj, C-b .... trenutni polo¾aj kazalèka .... naprej, C-f
+                                 :
+                                 :
+                         naslednja vrstica, C-n
+
+>> S pritiski na C-n ali C-p premaknite kazalèek v sredinsko vrstico
+   na diagramu zgoraj. Zatem pritisnite C-l. S tem diagram postavite na
+   sredino zaslona.
+
+V angle¹èini ima izbor tipk nazoren pomen. P kot ,previous` (prej¹nji),
+N kot ,next` (naslednji), B kot ,backward` (nazaj) in F kot ,forward`
+(naprej). To so osnovni ukazi za premikanje kazalèka in uporabljali jih
+boste VES ÈAS. Èim prej se jih nauèite, tem bolje.
+
+>> Nekajkrat pritisnite C-n, da pride kazalèek do te vrstice.
+
+>> Z nekaj C-f se pomaknite na desno na sredo vrstice, nato pa nekajkrat
+   pritisnite C-p. Opazujte, kaj se dogaja s kazalèkom na sredini
+   vrstice.
+
+Vsaka vrstice v besedilu je zakljuèena z znakom za novo vrstico
+(angl. Newline). Ta loèuje vrstico v besedilu od naslednje. Tudi
+zadnja vrstica v datoteki mora biti zaljuèena z znakom za novo vrstico
+(èeprav tega Emacs ne zahteva).
+
+>> Poskusite ukaz C-b, ko je kazalèek na zaèetku vrstice. Kazalèek se
+   mora premakniti na konec prej¹nje vrstice. To je zato, ker se je
+   ravnokar premaknil prek znaka za konec vrstice.
+
+Ukaz C-f premika kazalèek prek znaka za novo vrstico enako kot C-b.
+
+>> Poskusite ¹e nekajkrat pritisniti C-b, da dobite obèutek za
+   premikanje kazalèka. Potem nekajkrat poskusite C-f, da pridete do konca
+   vrstice. ©e enkrat pritisnite C-f, da skoèite v naslednjo vrstico.
+
+Ko s kazalèkom dose¾ete zgornji ali spodnji rob zaslona, se besedilo
+toliko premakne, da kazalèek ostane na zaslonu. V angle¹èini se temu
+pravi ,,scrolling``. To omogoèa, da lahko premaknemo kazalèek na
+katerokoli mesto v besedilu, a vseeno ostanemo na zaslonu.
+
+>> Poskusite kazalèek pripeljati s C-n èisto do dna zaslona in si oglejte,
+   kaj se zgodi.
+
+Èe se vam zdi premikanje po en znak prepoèasno, se lahko premikate za
+celo besedo. M-f (Meta-f) premakne kazalèek za eno besedo naprej, M-b
+pa za besedo nazaj.
+
+>> Poskusite nekajkrat M-f in M-b.
+
+Èe je kazalèek sredi besede, ga M-f prestavi na konec besede. Èe je v
+belini med besedami, ga M-f premakne na konec naslednje besede. M-b
+deluje podobno, a v nasprotni smeri.
+
+>> Nekajkrat poskusite M-f in M-b, vmes pa ¹e nekaj C-f in
+   C-b. Opazujte uèinke M-f in M-b, ko je kazalèek sredi besede ali
+   med besedami.
+
+Ste opazili paralelo med C-f in C-b na eni strani ter M-f in M-b na
+drugi? V Emacsu se dostikrat ukazi Meta nana¹ajo na operacije nad
+enotami jezika (besede, stavki, odstavki), medtem ko se ukazi Control 
+nana¹ajo na operacije, neodvisne od zvrsti besedila (znaki, vrstice
+ipd.).
+
+Podobna zveza je tudi med vrsticami in stavki: ukaza C-a in C-e
+premakneta kazalèek na zaèetek oz. konec vrstice, M-a in M-e pa na
+zaèetek oz. konec stavka.
+
+>> Poskusite nekaj ukazov C-a, potem pa nekaj ukazov C-e.
+   Poskusite nekaj ukazov M-a, potem pa nekaj ukazov M-e.
+
+Ste opazili, da ponovljeni C-a ne napravijo niè, ponovljeni M-a pa se
+premikajo naprej? Èeprav se ne obna¹ata enako, pa je vendar obna¹anje
+enega in drugega po svoje naravno.
+
+Polo¾aju kazalèka na zaslonu pravimo tudi ,,point``, toèka.
+Parafrazirano: kazalèek ka¾e na zaslonu, kje je toèka v besedilu.
+
+Povzetek preprostih ukazov za premikanje kazalèka, vkljuèno s premiki
+po besedo in stavek:
+
+       C-f     Premik za znak naprej
+       C-b     Premik za znak nazaj
+
+       M-f     Premik za besedo naprej
+       M-b     Premik za besedo nazaj
+
+       C-n     Premik v naslednjo vrstico
+       C-p     Premik v prej¹njo vrstico
+
+       C-a     Premik na zaèetek vrstice
+       C-e     Premik na konec vrstice
+
+       M-a     Premik na zaèetek stavka
+       M-e     Premik na konec stavka
+
+>> Za vajo nekajkrat poskusite vsakega od teh ukazov.
+   To so najpogosteje uporabljani ukazi.
+
+©e dva pomembna ukaza za premikanje kazalèka sta M-< (Meta-manj¹i od),
+ki ga premakne na zaèetek datoteke, in M-> (Meta-veèji od), ki ga
+premakne na konec datoteke.
+
+Na ameri¹kih tipkovnicah najdete znak < nad vejico in morate
+pritisniti tipko Shift, da pridete do njega. Z ukazom M-< je enako -
+prav tako morate pritisniti tipko Shift, sicer moste izvedli drug
+ukaz, Meta-vejica. Na na¹ih tipkovnicah sta oba znaka na isti tipko,
+in za ukaz M-> morate pritisniti ¹e tipko Shift.
+
+>> Poskusite zdaj M-<, skok na zaèetek tega uèbenika.
+   Potem se vrnite nazaj z zaporednimi C-v.
+
+>> Poskusite zdaj M->, skok na konec tega uèbenika.
+   Potem se vrnite nazaj z zaporednimi M-v.
+
+Èe ima va¹a tipkovnica kurzorske tipke, lahko premikate kazalèek po
+zaslonu tudi z njimi. Vseeno priporoèamo, da se privadite ukazov C-b,
+C-f, C-n in C-p, in to iz treh razlogov. Prviè, delujejo na èisto vseh
+terminalih. Drugiè, z nekaj prakse v Emacsu boste opazili, da je
+tipkanje ukazov s Control hitrej¹e od tipkanja s kurzorskimi tipkami, ker
+ni treba ves èas premikati desnice s tipkovnice na kurzorske tipke in
+nazaj. In tretjiè, ko se enkrat navadite teh ukazov s Control, se boste
+enostavneje nauèili tudi bolj zapletenih ukazov za premikanje kazalèka.
+
+Veèini ukazov v Emacsu lahko podamo ¹tevilèni argument; najveèkrat ta
+pove, kolikokrat zapovrstjo naj se ukaz izvede. Veèkratno ponovitev
+ukaza izvedemo tako, da najprej vtipkamo C-u, zatem ¹tevilo,
+kolikokrat naj se ukaz ponovi, in nazadnje ¾eljeni ukaz. Èe ima va¹a
+tipkovnica tipko META (ali EDIT ali ALT), lahko izpustite ukaz C-u in
+namesto tega vtipkate ¹tevilo ponovitev, medtem ko dr¾ite pritisnjeno
+tipko META. Druga metoda je sicer kraj¹a, priporoèamo pa prvo, ker
+deluje na vseh terminalih. Tak¹en ¹tevilèni argument je ,,prefiksni``
+argument, ker vnesemo argument pred ukazom, na katerega se nana¹a.
+
+Primer: C-u 8 C-f premakne kazalèek za osem znakov naprej.
+
+>> Poskusite s primernim argumentom za ¹tevilo ponovitev ukaza
+   C-n ali C-p priti èim bli¾e tej vrstici v enem samem skoku.
+
+Veèina ukazov, ne pa vsi, uporablja ¹tevilèni argument kot ¹tevilo
+ponovitev ukaza. Nekateri ukazi (nobeden od tistih, ki smo si jih
+ogledali do zdaj) ga uporabljajo kot stikalo: s podanim prefiksnim
+argumentom napravi ukaz nekaj drugega kot obièajno.
+
+Ukaza C-v in M-v sta tudi izjemi, a drugaèni. Èe jima podamo argument,
+premakneta zaslon za navedeno ¹tevilo vrstic, ne pa zaslonov. Ukaz C-u
+4 C-v, na primer, premakne zaslon navzgor za 4 vrstice.
+
+>> Poskusite zdaj C-u 8 C-v
+
+To bi moralo zaslon premakniti navzgor za osem vrstic. Èe bi ga radi
+premaknili nazaj, poskusite M-v z istim argumentom.
+
+Èe uporabljate X Windows, imate verjetno ob levem robu Emacsovega
+okna navpièno pravokotno ploskev, imenovano drsnik. Pogled na
+besedilo lahko premikate tudi tako, da z mi¹ko kliknete na drsnik.
+
+>> Postavite kazalec na vrh oznaèenega obmoèja na drsniku in pritisnite
+   srednji gumb na mi¹ki. To bi moralo premakniti besedilo na mesto,
+   doloèeno s tem, kako visoko ali nizko na drsnik ste kliknili.
+
+>> Medtem ko dr¾ite srednji gumb pritisnjen, premikajte mi¹ko gor in
+   dol. Vidite, kako se premika besedilo v Emacsovem oknu, ko
+   premikate mi¹ko?
+
+
+* ÈE SE EMACS OBESI
+-------------------
+
+Èe se Emacs preneha odzivati na va¹e ukaze, ga lahko varno prekinete z
+ukazom C-g. Z njim lahko prekinete ukaze, za katere bi trajalo
+predolgo, da bi se izvedli.
+
+Isti ukaz, C-g, lahko uporabite tudi, da preklièete ¹tevilèni
+argument, ali pa zaèetek ukaza, ki ga ne ¾elite izvesti.
+
+>> Vtipkajte C-u 100, s èimer ste izbrali ¹tevilèni argument 100,
+   zatem pa vtipkajte C-g. Vtipkajte zdaj C-f. Kazalèek se je
+   premaknil le za en znak, ker ste ¹tevilèni argument vmes preklicali
+   s C-g.
+
+Tudi èe ste po nesreèi vtipkali <ESC>, se ga lahko znebite s C-g.
+
+
+* ONEMOGOÈENI UKAZI
+-------------------
+
+Nekaj ukazov v Emacsu je namenoma ,,onemogoèenih``, da bi jih
+zaèetniki ne izvedli po nesreèi.
+
+Èe vtipkate tak onemogoèen ukaz, se bo na zaslonu pojavilo novo okno z
+obvestilom, kateri ukaz ste sku¹ali izvesti, in vas vpra¹alo, èe ga
+res ¾elite izvesti.
+
+Èe v resnici ¾elite poskusiti ukaz, pritisnite preslednico kot odgovor
+na vpra¹anje. Normalno verjetno ukaza ne ¾elite izvesti, zato na
+vpra¹anje odgovorite z ,n`.
+
+>> Vtipkajte <ESC> : (ki je onemogoèen ukaz), zatem odgovorite n.
+
+
+* OKNA
+------
+
+Emacs lahko prika¾e veè oken in v vsakem svoje besedilo. Kasneje bomo
+razlo¾ili, kako uporabljamo veè oken hkrati. Zaenkrat bomo povedali
+le, kako se znebite dodatnih oken, ki jih lahko odpre vgrajena pomoè ali
+pa izpis kak¹nega drugega programa. Preprosto je:
+
+       C-x 1   Eno okno (torej, zaprimo vsa ostala).
+
+To je Ctrl-x, ki mu sledi ¹tevka 1. Ukaz C-x 1 raztegne èez cel
+zaslon okno, v katerem se nahaja kazalèek, ostala pa zapre.
+
+>> Premaknite kazalèek do te vrstice in vtipkajte C-u 0 C-l
+>> Vtipkajte Ctrl-h k Ctrl-f.
+   Vidite, kako se je to okno skrèilo in odstopilo prostor oknu,
+   ki pojasnjuje ukaz Ctrl-f?
+
+>> Vtipkajte C-x 1 in spodnje okno se bo zaprlo.
+
+Za razliko od ukazov, ki smo se jih nauèili do zdaj, je ta ukaz
+sestavljen iz dveh znakov. Zaène se z znakom Control-x. Cela vrsta
+ukazov se zaène enako, in mnogi od njih zadevajo delo z datotekami,
+delovnimi podroèji in podobnim. Vsem tem ukazom je skupno, da se
+zaènejo s Control-x, ki mu sledi ¹e en, dva ali trije znaki.
+
+
+* VRIVANJE IN BRISANJE
+----------------------
+
+Èe ¾elite v obstojeèe besedilo vriniti novo, preprosto premaknite
+kazalèek na ¾eljeno mesto in zaènite tipkati. Znake, ki jih lahko
+vidite, na primer A, 7, * in podobno, razume Emacs kot del besedila in
+jih takoj vrine. S pritiskom na Return (ali Enter) vrinete znak za
+skok v novo vrstico.
+
+Zadnji vtipkani znak lahko izbri¹ete s pritiskom na tipko <Delete>. Na
+nekaterih tipkovnicah je oznaèena z <Del>. Ponekod (ne pa povsod!)
+slu¾i za brisanje tipka <Backspace>.
+
+Splo¹no <Delete> pobri¹e znak neposredno pred trenutnim polo¾ajem
+kazalèka.
+
+>> Vtipkajte zdaj nekaj znakov in jih zatem s tipko <Delete> pobri¹ite.
+   Niè naj vas ne skrbi, èe se je ta vrstica spremenila. Izvirnika
+   tega uèbenika ne boste pokvarili -- tole je samo va¹a osebna kopija.
+
+Ko vrstica postane predolga za zaslon, se ,,nadaljuje`` v naslednji
+vrstici na zaslonu. Obrnjena po¹evnica (znak ,\`) ob desnem robu
+oznaèuje vrstico, ki se nadaljuje v naslednji zaslonski vrstici.
+
+>> Zdaj zaènite tipkati besedilo, dokler ne dose¾ete desnega roba, in
+   ¹e naprej. Opazili boste, da se pojavi znak za nadaljevanje.
+
+>> S tipko <Delete> pobri¹ite toliko znakov, da vrstica ne sega
+   veè èez ¹irino zaslona. Znak za nadaljevanje v naslednji
+   vrstici je izginil.
+
+Znak za novo vrstico lahko pobri¹emo enako kot vsak drug znak. S tem,
+ko pobri¹emo znak za novo vrstico, zdru¾imo vrstici v eno samo.  Èe bo
+nova vrstica predolga, da bi cela pri¹la na zaslon, bo razdeljena v
+veè zaslonskih vrstic.
+
+>> Premaknite kazalèek na zaèetek vrstice in pritisnite <Delete>. To
+   zdru¾i vrstico s prej¹njo.
+
+>> Pritisnite <Return>. S tem ste ponovno vrinili znak za skok v novo
+   vrstico, ki ste ga malo prej zbrisali.
+
+Spomnimo se, da lahko za veèino ukazov v Emacsu doloèimo, naj se
+izvedejo veèkrat zaporedoma; to vkljuèuje tudi vnos teksta. Ponovitev
+obièajnega znaka ga veèkrat vrine v besedilo.
+
+>> Poskusite zdaj tole: da vnesete osem zvezdic, vtipkajte C-u 8 *
+
+Zdaj ste se nauèili najpreprostej¹i naèin, da v Emacsu nekaj natipkate
+in popravite. Bri¹ete lahko tudi besede ali vrstice. Tu je povzetek
+ukazov za brisanje:
+
+       <Delete>     pobri¹e znak tik pred kazalèkom (levo od
+                    oznake za kazalèek)
+       C-d          pobri¹e znak tik za kazalèkom (,pod` oznako
+                    za kazalèek)
+
+       M-<Delete>   pobri¹e besedo tik pred kazalèkom
+       M-d          pobri¹e besedo tik za kazalèkom
+
+       C-k          zavr¾e besedilo desno od kazalèka do konca vrstice
+       M-k          zavr¾e besedilo od polo¾aja kazalèka do konca stavka
+
+Èrka ,d` je iz angle¹ke besede ,delete` (pobrisati), èrka ,k` pa iz
+besede ,kill` (pobiti). Ste opazili, da <Delete> in C-d na eni, ter
+M-<Delete> in M-d na drugi strani nadaljujeta paralelo, ki sta jo zaèela
+C-f in M-f (<Delete> pravzaprav ni kontrolni znak, kar pa naj nas ne 
+moti).  C-k in M-k sta v enakem sorodu s C-e in M-e: prvi deluje na 
+vrstice, drugi na stavke.
+
+Kadarkoli pobri¹ete kaj veè kot en sam znak naenkrat, si Emacs za vsak
+primer zapomni, kaj ste zavrgli, in lahko zavr¾eno vrnete (angl.
+,,yank`` -- potegniti). Besedilo, ki smo ga zavrgli, lahko vrinemo
+nazaj na isto mesto ali kam drugam. Lahko ga vrinemo tudi veèkrat, in
+tako napravimo veè kopij. Ukaz za vraèanje zavr¾enega besedila je C-y.
+
+Razlika med tem, èe zavr¾ete cel odstavek besedila (angl. ,,kill``,
+pobiti) ali pa èe pobri¹ete znak (angl. ,,delete``), je ta, da lahko
+prvega vrnete nazaj z ukazom C-y, drugega pa ne. Na splo¹no ukazi, ki
+lahko povzroèijo veliko ¹kode (pobri¹ejo veliko besedila), shranijo
+pobrisano besedilo; tisti, ki pobri¹ejo samo posamezni znak, ali samo
+prazne vrstice in presledke, pa ne.
+
+>> Postavite kazalèek na zaèetek neprazne vrstice. Pritisnite C-k, da
+   pobri¹ete vsebino vrstice.
+>> ©e enkrat pritisnite C-k. To pobri¹e ¹e znak za novo vrstico.
+
+Ste opazili, da prvi C-k pobri¹e vsebino vrstice, naslednji C-k pa ¹e
+vrstici samo, s èimer se vse besedilo pod biv¹o vrstico premakne za
+eno vrstico navzgor? Ukaz C-k obravnava ¹tevilèni argument malo
+drugaèe: pobri¹e toliko in toliko vrstic z vsebinami vred. To ni zgolj
+ponovitev. C-u 2 C-k pobri¹e dve polni vrstici besedila, kar je nekaj
+drugega, kot èe dvakrat vtipkate C-k.
+
+Besedilo, ki ste ga prej pobrisali, je shranjeno, in ga lahko povrnete
+tja, kjer je trenutno kazalèek, z ukazom C-y.
+
+>> Poskusite z ukazom C-y povrniti pobrisano besedilo.
+
+Ukaz C-y si predstavljajte, kot da potegnete nazaj nekaj, kar vam je
+nekdo odnesel. Èe ste uporabili veè zaporednih ukazov C-k, je vse
+pobrisano besedilo shranjeno skupaj, in en sam C-y bo vrnil vse tako
+pobrisane vrstice.
+
+>> Poskusite, nekajkrat vtipkajte C-k.
+
+Zdaj pa vrnimo pobrisano besedilo:
+
+>> Vtipkajte C-y. Zdaj pa premaknite kazalèek za nekaj vrstic navzdol
+   in ¹e enkrat vtipkajte C-y. Vidite zdaj, kako se kopira dele
+   besedila?
+
+Kaj pa, èe ste pobrisali nekaj besedila, ki bi ga radi vrnili, vendar
+ste za iskanim odlomkom pobrisali ¹e nekaj? C-y vrne samo nazadnje
+pobrisan odlomek. Vendar tudi prej¹nje besedilo ni izgubljeno. Do
+njega lahko pridete z ukazom M-y. Ko ste vrnili nazadnje zbrisano
+besedilo s C-y, pritisnite M-y, ki ga zamenja s predzanje pobrisanim
+besedilom. Vsak naslednji M-y prika¾e ¹e eno prej. Ko ste konèno
+pri¹li do iskanega besedila, ni treba napraviti niè posebnega, da bi
+ga obdr¾ali. Preprosto nadaljujte z urejanjem, in vrnjeno besedilo bo
+ostalo, kamor ste ga odlo¾ili.
+
+Èe pritisnete M-y dovolj velikokrat, se boste vrnili na zaèete, torej
+spet na zadnje pobrisano besedilo.
+
+>> Pobri¹ite vrstico, premaknite se nekam drugam, in pobri¹ite ¹e
+   eno vrstico.
+   Z ukazom C-y dobite nazaj to drugo vrstico.
+   Z ukazom M-y pa jo zamenjate s prvo vrstico.
+   Ponovite ukaz M-y ¹e nekajkrat in si oglejte, kaj dobite na
+   zaslon. Ponavljajte ga, dokler se ne prika¾e ponovno nazadnje
+   pobrisana vrstica, in ¹e naprej. Èe ¾elite, lahko tudi ukazu
+   M-y podate pozitivno ali negativno ¹tevilo ponovitev.
+
+
+* PREKLIC UKAZA (UNDO)
+----------------------
+
+Èe ste besedilo spremenili, a ste se kasneje premislili, lahko
+besedilo vrnete v prvotno stanje z ukazom Undo, C-x u. Normalno vrne
+C-x u zadnjo spremembo besedila; èe ukaz ponovimo, preklièemo ¹e
+predzadnjo spremembo, in vsaka nadaljnja ponovitev se¾e ¹e eno
+spremembo globlje v zgodovino.
+
+Emacs hrani bolj ali manj celotno zgodovino na¹ih ukazov, z dvema
+izjemama: ukazov, ki niso napravili nobene spremembe v besedilu
+(npr. premik kazalèka), ne shranjuje, in zaporedje do 20 vrinjenih
+znakov shrani kot en sam ukaz. Slednje prihrani nekaj ukazov C-x u, ki
+bi jih morali vtipkati.
+
+>> Pobri¹ite to vrstico z ukazom C-k, potem jo priklièite nazaj s C-x u.
+
+C-_ je alternativni ukaz za preklic zadnjega ukaza.  Deluje enako kot
+s C-x u, ga je pa la¾je odtipkati, èe morate ukaz ponoviti veèkrat
+zaporedoma. Te¾ava z ukazom C-_ je, da na nekaterih tipkovnicah ni
+povsem oèitno, kako ga vtipkati, zato je podvojen ¹e kot C-x u. Na
+nekaterih terminalih moramo na primer vtipkati /, medtem ko dr¾imo
+pritisnjeno tipko CONTROL.
+
+Èe podamo ukazu C-_ ali C-x u numerièni argument, je to enako, kot èe
+bi ukaz roèno ponovili tolikokrat, kot pravi argument.
+
+
+* DATOTEKE
+----------
+
+Da bi bile spremembe v besedilu trajne, morate besedilo shraniti v
+datoteko. V nasprotnem primeru jih boste za vedno izgubili tisti hip,
+ko boste zapustili Emacs. Besedilo postavimo v datoteko tako, da
+na disku ,,poi¹èemo`` (angl. find) datoteko, preden zaènemo tipkati 
+(pravimo tudi, da ,,obi¹èemo`` datoteko).
+
+Poiskati datoteko pomeni, da v Emacsu vidimo vsebino datoteke. To je
+bolj ali manj tako, kot da z Emacsom urejamo datoteko samo. Vendar pa
+spremembe ne postanejo trajne, dokler datoteke ne shranimo
+(angl. save) na disk. Tako imamo mo¾nost, da se izognemo temu, da bi
+nam na pol spremenjene datoteke le¾ale po disku, kadar tega ne
+¾elimo. Ker pa Emacs ohrani izvorno datoteko pod spremenjenim imenom,
+lahko prvotno datoteko priklièemo nazaj celo ¹e potem, ko smo datoteko
+¾e shranili na disk.
+
+V predzadnji vrstici na dnu zaslona vidite vrstico, ki se zaène in
+konèa z vezaji, in vsebuje niz znakov ,,--:-- TUTORIAL``. Ta del
+zaslona navadno vsebuje ime datoteke, ki smo jo obiskali. Zdajle je to
+,,TUTORIAL``, va¹a delovna kopija uèbenika Emacsa.  Ko boste poiskali
+kak¹no drugo datoteko, bo na tem mestu pisalo njeno ime.
+
+Posebnost ukaza za iskanje datoteke je, da moramo povedati, katero
+datoteko i¹èemo. Pravimo, da ukaz ,,prebere argument s terminala`` (v
+tem primeru je argument ime datoteke).  Ko vtipkate ukaz
+
+       C-x C-f   (poi¹èi datoteko)
+
+vas Emacs povpra¹a po imenu datoteke. Kar vtipkate, se sproti vidi v
+vrstici na dnu zaslona. Temu delovnemu podroèju pravimo pogovorni
+vmesnik (minibuffer), kadar se uporablja za tovrstni vnos. Znotraj
+pogovornega vmesnika lahko uporabljate obièajne ukaze za urejanje, èe
+ste se na primer pri tipkanju zmotili.
+
+Sredi tipkanja imena datoteke (ali katerega koli drugega opravila v
+pogovornem vmesniku) lahko ukaz preklièete s C-g.
+
+>> Vtipkajte C-x C-f, zatem pa ¹e C-g. Zadnji ukaz od treh je
+   zaprl pogovorni vmesnik in tudi preklical ukaz C-x C-f, ki je
+   uporabljal pogovorni vmesnik. Konec z iskanjem datoteke.
+
+Ko ste dokonèali ime, ga vnesete s pritiskom na <Return>. S tem se
+po¾ene ukaz C-x C-f in poi¹èe iskano datoteko. Pogovorni vmesnik
+izgine, ko je ukaz izveden.
+
+Trenutek kasneje se vsebina datoteke pojavi na zaslonu. Zdaj lahko
+dopolnjujete, urejate ali kako drugaèe spreminjate vsebino. Ko ¾elite,
+da ostanejo spremembe trajne, izvedete ukaz:
+
+       C-x C-s   (shrani datoteko)
+
+Besedilo se s tem shrani iz pomnilnika raèunalnika na datoteko na
+disk. Ko prviè izvedete ta ukaz, se izvorna datoteka preimenuje, tako
+da ni izgubljena. Najdete jo pod novim imenom, ki se od starega
+razlikuje po tem, da ima na koncu pripet znak ,,~``.
+
+Ko je Emacs shranil datoteko, izpi¹e njeno ime. Shranjujte raje
+pogosteje kot ne, da v primeru, èe gre z raèunalnikom kaj narobe, ne
+izgubite veliko.
+
+>> Vtipkajte C-x C-s, s èimer boste shranili svojo kopijo tega
+   uèbenika. Emacs bo v vrstici na dnu zaslona izpisal ,,Wrote
+   ...TUTORIAL``.
+
+Opozorilo: na nekaterih sistemih bo ukaz C-x C-s zamrznil zaslon, in
+tako ne boste videli, da Emacs ¹e kaj izpi¹e. To je znak, da je
+operacijski sistem prestregel znak C-s in ga interpretiral kot znak za
+prekinitev toka podatkov, namesto da bi ga posredoval Emacsu. Zaslon
+,,odmrznete`` z ukazom C-q. Èe je va¹ sistem eden takih, si za nasvet,
+kako re¹iti to nev¹eènost, oglejte razdelek ,,Spontaneous Entry to
+Incremental Search`` v priroèniku za Emacs.
+
+Poi¹èete lahko lahko ¾e obstojeèo datoteko, da si jo ogledate ali
+popravite, ali pa tudi datoteko, ki ¹e ne obstaja. To je naèin, kako z
+Emacsom ustvarimo novo datoteko: poi¹èite datoteko z izbranim imenom,
+ki bo sprva prazna, in zaènite pisati. Ko jo boste prviè shranili, bo
+Emacs ustvaril datoteko z vne¹enim besedilom. Od tod dalje delate na
+¾e obstojeèi datoteki.
+
+
+* DELOVNA PODROÈJA
+------------------
+
+Tudi èe ste z ukazom C-x C-f poiskali in odprli drugo datoteko, prva
+ostane v Emacsu. Nanjo se vrnete tako, da jo ¹e enkrat ,,poi¹èete`` z
+ukazom C-x C-f. Tako imate lahko v Emacsu hkrati kar precej datotek.
+
+>> Ustvarite datoteko z imenom ,,foo`` tako, da vtipkate C-x C-f
+   foo <Return>. Natipkajte nekaj besedila, ga po potrebi popravite, in
+   shranite v datoteko ,,foo`` z ukazom C-x C-s. Ko ste konèali, se
+   vrnite v uèbenik z ukazom C-x C-f TUTORIAL <Return>.
+
+Emacs hrani besedilo vsake datoteke v takoimenovanem ,,delovnem
+podroèju`` (angl. buffer). Ko poi¹èemo datoteko, Emacs ustvari zanjo
+novo delovno podroèje. Vsa obstojeèa delovna podroèja v Emacsu vidimo
+z ukazom:
+
+       C-x C-b   Seznam delovnih podroèij.
+
+>> Poskusite C-x C-b zdaj.
+
+Vidite, da ima vsako delovno podroèje svoje ime, pri nekaterih pa pi¹e
+tudi ime datoteke, katere vsebina se hrani v njem. Druga delovna
+podroèja pa ne pripadajo nobeni datoteki. Podroèje ,,*Buffer List*``,
+na primer, je ¾e eno takih. To delovno podroèje smo ustvarili
+ravnokar, ko smo pognali ukaz C-x C-b. VSAKO besedilo, ki ga vidite v
+katerem od Emacsovih oken, je vedno del kak¹nega delovnega podroèja.
+
+>> Z ukazom C-x 1 se znebite seznama delovnih podroèij.
+
+Èe ste spreminjali besedilo ene datoteke, potem pa poiskali drugo, to
+ne shrani spremeb v prvo datoteko. Te ostanejo znotraj Emacsa, na
+delovnem podroèju, ki pripada prvi datoteki. Ustvarjenje ali
+spreminjanje delovnega podroèja druge datoteke nima nobenega vpliva na
+podroèje prve. To je zelo uporabno, pomeni pa tudi, da potrebujemo
+udobno pot, da shranimo delovno podroèje prve datoteke. Nerodno bi
+bilo preklapljanje na prvo podroèje s C-x C-f, da bi shranili s C-x
+C-s. Namesto tega imamo:
+
+       C-x s     Shrani nekatera delovna podroèja
+
+Ukaz C-x poi¹èe delovna podroèja, katerih vsebina je bila spremenjena,
+odkar je bila zadnjiè shranjena na datoteko. Za vsako tako delovno
+podroèje C-x s vpra¹a, èe ga ¾elite shraniti.
+
+
+* RAZ©IRJEN NABOR UKAZOV
+------------------------
+
+©e mnogo, mnogo je ukazov Emacsa, ki bi zaslu¾ili, da jih obesimo na 
+razne kontrolne in meta znake. Emacs se temu izogne z ukazom X (iz angl.
+eXtend - raz¹iriti), ki uvede ukaz iz raz¹irjenega nabora. Dveh vrst je:
+
+       C-x     Znakovna raz¹iritev (angl. Character eXtend).
+               Sledi mu en sam znak.
+       M-x     Raz¹iritev s poimenovanim ukazom. Sledi mu dolgo ime
+               ukaza.
+
+Tudi ti ukazi so na splo¹no uporabni, ne uporabljamo pa jih tako
+pogosto kot tiste, ki ste se jih ¾e nauèili. Dva ukaza iz raz¹irjenega
+nabora ¾e poznamo: C-x C-f, s katerim poi¹èemo datoteko, in C-x C-s, s
+katerim datoteko shranimo. ©e en primer je ukaz, s katerim Emacsu
+povemo, da ¾elimo konèati z delom iz iziti iz Emacsa. Ta ukaz je C-x
+C-c (ne skrbite: preden konèa, Emacs ponudi, da shrani vse spremenjene
+datoteke).
+
+Z ukazom C-z Emacs zapustimo samo *zaèasno*, tako da lahko ob vrnitvi
+nadaljujemo z delom, kjer smo ostali.
+
+Na sistemih, ki to dopu¹èajo, ukaz C-z izide iz Emacsa v ukazno
+lupino, a ga ne konèa - èe uporabljate ukazno lupino C, se lahko
+vrnete z ukazom ,fg` ali splo¹neje z ukazom ,,%emacs``.
+
+Drugod ukaz C-z po¾ene sekundarno ukazno lupino, tako da lahko
+po¾enete kak¹en drug program in se kasneje vrnete v Emacs. V tem
+primeru pravzaprav Emacsa ne zapustimo. Ukaz ,,exit`` v ukazni lupini
+je navadno naèin, da zapremo sekundarno lupino in se vrnemo v Emacs.
+
+Ukaz C-x C-c uporabimo, èe se nameravamo odjaviti s sistema. To je
+tudi pravilen naèin za izhod iz Emacsa, èe je tega pognal program za
+delo s po¹to ali kak drug program, saj ta verjetno ne ve, kaj
+napraviti z zaèasno prekinjenim Emacsom. V vseh ostalih primerih pa,
+èe se ne nameravate odjaviti s sistema, uporabite C-z, in se vrnite v
+Emacs, ko bi radi spet urejali besedilo.
+
+Ukazov C-x je veliko. Zaenkrat smo spoznali naslednje:
+
+       C-x C-f         Poi¹èi datoteko.
+       C-x C-s         Shrani datoteko.
+       C-x C-b         Seznam delovnih podroèij.
+       C-x C-c         Konèaj Emacs.
+       C-x u           Preklic zadnjega ukaza.
+
+Poimenovani raz¹irjeni ukazi so ukazi, ki se uporabljajo ¹e bolj
+poredko, ali pa se uporabljajo samo v nekaterih naèinih dela.  Eden
+takih je na primer ukaz replace-string, ki po vsem besedilu zamenja en
+niz znakov z drugim. Ko vtipkate M-x, se to izpi¹e v pogovornem
+vmesniku na dnu zaslona, Emacs pa èaka, da vtipkate ime ukaza, ki ga
+¾elite priklicati; v tem primeru je to ,,replace-string``. Vtipkajte
+samo ,,repl s<TAB>`` in Emacs bo dopolnil ime. Ukaz vnesete s
+pritiskom na <Return>.
+
+Ukaz replace-string potrebuje dva argumenta -- niz, ki ga ¾elite
+zamenjati, in niz, s katerim bi radi zamenjali prvega. Vsakega posebej
+vnesete in zakljuèite s pritiskom na tipko Return.
+
+>> Premaknite kazalèek na prazno vrstico dve vrstici pod to, zatem 
+   vtipkajte M-x repl s<Return>zamenjala<Return>spremenila<Return>.
+
+   Opazite, kako se je ta vrstica zamenjala? Vse besede
+   z-a-m-e-n-j-a-l-a od tod do konca besedila ste nadomestili z besedo
+   ,,spremenila``.
+
+
+* AVTOMATIÈNO SHRANJEVANJE
+--------------------------
+
+Spremembe v datoteki, ki jih ¹e niste shranili na disk, so izgubljene,
+èe medtem denimo zmanjka elektrike. Da bi vas zavaroval pred tem,
+Emacs periodièno avtomatièno shrani vse datoteke, ki jih
+urejate. Avtomatièno shranjena datoteka se od izvorne razlikuje po
+znaku ,#` na zaèetku in koncu imena: èe se je va¹a datoteka imenovala
+,,hello.c``, se avtomatièno shranjena datoteka imenuje
+,,#hello.c#``. Ko normalno shranite datoteko, avtomatièno shranjena
+datoteka ni veè potrebna, in Emacs jo pobri¹e.
+
+Èe res pride do izgube podatkov v pomnilniku, lahko povrnete avtomatièno
+shranjeno besedilo tako, da normalno poi¹èete datoteko (pravo ime
+datoteke, ne ime avtomatièno shranjene datoteke), zatem pa vtipkate M-x
+recover file<Return>. Ko vas vpra¹a za potrditev, vtipkajte yes<Return>
+za nadaljevanje in povrnitev avtomatièno shranjenenih podatkov. 
+
+
+* ODZIVNO PODROÈJE
+------------------
+
+Kadar Emacs opazi, da poèasi vtipkavate ukaz, odpre v zadnji vrstici
+na dnu zaslona odzivno podroèje in v njem sproti prikazuje natipkano.
+
+
+* STATUSNA VRSTICA
+------------------
+
+Vrstica nad odzivnim podroèjem je statusna vrstica. Ta ka¾e verjetno
+nekaj podobnega kot:
+
+--:** TUTORIAL          (Fundamental)--58%----------------------
+
+V njej so izpisani pomembni podatki o stanju Emacsa in besedilu, ki ga
+urejate.
+
+Zdaj ¾e veste, kaj pomeni ime datoteke -- to je datoteka, ki ste jo
+poiskali. Oznaka --NN%-- pomeni, da je nad vrhom zaslona ¹e NN
+odstotkov celotne datoteke. Èe je zaèetek datoteke na zaslonu, bo
+namesto --00%-- pisalo --Top--. Podobno bo pisalo --Bot--, èe je
+zadnja vrstica datoteke na zaslonu. Èe je datoteka, ki jo ogledujete,
+tako kratka, da gre vsa na en zaslon, pa bo pisalo --All--.
+
+Zvezdice na zaèetku vrstice pomenijo, da ste datoteko ¾e spreminjali.
+Tik po tem, ko ste odprli ali shranili datoteko, ni nobenih zvezdic,
+so samo èrtice.
+
+Del statusne vrstice znotraj oklepajev vam pove, v kak¹nem naèinu dela
+Emacs. Privzeti naèin je osnovni naèin (Fundamental), v katerem ste
+sedaj. Fundamental je eden od glavnih naèinov (angl. major
+mode). Emacs pozna veliko razliènih glavnih naèinov. Nekateri od njih
+so namenjeni pisanju programov, kot na primer Lisp, ali pisanju
+besedil, kot npr. Text. Naenkrat je lahko aktiven le en glavni naèin,
+njegovo ime pa je vedno izpisano v statusni vrstici, kjer zdaj pi¹e
+Fundamental.
+
+Glavni naèini lahko spremenijo pomen nekaterim ukazom. Obstajajo,
+denimo, ukazi za pisanje komentarjev v programu, in ker ima vsak
+programski jezik svoje predstave o tem, kako mora komentar izgledati,
+mora vsak glavni naèin vnesti komentarje drugaèe. Ker je vsak glavni
+naèin ime raz¹irjenega ukaza, lahko tako tudi izbiramo glavni
+naèin. Na primer, M-x fundamental-mode vas postavi v naèin
+Fundamental.
+
+Èe nameravate popravljati slovensko (ali angle¹ko) besedilo, kot je na
+primer tole, boste verjetno izbrali tekstovni naèin (Text).
+>> Vtipkajte M-x text mode<Return>.
+
+Ne skrbite, noben od ukazov, ki ste se jih nauèili, se s tem ne
+spremeni kaj dosti. Lahko pa opazite, da Emacs zdaj jemlje opu¹èaje za
+dele besed, ko se premikate z M-f ali M-b. V osnovnem naèinu jih je
+obravnaval kot meje med besedami.
+
+Glavni naèini navadno poèenjajo majhne spremembe, kot je ta: veèina
+ukazov ,,opravi isti posel``, vendar pa to poènejo na razlièen naèin.
+
+Dokumentacijo o trenutno aktivnem glavnem naèinu dobite z ukazom C-h m.
+
+>> Uporabite C-u C-v enkrat ali veèkrat, toliko, da bo ta vrstica blizu
+   vrha zaslona.
+>> Vtipkajte C-h m, da vidite, v èem se tekstovni naèin (Text) razlikuje
+   od osnovnega (Fundamental).
+>> Vtipkajte C-x 1, da umaknete dokumentacijo z zaslona.
+
+Glavnim naèinom pravimo glavni naèini zato, ker obstajajo tudi
+podnaèini (angl. minor modes). Podnaèini ne nadome¹èajo glavnih
+naèinom, ampak le spreminjajo njihovo obna¹anje. Podnaèine lahko
+aktiviramo ali deaktiviramo neodvisno od glavnega naèina in neodvisno
+od ostalih podnaèinov. Tako lahko ne uporabljate nobenega podnaèina,
+en podnaèin, ali kombinacijo veèih podnaèinov.
+
+Podnaèin, ki je zelo uporaben, posebno za pisanje besedil, je Auto
+Fill. Ko je vklopljen, Emacs med pisanjem avtomatièno deli vrstice na
+presledkih med besedami, tako da vrstice niso predolge.
+
+Vklopite ga lahko z ukazom M-x auto fill mode<return>. Ko je
+vklopljen, ga lahko izklopite z istim ukazom, M-x
+auto fill mode<return>. Z istim ukazom torej preklapljamo
+(angl. toggle) med vklopljenim in izklopljenim stanjem.
+
+>> Vtipkajte zdaj M-x auto fill mode. Potem zaènite tipkati "asdf asdkl
+   sdjf sdjkf"... dokler ne opazite, da je Emacs razbil vrstico na dve.
+   Med tipkanjem mora biti dovolj presledkov, saj Auto Fill prelamlja
+   vrstice samo na presledkih.
+
+©irina besedila je navadno postavljena na 70 znakov, kar pa lahko
+spremenite z ukazom C-x f. Novo ¹irino morate podati kot ¹tevilèni
+argument.
+
+>> Vtipkajte C-x f in argument 20. (C-u 2 0 C-x f). Zatem vtipkajte
+   nekaj besedila in poglejte, èe bo Emacs res delil vrstice pri 20
+   znakih. Potem z ukazom C-x f postavite mejo nazaj na 70.
+
+Auto Fill deluje le, kadar pi¹ete novo besedilo, ne pa,
+kadar popravljate ¾e napisan odstavek.
+Tak odstavek lahko poravnate tako, da kazalèek premaknete nekam
+znotraj odstavka in uka¾ete M-q (Meta-q).
+
+>> Premaknite kazalèek v prej¹nji odstavek in izvedite M-q.
+
+
+* ISKANJE
+---------
+
+Emacs lahko v besedilu poi¹èe niz znakov (zaporedje znakov ali besed),
+naprej ali nazaj po besedilu. Iskanje spada v skupino ukazov za
+premikanje kazalèka, saj premakne kazalèek na kraj v besedilu, kjer je
+na¹el iskani niz.
+
+Iskanje v Emacsu je morda nekoliko drugaèno od tistega, ki ste ga
+navajeni, in sicer je ,,inkrementalno``. To pomeni, da se iskanje
+odvija hkrati s tem, ko tipkate iskani niz.
+
+Ukaza za iskanje sta C-s za iskanje naprej po datoteki in C-r za
+iskanje nazaj po datoteki. POÈAKAJTE! Ne preizku¹ajte jih ¹e ta hip!
+
+Ko boste natipkali C-s, boste opazili niz ,,I-search`` kot pozivnik
+v pogovornem vmesniku. To vam pove, da je Emacs v inkrementalnem iskanju
+in vas èaka, da zaènete tipkati, kar i¹èete. <Return> zakljuèi iskanje.
+
+>> Pritisnite zdaj C-s. POÈASI, èrko za èrko, vtipkajte besedo
+   ,,kazalèek``. Za vsako vtipkano èrko se ustavite in si oglejte, kaj
+   se je zgodilo s kazalèkom.
+>> ©e enkrat pritisnite C-s, da poi¹èete naslednji ,,kazalèek``.
+>> ©estkrat pritisnite <Delete> in opazujte, kako se premika kazalèek.
+>> Konèajte iskanje s tipko <Return>.
+
+Ste videli, kaj se je zgodilo? Emacs pri inkrementalnem iskanju sku¹a
+poiskati niz, ki ste ga natipkali do tistega hipa. Da poi¹èete
+naslednje mesto, kjer se pojavi ,,kazalèek``, samo ¹e enkrat
+pritisnete C-s. Èe takega mesta ni, Emacs èivkne in vam sporoèi, da
+iskanje ni uspelo. Tudi C-g prekine iskanje.
+
+OPOZORILO: Na nekaterih sistemih bo s pritiskom na C-s ekran
+zmrznil. To je znak, da je operacijski sistem prestregel znak C-s in
+ga interpretiral kot znak za prekinitev toka podatkov, namesto da bi
+ga posredoval programu Emacs. Ekran ,,odtajate`` s pritiskom na
+C-q. Potem si oglejte razdelek ,,Spontaneous Entry to Incremental
+Search`` v priroèniku za nasvet, kako se spopasti s to nev¹eènostjo.
+
+Èe sredi inkrementalnega iskanja pritisnete <Delete>, boste opazili,
+da to pobri¹e zadnji znak v iskanem nizu, kazalèek pa se premakne
+nazaj na mesto v besedilu, kjer je na¹el kraj¹i niz. Na primer,
+predpostavimo, da ste do zdaj natipkali ,,ka`` in je kazalèek na
+mestu, kjer se prviè pojavi ,,ka``. Èe zdaj pritisnete <Delete>, boste
+s tem v pogovornem vmesniku izbrisali ,a`, hkrati pa se bo kazalèek
+postavil na mesto, kjer je prviè na¹el ,k`, preden ste natipkali ¹e
+,a`.
+
+Èe sredi iskanja vtipkate katerikoli kontrolni znaki ali metaznak
+(razen tistih, ki imajo poseben pomen pri iskanju, to sta C-s in C-r),
+se iskanje prekine.
+
+C-s zaène iskati na mestu v datoteki, kjer trenutno stoji kazalèek, in
+i¹èe do konca datoteke. Èe bi radi iskali proti zaèetku datoteke,
+namesto C-s vtipkamo C-r.  Vse, kar smo povedali o ukazu C-s, velja
+tudi za C-r, le smer iskanja je obrnjena.
+
+
+* VEÈ OKEN NA ZASLONU
+---------------------
+
+Ena simpatiènih lastnosti Emacsa je, da zna hkrati prikazati veè oken
+na ekranu, tudi èe ne delamo v grafiènem naèinu.
+
+>> Premaknite kazalèek v to vrstico in vtipkajte C-u 0 C-l.
+>> Zdaj vtipkajte C-x 2, da razdelite zaslon na dve okni.
+   V obeh oknih imate odprt ta priroènik. Kazalèek je ostal v zgornjem
+   oknu.
+>> Pritisnite C-M-v za listanje v spodnjem oknu.
+   (Èe nimate tipke Meta, tipkajte ESC C-v).
+>> Vtipkajte C-x o (o kot ,,other``, drugi), da preselite kazalèek v
+   spodnje okno.
+>> S C-v in M-v se v spodnjem oknu premikate po vsebini datoteke.
+   Zgornje okno ¹e vedno ka¾e ta navodila.
+>> Ponovni C-x o vas vrne v zgornje okno. Kazalèek se je vrnil na
+   mesto, kjer je bil, preden smo skoèili v spodnje okno.
+
+Z ukazom C-x o lahko preklapljamo med okni. Vsako okno si zapomni, kje
+v oknu je ostal kazalèek, samo trenutno aktivno okno pa kazalèek tudi
+v resnici prika¾e. Vsi obièajni ukazi za urejanje, ki smo se jih
+nauèili, veljajo za aktivno okno.
+
+Ukaz C-M-v je zelo uporaben, kadar urejamo besedilo v enem oknu,
+drugega pa uporabljamo samo za pomoè. Kazalèek ostaja ves èas v oknu,
+v katerem urejamo, po vsebini spodnjega okna pa se vseeno lahko
+premikamo, ne da bi morali venomer skakati iz enega okna v drugega.
+
+C-M-v je primer znaka CONTROL-META. Èe imate v resnici tipko Meta (na
+PC navadno levi Alt), lahko vtipkate C-M-v tako, da dr¾ite pritisnjeni
+tako CONTROL kot META, medtem ko vtipkate v. Ni pomembno, katero od
+tipk, CONTROL ali META, pritisnete prvo, saj obe delujeta ¹ele, ko
+pritisnete znak, ki sledi (v zgornjem primeru ,v`).
+
+Nasprotno pa je vrstni red pritiskanja pomemben, èe nimate tipke META
+in namesto nje uporabljate ESC. V tem primeru morate najprej
+pritisniti ESC, potem pa Control-v. Obratna kombinacija, Control-ESC v ne
+deluje. To je zato, ker je ESC znak sam po sebi, ne pa modifikator,
+kot sta CONTROL in META.
+
+>> V zgornjem oknu vtipkajte C-x 1, da se znebite spodnjega okna.
+
+(Èe bi vtipkali C-x 1 v spodnjem oknu, bi se znebili
+zgornjega. Razmi¹ljajte o tem ukazu kot ,,Obdr¾i samo eno okno, in
+sicer tisto, v katerem sem zdaj.``)
+
+Seveda ni nujno, da obe okni ka¾eta isto delovno podroèje. Èe v enem
+oknu izvedete C-x C-f in poi¹èete novo datoteko, se vsebina drugega
+okna ne spremeni. V vsakem oknu lahko neodvisno obdelujete drugo
+datoteko. 
+
+Pa ¹e ena pot, kako v dveh oknih prika¾ete dve razlièni datoteki:
+
+>> Vtipkajte C-x 4 C-f, in na pozivnik vtipkajte ime ene va¹ih
+   datotek. Konèajte z <Return>. Odpre se ¹e eno okno in izbrana
+   datoteka se pojavi v drugem oknu. Tudi kazalèek se preseli v drugo
+   okno. 
+
+>> Vtipkajte C-x o, da se vrnete nazaj v zgornje okno, in C-x 1, da
+   zaprete spodnje okno.
+
+
+* REKURZIVNI NIVOJI UREJANJA
+----------------------------
+
+Vèasih boste pri¹li v nekaj, èemur se pravi ,,rekurzivni nivo
+urejanja``. To se vidi po tem, da v statusni vrstici oglati oklepaji
+oklepajo ime glavnega naèina. V osnovnem naèinu bi, na primer, videli
+[(Fundamental)] namesto (Fundamental).
+
+Iz rekurzivnega nivoja urejanja se re¹ite, èe vtipkate ESC ESC ESC. To
+zaporedje je vsenamenski ukaz ,,pojdi ven``. Uporabite ga lahko tudi
+za ukinjanje odveènih oken, ali vrnitev iz pogovornega vmesnika.
+
+>> Pritisnite M-x, da odprete pogovorni vmesnik, zatem pa vtipkajte
+   ESC ESC ESC, da pridete ven iz njega.
+
+Z ukazom C-g ne morete iz rekurzivnega nivoja urejanja, ker C-g
+preklièe ukaze ali argumente ZNOTRAJ rekurzivnega nivoja.
+
+
+* DODATNA POMOÈ
+---------------
+
+V tem uvodu smo posku¹ali zbrati dovolj informacij, da lahko zaènete
+Emacs uporabljati. Emacs ponuja toliko, da bi bilo nemogoèe vse to
+zbrati tukaj. Verjetno pa bi se vseeno radi nauèili kaj o ¹tevilnih
+koristnih mo¾nostih, ki jih ¹e ne poznate. Emacs ima ¾e vgrajene
+veliko dokumentacije, do katere lahko pridete s pritiskom na CTRL-h (h
+kot ,,help``, pomoè).
+
+Za pomoè pritisnete C-h, potem pa vtipkate znak, ki pove, kak¹no pomoè
+¾elite. Èe ste poplnoma izgubljeni, vtipkajte C-h ? in Emacs vam bo
+povedal, kak¹na pomoè je sploh na voljo. Èe ste vtipkali C-h, pa ste
+si premislili, lahko ukaz preklièete s C-g.
+
+(Ponekod se znak C-h preslika v kaj drugega. To ni dobro, in v takem
+primeru se prito¾ite sistemskemu vzdr¾evalcu. Medtem pa, èe C-h ne
+prika¾e sporoèila o pomoèi na dnu zaslona, namesto tega poskusite
+pritisniti tipko F1 ali pa vtipkajte M-x help <Return>.)
+
+Najosnovnej¹i tip pomoèi prika¾e C-h c. Pritisnite C-h, tipko c, zatem
+pa ukazni znak ali zaporedje ukaznih znakov, in Emacs bo izpisal
+kratek opis ukaza.
+
+>> Vtipkajte C-h c Control-p.
+   Izpi¹e se nekaj takega kot
+
+       C-p runs the command previous-line
+
+Ukaz je izpisal ime funkcije, ki izvede ukaz. Imena funkcij
+uporabljamo, kadar pi¹emo prilagoditve in raz¹iritve Emacsa. Ker pa so
+navadno imena funkcij izbrana tako, da kaj povedo o tem, kaj funkcija
+poène, bo verjetno to tudi dovolj za kratko osve¾itev, èe ste se z
+ukazom ¾e kdaj sreèali.
+
+Ukazu C-h lahko sledi tudi zaporedje znakov, kot na primer C-x C-s,
+ali, èe nimate tipke META, <Esc>v.
+
+Za veè informacij o ukazu vtipkajte C-h k namesto C-h c.
+
+>> Vtipkajte C-h k Control-p.
+
+To odpre novo okno in v njem prika¾e dokumentacijo o funkciji, obenem
+z njenim imenom. Ko ste opravili, vtipkajte C-x 1, da se znebite okna
+z pomoèjo. Tega seveda ni potrebno napraviti takoj, ampak lahko
+urejate, medtem ko imate odprto okno s pomoèjo, in ga zaprete, ko ste
+konèali. 
+
+Sledi ¹e nekaj uporabnih mo¾nosti, ki jih ponuja pomoè:
+
+   C-h f       Opi¹i funkcijo. Kot argument morate podati ime
+               funkcije. 
+
+>> Poskusite C-h f previous-line<Return>.
+   To izpi¹e vse podatke, ki jih ima Emacs o funkciji, ki izvede ukaz C-p.
+
+   C-h a        Apropos. Vtipkajte kljuèno besedo in Emacs bo izpisal
+                vse ukaze, ki vsebujejo to kljuèno besedo. Vse te
+                ukaze lahko priklièete z Meta-x. Pri nekaterih ukazih
+                bo Apropos izpisal tudi eno ali dvoznakovno
+                zaporedje, s katerim dose¾ete isti uèinek.
+
+>> Vtipkajte C-h a file<Return>.
+
+To odpre novo okno, v katerem so vsa dolga imena ukazov, ki vsebujejo
+,,file`` v imenu. Izvedete jih lahko z M-x. Pri nekaterih se izpi¹e
+tudi kratek ukaz, npr. C-x C-f ali C-x C-w pri ukazih find-file in
+write-file. 
+
+>> Pritisnite C-M-v, da se sprehajate po oknu s pomoèjo. Poskusite
+   nekajkrat. 
+
+>> Vtipkajte C-x 1, da zaprete okno s pomoèjo.
+
+
+* ZAKLJUÈEK
+-----------
+
+Zapomnite si, da Emacs zapustite z ukazom C-x C-c. Èe bi radi samo
+zaèasno skoèili v ukazno lupino in se kasneje vrnili v Emacs, pa 
+storite to z ukazom C-z. 
+
+Ta uèbenik je napisan z namenom, da bi bil razumljiv vsem novincem v
+Emacsu. Èe se vam kaj ne zdi jasno napisano, ne valite krivde nase -
+prito¾ite se!
+
+
+RAZMNO®EVANJE IN RAZ©IRJANJE
+----------------------------
+
+Angle¹ki izvirnik tega uvoda v Emacs je naslednik dolge vrste tovrstnih
+besedil, zaèen¹i s tistim, ki ga je Stuart Cracraft napisal za izvorni
+Emacs. V sloven¹èino ga je prevedel Primo¾ Peterlin.
+
+To besedilo, kot sam GNU Emacs, je avtorsko delo, in njegovo
+razmno¾evanje in raz¹irjanje je dovoljeno pod naslednjimi pogoji:
+
+Copyright (c) 1985, 1996, 1997 Free Software Foundation
+
+   Dovoljeno je izdelovati in raz¹irjati neokrnjene kopije tega spisa
+   v kakr¹nikoli obliki pod pogojem, da je ohranjena navedba o
+   avtorstvu in to dovoljenje, ter da distributer dovoljuje prejemniku
+   nadaljnje raz¹irjanje pod pogoji, navedenimi v tem dovoljenju.
+
+   Pod pogoji iz prej¹njega odstavka je dovoljeno raz¹irjati 
+   spremenjene verzije tega spisa ali njegovih delov, èe je jasno
+   oznaèeno, kdo je nazadnje vnesel spremembe.
+
+Pogoji za razmno¾evanje in raz¹irjanje samega Emacsa so malo drugaèni,
+a v istem duhu. Prosimo, preberite datoteko COPYING in potem dajte
+kopijo programa GNU Emacs svojim prijateljem. Pomagajte zatreti
+obstrukcionizem (,,lastni¹tvo``) v programju tako, da uporabljate,
+pi¹ete in delite prosto programje!
+
+;;; Local Variables:
+;;; coding: iso-latin-2
+;;; End:
index bd5d443..cf05781 100644 (file)
@@ -1,3 +1,12 @@
+2005-12-03  Vin Shelton <acs@xemacs.org>
+
+       * XEmacs 21.4.18 is released
+
+2005-09-18  Mike Alexander  <mta@arbortext.com>
+
+       * installexe.sh: Don't add an exe extention to a file that already
+       has one.  Patch from Rick Rankin.
+
 2005-02-06  Vin Shelton <acs@xemacs.org>
 
        * XEmacs 21.4.17 is released
 2005-02-06  Vin Shelton <acs@xemacs.org>
 
        * XEmacs 21.4.17 is released
index d971b09..1698125 100644 (file)
@@ -5,11 +5,16 @@ shift
 
 tstr=""
 
 
 tstr=""
 
-while [ $# -gt 0 ]
+while [[ $# -gt 0 ]]
 do
 do
-  if [ -f $1.exe ]
+  if [[ -f $1.exe ]]
   then
   then
-    tstr="$tstr$1.exe $2.exe"
+    if [[ "$2" == *.exe ]]
+    then
+      tstr="$tstr$1 $2"
+    else
+      tstr="$tstr$1.exe $2.exe"
+    fi
     shift 2
   else
     tstr="$tstr$1 "
     shift 2
   else
     tstr="$tstr$1 "
index 170a5d5..f913b9e 100644 (file)
@@ -1,3 +1,91 @@
+2005-12-03  Vin Shelton <acs@xemacs.org>
+
+       * XEmacs 21.4.18 is released
+
+2005-10-28  Adrian Aichner  <adrian@xemacs.org>
+
+       * package-get.el (package-get-download-sites): Update reflecting
+       latest http://www.xemacs.org/Releases/ information generated by
+       xemacs-builds/adrian/website/package-get-2-download-sites.el.
+       * package-get.el (package-get-pre-release-download-sites): Ditto.
+
+2005-02-28  Simon Josefsson  <jas@extundo.com>
+
+       * about.el (xemacs-hackers): Add jas.
+       (about-other-current-hackers): Likewise.
+       (about-url-alist): Add URL for jas.
+       (about-personal-info): Document jas.
+       (about-hacker-contribution): Describe jas contributions.
+
+2005-03-25  Ralf Angeli  <angeli@iwi.uni-sb.de> 
+
+       * easymenu.el (easy-menu-remove): As described in 
+       E1D4Nn5-0001lq-EU@neutrino.iwi.uni-sb.de; don't strip everything
+       except the "Command" menu from mode-popup-menu. 
+
+2005-03-25  Ralf Angeli  <angeli@iwi.uni-sb.de> 
+        * font.el (font-spatial-to-canonical): Correct calculation of 
+        return value for pixel-based input value. 
+2002-05-13  Adrian Aichner  <adrian@xemacs.org>
+
+       * code-process.el (call-process): Process-related docstring
+       improvements spurred by Norbert Koch.
+       * code-process.el (call-process-region): Ditto.
+       * code-process.el (start-process): Ditto.
+
+2005-10-09  Adrian Aichner  <adrian@xemacs.org>
+
+       * finder.el (finder-find-library): Return filename actually
+       searched for.
+
+2005-10-10  Steve Youngs  <steve@sxemacs.org>
+
+       * help.el (view-emacs-news): Use `expand-file-name' instead of
+       `locate-data-file' as the latter will find any "NEWS" files that
+       might exist in packages _before_ the one in core.
+
+2005-06-06  Adrian Aichner  <adrian@xemacs.org>
+
+       * package-get.el (package-get-init-package):
+       package-get-init-package buglet (21.4.17) by Jeff Mincy
+       <mincy@rcn.com> fixing false temporary load-path shadows reported
+       after package installation and simplifying code.
+
+2005-10-18  Ville Skyttä  <scop@xemacs.org>
+
+       * package-get.el (package-get-download-sites): Sync mirrors list
+       with the XEmacs website.
+       (package-get-pre-release-download-sites): Ditto.
+
+2005-04-06  Stephen J. Turnbull  <stephen@xemacs.org>
+
+       * derived.el (derived-mode-merge-syntax-tables):
+       Revert my 21.5-only patch of 2003-07-18 which slipped in
+       through Jerry James's patch of 2004-06-07.
+
+2005-02-23  Adrian Aichner  <adrian@xemacs.org>
+
+       * cmdloop.el (keyboard-quit): Remove workaround for
+       `region-active-p' not making sure active region is in current
+       buffer now that it does.
+       * minibuf.el (minibuffer-keyboard-quit): Ditto.
+       * simple.el (region-active-p): `region-active-p' to only return t
+       when active region is in current buffer.
+
+2005-02-21  Norbert Koch  <viteno@xemacs.org>
+
+       * package-ui.el (pui-list-packages): MF21.5, adapt to longer
+       package names, quell a byte-compiler warning, doc fix.
+
+2005-02-16  Aidan Kehoe  <kehoea@parhasard.net>
+
+       * buffer.el (pop-to-buffer):
+       * window-xemacs.el (display-buffer):
+       Document use of `same-window-buffer-names,' `same-window-regexps'
+       by pop-to-buffer and display-buffer. 
+       
 2005-02-06  Vin Shelton <acs@xemacs.org>
 
        * XEmacs 21.4.17 is released
 2005-02-06  Vin Shelton <acs@xemacs.org>
 
        * XEmacs 21.4.17 is released
index 3d1d5af..e6e7d58 100644 (file)
@@ -1,6 +1,6 @@
 ;;; about.el --- the About The Authors page (shameless self promotion).
 
 ;;; about.el --- the About The Authors page (shameless self promotion).
 
-;; Copyright (c) 1997 Free Software Foundation, Inc.
+;; Copyright (c) 1997, 2005 Free Software Foundation, Inc.
 ;; Copyright (C) 2001 Ben Wing.
 
 ;; Keywords: extensions
 ;; Copyright (C) 2001 Ben Wing.
 
 ;; Keywords: extensions
     (hobley   "David hobley"      "hobley@xemacs.org")
     (jan      "Jan Vroonhof"      "jan@xemacs.org")
     (jareth   "Jareth Hein"       "jareth@xemacs.org")
     (hobley   "David hobley"      "hobley@xemacs.org")
     (jan      "Jan Vroonhof"      "jan@xemacs.org")
     (jareth   "Jareth Hein"       "jareth@xemacs.org")
+    (jas      "Simon Josefsson"   "simon@xemacs.org")
     (jason    "Jason R. Mastaler" "jason@xemacs.org")
     (jens     "Jens Lautenbacher" "jens@xemacs.org")
     (jmiller  "Jeff Miller"       "jmiller@xemacs.org")
     (jason    "Jason R. Mastaler" "jason@xemacs.org")
     (jens     "Jens Lautenbacher" "jens@xemacs.org")
     (jmiller  "Jeff Miller"       "jmiller@xemacs.org")
 
 (defvar about-once-and-future-hackers
   '(ajc baw bw chr cthomp darrylo devin dkindred dmoore eb hbs hmuller
 
 (defvar about-once-and-future-hackers
   '(ajc baw bw chr cthomp darrylo devin dkindred dmoore eb hbs hmuller
-       hobley jens juhp jwz kyle marcpa mcook mly ograf pelegri pez
+       hobley jas jens juhp jwz kyle marcpa mcook mly ograf pelegri pez
        rickc rose rossini slb stig stigb thiessel vladimir))
 
 ;; The CAR of alist elements is a valid argument to `about-url-link'.
        rickc rose rossini slb stig stigb thiessel vladimir))
 
 ;; The CAR of alist elements is a valid argument to `about-url-link'.
     (dv         . "http://www.lrde.epita.fr/~didier/")
     (fabrice    . "http://www.ese-metz.fr/~popineau/")
     (fptex      . "http://www.fptex.org/")
     (dv         . "http://www.lrde.epita.fr/~didier/")
     (fabrice    . "http://www.ese-metz.fr/~popineau/")
     (fptex      . "http://www.fptex.org/")
+    (jas       . "http://josefsson.org/")
     (jason      . "http://www.mastaler.com/")
     (juhp       . "http://www.01.246.ne.jp/~juhp/")
     (jwz        . "http://www.jwz.org/")
     (jason      . "http://www.mastaler.com/")
     (juhp       . "http://www.01.246.ne.jp/~juhp/")
     (jwz        . "http://www.jwz.org/")
@@ -1059,6 +1061,25 @@ portable, implements a language, includes a non-trivial bit of
 graphics and a garbage collector, but is multithreaded to boot!
 Unfortunately his XEmacs time is directly limited by the amount of
 traffic on the M40.\n"))
 graphics and a garbage collector, but is multithreaded to boot!
 Unfortunately his XEmacs time is directly limited by the amount of
 traffic on the M40.\n"))
+    (jas
+     (widget-insert "\
+
+Simon lives in Stockholm where he has discovered that computers
+can be a powerful procrastinating tool.  Combined with a
+frustrating desire to see computers simply work, he spends most
+of his time complaining.  Occasionally he rises up to the task
+and produces something that others may complain about, which
+brings him increased satisfaction with every bug report.  Today
+he is pretending to be a network security guy, with a preference
+for standardization issues, while secretly longing to start a
+cafe or becoming a theoretical computer scientist.  His personal
+interest is literature, and to some extent traveling, but will
+try anything for fun, such as juggling, skiing, wine, and
+long-distance biking.
+
+See: ")
+     (about-url-link 'jas nil "Visit Simon's homepage")
+     (widget-insert ".\n"))
     (jareth
      (widget-insert "\
 Jareth Hein is a mountain boy who abandoned his home state of Colorado
     (jareth
      (widget-insert "\
 Jareth Hein is a mountain boy who abandoned his home state of Colorado
@@ -1609,6 +1630,14 @@ of the XEmacs custom subsystem and gnuserv.\n"))
      (widget-insert "\
 Owner of cvs.xemacs.org, the machine that holds the XEmacs CVS
 repository, and author of some of the graphics code in XEmacs.\n"))
      (widget-insert "\
 Owner of cvs.xemacs.org, the machine that holds the XEmacs CVS
 repository, and author of some of the graphics code in XEmacs.\n"))
+    (jas
+     (widget-insert "\
+Wrote and/or integrated several packages for Gnus, such as
+support for IMAP, Sieve, format=flowed, GnuTLS, S/MIME, and PGP.
+Irregularly synchronizes lisp code between Emacs and XEmacs.  He
+maintains the mail-lib, sieve, sasl, pgg and ecrypto XEmacs
+packages.  Operates the secondary DNS and mail server for
+xemacs.org.\n"))
     (jason
      (widget-insert "\
 Beta tester, manager of the various XEmacs mailing lists and binary
     (jason
      (widget-insert "\
 Beta tester, manager of the various XEmacs mailing lists and binary
index 670a8c8..88caef1 100644 (file)
@@ -1506,9 +1506,9 @@ one version of a package available.")
 
 (defcustom package-get-install-to-user-init-directory nil "*If non-nil install packages under `user-init-directory'." :type 'boolean :group 'package-get)
 
 
 (defcustom package-get-install-to-user-init-directory nil "*If non-nil install packages under `user-init-directory'." :type 'boolean :group 'package-get)
 
-(defcustom package-get-download-sites '(("US (Main XEmacs Site)" "ftp.xemacs.org" "pub/xemacs/packages") ("Australia (aarnet.edu.au)" "mirror.aarnet.edu.au" "pub/xemacs/packages") ("Australia (au.xemacs.org)" "ftp.au.xemacs.org" "pub/xemacs/packages") ("Austria (at.xemacs.org)" "ftp.at.xemacs.org" "editors/xemacs/packages") ("Belgium (be.xemacs.org)" "ftp.be.xemacs.org" "xemacs/packages") ("Brazil (br.xemacs.org)" "ftp.br.xemacs.org" "pub/xemacs/packages") ("Canada (ca.xemacs.org)" "ftp.ca.xemacs.org" "pub/Mirror/xemacs/packages") ("Canada (crc.ca)" "ftp.crc.ca" "pub/packages/editors/xemacs/packages") ("Canada (ualberta.ca)" "sunsite.ualberta.ca" "pub/Mirror/xemacs/packages") ("Czech Republic (cz.xemacs.org)" "ftp.cz.xemacs.org" "MIRRORS/ftp.xemacs.org/pub/xemacs/packages") ("Denmark (dk.xemacs.org)" "ftp.dk.xemacs.org" "pub/emacs/xemacs/packages") ("Finland (fi.xemacs.org)" "ftp.fi.xemacs.org" "pub/mirrors/ftp.xemacs.org/pub/tux/xemacs/packages") ("France (fr.xemacs.org)" "ftp.fr.xemacs.org" "pub/xemacs/packages") ("France (mirror.cict.fr)" "mirror.cict.fr" "xemacs/packages") ("France (pasteur.fr)" "ftp.pasteur.fr" "pub/computing/xemacs/packages") ("Germany (de.xemacs.org)" "ftp.de.xemacs.org" "pub/ftp.xemacs.org/tux/xemacs/packages") ("Germany (tu-darmstadt.de)" "ftp.tu-darmstadt.de" "pub/editors/xemacs/packages") ("Ireland (ie.xemacs.org)" "ftp.ie.xemacs.org" "mirrors/ftp.xemacs.org/pub/xemacs/packages") ("Italy (it.xemacs.org)" "ftp.it.xemacs.org" "unix/packages/XEMACS/packages") ("Japan (aist.go.jp)" "ring.aist.go.jp" "pub/text/xemacs/packages") ("Japan (asahi-net.or.jp)" "ring.asahi-net.or.jp" "pub/text/xemacs/packages") ("Japan (dti.ad.jp)" "ftp.dti.ad.jp" "pub/unix/editor/xemacs/packages") ("Japan (jaist.ac.jp)" "ftp.jaist.ac.jp" "pub/GNU/xemacs/packages") ("Japan (jp.xemacs.org)" "ftp.jp.xemacs.org" "pub/GNU/xemacs/packages") ("Japan (nucba.ac.jp)" "mirror.nucba.ac.jp" "mirror/xemacs/packages") ("Japan (sut.ac.jp)" "sunsite.sut.ac.jp" "pub/archives/packages/xemacs/packages") ("Korea (kr.xemacs.org)" "ftp.kr.xemacs.org" "pub/tools/emacs/xemacs/packages") ("New Zealand (nz.xemacs.org)" "ftp.nz.xemacs.org" "mirror/ftp.xemacs.org/packages") ("Norway (no.xemacs.org)" "ftp.no.xemacs.org" "pub/xemacs/packages") ("Poland (pl.xemacs.org)" "ftp.pl.xemacs.org" "pub/unix/editors/xemacs/packages") ("Russia (ru.xemacs.org)" "ftp.ru.xemacs.org" "pub/xemacs/packages") ("Slovakia (sk.xemacs.org)" "ftp.sk.xemacs.org" "pub/mirrors/xemacs/packages") ("South Africa (za.xemacs.org)" "ftp.za.xemacs.org" "mirrorsites/ftp.xemacs.org/packages") ("Sweden (se.xemacs.org)" "ftp.se.xemacs.org" "pub/gnu/xemacs/packages") ("Switzerland (ch.xemacs.org)" "ftp.ch.xemacs.org" "mirror/xemacs/packages") ("UK (uk.xemacs.org)" "ftp.uk.xemacs.org" "sites/ftp.xemacs.org/pub/xemacs/packages") ("US (ibiblio.org)" "ibiblio.org" "pub/packages/editors/xemacs/packages") ("US (stealth.net)" "ftp.stealth.net" "pub/mirrors/ftp.xemacs.org/pub/xemacs/packages") ("US (unc.edu)" "metalab.unc.edu" "pub/packages/editors/xemacs/packages") ("US (us.xemacs.org)" "ftp.us.xemacs.org" "pub/xemacs/packages") ("US (utk.edu)" "ftp.sunsite.utk.edu" "pub/xemacs/packages")) "*List of remote sites available for downloading packages.\nList format is '(site-description site-name directory-on-site).\nSITE-DESCRIPTION is a textual description of the site.  SITE-NAME\nis the internet address of the download site.  DIRECTORY-ON-SITE\nis the directory on the site in which packages may be found.\nThis variable is used to initialize `package-get-remote', the\nvariable actually used to specify package download sites." :tag "Package download sites" :type '(repeat (list (string :tag "Name") host-name directory)) :group 'package-get)
+(defcustom package-get-download-sites '(("US (Main XEmacs Site)" "ftp.xemacs.org" "pub/xemacs/packages") ("Argentina (xmundo.net)" "xemacs.xmundo.net" "pub/mirrors/xemacs/packages") ("Australia (aarnet.edu.au)" "mirror.aarnet.edu.au" "pub/xemacs/packages") ("Australia (au.xemacs.org)" "ftp.au.xemacs.org" "pub/xemacs/packages") ("Austria (at.xemacs.org)" "ftp.at.xemacs.org" "editors/xemacs/packages") ("Belgium (be.xemacs.org)" "ftp.be.xemacs.org" "xemacs/packages") ("Brazil (br.xemacs.org)" "ftp.br.xemacs.org" "pub/xemacs/packages") ("Canada (ca.xemacs.org)" "ftp.ca.xemacs.org" "pub/Mirror/xemacs/packages") ("Canada (crc.ca)" "ftp.crc.ca" "pub/packages/editors/xemacs/packages") ("Canada (nrc.ca)" "ftp.nrc.ca" "pub/packages/editors/xemacs/packages") ("Czech Republic (cz.xemacs.org)" "ftp.cz.xemacs.org" "MIRRORS/ftp.xemacs.org/pub/xemacs/packages") ("Denmark (dk.xemacs.org)" "ftp.dk.xemacs.org" "pub/emacs/xemacs/packages") ("Finland (fi.xemacs.org)" "ftp.fi.xemacs.org" "pub/mirrors/ftp.xemacs.org/pub/tux/xemacs/packages") ("France (fr.xemacs.org)" "ftp.fr.xemacs.org" "pub/xemacs/packages") ("France (mirror.cict.fr)" "mirror.cict.fr" "xemacs/packages") ("France (pasteur.fr)" "ftp.pasteur.fr" "pub/computing/xemacs/packages") ("Germany (de.xemacs.org)" "ftp.de.xemacs.org" "pub/ftp.xemacs.org/tux/xemacs/packages") ("Iceland (is.xemacs.org)" "ftp.is.xemacs.org" "pub/xemacs/packages") ("Ireland (ie.xemacs.org)" "ftp.ie.xemacs.org" "mirrors/ftp.xemacs.org/pub/xemacs/packages") ("Ireland (heanet.ie)" "ftp.heanet.ie" "mirrors/ftp.xemacs.org/packages") ("Italy (it.xemacs.org)" "ftp.it.xemacs.org" "unix/packages/XEMACS/packages") ("Japan (aist.go.jp)" "ring.aist.go.jp" "pub/text/xemacs/packages") ("Japan (asahi-net.or.jp)" "ring.asahi-net.or.jp" "pub/text/xemacs/packages") ("Japan (dti.ad.jp)" "ftp.dti.ad.jp" "pub/unix/editor/xemacs/packages") ("Japan (sut.ac.jp)" "sunsite.sut.ac.jp" "pub/archives/packages/xemacs/packages") ("Korea (kr.xemacs.org)" "ftp.kr.xemacs.org" "pub/tools/emacs/xemacs/packages") ("New Zealand (nz.xemacs.org)" "ftp.nz.xemacs.org" "mirror/ftp.xemacs.org/packages") ("Norway (no.xemacs.org)" "ftp.no.xemacs.org" "pub/xemacs/packages") ("Poland (pl.xemacs.org)" "ftp.pl.xemacs.org" "pub/unix/editors/xemacs/packages") ("Russia (ru.xemacs.org)" "ftp.ru.xemacs.org" "pub/emacs/xemacs/packages") ("Sweden (se.xemacs.org)" "ftp.se.xemacs.org" "pub/gnu/xemacs/packages") ("Switzerland (ch.xemacs.org)" "ftp.ch.xemacs.org" "mirror/xemacs/packages") ("Taiwan (ftp.tw.xemacs.org)" "ftp.tw.xemacs.org" "Unix/Editors/XEmacs/packages") ("UK (uk.xemacs.org)" "ftp.uk.xemacs.org" "sites/ftp.xemacs.org/pub/xemacs/packages") ("US (ibiblio.org)" "mirrors.ibiblio.org" "pub/mirrors/xemacs/packages") ("US (stealth.net)" "ftp.stealth.net" "pub/mirrors/ftp.xemacs.org/pub/xemacs/packages") ("US (unc.edu)" "metalab.unc.edu" "pub/packages/editors/xemacs/packages") ("US (us.xemacs.org)" "ftp.us.xemacs.org" "pub/xemacs/packages")) "*List of remote sites available for downloading packages.\nList format is '(site-description site-name directory-on-site).\nSITE-DESCRIPTION is a textual description of the site.  SITE-NAME\nis the internet address of the download site.  DIRECTORY-ON-SITE\nis the directory on the site in which packages may be found.\nThis variable is used to initialize `package-get-remote', the\nvariable actually used to specify package download sites." :tag "Package download sites" :type '(repeat (list (string :tag "Name") host-name directory)) :group 'package-get)
 
 
-(defcustom package-get-pre-release-download-sites '(("Pre-Releases (Main XEmacs Site)" "ftp.xemacs.org" "pub/xemacs/beta/experimental/packages") ("Australia Pre-Releases (aarnet.edu.au)" "mirror.aarnet.edu.au" "pub/xemacs/beta/experimental/packages") ("Australia Pre-Releases (au.xemacs.org)" "ftp.au.xemacs.org" "pub/xemacs/beta/experimental/packages") ("Austria Pre-Releases (at.xemacs.org)" "ftp.at.xemacs.org" "editors/xemacs/beta/experimentsl/packages") ("Brazil Pre-Releases (br.xemacs.org)" "ftp.br.xemacs.org" "pub/xemacs/xemacs-21.5/experimental/packages") ("Canada Pre-Releases (ca.xemacs.org)" "ftp.ca.xemacs.org" "pub/Mirror/xemacs/beta/experimental/packages") ("Canada Pre-Releases (crc.ca)" "ftp.crc.ca" "pub/packages/editors/xemacs/beta/experimental/packages") ("Canada Pre-Releases (ualberta.ca)" "sunsite.ualberta.ca" "pub/Mirror/xemacs/beta/experimental/packages") ("Czech Republic Pre-Releases (cz.xemacs.org)" "ftp.cz.xemacs.org" "MIRRORS/ftp.xemacs.org/pub/xemacs/xemacs-21.5/experimental/packages") ("Denmark Pre-Releases (dk.xemacs.org)" "ftp.dk.xemacs.org" "pub/emacs/xemacs/beta/experimental/packages") ("Finland Pre-Releases (fi.xemacs.org)" "ftp.fi.xemacs.org" "pub/mirrors/ftp.xemacs.org/pub/tux/xemacs/beta/experimental/packages") ("France Pre-Releases (fr.xemacs.org)" "ftp.fr.xemacs.org" "pub/xemacs/beta/experimental/packages") ("France Pre-Releases (mirror.cict.fr)" "mirror.cict.fr" "xemacs/beta/experimental/packages") ("France Pre-Releases (pasteur.fr)" "ftp.pasteur.fr" "pub/computing/xemacs/beta/experimental/packages") ("Germany Pre-Releases (de.xemacs.org)" "ftp.de.xemacs.org" "pub/ftp.xemacs.org/tux/xemacs/beta/experimental/packages") ("Germany Pre-Releases (tu-darmstadt.de)" "ftp.tu-darmstadt.de" "pub/editors/xemacs/beta/experimental/packages") ("Ireland Pre-Releases (ie.xemacs.org)" "ftp.ie.xemacs.org" "mirrors/ftp.xemacs.org/pub/xemacs/beta/experimental/packages") ("Italy Pre-Releases (it.xemacs.org)" "ftp.it.xemacs.org" "unix/packages/XEMACS/beta/experimental/packages") ("Japan Pre-Releases (aist.go.jp)" "ring.aist.go.jp" "pub/text/xemacs/beta/experimental/packages") ("Japan Pre-Releases (asahi-net.or.jp)" "ring.asahi-net.or.jp" "pub/text/xemacs/beta/experimental/packages") ("Japan Pre-Releases (dti.ad.jp)" "ftp.dti.ad.jp" "pub/unix/editor/xemacs/beta/experimental/packages") ("Japan Pre-Releases (jaist.ac.jp)" "ftp.jaist.ac.jp" "pub/GNU/xemacs/beta/experimental/packages") ("Japan Pre-Releases (jp.xemacs.org)" "ftp.jp.xemacs.org" "pub/GNU/xemacs/beta/experimental/packages") ("Japan Pre-Releases (sut.ac.jp)" "sunsite.sut.ac.jp" "pub/archives/packages/xemacs/xemacs-21.5/experimental/packages") ("New Zealand Pre-Releases (nz.xemacs.org)" "ftp.nz.xemacs.org" "mirror/ftp.xemacs.org/packages") ("Norway Pre-Releases (no.xemacs.org)" "ftp.no.xemacs.org" "pub/xemacs/beta/experimental/packages") ("Poland Pre-Releases (pl.xemacs.org)" "ftp.pl.xemacs.org" "pub/unix/editors/xemacs/beta/experimental/packages") ("Russia Pre-Releases (ru.xemacs.org)" "ftp.ru.xemacs.org" "pub/xemacs/beta/experimental/packages") ("Saudi Arabia Pre-Releases (sa.xemacs.org)" "ftp.sa.xemacs.org" "pub/mirrors/ftp.xemacs.org/xemacs/xemacs-21.5/experimental/packages") ("Slovakia Pre-Releases (sk.xemacs.org)" "ftp.sk.xemacs.org" "pub/mirrors/xemacs/beta/experimental/packages") ("South Africa Pre-Releases (za.xemacs.org)" "ftp.za.xemacs.org" "mirrorsites/ftp.xemacs.org/beta/experimental/packages") ("Sweden Pre-Releases (se.xemacs.org)" "ftp.se.xemacs.org" "pub/gnu/xemacs/beta/experimental/packages") ("Switzerland Pre-Releases (ch.xemacs.org)" "ftp.ch.xemacs.org" "mirror/xemacs/beta/experimental/packages") ("UK Pre-Releases (uk.xemacs.org)" "ftp.uk.xemacs.org" "sites/ftp.xemacs.org/pub/xemacs/beta/experimental/packages") ("US Pre-Releases (ibiblio.org)" "ibiblio.org" "pub/packages/editors/xemacs/beta/experimental/packages") ("US Pre-Releases (stealth.net)" "ftp.stealth.net" "pub/mirrors/ftp.xemacs.org/pub/xemacs/beta/experimental/packages") ("US Pre-Releases (unc.edu)" "metalab.unc.edu" "pub/packages/editors/xemacs/beta/experimental/packages") ("US Pre-Releases (us.xemacs.org)" "ftp.us.xemacs.org" "pub/xemacs/beta/experimental/packages") ("US Pre-Releases (utk.edu)" "ftp.sunsite.utk.edu" "pub/xemacs/beta/experimental/packages")) "*List of remote sites available for downloading \"Pre-Release\" packages.\nList format is '(site-description site-name directory-on-site).\nSITE-DESCRIPTION is a textual description of the site.  SITE-NAME\nis the internet address of the download site.  DIRECTORY-ON-SITE\nis the directory on the site in which packages may be found.\nThis variable is used to initialize `package-get-remote', the\nvariable actually used to specify package download sites." :tag "Pre-Release Package download sites" :type '(repeat (list (string :tag "Name") host-name directory)) :group 'package-get)
+(defcustom package-get-pre-release-download-sites '(("US Pre-Releases (Main XEmacs Site)" "ftp.xemacs.org" "pub/xemacs/beta/experimental/packages") ("Argentina Pre-Releases (xmundo.net)" "xemacs.xmundo.net" "pub/mirrors/xemacs/beta/experimental/packages") ("Australia Pre-Releases (aarnet.edu.au)" "mirror.aarnet.edu.au" "pub/xemacs/beta/experimental/packages") ("Australia Pre-Releases (au.xemacs.org)" "ftp.au.xemacs.org" "pub/xemacs/beta/experimental/packages") ("Austria Pre-Releases (at.xemacs.org)" "ftp.at.xemacs.org" "editors/xemacs/beta/experimental/packages") ("Belgium (be.xemacs.org)" "ftp.be.xemacs.org" "xemacs/beta/experimental/packages") ("Brazil Pre-Releases (br.xemacs.org)" "ftp.br.xemacs.org" "pub/xemacs/xemacs-21.5/experimental/packages") ("Canada Pre-Releases (ca.xemacs.org)" "ftp.ca.xemacs.org" "pub/Mirror/xemacs/beta/experimental/packages") ("Canada Pre-Releases (crc.ca)" "ftp.crc.ca" "pub/packages/editors/xemacs/beta/experimental/packages") ("Canada Pre-Releases (nrc.ca)" "ftp.nrc.ca" "pub/packages/editors/xemacs/beta/experimental/packages") ("Czech Republic Pre-Releases (cz.xemacs.org)" "ftp.cz.xemacs.org" "MIRRORS/ftp.xemacs.org/pub/xemacs/xemacs-21.5/experimental/packages") ("Denmark Pre-Releases (dk.xemacs.org)" "ftp.dk.xemacs.org" "pub/emacs/xemacs/beta/experimental/packages") ("Finland Pre-Releases (fi.xemacs.org)" "ftp.fi.xemacs.org" "pub/mirrors/ftp.xemacs.org/pub/tux/xemacs/beta/experimental/packages") ("France Pre-Releases (fr.xemacs.org)" "ftp.fr.xemacs.org" "pub/xemacs/beta/experimental/packages") ("France Pre-Releases (mirror.cict.fr)" "mirror.cict.fr" "xemacs/beta/experimental/packages") ("France Pre-Releases (pasteur.fr)" "ftp.pasteur.fr" "pub/computing/xemacs/beta/experimental/packages") ("Germany Pre-Releases (de.xemacs.org)" "ftp.de.xemacs.org" "pub/ftp.xemacs.org/tux/xemacs/beta/experimental/packages") ("Iceland Pre-Releases (is.xemacs.org)" "ftp.is.xemacs.org" "pub/xemacs/beta/experimental/packages") ("Ireland Pre-Releases (ie.xemacs.org)" "ftp.ie.xemacs.org" "mirrors/ftp.xemacs.org/pub/xemacs/beta/experimental/packages") ("Ireland Pre-Releases (heanet.ie)" "ftp.heanet.ie" "mirrors/ftp.xemacs.org/beta/experimental/packages") ("Italy Pre-Releases (it.xemacs.org)" "ftp.it.xemacs.org" "unix/packages/XEMACS/beta/experimental/packages") ("Japan Pre-Releases (aist.go.jp)" "ring.aist.go.jp" "pub/text/xemacs/beta/experimental/packages") ("Japan Pre-Releases (asahi-net.or.jp)" "ring.asahi-net.or.jp" "pub/text/xemacs/beta/experimental/packages") ("Japan Pre-Releases (dti.ad.jp)" "ftp.dti.ad.jp" "pub/unix/editor/xemacs/beta/experimental/packages") ("Japan Pre-Releases (sut.ac.jp)" "sunsite.sut.ac.jp" "pub/archives/packages/xemacs/xemacs-21.5/experimental/packages") ("Korea (kr.xemacs.org)" "ftp.kr.xemacs.org" "pub/tools/emacs/xemacs/beta/experimental/packages") ("New Zealand Pre-Releases (nz.xemacs.org)" "ftp.nz.xemacs.org" "mirror/ftp.xemacs.org/packages") ("Norway Pre-Releases (no.xemacs.org)" "ftp.no.xemacs.org" "pub/xemacs/beta/experimental/packages") ("Poland Pre-Releases (pl.xemacs.org)" "ftp.pl.xemacs.org" "pub/unix/editors/xemacs/beta/experimental/packages") ("Russia Pre-Releases (ru.xemacs.org)" "ftp.ru.xemacs.org" "pub/emacs/xemacs/beta/experimental/packages") ("Sweden Pre-Releases (se.xemacs.org)" "ftp.se.xemacs.org" "pub/gnu/xemacs/beta/experimental/packages") ("Switzerland Pre-Releases (ch.xemacs.org)" "ftp.ch.xemacs.org" "mirror/xemacs/beta/experimental/packages") ("Taiwan Pre-Releases (ftp.tw.xemacs.org)" "ftp.tw.xemacs.org" "Unix/Editors/XEmacs/beta/experimental/packages") ("UK Pre-Releases (uk.xemacs.org)" "ftp.uk.xemacs.org" "sites/ftp.xemacs.org/pub/xemacs/beta/experimental/packages") ("US Pre-Releases (ibiblio.org)" "mirrors.ibiblio.org" "pub/mirrors/xemacs/beta/experimental/packages") ("US Pre-Releases (stealth.net)" "ftp.stealth.net" "pub/mirrors/ftp.xemacs.org/pub/xemacs/beta/experimental/packages") ("US Pre-Releases (unc.edu)" "metalab.unc.edu" "pub/packages/editors/xemacs/beta/experimental/packages") ("US Pre-Releases (us.xemacs.org)" "ftp.us.xemacs.org" "pub/xemacs/beta/experimental/packages")) "*List of remote sites available for downloading \"Pre-Release\" packages.\nList format is '(site-description site-name directory-on-site).\nSITE-DESCRIPTION is a textual description of the site.  SITE-NAME\nis the internet address of the download site.  DIRECTORY-ON-SITE\nis the directory on the site in which packages may be found.\nThis variable is used to initialize `package-get-remote', the\nvariable actually used to specify package download sites." :tag "Pre-Release Package download sites" :type '(repeat (list (string :tag "Name") host-name directory)) :group 'package-get)
 
 (defcustom package-get-site-release-download-sites nil "*List of remote sites available for downloading \"Site Release\" packages.\nList format is '(site-description site-name directory-on-site).\nSITE-DESCRIPTION is a textual description of the site.  SITE-NAME\nis the internet address of the download site.  DIRECTORY-ON-SITE\nis the directory on the site in which packages may be found.\nThis variable is used to initialize `package-get-remote', the\nvariable actually used to specify package download sites." :tag "Site Release Package download sites" :type '(repeat (list (string :tag "Name") host-name directory)) :group 'package-get)
 
 
 (defcustom package-get-site-release-download-sites nil "*List of remote sites available for downloading \"Site Release\" packages.\nList format is '(site-description site-name directory-on-site).\nSITE-DESCRIPTION is a textual description of the site.  SITE-NAME\nis the internet address of the download site.  DIRECTORY-ON-SITE\nis the directory on the site in which packages may be found.\nThis variable is used to initialize `package-get-remote', the\nvariable actually used to specify package download sites." :tag "Site Release Package download sites" :type '(repeat (list (string :tag "Name") host-name directory)) :group 'package-get)
 
index 983a55e..057583b 100644 (file)
@@ -71,7 +71,12 @@ If optional second arg NOT-THIS-WINDOW-P is non-nil, insist on finding
 another window even if BUFNAME is already visible in the selected window.
 If optional third arg is non-nil, it is the frame to pop to this
 buffer on.
 another window even if BUFNAME is already visible in the selected window.
 If optional third arg is non-nil, it is the frame to pop to this
 buffer on.
-If `focus-follows-mouse' is non-nil, keyboard focus is left unchanged."
+If `focus-follows-mouse' is non-nil, keyboard focus is left unchanged.
+
+Buffers with names that are members of the `same-window-buffer-names'
+list, or that match an element of the `same-window-regexps' list are
+treated specially by this function--they are always selected in the
+same window rather than in a different one."
   ;; #ifdef I18N3
   ;; #### Doc string should indicate that the buffer name will get
   ;; translated.
   ;; #ifdef I18N3
   ;; #### Doc string should indicate that the buffer name will get
   ;; translated.
index 9e9a56a..6d972de 100644 (file)
@@ -70,8 +70,7 @@ If this character is typed at top-level, this simply beeps.
 If `zmacs-regions' is true, and the zmacs region is active in this buffer,
 then this key deactivates the region without beeping or signalling."
   (interactive)
 If `zmacs-regions' is true, and the zmacs region is active in this buffer,
 then this key deactivates the region without beeping or signalling."
   (interactive)
-  (if (and (region-active-p)
-          (eq (current-buffer) (zmacs-region-buffer)))
+  (if (region-active-p)
       ;; pseudo-zmacs compatibility: don't beep if this ^G is simply
       ;; deactivating the region.  If it is inactive, beep.
       nil
       ;; pseudo-zmacs compatibility: don't beep if this ^G is simply
       ;; deactivating the region.  If it is inactive, beep.
       nil
index 1b493d5..1d9208a 100644 (file)
@@ -50,6 +50,8 @@ or a cons of coding systems which are used as above.")
 The program's input comes from file INFILE (nil means `/dev/null').
 Insert output in BUFFER before point; t means current buffer;
  nil for BUFFER means discard it; 0 means discard and don't wait.
 The program's input comes from file INFILE (nil means `/dev/null').
 Insert output in BUFFER before point; t means current buffer;
  nil for BUFFER means discard it; 0 means discard and don't wait.
+If BUFFER is a string, then find or create a buffer with that name,
+then insert the output in that buffer, before point.
 BUFFER can also have the form (REAL-BUFFER STDERR-FILE); in that case,
 REAL-BUFFER says what to do with standard output, as above,
 while STDERR-FILE says what to do with standard error in the child.
 BUFFER can also have the form (REAL-BUFFER STDERR-FILE); in that case,
 REAL-BUFFER says what to do with standard output, as above,
 while STDERR-FILE says what to do with standard error in the child.
@@ -100,6 +102,8 @@ Delete the text if fourth arg DELETEP is non-nil.
 
 Insert output in BUFFER before point; t means current buffer;
  nil for BUFFER means discard it; 0 means discard and don't wait.
 
 Insert output in BUFFER before point; t means current buffer;
  nil for BUFFER means discard it; 0 means discard and don't wait.
+If BUFFER is a string, then find or create a buffer with that name,
+then insert the output in that buffer, before point.
 BUFFER can also have the form (REAL-BUFFER STDERR-FILE); in that case,
 REAL-BUFFER says what to do with standard output, as above,
 while STDERR-FILE says what to do with standard error in the child.
 BUFFER can also have the form (REAL-BUFFER STDERR-FILE); in that case,
 REAL-BUFFER says what to do with standard output, as above,
 while STDERR-FILE says what to do with standard error in the child.
@@ -158,10 +162,10 @@ found, they default to `nil' for both input and output."
 Args are NAME BUFFER PROGRAM &rest PROGRAM-ARGS
 NAME is name for process.  It is modified if necessary to make it unique.
 BUFFER is the buffer or (buffer-name) to associate with the process.
 Args are NAME BUFFER PROGRAM &rest PROGRAM-ARGS
 NAME is name for process.  It is modified if necessary to make it unique.
 BUFFER is the buffer or (buffer-name) to associate with the process.
- Process output goes at end of that buffer, unless you specify
- an output stream or filter function to handle the output.
- BUFFER may be also nil, meaning that this process is not associated
- with any buffer
+Process output goes at end of that buffer, unless you specify
+an output stream or filter function to handle the output.
+BUFFER may also be nil, meaning that this process is not associated
+with any buffer.
 Third arg is program file name.  It is searched for as in the shell.
 Remaining arguments are strings to give program as arguments.
 
 Third arg is program file name.  It is searched for as in the shell.
 Remaining arguments are strings to give program as arguments.
 
index 9f3dfc7..3ca8e03 100644 (file)
@@ -421,20 +421,12 @@ Where the new table already has an entry, nothing is copied from the old one."
   ;; check for inheritance.
   (map-char-table
    #'(lambda (key value)
   ;; check for inheritance.
   (map-char-table
    #'(lambda (key value)
-       (let ((newval (get-range-char-table key new 'multi)))
-        (cond ((eq newval 'multi)      ; OK, dive into the class hierarchy
-               (map-char-table
-                #'(lambda (key1 value1)
-                    (when (eq ?@ (char-syntax-from-code
-                                  (get-range-char-table key new ?@)))
-                      (put-char-table key1 value new))
-                    nil)
-                new
-                key))
-              ((eq ?@ (char-syntax-from-code newval)) ;; class at once
-               (put-char-table key value new))))
-       nil)
-   old))
+       (if (eq ?@ (char-syntax-from-code value))
+          (map-char-table #'(lambda (key1 value1)
+                              (put-char-table key1 value1 new))
+                          old
+                          key)))
+   new))
 
 ;; Merge an old abbrev table into a new one.
 ;; This function requires internal knowledge of how abbrev tables work,
 
 ;; Merge an old abbrev table into a new one.
 ;; This function requires internal knowledge of how abbrev tables work,
index 6673789..93c9d58 100644 (file)
@@ -203,7 +203,7 @@ is a list of menu items, as above."
   "Remove MENU from the current menu bar."
   (when (featurep 'menubar)
     (setq easy-menu-all-popups (delq menu easy-menu-all-popups)
   "Remove MENU from the current menu bar."
   (when (featurep 'menubar)
     (setq easy-menu-all-popups (delq menu easy-menu-all-popups)
-         mode-popup-menu (if (< (length easy-menu-all-popups) 1)
+         mode-popup-menu (if (> (length easy-menu-all-popups) 1)
                              (cons (easy-menu-title)
                                    (reverse easy-menu-all-popups))
                            (let ((same-as-menu
                              (cons (easy-menu-title)
                                    (reverse easy-menu-all-popups))
                            (let ((same-as-menu
index cbed603..6124ce8 100644 (file)
@@ -287,7 +287,7 @@ arguments compiles from `load-path'."
          found)
       (while (and dirs (not found))
        (if (file-exists-p (expand-file-name (concat file ".el") (car dirs)))
          found)
       (while (and dirs (not found))
        (if (file-exists-p (expand-file-name (concat file ".el") (car dirs)))
-           (setq found (expand-file-name file (car dirs)))
+           (setq found (expand-file-name (concat file ".el") (car dirs)))
          (if (file-exists-p (expand-file-name file (car dirs)))
              (setq found (expand-file-name file (car dirs)))))
        (setq dirs (cdr dirs)))
          (if (file-exists-p (expand-file-name file (car dirs)))
              (setq found (expand-file-name file (car dirs)))))
        (setq dirs (cdr dirs)))
index 6b27b64..02bfd9c 100644 (file)
@@ -310,8 +310,8 @@ Canonical sizes are in points.  If SPEC is null, nil is returned.  If SPEC is
 a number, it is interpreted as the desired point size and returned unchanged.
 Otherwise SPEC must be a string consisting of a number and an optional type.
 The type may be the strings \"px\", \"pix\", or \"pixel\" (pixels), \"pt\" or
 a number, it is interpreted as the desired point size and returned unchanged.
 Otherwise SPEC must be a string consisting of a number and an optional type.
 The type may be the strings \"px\", \"pix\", or \"pixel\" (pixels), \"pt\" or
-\"point\" (points), \"pa\" or \"pica\" (picas), \"in\" or \"inch\" (inches), \"cm\"
-(centimeters), or \"mm\" (millimeters).
+\"point\" (points), \"pa\" or \"pica\" (picas), \"in\" or \"inch\" (inches),
+\"cm\" (centimeters), or \"mm\" (millimeters).
 
 1 in = 2.54 cm = 6 pa = 25.4 mm = 72 pt.  Pixel size is device-dependent."
   (cond
 
 1 in = 2.54 cm = 6 pa = 25.4 mm = 72 pt.  Pixel size is device-dependent."
   (cond
@@ -350,7 +350,7 @@ The type may be the strings \"px\", \"pix\", or \"pixel\" (pixels), \"pt\" or
       (setq num (string-to-number spec))
       (cond
        ((member type '("pixel" "px" "pix"))
       (setq num (string-to-number spec))
       (cond
        ((member type '("pixel" "px" "pix"))
-       (setq retval (* num (/ pix-width mm-width) (/ 25.4 72.0))))
+       (setq retval (* num (/ mm-width pix-width) (/ 72.0 25.4))))
        ((member type '("point" "pt"))
        (setq retval num))
        ((member type '("pica" "pa"))
        ((member type '("point" "pt"))
        (setq retval num))
        ((member type '("pica" "pa"))
index 2ef37f9..1ac1780 100644 (file)
@@ -736,7 +736,7 @@ of the key sequence that ran this command."
 (defun view-emacs-news ()
   "Display info on recent changes to XEmacs."
   (interactive)
 (defun view-emacs-news ()
   "Display info on recent changes to XEmacs."
   (interactive)
-  (Help-find-file (locate-data-file "NEWS")))
+  (Help-find-file (expand-file-name "NEWS" data-directory)))
 
 (defun xemacs-www-page ()
   "Go to the XEmacs World Wide Web page."
 
 (defun xemacs-www-page ()
   "Go to the XEmacs World Wide Web page."
index d6dc4c4..7e4c7c9 100644 (file)
@@ -271,8 +271,7 @@ in `substitute-in-file-name'."
 If `zmacs-regions' is true, and the zmacs region is active in this buffer,
 then this key deactivates the region without beeping."
   (interactive)
 If `zmacs-regions' is true, and the zmacs region is active in this buffer,
 then this key deactivates the region without beeping."
   (interactive)
-  (if (and (region-active-p)
-          (eq (current-buffer) (zmacs-region-buffer)))
+  (if (region-active-p)
       ;; pseudo-zmacs compatibility: don't beep if this ^G is simply
       ;; deactivating the region.  If it is inactive, beep.
       nil
       ;; pseudo-zmacs compatibility: don't beep if this ^G is simply
       ;; deactivating the region.  If it is inactive, beep.
       nil
index c0d29a4..4580677 100644 (file)
@@ -204,6 +204,7 @@ directory."
     ("US (Main XEmacs Site)"
      "ftp.xemacs.org" "pub/xemacs/packages")
     ;; In alphabetical order of Country, our mirrors...
     ("US (Main XEmacs Site)"
      "ftp.xemacs.org" "pub/xemacs/packages")
     ;; In alphabetical order of Country, our mirrors...
+    ("Argentina (xmundo.net)" "xemacs.xmundo.net" "pub/mirrors/xemacs/packages")
     ("Australia (aarnet.edu.au)" "mirror.aarnet.edu.au" "pub/xemacs/packages")
     ("Australia (au.xemacs.org)" "ftp.au.xemacs.org" "pub/xemacs/packages")
     ("Austria (at.xemacs.org)" "ftp.at.xemacs.org" "editors/xemacs/packages")
     ("Australia (aarnet.edu.au)" "mirror.aarnet.edu.au" "pub/xemacs/packages")
     ("Australia (au.xemacs.org)" "ftp.au.xemacs.org" "pub/xemacs/packages")
     ("Austria (at.xemacs.org)" "ftp.at.xemacs.org" "editors/xemacs/packages")
@@ -211,7 +212,7 @@ directory."
     ("Brazil (br.xemacs.org)" "ftp.br.xemacs.org" "pub/xemacs/packages")
     ("Canada (ca.xemacs.org)" "ftp.ca.xemacs.org" "pub/Mirror/xemacs/packages")
     ("Canada (crc.ca)" "ftp.crc.ca" "pub/packages/editors/xemacs/packages")
     ("Brazil (br.xemacs.org)" "ftp.br.xemacs.org" "pub/xemacs/packages")
     ("Canada (ca.xemacs.org)" "ftp.ca.xemacs.org" "pub/Mirror/xemacs/packages")
     ("Canada (crc.ca)" "ftp.crc.ca" "pub/packages/editors/xemacs/packages")
-    ("Canada (ualberta.ca)" "sunsite.ualberta.ca" "pub/Mirror/xemacs/packages")
+    ("Canada (nrc.ca)" "ftp.nrc.ca" "pub/packages/editors/xemacs/packages")
     ("Czech Republic (cz.xemacs.org)" "ftp.cz.xemacs.org" "MIRRORS/ftp.xemacs.org/pub/xemacs/packages")
     ("Denmark (dk.xemacs.org)" "ftp.dk.xemacs.org" "pub/emacs/xemacs/packages")
     ("Finland (fi.xemacs.org)" "ftp.fi.xemacs.org" "pub/mirrors/ftp.xemacs.org/pub/tux/xemacs/packages")
     ("Czech Republic (cz.xemacs.org)" "ftp.cz.xemacs.org" "MIRRORS/ftp.xemacs.org/pub/xemacs/packages")
     ("Denmark (dk.xemacs.org)" "ftp.dk.xemacs.org" "pub/emacs/xemacs/packages")
     ("Finland (fi.xemacs.org)" "ftp.fi.xemacs.org" "pub/mirrors/ftp.xemacs.org/pub/tux/xemacs/packages")
@@ -219,31 +220,32 @@ directory."
     ("France (mirror.cict.fr)" "mirror.cict.fr" "xemacs/packages")
     ("France (pasteur.fr)" "ftp.pasteur.fr" "pub/computing/xemacs/packages")
     ("Germany (de.xemacs.org)" "ftp.de.xemacs.org" "pub/ftp.xemacs.org/tux/xemacs/packages")
     ("France (mirror.cict.fr)" "mirror.cict.fr" "xemacs/packages")
     ("France (pasteur.fr)" "ftp.pasteur.fr" "pub/computing/xemacs/packages")
     ("Germany (de.xemacs.org)" "ftp.de.xemacs.org" "pub/ftp.xemacs.org/tux/xemacs/packages")
-    ("Germany (tu-darmstadt.de)" "ftp.tu-darmstadt.de" "pub/editors/xemacs/packages")
+    ("Iceland (is.xemacs.org)" "ftp.is.xemacs.org" "pub/xemacs/packages")
     ("Ireland (ie.xemacs.org)" "ftp.ie.xemacs.org" "mirrors/ftp.xemacs.org/pub/xemacs/packages")
     ("Ireland (ie.xemacs.org)" "ftp.ie.xemacs.org" "mirrors/ftp.xemacs.org/pub/xemacs/packages")
+    ("Ireland (heanet.ie)" "ftp.heanet.ie" "mirrors/ftp.xemacs.org/packages")
     ("Italy (it.xemacs.org)" "ftp.it.xemacs.org" "unix/packages/XEMACS/packages")
     ("Japan (aist.go.jp)" "ring.aist.go.jp" "pub/text/xemacs/packages")
     ("Japan (asahi-net.or.jp)" "ring.asahi-net.or.jp" "pub/text/xemacs/packages")
     ("Japan (dti.ad.jp)" "ftp.dti.ad.jp" "pub/unix/editor/xemacs/packages")
     ("Italy (it.xemacs.org)" "ftp.it.xemacs.org" "unix/packages/XEMACS/packages")
     ("Japan (aist.go.jp)" "ring.aist.go.jp" "pub/text/xemacs/packages")
     ("Japan (asahi-net.or.jp)" "ring.asahi-net.or.jp" "pub/text/xemacs/packages")
     ("Japan (dti.ad.jp)" "ftp.dti.ad.jp" "pub/unix/editor/xemacs/packages")
-    ("Japan (jaist.ac.jp)" "ftp.jaist.ac.jp" "pub/GNU/xemacs/packages")
-    ("Japan (jp.xemacs.org)" "ftp.jp.xemacs.org" "pub/GNU/xemacs/packages")
-    ("Japan (nucba.ac.jp)" "mirror.nucba.ac.jp" "mirror/xemacs/packages")
+;   ("Japan (jaist.ac.jp)" "ftp.jaist.ac.jp" "pub/GNU/xemacs/packages")
+;   ("Japan (jp.xemacs.org)" "ftp.jp.xemacs.org" "pub/GNU/xemacs/packages")
+;   ("Japan (nucba.ac.jp)" "mirror.nucba.ac.jp" "mirror/xemacs/packages")
     ("Japan (sut.ac.jp)" "sunsite.sut.ac.jp" "pub/archives/packages/xemacs/packages")
     ("Korea (kr.xemacs.org)" "ftp.kr.xemacs.org" "pub/tools/emacs/xemacs/packages")
     ("New Zealand (nz.xemacs.org)" "ftp.nz.xemacs.org" "mirror/ftp.xemacs.org/packages")
     ("Norway (no.xemacs.org)" "ftp.no.xemacs.org" "pub/xemacs/packages")
     ("Poland (pl.xemacs.org)" "ftp.pl.xemacs.org" "pub/unix/editors/xemacs/packages")
     ("Japan (sut.ac.jp)" "sunsite.sut.ac.jp" "pub/archives/packages/xemacs/packages")
     ("Korea (kr.xemacs.org)" "ftp.kr.xemacs.org" "pub/tools/emacs/xemacs/packages")
     ("New Zealand (nz.xemacs.org)" "ftp.nz.xemacs.org" "mirror/ftp.xemacs.org/packages")
     ("Norway (no.xemacs.org)" "ftp.no.xemacs.org" "pub/xemacs/packages")
     ("Poland (pl.xemacs.org)" "ftp.pl.xemacs.org" "pub/unix/editors/xemacs/packages")
-    ("Russia (ru.xemacs.org)" "ftp.ru.xemacs.org" "pub/xemacs/packages")
-    ("Slovakia (sk.xemacs.org)" "ftp.sk.xemacs.org" "pub/mirrors/xemacs/packages")
-    ("South Africa (za.xemacs.org)" "ftp.za.xemacs.org" "mirrorsites/ftp.xemacs.org/packages")
+    ("Russia (ru.xemacs.org)" "ftp.ru.xemacs.org" "pub/emacs/xemacs/packages")
+;   ("South Africa (za.xemacs.org)" "ftp.za.xemacs.org" "mirrorsites/ftp.xemacs.org/packages")
     ("Sweden (se.xemacs.org)" "ftp.se.xemacs.org" "pub/gnu/xemacs/packages")
     ("Switzerland (ch.xemacs.org)" "ftp.ch.xemacs.org" "mirror/xemacs/packages")
     ("Sweden (se.xemacs.org)" "ftp.se.xemacs.org" "pub/gnu/xemacs/packages")
     ("Switzerland (ch.xemacs.org)" "ftp.ch.xemacs.org" "mirror/xemacs/packages")
+    ("Taiwan (ftp.tw.xemacs.org)" "ftp.tw.xemacs.org" "Unix/Editors/XEmacs/packages")
     ("UK (uk.xemacs.org)" "ftp.uk.xemacs.org" "sites/ftp.xemacs.org/pub/xemacs/packages")
     ("UK (uk.xemacs.org)" "ftp.uk.xemacs.org" "sites/ftp.xemacs.org/pub/xemacs/packages")
-    ("US (ibiblio.org)" "ibiblio.org" "pub/packages/editors/xemacs/packages")
+    ("US (ibiblio.org)" "mirrors.ibiblio.org" "pub/mirrors/xemacs/packages")
     ("US (stealth.net)" "ftp.stealth.net" "pub/mirrors/ftp.xemacs.org/pub/xemacs/packages")
     ("US (unc.edu)" "metalab.unc.edu" "pub/packages/editors/xemacs/packages")
     ("US (us.xemacs.org)" "ftp.us.xemacs.org" "pub/xemacs/packages")
     ("US (stealth.net)" "ftp.stealth.net" "pub/mirrors/ftp.xemacs.org/pub/xemacs/packages")
     ("US (unc.edu)" "metalab.unc.edu" "pub/packages/editors/xemacs/packages")
     ("US (us.xemacs.org)" "ftp.us.xemacs.org" "pub/xemacs/packages")
-    ("US (utk.edu)" "ftp.sunsite.utk.edu" "pub/xemacs/packages")
+;   ("US (utk.edu)" "ftp.sunsite.utk.edu" "pub/xemacs/packages")
     )
   "*List of remote sites available for downloading packages.
 List format is '(site-description site-name directory-on-site).
     )
   "*List of remote sites available for downloading packages.
 List format is '(site-description site-name directory-on-site).
@@ -260,23 +262,27 @@ variable actually used to specify package download sites."
 (defcustom package-get-pre-release-download-sites
   '(
     ;; Main XEmacs Site (ftp.xemacs.org)
 (defcustom package-get-pre-release-download-sites
   '(
     ;; Main XEmacs Site (ftp.xemacs.org)
-    ("Pre-Releases (Main XEmacs Site)" "ftp.xemacs.org"
+    ("US Pre-Releases (Main XEmacs Site)" "ftp.xemacs.org"
      "pub/xemacs/beta/experimental/packages")
     ;; In alphabetical order of Country, our mirrors...
      "pub/xemacs/beta/experimental/packages")
     ;; In alphabetical order of Country, our mirrors...
+    ("Argentina Pre-Releases (xmundo.net)" "xemacs.xmundo.net"
+     "pub/mirrors/xemacs/beta/experimental/packages")
     ("Australia Pre-Releases (aarnet.edu.au)" "mirror.aarnet.edu.au"
      "pub/xemacs/beta/experimental/packages")
     ("Australia Pre-Releases (au.xemacs.org)" "ftp.au.xemacs.org"
      "pub/xemacs/beta/experimental/packages")
     ("Austria Pre-Releases (at.xemacs.org)" "ftp.at.xemacs.org"
     ("Australia Pre-Releases (aarnet.edu.au)" "mirror.aarnet.edu.au"
      "pub/xemacs/beta/experimental/packages")
     ("Australia Pre-Releases (au.xemacs.org)" "ftp.au.xemacs.org"
      "pub/xemacs/beta/experimental/packages")
     ("Austria Pre-Releases (at.xemacs.org)" "ftp.at.xemacs.org"
-     "editors/xemacs/beta/experimentsl/packages")
+     "editors/xemacs/beta/experimental/packages")
+    ("Belgium (be.xemacs.org)" "ftp.be.xemacs.org"
+     "xemacs/beta/experimental/packages")
     ("Brazil Pre-Releases (br.xemacs.org)" "ftp.br.xemacs.org"
      "pub/xemacs/xemacs-21.5/experimental/packages")
     ("Canada Pre-Releases (ca.xemacs.org)" "ftp.ca.xemacs.org"
      "pub/Mirror/xemacs/beta/experimental/packages")
     ("Canada Pre-Releases (crc.ca)" "ftp.crc.ca"
      "pub/packages/editors/xemacs/beta/experimental/packages")
     ("Brazil Pre-Releases (br.xemacs.org)" "ftp.br.xemacs.org"
      "pub/xemacs/xemacs-21.5/experimental/packages")
     ("Canada Pre-Releases (ca.xemacs.org)" "ftp.ca.xemacs.org"
      "pub/Mirror/xemacs/beta/experimental/packages")
     ("Canada Pre-Releases (crc.ca)" "ftp.crc.ca"
      "pub/packages/editors/xemacs/beta/experimental/packages")
-    ("Canada Pre-Releases (ualberta.ca)" "sunsite.ualberta.ca"
-     "pub/Mirror/xemacs/beta/experimental/packages")
+    ("Canada Pre-Releases (nrc.ca)" "ftp.nrc.ca"
+     "pub/packages/editors/xemacs/beta/experimental/packages")
     ("Czech Republic Pre-Releases (cz.xemacs.org)" "ftp.cz.xemacs.org"
      "MIRRORS/ftp.xemacs.org/pub/xemacs/xemacs-21.5/experimental/packages")
     ("Denmark Pre-Releases (dk.xemacs.org)" "ftp.dk.xemacs.org"
     ("Czech Republic Pre-Releases (cz.xemacs.org)" "ftp.cz.xemacs.org"
      "MIRRORS/ftp.xemacs.org/pub/xemacs/xemacs-21.5/experimental/packages")
     ("Denmark Pre-Releases (dk.xemacs.org)" "ftp.dk.xemacs.org"
@@ -291,10 +297,12 @@ variable actually used to specify package download sites."
      "pub/computing/xemacs/beta/experimental/packages")
     ("Germany Pre-Releases (de.xemacs.org)" "ftp.de.xemacs.org"
      "pub/ftp.xemacs.org/tux/xemacs/beta/experimental/packages")
      "pub/computing/xemacs/beta/experimental/packages")
     ("Germany Pre-Releases (de.xemacs.org)" "ftp.de.xemacs.org"
      "pub/ftp.xemacs.org/tux/xemacs/beta/experimental/packages")
-    ("Germany Pre-Releases (tu-darmstadt.de)" "ftp.tu-darmstadt.de"
-     "pub/editors/xemacs/beta/experimental/packages")
+    ("Iceland Pre-Releases (is.xemacs.org)" "ftp.is.xemacs.org"
+     "pub/xemacs/beta/experimental/packages")
     ("Ireland Pre-Releases (ie.xemacs.org)" "ftp.ie.xemacs.org"
      "mirrors/ftp.xemacs.org/pub/xemacs/beta/experimental/packages")
     ("Ireland Pre-Releases (ie.xemacs.org)" "ftp.ie.xemacs.org"
      "mirrors/ftp.xemacs.org/pub/xemacs/beta/experimental/packages")
+    ("Ireland Pre-Releases (heanet.ie)" "ftp.heanet.ie"
+     "mirrors/ftp.xemacs.org/beta/experimental/packages")
     ("Italy Pre-Releases (it.xemacs.org)" "ftp.it.xemacs.org"
      "unix/packages/XEMACS/beta/experimental/packages")
     ("Japan Pre-Releases (aist.go.jp)" "ring.aist.go.jp"
     ("Italy Pre-Releases (it.xemacs.org)" "ftp.it.xemacs.org"
      "unix/packages/XEMACS/beta/experimental/packages")
     ("Japan Pre-Releases (aist.go.jp)" "ring.aist.go.jp"
@@ -303,41 +311,43 @@ variable actually used to specify package download sites."
      "pub/text/xemacs/beta/experimental/packages")
     ("Japan Pre-Releases (dti.ad.jp)" "ftp.dti.ad.jp"
      "pub/unix/editor/xemacs/beta/experimental/packages")
      "pub/text/xemacs/beta/experimental/packages")
     ("Japan Pre-Releases (dti.ad.jp)" "ftp.dti.ad.jp"
      "pub/unix/editor/xemacs/beta/experimental/packages")
-    ("Japan Pre-Releases (jaist.ac.jp)" "ftp.jaist.ac.jp"
-     "pub/GNU/xemacs/beta/experimental/packages")
-    ("Japan Pre-Releases (jp.xemacs.org)" "ftp.jp.xemacs.org"
-     "pub/GNU/xemacs/beta/experimental/packages")
+;   ("Japan Pre-Releases (jaist.ac.jp)" "ftp.jaist.ac.jp"
+;    "pub/GNU/xemacs/beta/experimental/packages")
+;   ("Japan Pre-Releases (jp.xemacs.org)" "ftp.jp.xemacs.org"
+;    "pub/GNU/xemacs/beta/experimental/packages")
     ("Japan Pre-Releases (sut.ac.jp)" "sunsite.sut.ac.jp"
      "pub/archives/packages/xemacs/xemacs-21.5/experimental/packages")
     ("Japan Pre-Releases (sut.ac.jp)" "sunsite.sut.ac.jp"
      "pub/archives/packages/xemacs/xemacs-21.5/experimental/packages")
-    ("New Zealand Pre-Releases (nz.xemacs.org)" "ftp.nz.xemacs.org" "mirror/ftp.xemacs.org/packages")
+    ("Korea (kr.xemacs.org)" "ftp.kr.xemacs.org"
+     "pub/tools/emacs/xemacs/beta/experimental/packages")
+    ("New Zealand Pre-Releases (nz.xemacs.org)" "ftp.nz.xemacs.org"
+     "mirror/ftp.xemacs.org/packages")
     ("Norway Pre-Releases (no.xemacs.org)" "ftp.no.xemacs.org"
      "pub/xemacs/beta/experimental/packages")
     ("Poland Pre-Releases (pl.xemacs.org)" "ftp.pl.xemacs.org"
      "pub/unix/editors/xemacs/beta/experimental/packages")
     ("Russia Pre-Releases (ru.xemacs.org)" "ftp.ru.xemacs.org"
     ("Norway Pre-Releases (no.xemacs.org)" "ftp.no.xemacs.org"
      "pub/xemacs/beta/experimental/packages")
     ("Poland Pre-Releases (pl.xemacs.org)" "ftp.pl.xemacs.org"
      "pub/unix/editors/xemacs/beta/experimental/packages")
     ("Russia Pre-Releases (ru.xemacs.org)" "ftp.ru.xemacs.org"
-     "pub/xemacs/beta/experimental/packages")
-    ("Saudi Arabia Pre-Releases (sa.xemacs.org)" "ftp.sa.xemacs.org"
-     "pub/mirrors/ftp.xemacs.org/xemacs/xemacs-21.5/experimental/packages")
-    ("Slovakia Pre-Releases (sk.xemacs.org)" "ftp.sk.xemacs.org"
-     "pub/mirrors/xemacs/beta/experimental/packages")
-    ("South Africa Pre-Releases (za.xemacs.org)" "ftp.za.xemacs.org"
-     "mirrorsites/ftp.xemacs.org/beta/experimental/packages")
+     "pub/emacs/xemacs/beta/experimental/packages")
+;   ("South Africa Pre-Releases (za.xemacs.org)" "ftp.za.xemacs.org"
+;    "mirrorsites/ftp.xemacs.org/beta/experimental/packages")
     ("Sweden Pre-Releases (se.xemacs.org)" "ftp.se.xemacs.org"
      "pub/gnu/xemacs/beta/experimental/packages")
     ("Switzerland Pre-Releases (ch.xemacs.org)" "ftp.ch.xemacs.org"
      "mirror/xemacs/beta/experimental/packages")
     ("Sweden Pre-Releases (se.xemacs.org)" "ftp.se.xemacs.org"
      "pub/gnu/xemacs/beta/experimental/packages")
     ("Switzerland Pre-Releases (ch.xemacs.org)" "ftp.ch.xemacs.org"
      "mirror/xemacs/beta/experimental/packages")
+    ("Taiwan Pre-Releases (ftp.tw.xemacs.org)" "ftp.tw.xemacs.org"
+     "Unix/Editors/XEmacs/beta/experimental/packages")
     ("UK Pre-Releases (uk.xemacs.org)" "ftp.uk.xemacs.org"
      "sites/ftp.xemacs.org/pub/xemacs/beta/experimental/packages")
     ("UK Pre-Releases (uk.xemacs.org)" "ftp.uk.xemacs.org"
      "sites/ftp.xemacs.org/pub/xemacs/beta/experimental/packages")
-    ("US Pre-Releases (ibiblio.org)" "ibiblio.org"
-     "pub/packages/editors/xemacs/beta/experimental/packages")
+    ("US Pre-Releases (ibiblio.org)" "mirrors.ibiblio.org"
+     "pub/mirrors/xemacs/beta/experimental/packages")
     ("US Pre-Releases (stealth.net)" "ftp.stealth.net"
      "pub/mirrors/ftp.xemacs.org/pub/xemacs/beta/experimental/packages")
     ("US Pre-Releases (unc.edu)" "metalab.unc.edu"
      "pub/packages/editors/xemacs/beta/experimental/packages")
     ("US Pre-Releases (us.xemacs.org)" "ftp.us.xemacs.org"
      "pub/xemacs/beta/experimental/packages")
     ("US Pre-Releases (stealth.net)" "ftp.stealth.net"
      "pub/mirrors/ftp.xemacs.org/pub/xemacs/beta/experimental/packages")
     ("US Pre-Releases (unc.edu)" "metalab.unc.edu"
      "pub/packages/editors/xemacs/beta/experimental/packages")
     ("US Pre-Releases (us.xemacs.org)" "ftp.us.xemacs.org"
      "pub/xemacs/beta/experimental/packages")
-    ("US Pre-Releases (utk.edu)" "ftp.sunsite.utk.edu"
-     "pub/xemacs/beta/experimental/packages"))
+;   ("US Pre-Releases (utk.edu)" "ftp.sunsite.utk.edu"
+;    "pub/xemacs/beta/experimental/packages")
+)
   "*List of remote sites available for downloading \"Pre-Release\" packages.
 List format is '(site-description site-name directory-on-site).
 SITE-DESCRIPTION is a textual description of the site.  SITE-NAME
   "*List of remote sites available for downloading \"Pre-Release\" packages.
 List format is '(site-description site-name directory-on-site).
 SITE-DESCRIPTION is a textual description of the site.  SITE-NAME
@@ -844,14 +854,7 @@ Return `t' upon complete success, `nil' if any errors occurred."
        (progn
          ;; Add lispdir to load-path if it doesn't already exist.
          ;; NOTE: this does not take symlinks, etc., into account.
        (progn
          ;; Add lispdir to load-path if it doesn't already exist.
          ;; NOTE: this does not take symlinks, etc., into account.
-         (if (let ((dirs load-path))
-               (catch 'done
-                 (while dirs
-                   (if (string-equal (car dirs) lispdir)
-                       (throw 'done nil))
-                   (setq dirs (cdr dirs)))
-                 t))
-             (setq load-path (cons lispdir load-path)))
+          (add-to-list 'load-path (file-name-as-directory lispdir))
          (if (not (package-get-load-package-file lispdir "auto-autoloads"))
              (package-get-load-package-file lispdir "_pkg"))
          t)
          (if (not (package-get-load-package-file lispdir "auto-autoloads"))
              (package-get-load-package-file lispdir "_pkg"))
          t)
index 9e4eee4..f8ed19a 100644 (file)
@@ -509,14 +509,15 @@ Designed to be called interactively (from a keypress)."
 (defun pui-display-maintainer (&optional no-error event)
   "Display a package's maintainer in the minibuffer."
   (interactive)
 (defun pui-display-maintainer (&optional no-error event)
   "Display a package's maintainer in the minibuffer."
   (interactive)
-  (let (extent pkg-sym info maintainer)
+  (let (extent ;pkg-sym
+       info maintainer)
     (save-excursion
       (beginning-of-line)
       (if (setq extent         (extent-at (point) (current-buffer) 'pui))
          (progn
     (save-excursion
       (beginning-of-line)
       (if (setq extent         (extent-at (point) (current-buffer) 'pui))
          (progn
-           (setq pkg-sym (extent-property extent 'pui-package)
-                 info (extent-property extent 'pui-info)
-                 maintainer (package-get-info-prop info 'maintainer))
+           (setq ;pkg-sym (extent-property extent 'pui-package)
+            info (extent-property extent 'pui-info)
+            maintainer (package-get-info-prop info 'maintainer))
            (message (format "Maintainer: %s" maintainer)))
        (if no-error
            (clear-message nil)
            (message (format "Maintainer: %s" maintainer)))
        (if no-error
            (clear-message nil)
@@ -564,7 +565,7 @@ Useful keys:
   `\\[pui-toggle-package-delete-key]' to select/unselect the current package for removal.
   `\\[pui-add-required-packages]' to add any packages required by those selected.
   `\\[pui-install-selected-packages]' to install/delete selected packages.
   `\\[pui-toggle-package-delete-key]' to select/unselect the current package for removal.
   `\\[pui-add-required-packages]' to add any packages required by those selected.
   `\\[pui-install-selected-packages]' to install/delete selected packages.
-  `\\[pui-display-info]' to display additional information about the package in the modeline.
+  `\\[pui-display-info]' to display additional information about the package in the minibuffer.
   `\\[pui-display-maintainer]' to display the package's maintainer in the minibuffer
   `\\[pui-list-packages]' to refresh the package list.
   `\\[pui-toggle-verbosity-redisplay]' to toggle between a verbose and non-verbose display.
   `\\[pui-display-maintainer]' to display the package's maintainer in the minibuffer
   `\\[pui-list-packages]' to refresh the package list.
   `\\[pui-toggle-verbosity-redisplay]' to toggle between a verbose and non-verbose display.
@@ -606,11 +607,11 @@ Warning: No download sites specified.  Package index may be out of date.
 "))
     
     (if pui-list-verbose
 "))
     
     (if pui-list-verbose
-       (insert "                 Latest Installed
-  Package name   Vers.  Vers.   Description
+       (insert "                       Latest Installed
+  Package name         Vers.  Vers.   Description
 ")
 ")
-      (insert "                 Latest
-  Package name   Vers.  Description
+      (insert "                       Latest
+  Package name         Vers.  Description
 "))
     (insert sep-string)
     (setq start (point))
 "))
     (insert sep-string)
     (setq start (point))
@@ -639,13 +640,13 @@ Warning: No download sites specified.  Package index may be out of date.
                  ((numberp current-vers)
                   (setq current-vers (format "%.2f" current-vers))))
                 (insert
                  ((numberp current-vers)
                   (setq current-vers (format "%.2f" current-vers))))
                 (insert
-                 (format "%s %-15s %-5.2f  %-5s  %s\n"
+                 (format "%s %-20s %-5.2f  %-5s  %s\n"
                          (car disp) pkg-sym 
                          (if (stringp version)
                              (string-to-number version)
                            version)
                          current-vers desc)))
                          (car disp) pkg-sym 
                          (if (stringp version)
                              (string-to-number version)
                            version)
                          current-vers desc)))
-            (insert (format "%s %-15s %-5s %s\n"
+            (insert (format "%s %-20s %-5s %s\n"
                             (car disp)
                             pkg-sym version desc)))
           (save-excursion
                             (car disp)
                             pkg-sym version desc)))
           (save-excursion
index c20c4f8..b0666a1 100644 (file)
@@ -3898,7 +3898,7 @@ This correctly caters to the user's setting of `zmacs-regions'."
 
 ;; XEmacs
 (defun region-active-p ()
 
 ;; XEmacs
 (defun region-active-p ()
-  "Return non-nil if the region is active.
+  "Return non-nil if the region is active in the current buffer.
 If `zmacs-regions' is true, this is equivalent to `region-exists-p'.
 Otherwise, this function always returns false.
 
 If `zmacs-regions' is true, this is equivalent to `region-exists-p'.
 Otherwise, this function always returns false.
 
@@ -3908,7 +3908,8 @@ want grayed out when the region is not active.  Instead, use this:
   [ ... ... :active (region-exists-p)]
 
 Which correctly caters to the user's setting of `zmacs-regions'."
   [ ... ... :active (region-exists-p)]
 
 Which correctly caters to the user's setting of `zmacs-regions'."
-  (and zmacs-regions zmacs-region-extent))
+  (and zmacs-regions zmacs-region-extent
+       (eq (current-buffer) (zmacs-region-buffer))))
 
 (defvar zmacs-activate-region-hook nil
   "Function or functions called when the region becomes active;
 
 (defvar zmacs-activate-region-hook nil
   "Function or functions called when the region becomes active;
index 502c6dc..4af7720 100644 (file)
@@ -376,6 +376,10 @@ OVERRIDE-FRAME was specified.
 
 If `pop-up-frames' is non-nil, make a new frame if no window shows BUFFER.
 
 
 If `pop-up-frames' is non-nil, make a new frame if no window shows BUFFER.
 
+If the buffer name is a member of the `same-window-buffer-names' list,
+or matches one of the `same-window-regexps' expressions, display the
+buffer in the currently selected window.
+
 Returns the window displaying BUFFER."
   (interactive "BDisplay buffer:\nP")
 
 Returns the window displaying BUFFER."
   (interactive "BDisplay buffer:\nP")
 
index 0e8b92c..9fa21ce 100644 (file)
@@ -1,3 +1,13 @@
+2005-12-03  Vin Shelton <acs@xemacs.org>
+
+       * XEmacs 21.4.18 is released
+
+2005-03-07  Stephen J. Turnbull  <stephen@xemacs.org>
+
+       * lwlib-Xlw.c (build_tabs_in_widget): Correctly disable geometry
+       negotiation for tab children.
+       (xlw_create_tab_control): Don't set nonexistent resizable resource.
+
 2005-02-06  Vin Shelton <acs@xemacs.org>
 
        * XEmacs 21.4.17 is released
 2005-02-06  Vin Shelton <acs@xemacs.org>
 
        * XEmacs 21.4.17 is released
index 150e168..1e909b6 100644 (file)
@@ -324,13 +324,21 @@ xlw_update_scrollbar (widget_instance *instance, Widget widget,
 #ifdef LWLIB_TABS_LUCID
 /* tab control
    
 #ifdef LWLIB_TABS_LUCID
 /* tab control
    
-   lwlib is such an incredible hairy crock. I just cannot believe
+   [[ lwlib is such an incredible hairy crock. I just cannot believe
    it! There are random dependencies between functions, there is a
    total lack of genericity, even though it initially appears to be
    generic. It should all be junked and begun again. Building tabs are
    an example - in theory we should be able to reuse a lot of the
    general stuff because we want to put labels of whatever toolkit we
    it! There are random dependencies between functions, there is a
    total lack of genericity, even though it initially appears to be
    generic. It should all be junked and begun again. Building tabs are
    an example - in theory we should be able to reuse a lot of the
    general stuff because we want to put labels of whatever toolkit we
-   are using in the tab. Instead we have to hack it by hand. */
+   are using in the tab. Instead we have to hack it by hand. ]]
+   While lwlib is a hairy crock, whoever wrote that seems to misunderstand
+   Falk's tab control widget.  The tab control widget has *two* kinds of
+   children: *widgets*, which all occupy a *single* pane below the row of
+   tabs---this is where the labels created in build_tabs_in_widget go, and
+   *gadgets*, the tabs themselves, which do *not* draw themselves, but
+   rather are drawn by the control.  In fact, in XEmacs the true widget
+   children are *never* visible!  So this case is not a problem in the
+   design of lwlib, but rather of Falk's widget. -- sjt */
 static void
 xlw_tab_control_callback (Widget w, XtPointer client_data, XtPointer call_data)
 {
 static void
 xlw_tab_control_callback (Widget w, XtPointer client_data, XtPointer call_data)
 {
@@ -380,9 +388,8 @@ xlw_create_tab_control (widget_instance *instance)
   widget_value* val = instance->info->val;
 
   XtSetArg (al [ac], XtNsensitive, val->enabled);              ac++;
   widget_value* val = instance->info->val;
 
   XtSetArg (al [ac], XtNsensitive, val->enabled);              ac++;
-  XtSetArg (al [ac], XtNmappedWhenManaged, FALSE);     ac++;
+  XtSetArg (al [ac], XtNmappedWhenManaged, False);             ac++;
   XtSetArg (al [ac], XtNorientation, XtorientHorizontal);      ac++;
   XtSetArg (al [ac], XtNorientation, XtorientHorizontal);      ac++;
-  XtSetArg (al [ac], XtNresizable, False);                     ac++;
 
   /* add any args the user supplied for creation time */
   lw_add_value_args_to_args (val, al, &ac);
 
   /* add any args the user supplied for creation time */
   lw_add_value_args_to_args (val, al, &ac);
@@ -401,15 +408,22 @@ static void build_tabs_in_widget (widget_instance* instance, Widget widget,
                                  widget_value* val)
 {
   widget_value* cur = val;
                                  widget_value* val)
 {
   widget_value* cur = val;
+  Arg al[1];
+
+  /* Children are always invisible, don't permit resizing. */
+  XtSetArg (al[0], XtNresizable, False);
+
   for (cur = val; cur; cur = cur->next)
     {
       if (cur->value)
        {
   for (cur = val; cur; cur = cur->next)
     {
       if (cur->value)
        {
+         Widget w;
 #ifdef LWLIB_WIDGETS_MOTIF
 #ifdef LWLIB_WIDGETS_MOTIF
-         xm_create_label (widget, cur);
+         w = xm_create_label (widget, cur);
 #else
 #else
-         xaw_create_label (widget, cur);
+         w = xaw_create_label (widget, cur);
 #endif
 #endif
+         XtSetValues (w, al, 1);
        }
       cur->change = NO_CHANGE;
     }
        }
       cur->change = NO_CHANGE;
     }
index 481b609..bafcc7b 100644 (file)
@@ -1,3 +1,41 @@
+2005-12-03  Vin Shelton <acs@xemacs.org>
+
+       * XEmacs 21.4.18 is released
+
+2005-12-03  Adrian Aichner  <adrian@xemacs.org>
+
+       * custom.texi (Declaring Variables): Typo fixes.
+
+2005-01-19  Aidan Kehoe  <kehoea@parhasard.net>
+
+       * lispref/mule.texi (CCL Example): Detail an implementation of the
+       web's URL encoding as a CCL coding system example. 
+
+2005-03-26  Aidan Kehoe  <kehoea@parhasard.net>
+
+       * lispref/mule.texi (CCL Example):
+       char-int -> char-to-int, and hex 41 is decimal 65, both problems
+       with my previous patch pointed out by Stephen.
+       * lispref/mule.texi (The actual coding system):
+       Give information on the make-coding-system call, and where the
+       actual package can be found.
+
+2005-02-23  Aidan Kehoe  <kehoea@parhasard.net>
+
+       * lispref/searching.texi (Syntax of Regexps):
+       Mention the \c and \C regular expression constructs; cross
+       reference to the Category Table documentation. 
+
+2005-02-22  Stephen J. Turnbull  <stephen@xemacs.org>
+
+       * lispref/glyphs.texi: Complete reorganization, some content updated.
+       * lispref/lispref.texi (Top): Update menu to match.
+       * lispref/extents.texi (Extent Properties): Update xref.
+       * lispref/faces.texi (Face Properties): Background pixmaps can be
+       used on GTK and MS Windows.
+       (Face Convenience Functions): Cross-reference glyph interface.
+       Background pixmap is an image specifier, not a glyph.
+
 2005-02-06  Vin Shelton <acs@xemacs.org>
 
        * XEmacs 21.4.17 is released
 2005-02-06  Vin Shelton <acs@xemacs.org>
 
        * XEmacs 21.4.17 is released
index a3960a8..fc3a9e4 100644 (file)
@@ -165,13 +165,13 @@ specified default value, @code{saved-value} for a value saved by the
 user, and @code{variable-documentation} for the documentation string.
 
 Use @code{custom-add-option} to specify that a specific function is
 user, and @code{variable-documentation} for the documentation string.
 
 Use @code{custom-add-option} to specify that a specific function is
-useful as an member of a hook.
+useful as a member of a hook.
 
 @defun custom-add-option symbol option
 To the variable @var{symbol} add @var{option}.
 
 If @var{symbol} is a hook variable, @var{option} should be a hook
 
 @defun custom-add-option symbol option
 To the variable @var{symbol} add @var{option}.
 
 If @var{symbol} is a hook variable, @var{option} should be a hook
-member.  For other types variables, the effect is undefined."
+member.  For other types of variables, the effect is undefined."
 @end defun
 
 @node Declaring Faces, Usage for Package Authors, Declaring Variables, Top
 @end defun
 
 @node Declaring Faces, Usage for Package Authors, Declaring Variables, Top
index ac56b6a..968b835 100644 (file)
@@ -555,7 +555,7 @@ priority over faces later in the list.  @xref{Extents and Events}.
 the extent.  This takes precedence over the @code{text-pointer-glyph}
 and @code{nontext-pointer-glyph} variables.  If for any reason this
 glyph is an invalid pointer, the standard glyphs will be used as
 the extent.  This takes precedence over the @code{text-pointer-glyph}
 and @code{nontext-pointer-glyph} variables.  If for any reason this
 glyph is an invalid pointer, the standard glyphs will be used as
-fallbacks.  @xref{Mouse Pointer}.
+fallbacks.  @xref{External Glyphs}.
 
 @item detachable
 (Boolean) Whether this extent becomes detached when all of the text it
 
 @item detachable
 (Boolean) Whether this extent becomes detached when all of the text it
index 4837ae7..f6d3faa 100644 (file)
@@ -164,7 +164,7 @@ The display table of the face.
 
 @item background-pixmap
 The pixmap displayed in the background of the face.  Only used by faces
 
 @item background-pixmap
 The pixmap displayed in the background of the face.  Only used by faces
-on X devices.
+on GUI devices, currently X11, GTK, and Microsoft Windows.
 
 @item underline
 Underline all text covered by this face.
 
 @item underline
 Underline all text covered by this face.
@@ -373,6 +373,14 @@ returned by @code{make-glyph} (@pxref{Glyphs}).  The argument may also
 be a list of the form @code{(@var{width} @var{height} @var{data})} where
 @var{width} and @var{height} are the size in pixels, and @var{data} is a
 string, containing the raw bits of the bitmap.
 be a list of the form @code{(@var{width} @var{height} @var{data})} where
 @var{width} and @var{height} are the size in pixels, and @var{data} is a
 string, containing the raw bits of the bitmap.
+
+Similarly to how the glyph's image specifier works @xref{Creating
+Glyphs}, you don't create your own image specifier, but rather add
+specifications to the existing one.  Note that the image instance that is
+generated in order to actually display the background pixmap is of type
+@code{mono-pixmap}, meaning that it's a two-color image and the
+foreground and background of the image get filled in with the
+corresponding colors from the face.  (#### Is this still true?)
 @end deffn
 
 @deffn Command set-face-font face font &optional locale tag-set how-to-add
 @end deffn
 
 @deffn Command set-face-font face font &optional locale tag-set how-to-add
@@ -393,7 +401,7 @@ specifier of face @var{face}.
 @end defun
 
 @defun face-background-pixmap face &optional locale tag-set exact-p
 @end defun
 
 @defun face-background-pixmap face &optional locale tag-set exact-p
-This function return the background-pixmap glyph object of face
+This function returns the background-pixmap image specifier of face
 @var{face}.
 @end defun
 
 @var{face}.
 @end defun
 
index 79575a8..b0b4855 100644 (file)
 @c -*-texinfo-*-
 @c This is part of the XEmacs Lisp Reference Manual.
 @c Copyright (C) 1995, 1996 Ben Wing.
 @c -*-texinfo-*-
 @c This is part of the XEmacs Lisp Reference Manual.
 @c Copyright (C) 1995, 1996 Ben Wing.
+@c Copyright (C) 2004 Free Software Foundation, Inc.
 @c See the file lispref.texi for copying conditions.
 @setfilename ../../info/glyphs.info
 @node Glyphs, Annotations, Faces and Window-System Objects, top
 @chapter Glyphs
 @cindex glyphs
 
 @c See the file lispref.texi for copying conditions.
 @setfilename ../../info/glyphs.info
 @node Glyphs, Annotations, Faces and Window-System Objects, top
 @chapter Glyphs
 @cindex glyphs
 
-  A @dfn{glyph} is an object that is used for pixmaps, widgets and
+  A @dfn{glyph} is an object that is used for pixmaps, widgets, and
 images of all sorts, as well as for things that ``act'' like pixmaps,
 such as non-textual strings (@dfn{annotations}) displayed in a buffer or
 in the margins.  It is used in begin-glyphs and end-glyphs attached to
 extents, marginal and textual annotations, overlay arrows
 (@code{overlay-arrow-*} variables), toolbar buttons, mouse pointers,
 frame icons, truncation and continuation markers, and the
 images of all sorts, as well as for things that ``act'' like pixmaps,
 such as non-textual strings (@dfn{annotations}) displayed in a buffer or
 in the margins.  It is used in begin-glyphs and end-glyphs attached to
 extents, marginal and textual annotations, overlay arrows
 (@code{overlay-arrow-*} variables), toolbar buttons, mouse pointers,
 frame icons, truncation and continuation markers, and the
-like. (Basically, any place there is an image or something that acts
-like an image, there will be a glyph object representing it.)
-
-  The actual image that is displayed (as opposed to its position or
-clipping) is defined by an @dfn{image specifier} object contained
-within the glyph.  The separation between an image specifier object
-and a glyph object is made because the glyph includes other properties
-than just the actual image: e.g. the face it is displayed in (for text
-images), the alignment of the image (when it is in a buffer), etc.
+like.  Basically, any place there is an image or something that acts
+like an image, there will be a glyph object representing it.
 
 @defun glyphp object
 This function returns @code{t} if @var{object} is a glyph.
 @end defun
 
 @menu
 
 @defun glyphp object
 This function returns @code{t} if @var{object} is a glyph.
 @end defun
 
 @menu
-* Glyph Functions::    Functions for working with glyphs.
-* Images::             Graphical images displayed in a frame.
-* Glyph Types::         Each glyph has a particular type.
-* Mouse Pointer::      Controlling the mouse pointer.
-* Redisplay Glyphs::    Glyphs controlling various redisplay functions.
-* Subwindows::          Inserting an externally-controlled subwindow
-                          into a buffer.
-* Glyph Examples::      Examples of how to work with glyphs.
+* Glyph Intro::                Glyphs are abstract image specifications.
+* Images::             Specifying the appearance of glyphs.
+* Using Glyphs::       Creating and displaying glyphs.
+* Manipulating Glyphs::        Getting and setting glyph properties.
+* Glyph Examples::     Examples of how to work with glyphs.
 @end menu
 
 @end menu
 
-@node Glyph Functions
-@section Glyph Functions
+
+@node Glyph Intro
+@section Glyph Introduction
+
+  In XEmacs, ``glyph'' does @strong{not} refer to a single unit of textual
+display (the XEmacs term for that is @dfn{rune}, and runes are confined
+to the internal implementation of redisplay), but rather is an
+object encapsulating a graphical element, such as an image or widget (an
+active GUI element such as a button or text entry field; X11 calls this a
+@dfn{widget}, while MS Windows uses the term @dfn{control}).
+This graphical element could appear in a buffer, a margin, a gutter, or
+a toolbar, or even externally to XEmacs as a mouse pointer or an icon,
+for example.
+
+  On the other hand, by contrast with GNU Emacs 21, an XEmacs glyph is
+not ``just'' an image.  The actual image that is displayed (as opposed
+to its position or clipping) is defined by an ``image specifier'' object
+contained within the glyph.  The separation between an image specifier
+object and a glyph object is made because the glyph includes other
+properties than just the actual image: e.g. the face it is displayed in,
+the alignment of the image, @emph{etc}.  Also, an image specifier is
+used in at least one place in XEmacs in lieu of a glyph, namely the
+backing pixmap of a face.
+
+  An image specifier is used because glyphs often have locale-specific
+semantics.  The most important example is semantics determined by the
+display device: you can't usefully display a JPEG on stdout, or a color
+image on a monochrome display.  But because the image property is a
+specifier in XEmacs, you can specify that a given glyph appear as a
+monochrome image on monochrome displays, a color image on color
+displays, and as a string on TTYs.  (Specifying a string for the
+@code{tty} device locale would give behavior like the @code{ALT}
+attribute of an @code{IMG} element in HTML.)  Another is semantics
+determined by the buffer or mode.  (Unfortunately, currently there are
+no compelling examples of this for glyphs.)
+
+  All this means that only one global glyph needs to exist for a
+particular purpose (e.g. the icon used to represent an iconified frame,
+the mouse pointer used over particular areas of a frame, etc.).  Often
+you need not (and should not!) create your own glyph, but rather modify
+an existing one.
+
+  In working with glyphs it is important to keep in mind the distinction
+between a locale and a domain.  A @dfn{locale} is specified by the
+programmer, and is an abstract link between a specification (for a
+glyph, its visual appearance) and a displayable object.  The displayable
+object may be a buffer or a window, or an object containing buffers or
+windows such as frame, device, or console.  A @dfn{domain} is an actual
+display context, which must be concrete enough to enable XEmacs to
+identify the device type.  (Buffers may be displayed in windows on
+different devices, even simultaneously, so a buffer cannot be a domain.
+Similarly, the global locale cannot be a domain.)  @ref{Specifiers}, for
+more information about specifier locales and domains.
+
+
+@node Images
+@section Images
 
 @menu
 
 @menu
-* Creating Glyphs::    Creating new glyphs.
-* Glyph Properties::   Accessing and modifying a glyph's properties.
-* Glyph Convenience Functions::
-                       Convenience functions for accessing particular
-                         properties of a glyph.
-* Glyph Dimensions::    Determining the height, width, etc. of a glyph.
+* Image Specifiers::                   Specifying an image's appearance.
+* Image Instantiator Conversion::      Lazy realization of graphics.
+* Image Instantiator Formats::         A catalog of image descriptors.
+* Image Instances::                    Classes of graphical objects.
 @end menu
 
 @end menu
 
-@node Creating Glyphs
-@subsection Creating Glyphs
 
 
-@defun make-glyph &optional spec-list type
-This function creates a new glyph object of type @var{type}.
+@node Image Specifiers
+@subsection Image Specifiers
+@cindex image specifiers
 
 
-@var{spec-list} is used to initialize the glyph's image.  It is
-typically an image instantiator (a string or a vector; @ref{Image
-Specifiers}), but can also be a list of such instantiators (each one in
-turn is tried until an image is successfully produced), a cons of a
-locale (frame, buffer, etc.) and an instantiator, a list of such conses,
-or any other form accepted by @code{canonicalize-spec-list}.
-@xref{Specifiers}, for more information about specifiers.
-
-@var{type} specifies the type of the glyph, which specifies in which
-contexts the glyph can be used, and controls the allowable image types
-into which the glyph's image can be instantiated.  @var{type} should be
-one of @code{buffer} (used for glyphs in an extent, the modeline, the
-toolbar, or elsewhere in a buffer), @code{pointer} (used for the
-mouse-pointer), or @code{icon} (used for a frame's icon), and defaults
-to @code{buffer}.  @xref{Glyph Types}.
-
-A glyph in XEmacs does @strong{NOT} refer to a single unit of textual
-display (the XEmacs term for this is @dfn{rune}), but rather is an
-object encapsulating a graphical element, such as an image or widget (an
-element such as a button or text field; @dfn{widget} is the term for
-this under X Windows, and it's called a @dfn{control} under MS Windows).
-This graphical element could appear in a buffer, a margin, a gutter, or
-a toolbar, or as a mouse pointer or an icon, for example.
+  An image specifier is a description of the actual graphical
+realization of a glyph.  For example, a typical image description is
+@emph{the file system path to a PNG file}.  Since redisplay doesn't know
+about files, and in any case the image may need to be manipulated
+(@emph{e.g.}, a face's background pixmap must be clipped and tiled), the
+PNG file must be converted internally to a window system bitmap or
+pixmap object.  We describe this process by writing that when XEmacs
+displays the image, it @dfn{instantiates} the @dfn{image instantiator}
+into an @dfn{image instance}.  Image instances are an internal object
+type (similar to font instances and color instances), describing how the
+image appears in a particular domain.  On the other hand, image
+instantiators, which are just descriptions of how the image should
+appear, are represented using Lisp strings or vectors.
+
+Furthermore the graphical realization will vary, and for some devices
+may not even be a bitmapped graphic.  These variations may be controlled
+by the program by specifying different @dfn{image instantiators} in
+different locales.  This is implemented with an @dfn{image specifier},
+a specifier whose specifications are image instantiators.
+
+Image specifiers are rarely if ever found by themselves.  However, an
+image specifier results from calling @code{glyph-image} on a glyph, or
+retrieving the @code{background-pixmap} property of a face, and you can
+check if some random object is an image specifier.
 
 
-Creating a glyph using @code{make-glyph} does not specify @emph{where}
-the glyph will be used, but it does specify @emph{what} the glyph will
-look like.  In particular, @var{spec-list} is used to specify this, and it's
-used to initialize the glyph's @code{image} property, which is an image
-specifier. (Note that @dfn{image} as used in the context of a glyph's
-@code{image} property or in the terms @dfn{image specifier}, @dfn{image
-instantiator}, or @dfn{image instance} does not refer to what people
-normally think of as an image (which in XEmacs is called a
-@dfn{pixmap}), but to any graphical element---a pixmap, a widget, or
-even a block of text, when used in the places that call for a glyph.)
-The format of the @var{spec-list} is typically an image instantiator (a string
-or a vector; @ref{Image Specifiers}), but can also be a list of such
-instantiators (each one in turn is tried until an image is successfully
-produced), a cons of a locale (frame, buffer, etc.)  and an
-instantiator, a list of such conses, or any other form accepted by
-@code{canonicalize-spec-list}. @xref{Specifiers}, for more information
-about specifiers.
-
-If you're not familiar with specifiers, you should be in order to
-understand how glyphs work.  The clearest introduction to specifiers
-is in the Lispref manual, available under Info. (Choose
-Help->Info->Info Contents on the menubar or type C-h i.) You can
-also see @code{make-specifier} for a capsule summary.  What's important to
-keep in mind is that a specifier lets you set a different value for
-any particular buffer, window, frame, device, or console.  This allows
-for a great deal of flexibility; in particular, only one global glyph
-needs to exist for a particular purpose (e.g. the icon used to represent
-an iconified frame, the mouse pointer used over particular areas of a
-frame, etc.), and in these cases you do not create your own glyph, but
-rather modify the existing one.
+@defun image-specifier-p object
+This function returns non-@code{nil} if @var{object} is an image specifier.
+@end defun
 
 
-As well as using @var{spec-list} to initialize the glyph, you can set
-specifications using @code{set-glyph-image}.  Note that, due to a
-possibly questionable historical design decision, a glyph itself is not
-actually a specifier, but rather is an object containing an image
-specifier (as well as other, seldom-used properties).  Therefore, you
-cannot set or access specifications for the glyph's image by directly
-using @code{set-specifier}, @code{specifier-instance} or the like on the
-glyph; instead use them on @code{(glyph-image @var{glyph})} or use the
-convenience functions @code{set-glyph-image},
-@code{glyph-image-instance}, and @code{glyph-image}.
+@defun make-image-specifier spec-list
+This function creates a new image specifier object and initializes it
+according to @var{spec-list}.  @xref{Specifiers}.
+@end defun
 
 
-Once you have created a glyph, you specify where it will be used as
-follows:
+This function exists mainly for completeness.  In practice, you rarely,
+if ever, need to actually create an image specifier.  Instead, they are
+implicitly created by the initialization of glyphs and faces, and the
+specifier member of these objects cannot be changed after
+initialization; you may only set the specifications it contains.
 
 
-@itemize @bullet
-@item
-To insert a glyph into a buffer, create an extent in the buffer and then
-use @code{set-extent-begin-glyph} or @code{set-extent-end-glyph} to set
-a glyph to be displayed at the corresponding edge of the extent. (It is
-common to create zero-width extents for this purpose.)
+Image instantiators come in many formats: @code{xbm}, @code{xpm},
+@code{gif}, @code{jpeg}, etc.  These denote the format of the data
+describing the image.  The resulting image instances also come in many
+types---@code{mono-pixmap}, @code{color-pixmap}, @code{text},
+@code{pointer}, etc.  This refers to the behavior of the image and the
+sorts of places it can appear. (For example, a color-pixmap image has
+fixed colors specified for it, while a mono-pixmap image comes in two
+unspecified shades ``foreground'' and ``background'' that are determined
+from the face of the glyph or surrounding text; a text image appears as
+a string of text and has an unspecified foreground, background, and
+font; a pointer image behaves like a mono-pixmap image but can only be
+used as a mouse pointer [mono-pixmap images cannot be used as mouse
+pointers]; etc.)
 
 
-@item
-To insert a glyph into the left or right margin of a buffer, first
-make sure the margin is visible by setting a value for the specifiers
-@code{left-margin-width} or @code{right-margin-width}. (Not strictly necessary
-when using margin glyphs with layout policy @code{whitespace}.) Then follow
-the same procedure above for inserting a glyph in a buffer, and then
-set a non-default layout policy for the glyph using
-@code{set-extent-begin-glyph-layout} or @code{set-extent-end-glyph-layout}.
-Alternatively, use the high-level annotations API (see
-@code{make-annotation}). (In point of fact, you can also use the annotations
-API for glyphs in a buffer, by setting a layout policy of @code{text}.)
+It is important to keep the distinction between image instantiator
+format and image instance type in mind.  Typically, a given image
+instantiator format can result in many different image instance types.
+For example, @code{xpm} can be instanced as @code{color-pixmap},
+@code{mono-pixmap}, or @code{pointer}; whereas @code{cursor-font} can be
+instanced only as @code{pointer}.  On the other hand, a particular image
+instance type can be generated by many different image instantiator
+formats (e.g.  @code{color-pixmap} can be generated by @code{xpm},
+@code{gif}, @code{jpeg}, etc.).
 
 
-@item
-To insert a glyph into the modeline, just put the glyph directly as one
-of the modeline elements. (Unfortunately you can't currently put a begin
-glyph or end glyph on one of the modeline extents---they're ignored.)
+  @xref{Image Instances}, for a more detailed discussion of image
+instance types.
 
 
-@item
-To insert a glyph into a toolbar, specify it as part of a toolbar
-instantiator (typically set on the specifier @code{default-toolbar}).
-See @code{default-toolbar} for more information. (Note that it is
-standard practice to use a symbol in place of the glyph list in the
-toolbar instantiator; the symbol is evalled to get the glyph list.  This
-facilitates both creating the toolbar instantiator and modifying
-individual glyphs in a toolbar later on.  For example, you can change
-the way that the Mail toolbar button looks by modifying the value of the
-variable @code{toolbar-mail-icon} (in general, @code{toolbar-*-icon})
-and then calling @code{(set-specifier-dirty-flag default-toolbar)}.
-(#### Unfortunately this doesn't quite work the way it should; the
-change will appear in new frames, but not existing ones.
+ An image instantiator should be a string or a vector of the form
 
 
-@item
-To insert a glyph into a gutter, create or modify a gutter instantiator
-(typically set on the specifier @code{default-gutter}).  Gutter
-instantiators consist of strings or lists of strings, so to insert a
-glyph, create an extent over the string, and use
-@code{set-extent-begin-glyph} or @code{set-extent-end-glyph} to set a
-glyph to be displayed at the corresponding edge of the extent, just like
-for glyphs in a buffer.
+@example
+ @code{[@var{format} @var{:keyword} @var{value} ...]}
+@end example
 
 
-@item
-To use a glyph as the icon for a frame, you do not actually create a new
-glyph; rather, you change the specifications for the existing glyph
-@code{frame-icon-glyph}. (Remember that, because of the specifier nature
-of glyphs, you can set different values for any particular buffer or
-frame.)
+i.e. a format symbol followed by zero or more alternating keyword-value
+pairs.
 
 
-@item
-To use a glyph as the mouse pointer, in general you do not create a new
-glyph, but rather you change the specifications of various existing
-glyphs, such as @code{text-pointer-glyph} for the pointer used over
-text, @code{modeline-pointer-glyph} for the pointer used over the
-modeline, etc.  Do an apropos over @code{*-pointer-glyph} to find all of
-them. (Note also that you can temporarily set the mouse pointer to some
-specific shape by using @code{set-frame-pointer}, which takes an image
-instance, as obtained from calling @code{glyph-image-instance} on a glyph
-of type @code{pointer} -- either one of the above-mentioned variables or
-one you created yourself.  (See below for what it means to create a
-glyph of type @code{pointer}.)  This pointer will last only until the
-next mouse motion event is processed or certain other things happen,
-such as creating or deleting a window. (In fact, the above-mentioned
-pointer glyph variables are implemented as part of the default handler
-for mouse motion events.  If you want to customize this behavior, take a
-look at @code{mode-motion-hook}, or @code{mouse-motion-handler} if you
-really want to get low-level.)
+The form of an instantiator can be checked with
+@code{valid-instantiator-p} with a @var{TYPE} of @code{image},
+@ref{Specifier Validation Functions}.
 
 
-@item
-To use a glyph to control the shape of miscellaneous redisplay effects
-such as the truncation and continuation markers, set the appropriate
-existing glyph variables, as for icons and pointers above.  See
-@code{continuation-glyph}, @code{control-arrow-glyph},
-@code{hscroll-glyph}, @code{invisible-text-glyph},
-@code{octal-escape-glyph}, and @code{truncation-glyph}.  See also
-@code{overlay-arrow-string}, an odd redisplay leftover which can be set
-to a glyph you created, and will cause the glyph to be displayed on top
-of the text position specified in the marker stored in
-@code{overlay-arrow-position}.
+For a complete list of the format symbols and their usage,
+@ref{Image Instantiator Formats}.
 
 
-@item
-To use a glyph in a display table (i.e. to control the appearance of any
-individual character), create the appropriate character glyphs and then
-set a specification for the specifier @code{current-display-table},
-which controls the appearance of characters.  You can also set an
-overriding display table for use with text displayed in a particular
-face; see @code{set-face-display-table} and @code{make-display-table}.
-#### Note: Display tables do not currently support general Mule
-characters.  They will be overhauled at some point to support this
-and to provide other features required under Mule.
+If the instantiator is a string, it will be converted into a vector by
+looking it up according to the specs in the
+@code{console-type-image-conversion-list} for the console type of the
+domain (usually a window; sometimes a frame or device) over which the
+image is being instantiated.
 
 
-@item
-To use a glyph as the background pixmap of a face: Note that the
-background pixmap of a face is actually an image specifier -- probably
-the only place in XEmacs where an image specifier occurs outside of a
-glyph.  Similarly to how the glyph's image specifier works, you don't
-create your own image specifier, but rather add specifications to the
-existing one (using @code{set-face-background-pixmap}).  Note that the
-image instance that is generated in order to actually display the
-background pixmap is of type @code{mono-pixmap}, meaning that it's a
-two-color image and the foreground and background of the image get
-filled in with the corresponding colors from the face.
-@end itemize
+If the instantiator specifies data from a file, the data will be read in
+at the time that the instantiator is added to the image specifier (which
+may be well before the image is actually displayed), and the
+instantiator will be converted into one of the inline-data forms, with
+the filename retained using a @code{:file} keyword.  This implies that
+the file must exist when the instantiator is added to the image, but
+does not need to exist at any other time (e.g. it may safely be a
+temporary file).
 
 
-It is extremely rare that you will ever have to specify a value for
-@var{type}, which should be one of @code{buffer} (used for glyphs in an
-extent, the modeline, the toolbar, or elsewhere in a buffer),
-@code{pointer} (used for the mouse-pointer), or @code{icon} (used for a
-frame's icon), and defaults to @code{buffer}.  The only cases where it
-needs to be specified is when creating icon or pointer glyphs, and in
-both cases the necessary glyphs have already been created at startup and
-are accessed through the appropriate variables,
-e.g. @code{text-pointer-glyph} (or in general, @code{*-pointer-glyph})
-and @code{frame-icon-glyph}.  @xref{Glyph Types}.
-@end defun
+The available keywords are given below.  Note that some keywords are
+generally available (for example, the @code{:data} keyword may be used
+with any format except @code{nothing}), while others are only available
+for one format (@code{resource-id} is unique to the
+@code{mswindows-resource} format).
 
 
-@defun make-glyph-internal &optional type
-This function creates a new, uninitialized glyph of type @var{type}.
-@end defun
+@table @code
+@item :data
+Inline image data.  If available for a given format, it may be specified
+directly by the program, or it may be a cache of file data previously
+read.  When present, it is used to instantiate the image in preference
+to the file named by the @code{:file} property.
 
 
-@defun make-pointer-glyph &optional spec-list
+The format of inline data is image-format-specific.  For example, in
+pixmap formats, the value should be a string, which is interpreted as an
+octet-stream representing a bitmap or pixmap.  But for text formats,
+it's string containing the text to be displayed, and for resource
+formats, it's a string containing the name of the resource.
 
 
-Return a new @code{pointer-glyph} object with the specification list
-@var{spec-list}.  This function is equivalent to calling
-@code{make-glyph} with a @var{type} of @code{pointer}.
+@item :file
+Data contained in a file.  The value is the name of this file.  If both
+@code{:data} and @code{:file} are specified, the image is created from
+what is specified in @code{:data} and the string in @code{:file} becomes
+the value of the @code{image-instance-file-name} function when applied
+to the resulting image-instance.  Note that there is nothing to stop a
+program from changing either the @code{:file} or the @code{:data}
+property, and there is no way to detect such mischief.  This means that
+the data will @emph{not} be automatically reread if you change the
+@code{file} property; you must force it by removing the @code{:data}
+property.
+@c #### If there are ways to do this in-place, describe them.
+(One way to do this is replacing the whole specification with a new
+vector.)  This keyword is not valid for instantiator formats
+@code{nothing}, @code{string}, @code{formatted-string},
+@code{cursor-font}, @code{font}, and @code{autodetect}.
 
 
-It is extremely unlikely that you will ever need to create a pointer
-glyph.  Instead, you probably want to be calling @code{set-glyph-image}
-on an existing glyph, e.g. @code{text-pointer-glyph}.
-@end defun
+@item :mask-data
+Inline data for @code{xbm} and @code{xface}.  This specifies a mask to
+be used with the bitmap.  Pixels which are not set in the mask will not
+be written to the imaging device.  The format is a list of width,
+height, and bits, as for @code{:data}.
 
 
-@defun make-icon-glyph &optional spec-list
+@item :mask-file
+For @code{xbm} and @code{xface}.  This specifies a file containing the
+mask data.  If neither a mask file nor inline mask data is given for an
+XBM image, and the XBM image comes from a file, XEmacs will look for a
+mask file with the same name as the image file but with @samp{Mask} or
+@samp{msk} appended.  For example, if you specify the XBM file
+@file{left_ptr} [usually located in @file{/usr/include/X11/bitmaps}],
+the associated mask file @file{left_ptrmsk} will automatically be picked
+up.
 
 
-Return a new @code{pointer-glyph} object with the specification list
-@var{spec-list}.  This function is equivalent to calling
-@code{make-glyph} with a @var{type} of @code{icon}.
+@item :resource-id
+Only for @code{mswindows-resource}.  This must be either an integer
+(which directly specifies a resource number) or a string.  See the
+description of @code{mswindows-resource} for valid strings.  @xref{Image
+Instantiator Formats}.
 
 
-It is extremely unlikely that you will ever need to create a pointer
-glyph.  Instead, you probably want to be calling @code{set-glyph-image}
-on an existing glyph, e.g. @code{text-pointer-glyph}.
-@end defun
+@item :foreground
+@itemx :background
+For @code{xbm}, @code{xface}, @code{cursor-font}, and @code{font}.
+These keywords allow you to explicitly specify foreground and background
+colors.  The value should be anything acceptable to
+@code{make-color-instance}.  This will cause an external format that
+would by default be instantiated as a @code{mono-pixmap} to instead be
+instantiated as a two-color color-pixmap.  This can be used to override
+the colors specified by a glyph's face, for example.  If the image is
+instantiated as a pointer, they specify its foreground and/or
+background, instead of the defaults of black and white.
 
 
-@node Glyph Properties
-@subsection Glyph Properties
+@item :hotspot-x
+@itemx :hotspot-y
+For @code{xbm} and @code{xface}.  These keywords specify a hotspot if
+the image is instantiated as a @code{pointer}.  Note that if the XBM
+image file specifies a hotspot, it will automatically be picked up if no
+explicit hotspot is given.
 
 
-Each glyph has a list of properties, which control all of the aspects of
-the glyph's appearance.  The following symbols have predefined meanings:
+@item :color-symbols
+Only for @code{xpm}.  This specifies an alist that maps strings that
+specify symbolic color names to the actual color to be used for that
+symbolic color (in the form of a string or a color-specifier object).
+If this is not specified, the contents of @code{xpm-color-symbols} are
+used to generate the alist.
 
 
-@table @code
-@item image
-The image used to display the glyph.
+@item :resource-type
+Only for @code{mswindows-resource}.  This must be a symbol, either
+@code{cursor}, @code{icon}, or @code{bitmap}, specifying the type of
+resource to be retrieved.
 
 
-@item baseline
-Percent above baseline that glyph is to be displayed.  Only for glyphs
-displayed inside of a buffer.
+@item :face
+For @code{inherit} and the widget formats.  This specifies the face to
+inherit from.  For widgets this specifies the face to use for display.
+It defaults to gui-element-face.
+
+@item :selected
+@itemx :active
+@itemx :suffix
+@itemx :keys
+@itemx :style
+@itemx :filter
+@itemx :config
+@itemx :included
+@itemx :key-sequence
+@itemx :accelerator
+@itemx :label
+@itemx :callback
+These keywords, accepted as menu item specs, are also accepted by images
+instantiated as @code{widget}.  For their semantics, @ref{Menu Format}.
+@end table
 
 
-@item contrib-p
-Whether the glyph contributes to the height of the line it's on.
-Only for glyphs displayed inside of a buffer.
 
 
-@item face
-Face of this glyph (@emph{not} a specifier).
-@end table
+@node Image Instantiator Conversion
+@subsection Image Instantiator Conversion
+@cindex image instantiator conversion
+@cindex conversion of image instantiators
 
 
-@defun set-glyph-property glyph property value &optional locale tag-set how-to-add
-This function changes a property of a @var{glyph}.
+Conversion is applied to image instantiators at the time they are added
+to an image specifier or at the time they are passed to
+@code{make-image-instance}.
 
 
-For built-in properties, the actual value of the property is a specifier
-and you cannot change this; but you can change the specifications within
-the specifier, and that is what this function will do.  For user-defined
-properties, you can use this function to either change the actual value
-of the property or, if this value is a specifier, change the
-specifications within it.
+@defun set-console-type-image-conversion-list console-type list
+This function sets the image-conversion-list for consoles of the given
+@var{console-type}.  The image-conversion-list specifies how image
+instantiators that are strings should be interpreted.  Each element of
+the list should be a list of two elements (a regular expression string
+and a vector) or a list of three elements (the preceding two plus an
+integer index into the vector).  The string is converted to the vector
+associated with the first matching regular expression.  If a vector
+index is specified, the string itself is substituted into that position
+in the vector.
 
 
-If @var{property} is a built-in property, the specifications to be added
-to this property can be supplied in many different ways:
+Note: The conversion above is applied when the image instantiator is
+added to an image specifier, not when the specifier is actually
+instantiated.  Therefore, changing the image-conversion-list only affects
+newly-added instantiators.  Existing instantiators in glyphs and image
+specifiers will not be affected.
+@end defun
 
 
-@itemize @bullet
-@item
-If @var{value} is a simple instantiator (e.g. a string naming a pixmap
-filename) or a list of instantiators, then the instantiator(s) will be
-added as a specification of the property for the given @var{locale}
-(which defaults to @code{global} if omitted).
+@defun console-type-image-conversion-list console-type
+This function returns the image-conversion-list for consoles of the given
+@var{console-type}.
+@end defun
 
 
-@item
-If @var{value} is a list of specifications (each of which is a cons of a
-locale and a list of instantiators), then @var{locale} must be
-@code{nil} (it does not make sense to explicitly specify a locale in
-this case), and specifications will be added as given.
 
 
-@item
-If @var{value} is a specifier (as would be returned by
-@code{glyph-property} if no @var{locale} argument is given), then some
-or all of the specifications in the specifier will be added to the
-property.  In this case, the function is really equivalent to
-@code{copy-specifier} and @var{locale} has the same semantics (if it is
-a particular locale, the specification for the locale will be copied; if
-a locale type, specifications for all locales of that type will be
-copied; if @code{nil} or @code{all}, then all specifications will be
-copied).
-@end itemize
+@node Image Instantiator Formats
+@subsection Image Instantiator Formats
+@cindex image instantiator formats
 
 
-@var{how-to-add} should be either @code{nil} or one of the symbols
-@code{prepend}, @code{append}, @code{remove-tag-set-prepend},
-@code{remove-tag-set-append}, @code{remove-locale},
-@code{remove-locale-type}, or @code{remove-all}.  See
-@code{copy-specifier} and @code{add-spec-to-specifier} for a description
-of what each of these means.  Most of the time, you do not need to worry
-about this argument; the default behavior usually is fine.
+The @dfn{format} field of an image instantiator should be a symbol
+denoting a valid format.  Which formats are valid will depend on the
+features (such as image decoding libraries) available, on platform
+support (MS Windows resource IDs make no sense on other platforms), and
+on the locale.
 
 
-In general, it is OK to pass an instance object (e.g. as returned by
-@code{glyph-property-instance}) as an instantiator in place of an actual
-instantiator.  In such a case, the instantiator used to create that
-instance object will be used (for example, if you set a font-instance
-object as the value of the @code{font} property, then the font name used
-to create that object will be used instead).  If some cases, however,
-doing this conversion does not make sense, and this will be noted in the
-documentation for particular types of instance objects.
+@defun valid-image-instantiator-format-p format &optional locale
+This function returns non-@code{nil} if @var{format} is a valid image
+instantiator format.
 
 
-If @var{property} is not a built-in property, then this function will
-simply set its value if @var{locale} is @code{nil}.  However, if
-@var{locale} is given, then this function will attempt to add
-@var{value} as the instantiator for the given @var{locale}, using
-@code{add-spec-to-specifier}.  If the value of the property is not a
-specifier, it will automatically be converted into a @code{generic}
-specifier.
+If @var{locale} is non-@code{nil} then the format is checked in that locale.
+If @var{locale} is @code{nil} the current console is used.
+
+Note that the return value for many formats listed above depends on
+whether XEmacs was compiled with support for that format.
 @end defun
 
 @end defun
 
-@defun glyph-property glyph property &optional locale
-This function returns @var{glyph}'s value of the given @var{property}.
+@defun image-instantiator-format-list
+This function returns a list of valid image-instantiator formats.
+@end defun
 
 
-If @var{locale} is omitted, the @var{glyph}'s actual value for
-@var{property} will be returned.  For built-in properties, this will be
-a specifier object of a type appropriate to the property (e.g. a font or
-color specifier).  For other properties, this could be anything.
+Here is a table of image-instantiator formats, giving the keywords that
+are usable with each, and the kinds of instances that may result.
 
 
-If @var{locale} is supplied, then instead of returning the actual value,
-the specification(s) for the given locale or locale type will be
-returned.  This will only work if the actual value of @var{property} is
-a specifier (this will always be the case for built-in properties, but
-may or may not apply to user-defined properties).  If the actual value
-of @var{property} is not a specifier, this value will simply be returned
-regardless of @var{locale}.
+@table @code
+@item nothing
+Don't display anything; no keywords are valid for this format.  Can only be
+instanced as @code{nothing}.
 
 
-The return value will be a list of instantiators (e.g. vectors
-specifying pixmap data), or a list of specifications, each of which is a
-cons of a locale and a list of instantiators.  Specifically, if
-@var{locale} is a particular locale (a buffer, window, frame, device, or
-@code{global}), a list of instantiators for that locale will be
-returned.  Otherwise, if @var{locale} is a locale type (one of the
-symbols @code{buffer}, @code{window}, @code{frame}, or @code{device}),
-the specifications for all locales of that type will be returned.
-Finally, if @var{locale} is @code{all}, the specifications for all
-locales of all types will be returned.
+@item string
+Display this image as a text string.  Can only be instanced
+as @code{text}, although support for instancing as @code{mono-pixmap}
+should be added.  The valid keyword is @code{:data}.  The value should
+be a string, and it is interpreted as a string of characters.
 
 
-The specifications in a specifier determine what the value of
-@var{property} will be in a particular @dfn{domain} or set of
-circumstances, which is typically a particular Emacs window along with
-the buffer it contains and the frame and device it lies within.  The
-value is derived from the instantiator associated with the most specific
-locale (in the order buffer, window, frame, device, and @code{global})
-that matches the domain in question.  In other words, given a domain
-(i.e. an Emacs window, usually), the specifier for @var{property} will
-first be searched for a specification whose locale is the buffer
-contained within that window; then for a specification whose locale is
-the window itself; then for a specification whose locale is the frame
-that the window is contained within; etc.  The first instantiator that
-is valid for the domain (usually this means that the instantiator is
-recognized by the device [i.e. the X server or TTY device] that the
-domain is on).  The function @code{glyph-property-instance} actually does
-all this, and is used to determine how to display the glyph.
-@end defun
+@item formatted-string
+Display this image as a text string with replaceable fields,
+similar to a modeline format string.  The valid keyword is @code{:data}.
+The value should be a string, and it is interpreted as a string of
+characters containing format sequences.
 
 
-@defun glyph-property-instance glyph property &optional domain default no-fallback
-This function returns the instance of @var{glyph}'s @var{property} in the
-specified @var{domain}.
+Not currently implemented.
 
 
-Under most circumstances, @var{domain} will be a particular window, and
-the returned instance describes how the specified property actually is
-displayed for that window and the particular buffer in it.  Note that
-this may not be the same as how the property appears when the buffer is
-displayed in a different window or frame, or how the property appears in
-the same window if you switch to another buffer in that window; and in
-those cases, the returned instance would be different.
+@item xbm
+An X bitmap; available only if X support was compiled into this XEmacs.
+
+If used in a buffer glyph, icon glyph, or face background pixmap, it
+will be instantiated as @code{mono-pixmap} unless the @code{:foreground}
+or @code{:background} keywords are present.  In the latter case it will
+be instantiated as @code{color-pixmap} with the two specified colors.
+@c #### Check this.
+(Probably if @code{:foreground} or @code{:background} is omitted, it
+defaults to black or white respectively.)  If used in a pointer glyph,
+it will be instantiated as an @code{pointer}.
+
+The valid keywords and their values are
+@table @code
+@item :data
+A list containing the height and width of the bitmap as integers, and
+a string interpreted as a bit vector according to the X11 standard XBM
+bitmap format, in that order.
+@item :file
+The name of a file containing standard XBM-format data.  If it contains
+a hotspot specification, it will be parsed and used if the hotspot is
+not explicitly specified.
+@item :mask-data
+A list containing the height and width of the bitmap as integers, and
+a string interpreted as a bit vector according to the X11 standard XBM
+bitmap format, in that order.  This bitmap is interpreted as the
+clipping region for the bitmap contained in the @code{:data} property.
+@item :mask-file
+The name of a file containing standard XBM-format data.  Interpreted as
+the clipping region for the bitmap contained in the @code{:data} property.
+@item :foreground
+@itemx :background
+These keywords allow you to explicitly specify foreground and background
+colors.  The values should be acceptable to @code{make-color-instance}.
+@item :hotspot-x
+@itemx :hotspot-y
+Integers denoting the hotspot (mouse pointer position), with (0,0) at
+the top left corner.  If given, these override any specification in the
+XBM file.
+@end table
 
 
-The returned instance is an image-instance object, and you can query it
-using the appropriate image instance functions.  For example, you could use
-@code{image-instance-depth} to find out the depth (number of color
-planes) of a pixmap displayed in a particular window.  The results might
-be different from the results you would get for another window (perhaps
-the user specified a different image for the frame that window is on; or
-perhaps the same image was specified but the window is on a different X
-server, and that X server has different color capabilities from this
-one).
+@item xpm
+An XPM pixmap; only available if XPM support was compiled into this XEmacs.
 
 
-@var{domain} defaults to the selected window if omitted.
+Can be instanced as @code{color-pixmap}, @code{mono-pixmap}, or
+@code{pointer}.
 
 
-@var{domain} can be a frame or device, instead of a window.  The value
-returned for such a domain is used in special circumstances when a
-more specific domain does not apply; for example, a frame value might be
-used for coloring a toolbar, which is conceptually attached to a frame
-rather than a particular window.  The value is also useful in
-determining what the value would be for a particular window within the
-frame or device, if it is not overridden by a more specific
-specification.
+XPM is an add-on library for X that was designed to rectify the
+shortcomings of the XBM format.  Many icons and labels used in the
+XEmacs GUI are still distributed in XPM format (although we are moving
+to standardize on the PNG format).  It is therefore highly desirable
+that XPM be available in your XEmacs.
 
 
-If @var{property} does not name a built-in property, its value will
-simply be returned unless it is a specifier object, in which case it
-will be instanced using @code{specifier-instance}.
+Most implementations of X include the XPM library as a standard part.
+If your vendor does not, it is highly recommended that you download it
+and install it.  You can get it from the XEmacs FTP site and mirrors, as
+well as from most sites that distribute X11.
 
 
-Optional arguments @var{default} and @var{no-fallback} are the same as
-in @code{specifier-instance}.  @xref{Specifiers}.
-@end defun
+The valid keywords and their values are
+@table @code
+@item :data
+A string interpreted as the contents of a standard XPM file.
+@item :file
+The name of a file containing standard XPM-format data.  If it contains
+a hotspot specification, it will be parsed and used if the hotspot is
+not explicitly specified.
+@c #### Does XPM provide for a hotspot?
+@item :hotspot-x
+@itemx :hotspot-y
+Integers denoting the hotspot (mouse pointer position), with (0,0) at
+the top left corner.  If given, these override any specification in the
+XBM file.
+@c #### Check this.
+(This may not be true.  The original documentation doesn't mention them
+in connection with XPM, but a pointer needs a hotspot.)
+@item :color-symbols
+An alist that maps the one- or two-character strings that specify
+symbolic color names in the XPM file to the actual color to be used for
+that symbolic color (in the form of a string acceptable as a color
+instantiator, @ref{Color Specifiers}, or a color-specifier object).
+If this is not specified, the contents of @code{xpm-color-symbols} are
+used to generate the alist.
+@end table
 
 
-@defun remove-glyph-property glyph property &optional locale tag-set exact-p
-This function removes a property from a glyph.  For built-in properties,
-this is analogous to @code{remove-specifier}.  @xref{Specifiers,
-remove-specifier-p}, for the meaning of the @var{locale}, @var{tag-set},
-and @var{exact-p} arguments.
-@end defun
+@item xface
+An X-Face bitmap, used to encode people's faces in e-mail messages;
+only available if X-Face support was compiled into this XEmacs.
 
 
-@node Glyph Convenience Functions
-@subsection Glyph Convenience Functions
+Will be instanced as @code{mono-pixmap}, @code{color-pixmap}, or
+@code{pointer}, depending on the target instance type and the presence
+of color keywords.
 
 
-  The following functions are provided for working with specific
-properties of a glyph.  Note that these are exactly like calling
-the general functions described above and passing in the
-appropriate value for @var{property}.
+The valid keywords and their values are
+@table @code
+@item :data
+A list containing the height and width of the bitmap as integers, and
+a string interpreted as a bit vector according to the X11 standard XBM
+bitmap format, in that order.
+@item :file
+The name of a file containing standard XBM-format data.  If it contains
+a hotspot specification, it will be parsed and used if the hotspot is
+not explicitly specified.
+@item :mask-data
+A list containing the height and width of the bitmap as integers, and
+a string interpreted as a bit vector according to the X11 standard XBM
+bitmap format, in that order.  This bitmap is interpreted as the
+clipping region for the bitmap contained in the @code{:data} property.
+@item :mask-file
+The name of a file containing standard XBM-format data.  Interpreted as
+the clipping region for the bitmap contained in the @code{:data} property.
+@item :foreground
+@itemx :background
+These keywords allow you to explicitly specify foreground and background
+colors.  The values should be acceptable to @code{make-color-instance}.
+@item :hotspot-x
+@itemx :hotspot-y
+Integers denoting the hotspot (mouse pointer position), with (0,0) at
+the top left corner.  If given, these override any specification in the
+XBM file.
+@end table
 
 
-  Remember that if you want to determine the ``value'' of a
-specific glyph property, you probably want to use the @code{*-instance}
-functions.  For example, to determine whether a glyph contributes
-to its line height, use @code{glyph-contrib-p-instance}, not
-@code{glyph-contrib-p}. (The latter will return a boolean specifier
-or a list of specifications, and you probably aren't concerned with
-these.)
+@item gif
+@itemx jpeg
+@itemx png
+@itemx tiff
+These are GIF87- or GIF89-format, JPEG-format, PNG/GIF24-format, and
+TIFF-format images, respectively.  They are available only if
+appropriate decoding support was built into XEmacs.  XEmacs includes GIF
+decoding functions as a standard part of it, so if you have X support,
+you will normally have GIF support, unless you explicitly disable it at
+configure time.  If you have development support (both the libraries and
+the relevant C header files) available when XEmacs is built, the JPEG,
+PNG, and TIFF libraries will automatically be detected (in the ``usual
+places'') and linked into the build.
+
+Note that PNG is the standard format for images distributed with XEmacs,
+so it is highly recommended that PNG support be built in.
+
+All of these instantiators will be instanced as @code{color-pixmap}.
+
+The valid keywords and their values are
+@table @code
+@item :data
+A string interpreted as the contents of a file containing data in the
+appropriate standard format.
+@item :file
+The name of a file containing standard-format data.
+@end table
 
 
-@defun glyph-image glyph &optional locale
-This function is equivalent to calling @code{glyph-property} with
-a property of @code{image}.  The return value will be an image
-specifier if @var{locale} is @code{nil} or omitted; otherwise,
-it will be a specification or list of specifications.
-@end defun
+@item cursor-font
+Most window systems provide a set of standard cursors, which in X11 is
+called a cursor font.  Can only be instanced as @code{pointer}.  This
+should probably be fixed.
+
+The valid keyword is @code{:data}.  Its value should be a string
+containing one of the standard cursor-font names, such as @samp{watch}
+or @samp{right_ptr} under X.  More specifically, in the X Window System
+it may be any of the standard cursor names from appendix B of the Xlib
+manual, provided in the file @file{<X11/cursorfont.h>} by most
+distributions, minus the @samp{XC_} prefix.  For MS Windows, use
+@code{mswindows-resource} instantiator format, not @code{cursor-font}.
+Other window systems may have different lists.
 
 
-@defun set-glyph-image glyph spec &optional locale tag-set how-to-add
-This function is equivalent to calling @code{set-glyph-property} with
-a property of @code{image}.
-@end defun
+@item font
+A glyph from a font; i.e. the name of a font, and glyph index into it
+of the form @samp{@var{font} fontname index [[mask-font] mask-index]}.
+Only if X support was compiled into this XEmacs.  Currently can only be
+instanced as @code{pointer}.  This should probably be fixed.
+@c #### The above description is not very helpful, so it's not obvious
+@c how to instantiate a font image.
 
 
-@defun glyph-image-instance glyph &optional domain default no-fallback
-This function returns the instance of @var{glyph}'s image in the given
-@var{domain}, and is equivalent to calling
-@code{glyph-property-instance} with a property of @code{image}.  The
-return value will be an image instance.
+@item mswindows-resource
+An MS Windows pointer resource.  Specifies a resource to retrieve
+directly from the system (an OEM resource) or from a file, particularly
+an executable file.  Can be instanced as @code{pointer} or
+@code{color-pixmap}.
 
 
-Normally @var{domain} will be a window or @code{nil} (meaning the
-selected window), and an instance object describing how the image
-appears in that particular window and buffer will be returned.
-@end defun
+The valid keywords and their values are
 
 
-@defun glyph-contrib-p glyph &optional locale
-This function is equivalent to calling @code{glyph-property} with
-a property of @code{contrib-p}.  The return value will be a boolean
-specifier if @var{locale} is @code{nil} or omitted; otherwise,
-it will be a specification or list of specifications.
-@end defun
+@table @code
+@item :resource-type
+A string naming the type (@code{cursor}, @code{bitmap}, or @code{icon})
+of the resource.  Required.
+@item :file
+A string containing the name of the file containing the resource (often
+an executable).  If a system resource, @code{:file} should be omitted.
+@item :resource-id
+A string containing the name of a resource.   Required if @code{:file}
+is not specified.
 
 
-@defun set-glyph-contrib-p glyph spec &optional locale tag-set how-to-add
-This function is equivalent to calling @code{set-glyph-property} with
-a property of @code{contrib-p}.
-@end defun
+This must be either an integer (which directly specifies a resource
+number) or a string.  Valid strings are
 
 
-@defun glyph-contrib-p-instance glyph &optional domain default no-fallback
-This function returns whether the glyph contributes to its line height
-in the given @var{domain}, and is equivalent to calling
-@code{glyph-property-instance} with a property of @code{contrib-p}.  The
-return value will be either @code{nil} or @code{t}. (Normally @var{domain}
-will be a window or @code{nil}, meaning the selected window.)
-@end defun
+For bitmaps:
 
 
-@defun glyph-baseline glyph &optional locale
-This function is equivalent to calling @code{glyph-property} with a
-property of @code{baseline}.  The return value will be a specifier if
-@var{locale} is @code{nil} or omitted; otherwise, it will be a
-specification or list of specifications.
-@end defun
+"close", "uparrow", "dnarrow", "rgarrow", "lfarrow",
+"reduce", "zoom", "restore", "reduced", "zoomd",
+"restored", "uparrowd", "dnarrowd", "rgarrowd", "lfarrowd",
+"mnarrow", "combo", "uparrowi", "dnarrowi", "rgarrowi",
+"lfarrowi", "size", "btsize", "check", "checkboxes", and
+"btncorners".
 
 
-@defun set-glyph-baseline glyph spec &optional locale tag-set how-to-add
-This function is equivalent to calling @code{set-glyph-property} with
-a property of @code{baseline}.
-@end defun
+For cursors:
 
 
-@defun glyph-baseline-instance glyph &optional domain default no-fallback
-This function returns the instance of @var{glyph}'s baseline value in
-the given @var{domain}, and is equivalent to calling
-@code{glyph-property-instance} with a property of @code{baseline}.  The
-return value will be an integer or @code{nil}.
+"normal", "ibeam", "wait", "cross", "up", "sizenwse",
+"sizenesw", "sizewe", "sizens", "sizeall", and "no".
 
 
-Normally @var{domain} will be a window or @code{nil} (meaning the
-selected window), and an instance object describing the baseline value
-appears in that particular window and buffer will be returned.
-@end defun
+For icons:
 
 
-@defun glyph-face glyph
-This function returns the face of @var{glyph}. (Remember, this is
-not a specifier, but a simple property.)
-@end defun
+"sample", "hand", "ques", "bang", "note", and "winlogo".
+@end table
 
 
-@defun set-glyph-face glyph face
-This function changes the face of @var{glyph} to @var{face}.
-@end defun
+@item subwindow
+An embedded windowing system window.  Can only be instanced as
+@code{subwindow}.  Not implemented.
+@c #### Check status of subwindows ... I thought Andy implemented them.
 
 
-@node Glyph Dimensions
-@subsection Glyph Dimensions
-
-@defun glyph-width glyph &optional window
-This function returns the width of @var{glyph} on @var{window}.  This
-may not be exact as it does not take into account all of the context
-that redisplay will.
-@end defun
-
-@defun glyph-ascent glyph &optional window
-This function returns the ascent value of @var{glyph} on @var{window}.
-This may not be exact as it does not take into account all of the
-context that redisplay will.
-@end defun
-
-@defun glyph-descent glyph &optional window
-This function returns the descent value of @var{glyph} on @var{window}.
-This may not be exact as it does not take into account all of the
-context that redisplay will.
-@end defun
-
-@defun glyph-height glyph &optional window
-This function returns the height of @var{glyph} on @var{window}.  (This
-is equivalent to the sum of the ascent and descent values.)  This may
-not be exact as it does not take into account all of the context that
-redisplay will.
-@end defun
-
-@node Images
-@section Images
-
-@menu
-* Image Specifiers::           Specifying how an image will appear.
-* Image Instantiator Conversion::
-                               Conversion is applied to image instantiators
-                                 at the time they are added to an
-                                 image specifier or at the time they
-                                 are passed to @code{make-image-instance}.
-* Image Instances::            What an image specifier gets instanced as.
-@end menu
-
-@node Image Specifiers
-@subsection Image Specifiers
-@cindex image specifiers
-
-  An image specifier is used to describe the actual image of a glyph.
-It works like other specifiers (@pxref{Specifiers}), in that it contains
-a number of specifications describing how the image should appear in a
-variety of circumstances.  These specifications are called @dfn{image
-instantiators}.  When XEmacs wants to display the image, it instantiates
-the image into an @dfn{image instance}.  Image instances are their own
-primitive object type (similar to font instances and color instances),
-describing how the image appears in a particular domain. (On the other
-hand, image instantiators, which are just descriptions of how the image
-should appear, are represented using strings or vectors.)
-
-@defun image-specifier-p object
-This function returns non-@code{nil} if @var{object} is an image specifier.
-Usually, an image specifier results from calling @code{glyph-image} on
-a glyph.
-@end defun
-
-@defun make-image-specifier spec-list
-This function creates a new image specifier object and initializes it
-according to @var{spec-list}. @xref{Specifiers}.
-
-Note that, in practice, you rarely, if ever, need to actually create an
-image specifier! (This function exists mainly for completeness.) Pretty
-much the only use for image specifiers is to control how glyphs are
-displayed, and the image specifier associated with a glyph (the
-@code{image} property of a glyph) is created automatically when a glyph
-is created and need not (and cannot, for that matter) ever be changed
-(@pxref{Glyphs}).  In fact, the design decision to create a separate
-image specifier type, rather than make glyphs themselves be specifiers,
-is debatable---the other properties of glyphs are rarely used and could
-conceivably have been incorporated into the glyph's instantiator.  The
-rarely used glyph types (buffer, pointer, icon) could also have been
-incorporated into the instantiator.
-@end defun
-
-  Image instantiators come in many formats: @code{xbm}, @code{xpm},
-@code{gif}, @code{jpeg}, etc.  This describes the format of the data
-describing the image.  The resulting image instances also come in many
-types---@code{mono-pixmap}, @code{color-pixmap}, @code{text},
-@code{pointer}, etc.  This refers to the behavior of the image and the
-sorts of places it can appear. (For example, a color-pixmap image has
-fixed colors specified for it, while a mono-pixmap image comes in two
-unspecified shades ``foreground'' and ``background'' that are determined
-from the face of the glyph or surrounding text; a text image appears as
-a string of text and has an unspecified foreground, background, and
-font; a pointer image behaves like a mono-pixmap image but can only be
-used as a mouse pointer [mono-pixmap images cannot be used as mouse
-pointers]; etc.) It is important to keep the distinction between image
-instantiator format and image instance type in mind.  Typically, a given
-image instantiator format can result in many different image instance
-types (for example, @code{xpm} can be instanced as @code{color-pixmap},
-@code{mono-pixmap}, or @code{pointer}; whereas @code{cursor-font} can be
-instanced only as @code{pointer}), and a particular image instance type
-can be generated by many different image instantiator formats (e.g.
-@code{color-pixmap} can be generated by @code{xpm}, @code{gif},
-@code{jpeg}, etc.).
-
-  @xref{Image Instances}, for a more detailed discussion of image
-instance types.
-
-  An image instantiator should be a string or a vector of the form
-
-@example
- @code{[@var{format} @var{:keyword} @var{value} ...]}
-@end example
-
-i.e. a format symbol followed by zero or more alternating keyword-value
-pairs.  The @dfn{format} field should be a symbol, one of
-
-@table @code
-@item nothing
-Don't display anything; no keywords are valid for this.  Can only be
-instanced as @code{nothing}.
-@item string
-Display this image as a text string.  Can only be instanced
-as @code{text}, although support for instancing as @code{mono-pixmap}
-should be added.
-@item formatted-string
-Display this image as a text string with replaceable fields,
-similar to a modeline format string; not currently implemented.
-@item xbm
-An X bitmap; only if X support was compiled into this XEmacs.  Can be
-instanced as @code{mono-pixmap}, @code{color-pixmap}, or
-@code{pointer}.
-@item xpm
-An XPM pixmap; only if XPM support was compiled into this XEmacs.  Can
-be instanced as @code{color-pixmap}, @code{mono-pixmap}, or
-@code{pointer}.  XPM is an add-on library for X that was designed to
-rectify the shortcomings of the XBM format.  Most implementations of X
-include the XPM library as a standard part.  If your vendor does not, it
-is highly recommended that you download it and install it.  You can get
-it from the standard XEmacs FTP site, among other places.
-@item xface
-An X-Face bitmap, used to encode people's faces in e-mail messages;
-only if X-Face support was compiled into this XEmacs.  Can be instanced
-as @code{mono-pixmap}, @code{color-pixmap}, or @code{pointer}.
-@item gif
-A GIF87 or GIF89 image; only if GIF support was compiled into this
-XEmacs.  Can be instanced as @code{color-pixmap}.  Note that XEmacs
-includes GIF decoding functions as a standard part of it, so if you have
-X support, you will normally have GIF support, unless you explicitly
-disable it at configure time.
-@item jpeg
-A JPEG-format image; only if JPEG support was compiled into this
-XEmacs.  Can be instanced as @code{color-pixmap}.  If you have the JPEG
-libraries present on your system when XEmacs is built, XEmacs will
-automatically detect this and use them, unless you explicitly disable it
-at configure time.
-@item png
-A PNG/GIF24 image; only if PNG support was compiled into this XEmacs.
-Can be instanced as @code{color-pixmap}.
-@item tiff
-A TIFF-format image; only if TIFF support was compiled into this XEmacs.
-@item cursor-font
-One of the standard cursor-font names, such as @samp{watch} or
-@samp{right_ptr} under X.  Under X, this is, more specifically, any of
-the standard cursor names from appendix B of the Xlib manual [also known
-as the file @file{<X11/cursorfont.h>}] minus the @samp{XC_} prefix.  On
-other window systems, the valid names will be specific to the type of
-window system.  Can only be instanced as @code{pointer}.
-@item font
-A glyph from a font; i.e. the name of a font, and glyph index into it
-of the form @samp{@var{font} fontname index [[mask-font] mask-index]}.
-Only if X support was compiled into this XEmacs.  Currently can only be
-instanced as @code{pointer}, although this should probably be fixed.
-@item mswindows-resource
-An MS Windows pointer resource.  Specifies a resource to retrieve
-directly from the system (an OEM resource) or from a file, particularly
-an executable file.  If the resource is to be retrieved from a file, use
-:file and optionally :resource-id.  Otherwise use :resource-id.  Always
-specify :resource-type to specify the type (cursor, bitmap or icon) of
-the resource.  Possible values for :resource-id are listed below.  Can
-be instanced as @code{pointer} or @code{color-pixmap}.
-@item subwindow
-An embedded windowing system window.  Can only be instanced as
-@code{subwindow}.
 @item button
 A button widget; either a push button, radio button or toggle button.
 Can only be instanced as @code{widget}.
 @item button
 A button widget; either a push button, radio button or toggle button.
 Can only be instanced as @code{widget}.
+
 @item combo-box
 A drop list of selectable items in a widget, for editing text.
 Can only be instanced as @code{widget}.
 @item combo-box
 A drop list of selectable items in a widget, for editing text.
 Can only be instanced as @code{widget}.
+
 @item edit-field
 A text editing widget.  Can only be instanced as @code{widget}.
 @item edit-field
 A text editing widget.  Can only be instanced as @code{widget}.
+
 @item label
 A static, text-only, widget; for displaying text.  Can only be instanced
 as @code{widget}.
 @item label
 A static, text-only, widget; for displaying text.  Can only be instanced
 as @code{widget}.
+
 @item layout
 A widget for controlling the positioning of children underneath it.
 Through the use of nested layouts, a widget hierarchy can be created
 @item layout
 A widget for controlling the positioning of children underneath it.
 Through the use of nested layouts, a widget hierarchy can be created
@@ -742,20 +628,25 @@ which can have the appearance of any standard dialog box or similar
 arrangement; all of this is counted as one @dfn{glyph} and could appear
 in many of the places that expect a single glyph.  Can only be instanced
 as @code{widget}.
 arrangement; all of this is counted as one @dfn{glyph} and could appear
 in many of the places that expect a single glyph.  Can only be instanced
 as @code{widget}.
+
 @item native-layout
 @item native-layout
-@c   #### Document me better!
 The native version of a layout widget.
 Can only be instanced as @code{widget}.
 The native version of a layout widget.
 Can only be instanced as @code{widget}.
+
 @item progress-gauge
 A sliding widget, for showing progress.  Can only be instanced as
 @code{widget}.
 @item progress-gauge
 A sliding widget, for showing progress.  Can only be instanced as
 @code{widget}.
+
 @item tab-control
 A tab widget; a series of user selectable tabs.  Can only be instanced
 as @code{widget}.
 @item tab-control
 A tab widget; a series of user selectable tabs.  Can only be instanced
 as @code{widget}.
+
 @item tree-view
 A folding widget.  Can only be instanced as @code{widget}.
 @item tree-view
 A folding widget.  Can only be instanced as @code{widget}.
+
 @item scrollbar
 A scrollbar widget.  Can only be instanced as @code{widget}.
 @item scrollbar
 A scrollbar widget.  Can only be instanced as @code{widget}.
+
 @item autodetect
 XEmacs tries to guess what format the data is in.  If X support exists,
 the data string will be checked to see if it names a filename.  If so,
 @item autodetect
 XEmacs tries to guess what format the data is in.  If X support exists,
 the data string will be checked to see if it names a filename.  If so,
@@ -766,135 +657,14 @@ is one of the allowable image-instance types and the string names a
 valid cursor-font name, the image will be created as a pointer.
 Otherwise, the image will be displayed as text.  If no X support exists,
 the image will always be displayed as text.
 valid cursor-font name, the image will be created as a pointer.
 Otherwise, the image will be displayed as text.  If no X support exists,
 the image will always be displayed as text.
+
 @item inherit
 Inherit from the background-pixmap property of a face.  Can only be
 instanced as @code{mono-pixmap}.
 @end table
 
 @item inherit
 Inherit from the background-pixmap property of a face.  Can only be
 instanced as @code{mono-pixmap}.
 @end table
 
-The valid keywords are:
-
-@table @code
-@item :data
-Inline data.  For most formats above, this should be a string.  For
-XBM images, this should be a list of three elements: width, height, and
-a string of bit data.  This keyword is not valid for instantiator
-format @code{nothing}.
-
-@item :file
-Data is contained in a file.  The value is the name of this file.  If
-both @code{:data} and @code{:file} are specified, the image is created
-from what is specified in @code{:data} and the string in @code{:file}
-becomes the value of the @code{image-instance-file-name} function when
-applied to the resulting image-instance.  This keyword is not valid for
-instantiator formats @code{nothing}, @code{string},
-@code{formatted-string}, @code{cursor-font}, @code{font}, and
-@code{autodetect}.
-
-@item :foreground
-@itemx :background
-For @code{xbm}, @code{xface}, @code{cursor-font}, and @code{font}.
-These keywords allow you to explicitly specify foreground and background
-colors.  The argument should be anything acceptable to
-@code{make-color-instance}.  This will cause what would be a
-@code{mono-pixmap} to instead be colorized as a two-color color-pixmap,
-and specifies the foreground and/or background colors for a pointer
-instead of black and white.
-
-@item :mask-data
-For @code{xbm} and @code{xface}.  This specifies a mask to be used with the
-bitmap.  The format is a list of width, height, and bits, like for
-@code{:data}.
-
-@item :mask-file
-For @code{xbm} and @code{xface}.  This specifies a file containing the
-mask data.  If neither a mask file nor inline mask data is given for an
-XBM image, and the XBM image comes from a file, XEmacs will look for a
-mask file with the same name as the image file but with @samp{Mask} or
-@samp{msk} appended.  For example, if you specify the XBM file
-@file{left_ptr} [usually located in @file{/usr/include/X11/bitmaps}],
-the associated mask file @file{left_ptrmsk} will automatically be picked
-up.
-
-@item :hotspot-x
-@itemx :hotspot-y
-For @code{xbm} and @code{xface}.  These keywords specify a hotspot if
-the image is instantiated as a @code{pointer}.  Note that if the XBM
-image file specifies a hotspot, it will automatically be picked up if no
-explicit hotspot is given.
-
-@item :color-symbols
-Only for @code{xpm}.  This specifies an alist that maps strings that
-specify symbolic color names to the actual color to be used for that
-symbolic color (in the form of a string or a color-specifier object).
-If this is not specified, the contents of @code{xpm-color-symbols} are
-used to generate the alist.
-@item :resource-id
-Only for @code{mswindows-resource}.  This must be either an integer
-(which directly specifies a resource number) or a string.  Valid strings
-are
-
-For bitmaps:
-
-"close", "uparrow", "dnarrow", "rgarrow", "lfarrow",
-"reduce", "zoom", "restore", "reduced", "zoomd",
-"restored", "uparrowd", "dnarrowd", "rgarrowd", "lfarrowd",
-"mnarrow", "combo", "uparrowi", "dnarrowi", "rgarrowi",
-"lfarrowi", "size", "btsize", "check", "checkboxes", and
-"btncorners".
-
-For cursors:
-
-"normal", "ibeam", "wait", "cross", "up", "sizenwse",
-"sizenesw", "sizewe", "sizens", "sizeall", and "no".
-
-For icons:
-
-"sample", "hand", "ques", "bang", "note", and "winlogo".
-@item :resource-type
-Only for @code{mswindows-resource}.  This must be a symbol, either
-@code{cursor}, @code{icon}, or @code{bitmap}, specifying the type of
-resource to be retrieved.
-@item :face
-Only for @code{inherit}.  This specifies the face to inherit from.  For
-widgets this also specifies the face to use for display. It defaults to
-gui-element-face.
-@end table
-
-Keywords accepted as menu item specs are also accepted by widgets.
-These are @code{:selected}, @code{:active}, @code{:suffix},
-@code{:keys}, @code{:style}, @code{:filter}, @code{:config},
-@code{:included}, @code{:key-sequence}, @code{:accelerator},
-@code{:label} and @code{:callback}.
-
-If instead of a vector, the instantiator is a string, it will be
-converted into a vector by looking it up according to the specs in the
-@code{console-type-image-conversion-list} for the console type of
-the domain (usually a window; sometimes a frame or device) over which
-the image is being instantiated.
-
-If the instantiator specifies data from a file, the data will be read in
-at the time that the instantiator is added to the image specifier (which
-may be well before the image is actually displayed), and the
-instantiator will be converted into one of the inline-data forms, with
-the filename retained using a @code{:file} keyword.  This implies that
-the file must exist when the instantiator is added to the image, but
-does not need to exist at any other time (e.g. it may safely be a
-temporary file).
-
-@defun valid-image-instantiator-format-p format &optional locale
-This function returns non-@code{nil} if @var{format} is a valid image
-instantiator format.
-
-If @var{locale} is non-@code{nil} then the format is checked in that locale.
-If @var{locale} is @code{nil} the current console is used.
-
-Note that the return value for many formats listed above depends on
-whether XEmacs was compiled with support for that format.
-@end defun
-
-@defun image-instantiator-format-list
-This function return a list of valid image-instantiator formats.
-@end defun
+There are two convenience variables for use with the XBM and XPM image
+formats.
 
 @defvar xpm-color-symbols
 This variable holds definitions of logical color-names used when reading
 
 @defvar xpm-color-symbols
 This variable holds definitions of logical color-names used when reading
@@ -919,293 +689,1280 @@ the environment variable @samp{XBMLANGPATH} is set, it is consulted
 first).
 @end defvar
 
 first).
 @end defvar
 
-@node Image Instantiator Conversion
-@subsection Image Instantiator Conversion
-@cindex image instantiator conversion
-@cindex conversion of image instantiators
 
 
-@defun set-console-type-image-conversion-list console-type list
-This function sets the image-conversion-list for consoles of the given
-@var{console-type}.  The image-conversion-list specifies how image
-instantiators that are strings should be interpreted.  Each element of
-the list should be a list of two elements (a regular expression string
-and a vector) or a list of three elements (the preceding two plus an
-integer index into the vector).  The string is converted to the vector
-associated with the first matching regular expression.  If a vector
-index is specified, the string itself is substituted into that position
-in the vector.
+@node Image Instances
+@subsection Image Instances
+@cindex image instances
 
 
-Note: The conversion above is applied when the image instantiator is
-added to an image specifier, not when the specifier is actually
-instantiated.  Therefore, changing the image-conversion-list only affects
-newly-added instantiators.  Existing instantiators in glyphs and image
-specifiers will not be affected.
+  Image-instance objects encapsulate the way a particular image (pixmap,
+etc.) is displayed on a particular device.
+
+  In most circumstances, you do not need to directly create image
+instances; use a glyph instead.  However, it may occasionally be useful
+to explicitly create image instances, if you want more control over the
+instantiation process.
+
+@defun image-instance-p object
+This function returns non-@code{nil} if @var{object} is an image instance.
 @end defun
 
 @end defun
 
-@defun console-type-image-conversion-list console-type
-This function returns the image-conversion-list for consoles of the given
-@var{console-type}.
-@end defun
+@menu
+* Image Instance Types::         Each image instances has a particular type.
+* Image Instance Functions::    Functions for working with image instances.
+@end menu
+
+
+@node Image Instance Types
+@subsubsection Image Instance Types
+@cindex image instance types
+
+  Image instances come in a number of different types.  The type
+of an image instance specifies the nature of the image: Whether
+it is a text string, a mono pixmap, a color pixmap, etc.
+
+  The valid image instance types are
+
+@table @code
+@item nothing
+Nothing is displayed.
+
+@item text
+Displayed as text.  The foreground and background colors and the
+font of the text are specified independent of the pixmap.  Typically
+these attributes will come from the face of the surrounding text,
+unless a face is specified for the glyph in which the image appears.
+
+@item mono-pixmap
+Displayed as a mono pixmap (a pixmap with only two colors where the
+foreground and background can be specified independent of the pixmap;
+typically the pixmap assumes the foreground and background colors of
+the text around it, unless a face is specified for the glyph in which
+the image appears).
+@item color-pixmap
+
+Displayed as a color pixmap.
+
+@item pointer
+Used as the mouse pointer for a window.
+
+@item subwindow
+A child window that is treated as an image.  This allows (e.g.)
+another program to be responsible for drawing into the window.
+Not currently implemented.
+@c #### Check status of subwindows ... I thought Andy implemented them.
+
+@item widget
+An active GUI element implemented as a ``widget'' or ``control'' of the
+underlying window system.
+@end table
+
+The following functions are used to check whether an image instance type
+is valid in the running XEmacs.
+
+@defun valid-image-instance-type-p type
+This function returns non-@code{nil} if @var{type} is a valid image
+instance type.
+@end defun
+
+@defun image-instance-type-list
+This function returns a list of the valid image instance types.
+@end defun
+
+The following functions are used to determine the type of an image
+instance.
+
+@defun image-instance-type image-instance
+Return the type of the given image instance.  The return
+value will be one of @code{nothing}, @code{text}, @code{mono-pixmap},
+@code{color-pixmap}, @code{pointer}, @code{subwindow}, or @code{widget}.
+@c #### Check status of subwindows ... I thought Andy implemented them.
+@end defun
+
+@defun text-image-instance-p object
+Return non-@code{nil} if @var{object} is an image instance of type
+@code{text}.
+@end defun
+
+@defun mono-pixmap-image-instance-p object
+Return non-@code{nil} if @var{object} is an image instance of type
+@code{mono-pixmap}.
+@end defun
+
+@defun color-pixmap-image-instance-p object
+Return non-@code{nil} if @var{object} is an image instance of type
+@code{color-pixmap}.
+@end defun
+
+@defun pointer-image-instance-p object
+Return non-@code{nil} if @var{object} is an image instance of type
+@code{pointer}.
+@end defun
+
+@defun subwindow-image-instance-p object
+Return non-@code{nil} if @var{object} is an image instance of type
+@code{subwindow}.
+@c #### Check status of subwindows ... I thought Andy implemented them.
+@end defun
+
+@defun nothing-image-instance-p object
+Return non-@code{nil} if @var{object} is an image instance of type
+@code{nothing}.
+@end defun
+
+@defun widget-image-instance-p object
+Return non-@code{nil} if @var{object} is an image instance of type
+@code{widget}.
+@end defun
+
+
+@node Image Instance Functions
+@subsubsection Image Instance Functions
+
+@defun make-image-instance data &optional domain dest-types noerror
+This function creates a new image-instance object.
+
+@var{data} is an image instantiator, which describes the image
+(@pxref{Image Specifiers}).
+
+@var{dest-types} should be a list of allowed image instance types that
+can be generated.  The @var{dest-types} list is unordered.  If multiple
+destination types are possible for a given instantiator, the ``most
+natural'' type for the instantiator's format is chosen.  These are
+
+@table @code
+@item XBM
+@c #### check xface
+@itemx xface
+@code{mono-pixmap}, then @code{color-pixmap}, then @code{pointer}.
+
+@item XPM
+@itemx GIF
+@itemx JPEG
+@itemx PNG
+@itemx TIFF
+@code{color-pixmap}, then @code{mono-pixmap}, then @code{pointer}.
+
+@item string
+@itemx formatted-string formats
+@code{text}, then @code{mono-pixmap} (not currently implemented), then
+@code{color-pixmap} (not currently implemented).
+
+@item mswindows-resource
+For pointer resources, @code{pointer}.
+
+For the others, @code{color-pixmap}.
+@end table
+
+@c #### So what?  This is a reference manual, list them, you lazy bastard!
+The other formats can only be instantiated as one type.
+
+If you want to control more specifically the order of the types into
+which an image is instantiated, call @code{make-image-instance}
+repeatedly until it succeeds, passing less and less preferred
+destination types each time.
+
+If @var{dest-types} is omitted, all possible types are allowed.
+
+@var{domain} specifies the domain to which the image instance will be
+attached.  This domain is termed the @dfn{governing domain}.  The type
+of the governing domain depends on the image instantiator format.
+(Although, more correctly, it should probably depend on the image
+instance type.)  For example, pixmap image instances are specific to a
+device, but widget image instances are specific to a particular XEmacs
+window because in order to display such a widget when two windows onto
+the same buffer want to display the widget, two separate underlying
+widgets must be created.  (That's because a widget is actually a child
+window-system window, and all window-system windows have a unique
+existence on the screen.)  This means that the governing domain for a
+pixmap image instance will be some device (most likely, the only
+existing device), whereas the governing domain for a widget image
+instance will be some XEmacs window.
+
+If you specify an overly general @var{domain} (e.g. a frame when a
+window was wanted), an error is signaled.  If you specify an overly
+specific @var{domain} (e.g. a window when a device was wanted), the
+corresponding general domain is fetched and used instead.  For
+@code{make-image-instance}, it makes no difference whether you specify
+an overly specific domain or the properly general domain derived from
+it.  However, it does matter when creating an image instance by
+instantiating a specifier or glyph (e.g. with
+@code{glyph-image-instance}), because the more specific domain causes
+spec lookup to start there and proceed to more general domains.  (It
+would also matter when creating an image instance with an instantiator
+format of @code{inherit}, but we currently disallow this.)
+@c #### We should fix that.
+
+If omitted, @var{domain} defaults to the selected window.
+
+@var{noerror} controls what happens when the image cannot be generated.
+If @code{nil}, an error message is generated.  If @code{t}, no messages
+are generated and this function returns @code{nil}.  If anything else, a
+warning message is generated and this function returns @code{nil}.
+@end defun
+
+@defun colorize-image-instance image-instance foreground background
+This function makes the image instance be displayed in the given
+colors.  Image instances come in two varieties: bitmaps, which are 1
+bit deep which are rendered in the prevailing foreground and background
+colors; and pixmaps, which are of arbitrary depth (including 1) and
+which have the colors explicitly specified.  This function converts a
+bitmap to a pixmap.  If the image instance was a pixmap already,
+nothing is done (and @code{nil} is returned).  Otherwise @code{t} is
+returned.
+@end defun
+
+The following functions are 
+
+@defun image-instance-name image-instance
+This function returns the name of the given image instance.  The name is
+typically taken from the @code{:file} property of the instantiator if
+present, otherwise from the @code{:data} property.
+@end defun
+
+@defun image-instance-domain image-instance
+Return the governing domain of the given @var{image-instance}.  The
+governing domain of an image instance is the domain that the image
+instance is specific to.  It is @emph{NOT} necessarily the domain that
+was given to the call to @code{specifier-instance} that resulted in the
+creation of this image instance.  See @code{make-image-instance} for
+more information on governing domains.
+@end defun
+
+@defun image-instance-string image-instance
+This function returns the string of the given image instance.  This will
+only be non-@code{nil} for text image instances.
+@end defun
+
+@defun image-instance-file-name image-instance
+This function returns the file name from which @var{image-instance} was
+read, if known.
+@end defun
+
+@defun image-instance-mask-file-name image-instance
+This function returns the file name from which @var{image-instance}'s
+mask was read, if known.
+@end defun
+
+Pixmaps are considered to be three-dimensional.  The height and width of
+the pixel array that is displayed, and the color depth of its pixels,
+are accessed with these functions.
+
+@defun image-instance-depth image-instance
+This function returns the depth of the image instance.  This is 0 for a
+mono pixmap, or a positive integer for a color pixmap.
+@end defun
+
+@defun image-instance-height image-instance
+This function returns the height of the image instance, in pixels.
+@end defun
+
+@defun image-instance-width image-instance
+This function returns the width of the image instance, in pixels.
+@end defun
+
+The hotspot is a point relative to the origin of the pixmap.  When
+an image is used as a mouse pointer, the hotspot is the point on the
+image that sits over the location that the pointer points to.  This is,
+for example, the tip of the arrow or the center of the crosshairs.
+
+These functions access the coordinates of the hotspot.  They simply
+return @code{nil} for a non-pointer image instance.
+
+@defun image-instance-hotspot-x image-instance
+This function returns the X coordinate of the image instance's hotspot,
+if known.
+@end defun
+
+@defun image-instance-hotspot-y image-instance
+This function returns the Y coordinate of the image instance's hotspot,
+if known.
+@end defun
+
+Mono pixmaps and pointers may have their foreground and background
+colors set when instanced.  Use these functions to access color
+information.
+
+@defun image-instance-foreground image-instance
+This function returns the foreground color of @var{image-instance}, if
+applicable.  This will be a color instance or @code{nil}.  (It will only
+be non-@code{nil} for colorized mono pixmaps and for pointers.)
+@end defun
+
+@defun image-instance-background image-instance
+This function returns the background color of @var{image-instance}, if
+applicable.  This will be a color instance or @code{nil}.  (It will only
+be non-@code{nil} for colorized mono pixmaps and for pointers.)
+@end defun
+
+
+@node Using Glyphs
+@section Using Glyphs
+
+Glyph usage is unfortunately somewhat arcane.  (For discussion of
+rationale, @ref{Glyphs,,,Internals}.)  Because they are not ``text,''
+they cannot be inserted directly into a buffer.  Instead, they are
+values of properties of extents attached to buffers or strings, values
+of global variables such as mouse pointers, or as a component of a
+complex data structure such as a toolbar initializer.  Although these
+uses could probably streamlined, each structure has its own
+requirements.  Since glyphs are very flexible, it is possible to create
+applications like the @file{edit-toolbar} and @file{xpm-mode} libraries
+which display glyphs in a buffer (for reference while editing) that are
+normally used in a different context.
+
+Usage of glyphs can roughly be categorized as follows:
+
+@table @strong
+@item Buffer glyphs
+Glyphs that are inserted in a buffer may be used for their own sake (for
+example, image display in @file{w3}), as an accurate representation of
+text that can't be displayed in usual fonts (equation display in
+@file{preview-latex}), or as annotations (such as a marginal indication
+of a bookmark).  Glyphs are attached to buffers via extents.
+
+@item Redisplay glyphs
+Glyphs can be used to create XEmacs-specific ``fonts''.  For example,
+the character that indicates truncation of lines is implemented as the
+@code{truncation-glyph}.  It is also possible to have XEmacs display a
+certain character using a custom glyph, via display tables.
+
+@item Frame glyphs
+Glyphs are used to control the appearance of various other components of
+the frame.  They can be inserted in the modeline, like the favicons used
+in Web browsers.  They are used to specify the labels on toolbar
+buttons.  Finally, they can be inserted in the gutters.  (The difference
+between a glyph inserted in a gutter and a marginal annotation is that
+the marginal annotation is tied to the text in the buffer.  If the
+buffer line scrolls out of view, the marginal annotation will, as well.
+A gutter glyph does not move with the text.)
+
+Unfortunately, all these uses are special cases, and have their own
+APIs, in contrast to glyphs in a buffer.
+
+@item External glyphs
+External glyphs simply allow a consistent API for images.  The images
+are then passed to external software such as the window system itself
+(mouse cursor shapes) and the window manager (icons to represent
+minimized windows).  XEmacs has no role in managing their use.
+
+@item Subwindow and widget glyphs
+These do not constitute a context of use, but rather an important class of
+glyph types.  The difference between these and other glyphs is that
+while their geometry is determined by XEmacs, their behavior is managed
+separately, by internal mechanisms in the case of widgets, and
+(possibly) by another process in the case of subwindows.
+@c #### Check status of subwindows ... I thought Andy implemented them.
+@end table
+
+Some simple concrete examples showing how to insert a glyph in a
+buffer are presented later.  @ref{Glyph Examples}.
+
+``Creating Glyphs'' explains how to create glyphs.  Creating a glyph
+using @code{make-glyph} does not specify @emph{where} the glyph will be
+used, it only specifies @emph{what} the glyph will look like.  The next
+four sections explain how to embed glyphs in different display
+contexts.  Finally, the last two sections explain the special
+considerations of using glyphs whose behavior is not determined by the
+code creating them, but by the glyph itself (a ``widget'' in X11 or
+``control'' in MS Windows or Aqua), or even by a separate process.
+
+@menu
+* Creating Glyphs::    Creating new glyphs.
+* Buffer Glyphs::      Annotations are glyphs that appear in a buffer.
+* Redisplay Glyphs::   Glyphs controlling various redisplay functions.
+* Frame Glyphs::       Displaying glyphs in GUI components of the frame.
+* External Glyphs::    Icons and mouse pointers for the window system.
+* Native GUI Widgets:: Complex active elements treated as a single glyph.
+* Subwindows::         Externally-controlled subwindows in buffers.
+@c #### Check status of subwindows ... I thought Andy implemented them.
+@end menu
+
+@node Creating Glyphs
+@subsection Creating Glyphs
+
+@defun make-glyph &optional spec-list type
+This function creates a new glyph object of type @var{type}.
+
+The optional @var{spec-list} is used to initialize the glyph's image.
+It can be any spec-list of @dfn{image instantiator} accepted by
+@code{canonicalize-spec-list}, @ref{Adding Specifications}.  An
+individual image instantiator may be a string, which is converted to a
+vector according to @code{console-type-image-conversion-list}, or a
+vector.  The vector's first element specifies the @emph{external} format
+of the data, such as a string, a PNG file, or an MS Windows resource.
+This is followed by properties (keyword-value pairs) specifying such
+information as the name of a file containing an image, or pixmap data
+directly.  @xref{Image Specifiers}.
+
+The optional @var{type} specifies the type of the glyph.  @var{type}
+should be one of @code{buffer} (used for glyphs in an extent, the
+modeline, the toolbar, or elsewhere in a frame), @code{pointer} (used
+for the mouse-pointer), or @code{icon} (used for a frame's icon), and
+defaults to @code{buffer}.
+@end defun
+
+@var{spec-list} is the initializer for the glyph's @code{image}
+property, which is an image specifier.  (Note that @dfn{image} as used
+in the context of a glyph's @code{image} property or in the terms
+@dfn{image specifier}, @dfn{image instantiator}, or @dfn{image instance}
+does not refer to what people normally think of as an image (which in
+XEmacs is called a @dfn{pixmap}), but to any graphical element---a
+pixmap, a widget, or even a block of text, when used in the places that
+call for a glyph.)
+
+The most common form of @var{spec-list} is a single image instantiator.
+(@strong{Compatibility note:} in GNU Emacs 21, a string used to
+instantiate an image is interpreted as the name of an image file, which
+is searched for and instantiated.)  The conversion controlled by
+@code{console-type-image-conversion-list} typically attempts to look up
+the string as a file name in XEmacs's data directory path, and if this
+fails, defaults to displaying the string as a text image instance
+(@emph{i.e.}. the string itself.
+
+Fine control of a particular specification is provided by using a vector
+as the image instantiator.  More complicated instantiators allow lists
+of instantiators to be specified (which are tried in order), or mappings
+from locales to lists of instantiators, @emph{etc}.  @xref{Specifiers},
+for more information about specification formats.
+
+As well as using @var{spec-list} to initialize the glyph, you can set
+specifications using @code{set-glyph-image}.  The glyph itself is not
+actually a specifier, but rather is an object containing an image
+specifier (as well as other properties seldom set by user code).
+Therefore, you cannot set or access specifications for the glyph's image
+by directly using @code{set-specifier}, @code{specifier-instance} or the
+like on the glyph; instead use them on @code{(glyph-image @var{glyph})}
+or use the convenience functions @code{set-glyph-image},
+@code{glyph-image-instance}, and @code{glyph-image}.
+
+Glyph types reflect the fact that glyphs are used in contexts like
+pointers and window manager icons, which are defined by external
+programs such as the window system or window manager.  These require
+somewhat different @emph{internal} format, which is opaque to the user.
+
+It is extremely rare that you will ever have to specify a value for
+@var{type}, which should be one of @code{buffer} (used for glyphs in an
+extent, the modeline, the toolbar, or elsewhere in a buffer),
+@code{pointer} (used for the mouse-pointer), or @code{icon} (used for a
+frame's icon), and defaults to @code{buffer}.  The only cases where it
+needs to be specified is when creating icon or pointer glyphs, and in
+both cases the necessary glyphs have already been created at startup and
+are accessed through the appropriate variables,
+e.g. @code{text-pointer-glyph} (or in general, any
+@samp{*-pointer-glyph}) and @code{frame-icon-glyph}.  User code should
+never need to create @code{pointer} or @code{icon} glyphs.  @xref{Glyph
+Types}.
+
+There are a few other glyph creation functions, normally used only
+internally or at XEmacs initialization.
+
+@defun make-glyph-internal &optional type
+This function creates a new, uninitialized glyph of type @var{type}.
+@end defun
+
+@defun make-pointer-glyph &optional spec-list
+
+Return a new @code{pointer-glyph} object with the specification list
+@var{spec-list}.  This function is equivalent to calling
+@code{make-glyph} with a @var{type} of @code{pointer}.
+@end defun
+
+@code{make-pointer-glyph} is normally used only by XEmacs initialization
+code.  It is extremely unlikely that you will ever need to create a
+pointer glyph.  Instead, you probably want to be calling
+@code{set-glyph-image} on an existing glyph,
+e.g. @code{text-pointer-glyph}.
+
+@defun make-icon-glyph &optional spec-list
+
+Return a new @code{icon-glyph} object with the specification list
+@var{spec-list}.  This function is equivalent to calling
+@code{make-glyph} with a @var{type} of @code{icon}.
+@end defun
+
+@code{make-icon-glyph} is normally used only by XEmacs initialization
+code.  It is extremely unlikely that you will ever need to create a icon
+glyph.  Instead, you probably want to be calling @code{set-glyph-image}
+on the existing glyph, @code{frame-icon-glyph}.
+
+
+@node Buffer Glyphs
+@subsection Buffer Glyphs
+
+Creating a glyph using @code{make-glyph} does not specify @emph{where}
+the glyph will be used, it only specifies @emph{what} the glyph will
+look like.  Once you have created a glyph, you specify where it will be
+used by attaching it to an extent as a @emph{begin-glyph} or
+@emph{end-glyph}.
+
+@table @code
+@item buffer text
+To insert a glyph into a buffer, create an extent in the buffer and then
+use @code{set-extent-begin-glyph} or @code{set-extent-end-glyph} to set
+a glyph to be displayed at the corresponding edge of the extent.  (It is
+common to create zero-width extents for this purpose.)
+
+@item margins
+To insert a glyph into the left or right margin of a buffer, first
+make sure the margin is visible by setting a value for the specifiers
+@code{left-margin-width} or @code{right-margin-width}.  (Not strictly necessary
+when using margin glyphs with layout policy @code{whitespace}.)  Follow
+the same procedure above for inserting a glyph in a buffer, then
+set a non-default layout policy for the glyph using
+@code{set-extent-begin-glyph-layout} or @code{set-extent-end-glyph-layout}.
+Alternatively, use the high-level annotations API (see
+@code{make-annotation}).  (In fact, you can also use the annotations
+API for glyphs in a buffer, by setting a layout policy of @code{text}.)
+
+@end table
+
+
+@node Redisplay Glyphs
+@subsection Redisplay Glyphs
+
+To use a glyph to control the shape of miscellaneous redisplay effects
+such as the truncation and continuation markers, set the appropriate
+existing glyph variables with @code{set-glyph-image}.  See
+@code{continuation-glyph}, @code{control-arrow-glyph},
+@code{hscroll-glyph}, @code{invisible-text-glyph},
+@code{octal-escape-glyph}, and @code{truncation-glyph}.  See also
+@code{overlay-arrow-string}, an odd redisplay leftover which can be set
+to a glyph you created, and will cause the glyph to be displayed on top
+of the text position specified in the marker stored in
+@code{overlay-arrow-position}.
+
+To use a glyph in a display table (i.e. to control the appearance of any
+individual character), create the appropriate character glyphs and then
+set a specification for the specifier @code{current-display-table},
+which controls the appearance of characters.  You can also set an
+overriding display table for use with text displayed in a particular
+face; see @code{set-face-display-table} and @code{make-display-table}.
+#### Note: Display tables do not currently support general Mule
+characters.  They will be overhauled at some point to support this
+and to provide other features required under Mule.  @ref{Display Tables}.
+
+Glyphs are not actually used as the background pixmaps of faces, but the
+API is similar.  The
+background pixmap of a face is actually an image specifier -- probably
+the only place in XEmacs where an image specifier occurs outside of a
+glyph.  If you would like to use a glyph's image as a background pixmap,
+you can extract it with @code{glyph-image}, and then add it to a face.
+@xref{Face Convenience Functions}.
+
+@defvr Glyph truncation-glyph
+This variable specifies what is displayed at the end of truncated lines.
+@end defvr
+
+@defvr Glyph continuation-glyph
+This variable specifies what is displayed at the end of wrapped lines.
+@end defvr
+
+@defvr Glyph octal-escape-glyph
+This variable specifies what to prefix character codes displayed in octal
+with.
+@end defvr
+
+@defvr Glyph hscroll-glyph
+This variable specifies what to display at the beginning of horizontally
+scrolled lines.
+@end defvr
+
+@defvr Glyph invisible-text-glyph
+This variable specifies what to use to indicate the presence of
+invisible text.  This is the glyph that is displayed when an ellipsis is
+called for, according to @code{selective-display-ellipses} or
+@code{buffer-invisibility-spec}).  Normally this is three dots (``...'').
+@end defvr
+
+@defvr Glyph control-arrow-glyph
+This variable specifies what to use as an arrow for control characters.
+@end defvr
+
+
+@node Frame Glyphs
+@subsection Frame Glyphs
+
+There are also a number of special objects whose appearance is specified
+by a glyph.  Most of these a global objects that you update with
+@code{set-glyph-image}, such as mouse pointers.  Frame icons, toolbar
+button icons, and the modeline are the main non-text objects which
+accept glyphs as elements.
+
+@table @code
+@item modeline
+A glyph may be displayed in the modeline by inserting the glyph as one
+of the elements of the modeline format.  (Unfortunately you can't
+currently put a begin glyph or end glyph on one of the modeline
+extents---they're ignored.)
+
+@item toolbar
+To insert a glyph into a toolbar, specify it as the icon part of a toolbar
+button, which in turn must be part of a toolbar instantiator (typically
+set on the specifier @code{default-toolbar}).
+See @code{default-toolbar} for more information. (As a convenience, you
+may use a symbol in place of the glyph list in the toolbar button
+instantiator; the symbol is evalled to get the glyph list.  This
+facilitates both creating the toolbar instantiator and modifying
+individual glyphs in a toolbar later on.  For example, you can change
+the way that the Mail toolbar button looks by modifying the value of the
+variable @code{toolbar-mail-icon} (in general, @code{toolbar-*-icon})
+and then calling @code{(set-specifier-dirty-flag default-toolbar)}.
+(#### Unfortunately this doesn't quite work the way it should; the
+change will appear in new frames, but not existing ones, because once an
+image has been displayed the pixmap replaces the symbol for those domains.)
+
+@item gutter
+To insert a glyph into a gutter, use
+@code{set-extent-begin-glyph} or @code{set-extent-end-glyph} to set a
+glyph to be displayed at the corresponding edge of extent in a string,
+similar to the way you insert glyphs in a buffer.  Then insert the
+string into the gutter @ref{Specifying a Gutter}.  Glyphs that are
+frequently used in this way are @code{tab control} and @code{progress
+bar} glyphs.
+
+@end table
+
+
+@node External Glyphs
+@subsection External Glyphs
+@cindex frame icon
+@cindex icon, frame
+@cindex mouse cursor
+@cindex cursor (mouse)
+@cindex pointer (mouse)
+@cindex mouse pointer
+
+There are two special kinds of glyph that are not displayed by XEmacs.
+Instead, they are used to set the appearance of iconified frames and the
+mouse pointer.  Because these uses are constrained by the window system,
+icons and pointers have their own special types @xref{Glyph Types}.
+
+You may use a glyph as the icon for a frame.  Do not create a new glyph;
+instead, change the specifications for the existing glyph
+@code{frame-icon-glyph} with @code{set-glyph-image}.  This is a unique,
+predefined object.  Although the natural usage is to set specifications
+for the global locale or a frame locale, you can also arrange for a
+special icon when a frame's selected window displays a particular buffer
+by using a buffer locale.
+
+The shape of the mouse pointer when over a particular section of a frame
+is controlled using various glyph variables.  Since the image of a glyph
+is a specifier, it can be controlled on a per-buffer, per-frame, per-window,
+or per-device basis.
+
+To use a glyph as the mouse pointer, in general you do not create a new
+glyph, but rather you change the specifications of various existing
+glyphs, such as @code{text-pointer-glyph} for the pointer used over
+text, @code{modeline-pointer-glyph} for the pointer used over the
+modeline, etc.  Do an apropos over @samp{pointer-glyph} to find all of
+them.  (Note also that you can temporarily set the mouse pointer to some
+specific shape by using @code{set-frame-pointer}, which takes an image
+instance, as obtained from calling @code{glyph-image-instance} on a glyph
+of type @code{pointer} -- either one of the above-mentioned variables or
+one you created yourself.  (See below for what it means to create a
+glyph of type @code{pointer}.)  This pointer will last only until the
+next mouse motion event is processed or certain other things happen,
+such as creating or deleting a window. (In fact, the above-mentioned
+pointer glyph variables are implemented as part of the default handler
+for mouse motion events.  If you want to customize this behavior, take a
+look at @code{mode-motion-hook}, or @code{mouse-motion-handler} if you
+really want to get low-level.)
+
+You should use @code{set-glyph-image} to set the following variables,
+@emph{not} @code{setq}.
+
+@defvr Glyph text-pointer-glyph
+This variable specifies the shape of the mouse pointer when over text.
+@end defvr
+
+@defvr Glyph nontext-pointer-glyph
+This variable specifies the shape of the mouse pointer when over a
+buffer, but not over text.  If unspecified in a particular domain,
+@code{text-pointer-glyph} is used.
+@end defvr
+
+@defvr Glyph modeline-pointer-glyph
+This variable specifies the shape of the mouse pointer when over the modeline.
+If unspecified in a particular domain, @code{nontext-pointer-glyph} is used.
+@end defvr
+
+@defvr Glyph selection-pointer-glyph
+This variable specifies the shape of the mouse pointer when over a
+selectable text region.  If unspecified in a particular domain,
+@code{text-pointer-glyph} is used.
+@end defvr
+
+@defvr Glyph gc-pointer-glyph
+This variable specifies the shape of the mouse pointer when a garbage
+collection is in progress.  If the selected window is on a window system
+and this glyph specifies a value (i.e. a pointer image instance) in the
+domain of the selected window, the pointer will be changed as specified
+during garbage collection.  Otherwise, a message will be printed in the
+echo area, as controlled by @code{gc-message}.
+@end defvr
+
+@defvr Glyph busy-pointer-glyph
+This variable specifies the shape of the mouse pointer when XEmacs is busy.
+If unspecified in a particular domain, the pointer is not changed
+when XEmacs is busy.
+@end defvr
+
+@defvr Glyph menubar-pointer-glyph
+This variable specifies the shape of the mouse pointer when over the
+menubar.  If unspecified in a particular domain, the
+window-system-provided default pointer is used.
+@end defvr
+
+@defvr Glyph scrollbar-pointer-glyph
+This variable specifies the shape of the mouse pointer when over a
+scrollbar.  If unspecified in a particular domain, the
+window-system-provided default pointer is used.
+@end defvr
+
+@defvr Glyph toolbar-pointer-glyph
+This variable specifies the shape of the mouse pointer when over a
+toolbar.  If unspecified in a particular domain,
+@code{nontext-pointer-glyph} is used.
+@end defvr
+
+Internally, these variables are implemented in
+@code{default-mouse-motion-handler}, and thus only take effect when the
+mouse moves.  That function calls @code{set-frame-pointer}, which sets
+the current mouse pointer for a frame.
+
+@defun set-frame-pointer frame image-instance
+This function sets the mouse pointer of @var{frame} to the given pointer
+image instance.  You should not call this function directly.
+(If you do, the pointer will change again the next time the mouse moves.)
+@end defun
+
+
+@node Native GUI Widgets
+@subsection Native GUI Widgets
+@cindex native widget
+
+A ``native widget'' is a primitive GUI object defined either by the host
+GUI platform or an external toolkit, and accessed from Lisp as a
+``glyph.''
+
+@menu
+* Introduction to Widgets::     Native widgets provide tight integration of
+                                GUI features with the platform GUI.
+* Lisp API to Native Widgets::  Native widgets are glyphs.
+* Layouts::                     Specifying composite widgets from Lisp.
+* Primitive Widgets::           Catalogue of available native widgets.
+@end menu
+
+@node Introduction to Widgets
+@subsubsection Introduction to Native Widgets and Subwindow Glyphs
+
+Traditionally Emacsen have hidden the GUI apparatus from the Lisp
+programmer, but in XEmacs 21.4 the ability to embed autonomous GUI
+objects, called @dfn{native widgets}, in text was added to Lisp.  They
+are handled as @emph{glyphs}.  Unlike traditional XEmacs
+glyphs such images and strings, native widgets are opaque to XEmacs, and
+must be able to redraw themselves because they are implemented as
+subwindows, not as graphics drawn by XEmacs into the text window.
+
+Primitive widgets are coded in C using the underlying GUI toolkit, and
+thus are beyond the scope of the @emph{XEmacs Lisp Reference Manual}.
+However, composite widgets can be created in Lisp using ``layouts,''
+which are horizontal or vertical arrays of subwidgets.  For example, the
+search dialog is formatted using layouts.
+
+@node Lisp API to Native Widgets
+@subsubsection Lisp API to Native Widgets
+
+Native widgets are manipulated as @emph{glyphs} (@pxref{Glyphs}).  Thus
+they are created using @code{make-glyph}, with a format of one of the
+widget types and a @code{:data} property specific to the widget being
+instanced.
+
+However, there is a technical difference between widgets and other kinds
+of glyphs that is theoretically important.  Because widgets
+are active (that is, they can respond to user input events themselves),
+it is possible for the user to become aware that two appearances of the
+``same'' glyph are actually separate instances.  For example, if a user
+changes an image glyph from red to blue, and the buffer containing the
+glyph appears in more than one window, the user will perceive all the
+appearances to change from red to blue simultaneously.  However, suppose
+the glyph is a button glyph (@emph{e.g.}, as used in the Customize
+buffer for the Set, Save, and Done buttons).  Then if the Customize
+buffer appears in several windows at the same time, and the user clicks
+on the button, she will only perceive the button to be depressed in the
+window where she clicked the button.
+
+It seems from this example that it is unlikely to be a problem in
+practice.  When the user is faced with an active widget, it seems likely
+that attention will focus on the widget being manipulated, and having
+other instances of the widget respond simultaneously might be more
+disconcerting than the actual case.
+
+@node Layouts
+@subsubsection Layouts
+
+An XEmacs @dfn{layout} is a one-dimensional array of glyphs.  It is a
+widget for controlling the positioning of children underneath it.
+Through the use of nested layouts, a widget hierarchy can be created
+which can have the appearance of any standard dialog box or similar
+arrangement; all of this is counted as one "glyph" and could appear in
+many of the places that expect a single glyph.
+@c #### Fix me!
+(There are also @dfn{native layouts}, but these are undocumented, as are
+their uses.)
+
+A layout descriptor is an image instantiator, @emph{i.e.}, a vector of
+the form @samp{[FORMAT KEY-1 VALUE-1 KEY-2 VALUE-2 ...]} with format
+@code{layout}, and properties
+
+@c #### need defaults for these
+@table @code
+@item :orientation
+Specifies the orientation of the contained array of glyphs.  The value
+must be one of the symbols @code{horizontal} or @code{vertical}.
+
+@item :horizontally-justify
+Specifies the horizontal justification of the items in the array.  The
+value must be one of the symbols @code{:right}, @code{:center}, or
+@code{:left}.
+
+@item :vertically-justify
+Specifies the vertical justification of the items in the array.  The
+value must be one of the symbols @code{:top}, @code{:center}, or
+@code{:bottom}.
+
+@item :justify
+Specifies justification.  #### not understood.
+
+@item :border
+A glyph to place in the border.  The value must be an image
+instantiator.
+
+@item :items
+The glyphs controlled by the layout.  The value must be a list of image
+instantiators.
+@end table
+
+Here is the specification of the search dialog widget created by
+@code{make-search-dialog} in the @file{dialog-items} library, which
+makes use of recursive layouts.
+
+@example
+(make-glyph
+ `[layout 
+   :orientation horizontal 
+   :vertically-justify top 
+   :horizontally-justify center 
+   :border [string :data "Search"]
+   :items 
+   ([layout :orientation vertical 
+            :justify top       ; implies left also
+            :items 
+            ([string :data "Search for:"]
+       [button :descriptor "Match Case"
+               :style toggle
+               :selected (not case-fold-search)
+               :callback (setq case-fold-search
+                               (not case-fold-search))]
+       [button :descriptor "Regular Expression"
+               :style toggle
+               :selected search-dialog-regexp
+               :callback (setq search-dialog-regexp
+                               (not search-dialog-regexp))]
+       [button :descriptor "Forwards"
+               :style radio
+               :selected search-dialog-direction
+               :callback (setq search-dialog-direction t)]
+       [button :descriptor "Backwards"
+               :style radio
+               :selected (not search-dialog-direction)
+               :callback (setq search-dialog-direction nil)]
+       )]
+    [layout :orientation vertical
+            :vertically-justify top
+            :horizontally-justify right
+            :items
+            ([edit-field :width 15 :descriptor "" :active t
+                   :initial-focus t]
+       [button :width 10 :descriptor "Find Next"
+               :callback-ex
+               (lambda (image-instance event)
+                 (search-dialog-callback ,parent
+                                         image-instance
+                                         event))]
+       [button :width 10 :descriptor "Cancel"
+               :callback-ex
+               (lambda (image-instance event)
+                 (isearch-dehighlight)
+                 (delete-frame 
+                  (event-channel event)))])])])
+@end example
+
+@node Primitive Widgets
+@subsubsection Primitive Widgets
+
+@c #### the following table should be replaced with a menu of nodes
+@table @code
+@item button
+A button widget; either a push button, radio button or toggle
+button.
+
+@item combo-box
+A drop list of selectable items in a widget, for editing text.
+
+@item edit-field
+A text editing widget.
+
+@item label
+A static, text-only, widget; for displaying text.
+
+@item progress-gauge
+A sliding widget, for showing progress.
+
+@item tab-control
+A tab widget; a series of user selectable tabs.
 
 
-@node Image Instances
-@subsection Image Instances
-@cindex image instances
+@item tree-view
+A folding widget.
 
 
-  Image-instance objects encapsulate the way a particular image (pixmap,
-etc.) is displayed on a particular device.
+@item scrollbar
+A scrollbar widget.  (#### Probably not the same as the scrollbar
+controlling an Emacs window.)
+@end table
 
 
-  In most circumstances, you do not need to directly create image
-instances; use a glyph instead.  However, it may occasionally be useful
-to explicitly create image instances, if you want more control over the
-instantiation process.
 
 
-@defun image-instance-p object
-This function returns non-@code{nil} if @var{object} is an image instance.
+@node Subwindows
+@subsection Subwindows
+
+Subwindows are not currently implemented.
+@c #### Check status of subwindows ... I thought Andy implemented them.
+
+@defun subwindowp object
+This function returns non-@code{nil} if @var{object} is a subwindow.
 @end defun
 
 @end defun
 
+
+@node Manipulating Glyphs
+@section Manipulating Glyphs
+
+  Each glyphs has properties that may be accessed.  Most of these can
+also be set after the glyph is initialized, with the exception of the
+glyph's type.  This is not a real restriction, as it is almost never
+useful to create glyphs of types other than @code{buffer}.
+
 @menu
 @menu
-* Image Instance Types::         Each image instances has a particular type.
-* Image Instance Functions::    Functions for working with image instances.
+* Glyph Properties::   Accessing and modifying a glyph's properties.
+* Glyph Convenience Functions::  Accessing particular properties of a glyph.
+* Glyph Dimensions::   Determining the height, width, etc. of a glyph.
+* Glyph Types::                Each glyph has a particular type.
 @end menu
 
 @end menu
 
-@node Image Instance Types
-@subsubsection Image Instance Types
-@cindex image instance types
 
 
-  Image instances come in a number of different types.  The type
-of an image instance specifies the nature of the image: Whether
-it is a text string, a mono pixmap, a color pixmap, etc.
+@node Glyph Properties
+@subsection Glyph Properties
 
 
-  The valid image instance types are
+Each glyph has a list of properties, which control all of the aspects of
+the glyph's appearance.  The following symbols have predefined meanings:
 
 @table @code
 
 @table @code
-@item nothing
-Nothing is displayed.
+@item image
+The image used to display the glyph.
 
 
-@item text
-Displayed as text.  The foreground and background colors and the
-font of the text are specified independent of the pixmap.  Typically
-these attributes will come from the face of the surrounding text,
-unless a face is specified for the glyph in which the image appears.
+@item baseline
+Percent above baseline that glyph is to be displayed.  Only for glyphs
+displayed inside of a buffer.
 
 
-@item mono-pixmap
-Displayed as a mono pixmap (a pixmap with only two colors where the
-foreground and background can be specified independent of the pixmap;
-typically the pixmap assumes the foreground and background colors of
-the text around it, unless a face is specified for the glyph in which
-the image appears).
-@item color-pixmap
+@item contrib-p
+Whether the glyph contributes to the height of the line it's on.
+Only for glyphs displayed inside of a buffer.
 
 
-Displayed as a color pixmap.
+@item face
+Face of this glyph (@emph{not} a specifier).
+@end table
 
 
-@item pointer
-Used as the mouse pointer for a window.
+@defun set-glyph-property glyph property value &optional locale tag-set how-to-add
+This function changes a property of a @var{glyph}.
 
 
-@item subwindow
-A child window that is treated as an image.  This allows (e.g.)
-another program to be responsible for drawing into the window.
-Not currently implemented.
-@end table
+For built-in properties, the actual value of the property is a specifier
+and you cannot change this; but you can change the specifications within
+the specifier, and that is what this function will do.  The glyph face
+is an exception; it is a face name (a symbol) or a face object, not a
+specifier.  (The face properties themselves are typically specifiers.)
+For user-defined properties, you can use this function to either change
+the actual value of the property or, if this value is a specifier,
+change the specifications within it.
 
 
-@defun valid-image-instance-type-p type
-This function returns non-@code{nil} if @var{type} is a valid image
-instance type.
-@end defun
+If @var{property} is a built-in property, the specifications to be added
+to this property can be supplied in many different ways:
 
 
-@defun image-instance-type-list
-This function returns a list of the valid image instance types.
-@end defun
+@itemize @bullet
+@item
+If @var{value} is a simple instantiator (e.g. a string naming a pixmap
+filename) or a list of instantiators, then the instantiator(s) will be
+added as a specification of the property for the given @var{locale}
+(which defaults to @code{global} if omitted).
 
 
-@defun image-instance-type image-instance
-This function returns the type of the given image instance.  The return
-value will be one of @code{nothing}, @code{text}, @code{mono-pixmap},
-@code{color-pixmap}, @code{pointer}, or @code{subwindow}.
-@end defun
+@item
+If @var{value} is a list of specifications (each of which is a cons of a
+locale and a list of instantiators), then @var{locale} must be
+@code{nil} (it does not make sense to explicitly specify a locale in
+this case), and specifications will be added as given.
 
 
-@defun text-image-instance-p object
-This function returns non-@code{nil} if @var{object} is an image
-instance of type @code{text}.
-@end defun
+@item
+If @var{value} is a specifier (as would be returned by
+@code{glyph-property} if no @var{locale} argument is given), then some
+or all of the specifications in the specifier will be added to the
+property.  In this case, the function is really equivalent to
+@code{copy-specifier} and @var{locale} has the same semantics (if it is
+a particular locale, the specification for the locale will be copied; if
+a locale type, specifications for all locales of that type will be
+copied; if @code{nil} or @code{all}, then all specifications will be
+copied).
+@end itemize
 
 
-@defun mono-pixmap-image-instance-p object
-This function returns non-@code{nil} if @var{object} is an image
-instance of type @code{mono-pixmap}.
-@end defun
+@var{how-to-add} should be either @code{nil} or one of the symbols
+@code{prepend}, @code{append}, @code{remove-tag-set-prepend},
+@code{remove-tag-set-append}, @code{remove-locale},
+@code{remove-locale-type}, or @code{remove-all}.  See
+@code{copy-specifier} and @code{add-spec-to-specifier} for a description
+of what each of these means.  Most of the time, you do not need to worry
+about this argument; the default behavior usually is fine.
 
 
-@defun color-pixmap-image-instance-p object
-This function returns non-@code{nil} if @var{object} is an image
-instance of type @code{color-pixmap}.
-@end defun
+In general, it is OK to pass an instance object (e.g. as returned by
+@code{glyph-property-instance}) as an instantiator in place of an actual
+instantiator.  In such a case, the instantiator used to create that
+instance object will be used (for example, if you set a font-instance
+object as the value of the @code{font} property, then the font name used
+to create that object will be used instead).  In some cases, however,
+doing this conversion does not make sense, and this will be noted in the
+documentation for particular types of instance objects.
 
 
-@defun pointer-image-instance-p object
-This function returns non-@code{nil} if @var{object} is an image
-instance of type @code{pointer}.
+If @var{property} is not a built-in property, then this function will
+simply set its value if @var{locale} is @code{nil}.  However, if
+@var{locale} is given, then this function will attempt to add
+@var{value} as the instantiator for the given @var{locale}, using
+@code{add-spec-to-specifier}.  If the value of the property is not a
+specifier, it will automatically be converted into a @code{generic}
+specifier.
 @end defun
 
 @end defun
 
-@defun subwindow-image-instance-p object
-This function returns non-@code{nil} if @var{object} is an image
-instance of type @code{subwindow}.
-@end defun
+@defun glyph-property glyph property &optional locale
+This function returns @var{glyph}'s value of the given @var{property}.
 
 
-@defun nothing-image-instance-p object
-This function returns non-@code{nil} if @var{object} is an image
-instance of type @code{nothing}.
-@end defun
+If @var{locale} is omitted, the @var{glyph}'s actual value for
+@var{property} will be returned.  For built-in properties, this will be
+a specifier object of a type appropriate to the property (e.g. a font or
+color specifier).  For other properties, this could be anything.
 
 
-@defun widget-image-instance-p object
-Return @code{t} if @var{object} is an image instance of type @code{widget}.
+If @var{locale} is supplied, then instead of returning the actual value,
+the specification(s) for the given locale or locale type will be
+returned.  This will only work if the actual value of @var{property} is
+a specifier (this will always be the case for built-in properties, but
+may or may not apply to user-defined properties).  If the actual value
+of @var{property} is not a specifier, this value will simply be returned
+regardless of @var{locale}.
+
+The return value will be a list of instantiators (e.g. vectors
+specifying pixmap data), or a list of specifications, each of which is a
+cons of a locale and a list of instantiators.  Specifically, if
+@var{locale} is a particular locale (a buffer, window, frame, device, or
+@code{global}), a list of instantiators for that locale will be
+returned.  Otherwise, if @var{locale} is a locale type (one of the
+symbols @code{buffer}, @code{window}, @code{frame}, or @code{device}),
+the specifications for all locales of that type will be returned.
+Finally, if @var{locale} is @code{all}, the specifications for all
+locales of all types will be returned.
+
+The specifications in a specifier determine what the value of
+@var{property} will be in a particular @dfn{domain} or set of
+circumstances, which is typically a particular Emacs window along with
+the buffer it contains and the frame and device it lies within.  The
+value is derived from the instantiator associated with the most specific
+locale (in the order buffer, window, frame, device, and @code{global})
+that matches the domain in question.  In other words, given a domain
+(i.e. an Emacs window, usually), the specifier for @var{property} will
+first be searched for a specification whose locale is the buffer
+contained within that window; then for a specification whose locale is
+the window itself; then for a specification whose locale is the frame
+that the window is contained within; etc.  The first instantiator that
+is valid for the domain (usually this means that the instantiator is
+recognized by the device [i.e. the X server or TTY device] that the
+domain is on).  The function @code{glyph-property-instance} actually does
+all this, and is used to determine how to display the glyph.
 @end defun
 
 @end defun
 
-@node Image Instance Functions
-@subsubsection Image Instance Functions
+@defun glyph-property-instance glyph property &optional domain default no-fallback
+This function returns the instance of @var{glyph}'s @var{property} in the
+specified @var{domain}.
 
 
-@defun make-image-instance data &optional domain dest-types noerror
-This function creates a new image-instance object.
+Under most circumstances, @var{domain} will be a particular window, and
+the returned instance describes how the specified property actually is
+displayed for that window and the particular buffer in it.  Note that
+this may not be the same as how the property appears when the buffer is
+displayed in a different window or frame, or how the property appears in
+the same window if you switch to another buffer in that window; and in
+those cases, the returned instance would be different.
 
 
-@var{data} is an image instantiator, which describes the image
-(@pxref{Image Specifiers}).
+The returned instance is an image-instance object, and you can query it
+using the appropriate image instance functions.  For example, you could use
+@code{image-instance-depth} to find out the depth (number of color
+planes) of a pixmap displayed in a particular window.  The results might
+be different from the results you would get for another window (perhaps
+the user specified a different image for the frame that window is on; or
+perhaps the same image was specified but the window is on a different X
+server, and that X server has different color capabilities from this
+one).
 
 
-@var{dest-types} should be a list of allowed image instance types that
-can be generated.  The @var{dest-types} list is unordered.  If multiple
-destination types are possible for a given instantiator, the ``most
-natural'' type for the instantiator's format is chosen. (For XBM, the
-most natural types are @code{mono-pixmap}, followed by
-@code{color-pixmap}, followed by @code{pointer}.  For the other normal
-image formats, the most natural types are @code{color-pixmap}, followed
-by @code{mono-pixmap}, followed by @code{pointer}.  For the string and
-formatted-string formats, the most natural types are @code{text},
-followed by @code{mono-pixmap} (not currently implemented), followed by
-@code{color-pixmap} (not currently implemented).  For MS Windows
-resources, the most natural type for pointer resources is
-@code{pointer}, and for the others it's @code{color-pixmap}.  The other
-formats can only be instantiated as one type. (If you want to control
-more specifically the order of the types into which an image is
-instantiated, just call @code{make-image-instance} repeatedly until it
-succeeds, passing less and less preferred destination types each time.
+@var{domain} defaults to the selected window if omitted.
 
 
-If @var{dest-types} is omitted, all possible types are allowed.
+@var{domain} can be a frame or device, instead of a window.  The value
+returned for such a domain is used in special circumstances when a
+more specific domain does not apply; for example, a frame value might be
+used for coloring a toolbar, which is conceptually attached to a frame
+rather than a particular window.  The value is also useful in
+determining what the value would be for a particular window within the
+frame or device, if it is not overridden by a more specific
+specification.
 
 
-@var{domain} specifies the domain to which the image instance will be
-attached.  This domain is termed the @dfn{governing domain}.  The type
-of the governing domain depends on the image instantiator
-format. (Although, more correctly, it should probably depend on the
-image instance type.) For example, pixmap image instances are specific
-to a device, but widget image instances are specific to a particular
-XEmacs window because in order to display such a widget when two windows
-onto the same buffer want to display the widget, two separate underlying
-widgets must be created. (That's because a widget is actually a child
-window-system window, and all window-system windows have a unique
-existence on the screen.) This means that the governing domain for a
-pixmap image instance will be some device (most likely, the only
-existing device), whereas the governing domain for a widget image
-instance will be some XEmacs window.
+If @var{property} does not name a built-in property, its value will
+simply be returned unless it is a specifier object, in which case it
+will be instanced using @code{specifier-instance}.
 
 
-If you specify an overly general @var{domain} (e.g. a frame when a
-window was wanted), an error is signaled.  If you specify an overly
-specific @var{domain} (e.g. a window when a device was wanted), the
-corresponding general domain is fetched and used instead.  For
-@code{make-image-instance}, it makes no difference whether you specify
-an overly specific domain or the properly general domain derived from
-it.  However, it does matter when creating an image instance by
-instantiating a specifier or glyph (e.g. with
-@code{glyph-image-instance}), because the more specific domain causes
-spec lookup to start there and proceed to more general domains. (It
-would also matter when creating an image instance with an instantiator
-format of @code{inherit}, but we currently disallow this. #### We should
-fix this.)
-n
-If omitted, @var{domain} defaults to the selected window.
+Optional arguments @var{default} and @var{no-fallback} are the same as
+in @code{specifier-instance}.  @xref{Specifiers}.
+@end defun
 
 
-@var{noerror} controls what happens when the image cannot be generated.
-If @code{nil}, an error message is generated.  If @code{t}, no messages
-are generated and this function returns @code{nil}.  If anything else, a
-warning message is generated and this function returns @code{nil}.
+@defun remove-glyph-property glyph property &optional locale tag-set exact-p
+This function removes a property from a glyph.  For built-in properties,
+this is analogous to @code{remove-specifier}.  @xref{Specifiers,
+remove-specifier-p}, for the meaning of the @var{locale}, @var{tag-set},
+and @var{exact-p} arguments.
 @end defun
 
 @end defun
 
-@defun colorize-image-instance image-instance foreground background
-This function makes the image instance be displayed in the given
-colors.  Image instances come in two varieties: bitmaps, which are 1
-bit deep which are rendered in the prevailing foreground and background
-colors; and pixmaps, which are of arbitrary depth (including 1) and
-which have the colors explicitly specified.  This function converts a
-bitmap to a pixmap.  If the image instance was a pixmap already,
-nothing is done (and @code{nil} is returned).  Otherwise @code{t} is
-returned.
+
+@node Glyph Convenience Functions
+@subsection Glyph Convenience Functions
+
+  The following functions are provided for working with specific
+properties of a glyph.  Note that these are exactly like calling
+the general functions described above and passing in the
+appropriate value for @var{property}.
+
+  Remember that if you want to determine the ``value'' of a
+specific glyph property, you probably want to use the @code{*-instance}
+functions.  For example, to determine whether a glyph contributes
+to its line height, use @code{glyph-contrib-p-instance}, not
+@code{glyph-contrib-p}. (The latter will return a boolean specifier
+or a list of specifications, and you probably aren't concerned with
+these.)
+
+@defun glyph-image glyph &optional locale
+This function is equivalent to calling @code{glyph-property} with
+a property of @code{image}.  The return value will be an image
+specifier if @var{locale} is @code{nil} or omitted; otherwise,
+it will be a specification or list of specifications.
 @end defun
 
 @end defun
 
-@defun image-instance-name image-instance
-This function returns the name of the given image instance.
+@defun set-glyph-image glyph spec &optional locale tag-set how-to-add
+This function is equivalent to calling @code{set-glyph-property} with
+a property of @code{image}.
 @end defun
 
 @end defun
 
-@defun image-instance-domain image-instance
+@defun glyph-image-instance glyph &optional domain default no-fallback
+This function returns the instance of @var{glyph}'s image in the given
+@var{domain}, and is equivalent to calling
+@code{glyph-property-instance} with a property of @code{image}.  The
+return value will be an image instance.
 
 
-Return the governing domain of the given @var{image-instance}.  The
-governing domain of an image instance is the domain that the image
-instance is specific to.  It is @emph{NOT} necessarily the domain that
-was given to the call to @code{specifier-instance} that resulted in the
-creation of this image instance.  See @code{make-image-instance} for
-more information on governing domains.
+Normally @var{domain} will be a window or @code{nil} (meaning the
+selected window), and an instance object describing how the image
+appears in that particular window and buffer will be returned.
 @end defun
 
 @end defun
 
+@defun glyph-contrib-p glyph &optional locale
+This function is equivalent to calling @code{glyph-property} with
+a property of @code{contrib-p}.  The return value will be a boolean
+specifier if @var{locale} is @code{nil} or omitted; otherwise,
+it will be a specification or list of specifications.
+@end defun
 
 
-@defun image-instance-string image-instance
-This function returns the string of the given image instance.  This will
-only be non-@code{nil} for text image instances.
+@defun set-glyph-contrib-p glyph spec &optional locale tag-set how-to-add
+This function is equivalent to calling @code{set-glyph-property} with
+a property of @code{contrib-p}.
 @end defun
 
 @end defun
 
-@defun image-instance-file-name image-instance
-This function returns the file name from which @var{image-instance} was
-read, if known.
+@defun glyph-contrib-p-instance glyph &optional domain default no-fallback
+This function returns whether the glyph contributes to its line height
+in the given @var{domain}, and is equivalent to calling
+@code{glyph-property-instance} with a property of @code{contrib-p}.  The
+return value will be either @code{nil} or @code{t}. (Normally @var{domain}
+will be a window or @code{nil}, meaning the selected window.)
 @end defun
 
 @end defun
 
-@defun image-instance-mask-file-name image-instance
-This function returns the file name from which @var{image-instance}'s
-mask was read, if known.
+@defun glyph-baseline glyph &optional locale
+This function is equivalent to calling @code{glyph-property} with a
+property of @code{baseline}.  The return value will be a specifier if
+@var{locale} is @code{nil} or omitted; otherwise, it will be a
+specification or list of specifications.
 @end defun
 
 @end defun
 
-@defun image-instance-depth image-instance
-This function returns the depth of the image instance.  This is 0 for a
-mono pixmap, or a positive integer for a color pixmap.
+@defun set-glyph-baseline glyph spec &optional locale tag-set how-to-add
+This function is equivalent to calling @code{set-glyph-property} with
+a property of @code{baseline}.
 @end defun
 
 @end defun
 
-@defun image-instance-height image-instance
-This function returns the height of the image instance, in pixels.
+@defun glyph-baseline-instance glyph &optional domain default no-fallback
+This function returns the instance of @var{glyph}'s baseline value in
+the given @var{domain}, and is equivalent to calling
+@code{glyph-property-instance} with a property of @code{baseline}.  The
+return value will be an integer or @code{nil}.
+
+Normally @var{domain} will be a window or @code{nil} (meaning the
+selected window), and an instance object describing the baseline value
+appears in that particular window and buffer will be returned.
 @end defun
 
 @end defun
 
-@defun image-instance-width image-instance
-This function returns the width of the image instance, in pixels.
+@defun glyph-face glyph
+This function returns the face of @var{glyph}. (Remember, this is
+not a specifier, but a simple property.)
 @end defun
 
 @end defun
 
-@defun image-instance-hotspot-x image-instance
-This function returns the X coordinate of the image instance's hotspot,
-if known.  This is a point relative to the origin of the pixmap.  When
-an image is used as a mouse pointer, the hotspot is the point on the
-image that sits over the location that the pointer points to.  This is,
-for example, the tip of the arrow or the center of the crosshairs.
+@defun set-glyph-face glyph face
+This function changes the face of @var{glyph} to @var{face}.
+@end defun
+
+
+@node Glyph Dimensions
+@subsection Glyph Dimensions
 
 
-This will always be @code{nil} for a non-pointer image instance.
+@defun glyph-width glyph &optional window
+This function returns the width of @var{glyph} on @var{window}.  This
+may not be exact as it does not take into account all of the context
+that redisplay will.
 @end defun
 
 @end defun
 
-@defun image-instance-hotspot-y image-instance
-This function returns the Y coordinate of the image instance's hotspot,
-if known.
+@defun glyph-ascent glyph &optional window
+This function returns the ascent value of @var{glyph} on @var{window}.
+This may not be exact as it does not take into account all of the
+context that redisplay will.
 @end defun
 
 @end defun
 
-@defun image-instance-foreground image-instance
-This function returns the foreground color of @var{image-instance}, if
-applicable.  This will be a color instance or @code{nil}. (It will only
-be non-@code{nil} for colorized mono pixmaps and for pointers.)
+@defun glyph-descent glyph &optional window
+This function returns the descent value of @var{glyph} on @var{window}.
+This may not be exact as it does not take into account all of the
+context that redisplay will.
 @end defun
 
 @end defun
 
-@defun image-instance-background image-instance
-This function returns the background color of @var{image-instance}, if
-applicable.  This will be a color instance or @code{nil}. (It will only
-be non-@code{nil} for colorized mono pixmaps and for pointers.)
+@defun glyph-height glyph &optional window
+This function returns the height of @var{glyph} on @var{window}.  (This
+is equivalent to the sum of the ascent and descent values.)  This may
+not be exact as it does not take into account all of the context that
+redisplay will.
 @end defun
 
 
 @node Glyph Types
 @end defun
 
 
 @node Glyph Types
-@section Glyph Types
+@subsection Glyph Types
 
   Each glyph has a particular type, which controls how the glyph's image
 is generated.  Each glyph type has a corresponding list of allowable
 
   Each glyph has a particular type, which controls how the glyph's image
 is generated.  Each glyph type has a corresponding list of allowable
@@ -1221,6 +1978,7 @@ for the glyph's type.
 extent, in the modeline, and in the toolbar.  Their image can be
 instantiated as @code{nothing}, @code{mono-pixmap}, @code{color-pixmap},
 @code{text}, and @code{subwindow}.
 extent, in the modeline, and in the toolbar.  Their image can be
 instantiated as @code{nothing}, @code{mono-pixmap}, @code{color-pixmap},
 @code{text}, and @code{subwindow}.
+@c #### Check status of subwindows ... I thought Andy implemented them.
 
 @item
 @code{pointer} glyphs can be used to specify the mouse pointer.  Their
 
 @item
 @code{pointer} glyphs can be used to specify the mouse pointer.  Their
@@ -1261,126 +2019,6 @@ This function returns non-@code{nil} if @var{object} is a glyph of type
 @code{pointer}.
 @end defun
 
 @code{pointer}.
 @end defun
 
-@node Mouse Pointer
-@section Mouse Pointer
-@cindex mouse cursor
-@cindex cursor (mouse)
-@cindex pointer (mouse)
-@cindex mouse pointer
-
-The shape of the mouse pointer when over a particular section of a frame
-is controlled using various glyph variables.  Since the image of a glyph
-is a specifier, it can be controlled on a per-buffer, per-frame, per-window,
-or per-device basis.
-
-You should use @code{set-glyph-image} to set the following variables,
-@emph{not} @code{setq}.
-
-@defvr Glyph text-pointer-glyph
-This variable specifies the shape of the mouse pointer when over text.
-@end defvr
-
-@defvr Glyph nontext-pointer-glyph
-This variable specifies the shape of the mouse pointer when over a
-buffer, but not over text.  If unspecified in a particular domain,
-@code{text-pointer-glyph} is used.
-@end defvr
-
-@defvr Glyph modeline-pointer-glyph
-This variable specifies the shape of the mouse pointer when over the modeline.
-If unspecified in a particular domain, @code{nontext-pointer-glyph} is used.
-@end defvr
-
-@defvr Glyph selection-pointer-glyph
-This variable specifies the shape of the mouse pointer when over a
-selectable text region.  If unspecified in a particular domain,
-@code{text-pointer-glyph} is used.
-@end defvr
-
-@defvr Glyph gc-pointer-glyph
-This variable specifies the shape of the mouse pointer when a garbage
-collection is in progress.  If the selected window is on a window system
-and this glyph specifies a value (i.e. a pointer image instance) in the
-domain of the selected window, the pointer will be changed as specified
-during garbage collection.  Otherwise, a message will be printed in the
-echo area, as controlled by @code{gc-message}.
-@end defvr
-
-@defvr Glyph busy-pointer-glyph
-This variable specifies the shape of the mouse pointer when XEmacs is busy.
-If unspecified in a particular domain, the pointer is not changed
-when XEmacs is busy.
-@end defvr
-
-@defvr Glyph menubar-pointer-glyph
-This variable specifies the shape of the mouse pointer when over the
-menubar.  If unspecified in a particular domain, the
-window-system-provided default pointer is used.
-@end defvr
-
-@defvr Glyph scrollbar-pointer-glyph
-This variable specifies the shape of the mouse pointer when over a
-scrollbar.  If unspecified in a particular domain, the
-window-system-provided default pointer is used.
-@end defvr
-
-@defvr Glyph toolbar-pointer-glyph
-This variable specifies the shape of the mouse pointer when over a
-toolbar.  If unspecified in a particular domain,
-@code{nontext-pointer-glyph} is used.
-@end defvr
-
-Internally, these variables are implemented in
-@code{default-mouse-motion-handler}, and thus only take effect when the
-mouse moves.  That function calls @code{set-frame-pointer}, which sets
-the current mouse pointer for a frame.
-
-@defun set-frame-pointer frame image-instance
-This function sets the mouse pointer of @var{frame} to the given pointer
-image instance.  You should not call this function directly.
-(If you do, the pointer will change again the next time the mouse moves.)
-@end defun
-
-@node Redisplay Glyphs
-@section Redisplay Glyphs
-
-@defvr Glyph truncation-glyph
-This variable specifies what is displayed at the end of truncated lines.
-@end defvr
-
-@defvr Glyph continuation-glyph
-This variable specifies what is displayed at the end of wrapped lines.
-@end defvr
-
-@defvr Glyph octal-escape-glyph
-This variable specifies what to prefix character codes displayed in octal
-with.
-@end defvr
-
-@defvr Glyph hscroll-glyph
-This variable specifies what to display at the beginning of horizontally
-scrolled lines.
-@end defvr
-
-@defvr Glyph invisible-text-glyph
-This variable specifies what to use to indicate the presence of
-invisible text.  This is the glyph that is displayed when an ellipsis is
-called for, according to @code{selective-display-ellipses} or
-@code{buffer-invisibility-spec}).  Normally this is three dots (``...'').
-@end defvr
-
-@defvr Glyph control-arrow-glyph
-This variable specifies what to use as an arrow for control characters.
-@end defvr
-
-@node Subwindows
-@section Subwindows
-
-Subwindows are not currently implemented.
-
-@defun subwindowp object
-This function returns non-@code{nil} if @var{object} is a subwindow.
-@end defun
 
 @node Glyph Examples
 @section Glyph Examples
 
 @node Glyph Examples
 @section Glyph Examples
@@ -1454,7 +2092,7 @@ Once you have a glyph, you can then insert it into a buffer.  Example:
 ;; current buffer.  Any existing glyph at this location is replaced.
 (defun insert-glyph (gl)
   "Insert a glyph at the left edge of point."
 ;; current buffer.  Any existing glyph at this location is replaced.
 (defun insert-glyph (gl)
   "Insert a glyph at the left edge of point."
-  (let ( (prop 'myimage)        ;; myimage is an arbitrary name, chosen 
+  (let ( (prop 'myimage)        ;; myimage is an arbitrary name, chosen
                                 ;; to (hopefully) not conflict with any
                                 ;; other properties.  Change it if
                                 ;; necessary.
                                 ;; to (hopefully) not conflict with any
                                 ;; other properties.  Change it if
                                 ;; necessary.
index ed05c96..2ff7479 100644 (file)
@@ -994,39 +994,57 @@ Colors
 
 Glyphs
 
 
 Glyphs
 
-* Glyph Functions::    Functions for working with glyphs.
-* Images::             Graphical images displayed in a frame.
-* Glyph Types::         Each glyph has a particular type.
-* Mouse Pointer::      Controlling the mouse pointer.
-* Redisplay Glyphs::    Glyphs controlling various redisplay functions.
-* Subwindows::          Inserting an externally-controlled subwindow
-                          into a buffer.
-* Glyph Examples::      Examples of how to work with glyphs.
+* Glyph Intro::                Glyphs are abstract image specifications.
+* Images::             Specifying the appearance of glyphs.
+* Using Glyphs::       Creating and displaying glyphs.
+* Manipulating Glyphs::        Getting and setting glyph properties.
+* Glyph Examples::     Examples of how to work with glyphs.
 
 
-Glyph Functions
+Images
 
 
-* Creating Glyphs::    Creating new glyphs.
-* Glyph Properties::   Accessing and modifying a glyph's properties.
-* Glyph Convenience Functions::
-                       Convenience functions for accessing particular
-                         properties of a glyph.
-* Glyph Dimensions::    Determining the height, width, etc. of a glyph.
+* Image Specifiers::                   Specifying an image's appearance.
+* Image Instantiator Conversion::      Lazy realization of graphics.
+* Image Instantiator Formats::         A catalog of image descriptors.
+* Image Instances::                    Classes of graphical objects.
 
 
-Images
+Image Instances
+
+* Image Instance Types::         Each image instances has a particular type.
+* Image Instance Functions::    Functions for working with image instances.
+
+Using Glyphs
 
 
-* Image Specifiers::           Specifying how an image will appear.
-* Image Instantiator Conversion::
-                               Conversion is applied to image instantiators
-                                 at the time they are added to an
-                                 image specifier or at the time they
-                                 are passed to @code{make-image-instance}.
-* Image Instances::            What an image specifier gets instanced as.
 
 Image Instances
 
 * Image Instance Types::         Each image instances has a particular type.
 * Image Instance Functions::    Functions for working with image instances.
 
 
 Image Instances
 
 * Image Instance Types::         Each image instances has a particular type.
 * Image Instance Functions::    Functions for working with image instances.
 
+Using Glyphs
+
+* Creating Glyphs::    Creating new glyphs.
+* Buffer Glyphs::      Annotations are glyphs that appear in a buffer.
+* Redisplay Glyphs::   Glyphs controlling various redisplay functions.
+* Frame Glyphs::       Displaying glyphs in GUI components of the frame.
+* External Glyphs::    Icons and mouse pointers for the window system.
+* Native GUI Widgets:: Complex active elements treated as a single glyph.
+* Subwindows::         Externally-controlled subwindows in buffers.
+
+Native GUI Widgets
+
+* Introduction to Widgets::     Native widgets provide tight integration of
+                                GUI features with the platform GUI.
+* Lisp API to Native Widgets::  Native widgets are glyphs.
+* Layouts::                     Specifying composite widgets from Lisp.
+* Primitive Widgets::           Catalogue of available native widgets.
+
+Manipulating Glyphs
+
+* Glyph Properties::   Accessing and modifying a glyph's properties.
+* Glyph Convenience Functions::  Accessing particular properties of a glyph.
+* Glyph Dimensions::   Determining the height, width, etc. of a glyph.
+* Glyph Types::                Each glyph has a particular type.
+
 Annotations
 
 * Annotation Basics::          Introduction to annotations.
 Annotations
 
 * Annotation Basics::          Introduction to annotations.
index a3b68bf..e01a2a1 100644 (file)
@@ -1723,7 +1723,7 @@ depends on the keyword).
 * CCL Statements::      Semantics of CCL statements.
 * CCL Expressions::     Operators and expressions in CCL.
 * Calling CCL::         Running CCL programs.
 * CCL Statements::      Semantics of CCL statements.
 * CCL Expressions::     Operators and expressions in CCL.
 * Calling CCL::         Running CCL programs.
-* CCL Examples::        The encoding functions for Big5 and KOI-8.
+* CCL Example::         A trivial program to transform the Web's URL encoding.
 @end menu
 
 @node    CCL Syntax, CCL Statements, , CCL
 @end menu
 
 @node    CCL Syntax, CCL Statements, , CCL
@@ -1942,7 +1942,7 @@ complicated transformation of the Japanese standard JIS encoding to
 Shift JIS.  CCL_DECODE_SJIS is its inverse.)  It is somewhat odd to
 represent the SJIS operations in infix form.
 
 Shift JIS.  CCL_DECODE_SJIS is its inverse.)  It is somewhat odd to
 represent the SJIS operations in infix form.
 
-@node    Calling CCL, CCL Examples, CCL Expressions, CCL
+@node    Calling CCL, CCL Example, CCL Expressions, CCL
 @comment Node,        Next,          Previous,        Up
 @subsection Calling CCL
 
 @comment Node,        Next,          Previous,        Up
 @subsection Calling CCL
 
@@ -2008,11 +2008,307 @@ value and 0.
 Resets the CCL interpreter's internal elapsed time registers.
 @end defun
 
 Resets the CCL interpreter's internal elapsed time registers.
 @end defun
 
-@node    CCL Examples, ,  Calling CCL, CCL
+@node    CCL Example, ,  Calling CCL, CCL
 @comment Node,         Next, Previous,    Up
 @comment Node,         Next, Previous,    Up
-@subsection CCL Examples
+@subsection CCL Example
+
+  In this section, we describe the implementation of a trivial coding
+system to transform from the Web's URL encoding to XEmacs' internal
+coding.  Many people will have been first exposed to URL encoding when
+they saw ``%20'' where they expected a space in a file's name on their
+local hard disk; this can happen when a browser saves a file from the
+web and doesn't encode the name, as passed from the server, properly.
+
+  URL encoding itself is underspecified with regard to encodings beyond
+ASCII.  The relevant document, RFC 1738, explicitly doesn't give any
+information on how to encode non-ASCII characters, and the ``obvious''
+way---use the %xx values for the octets of the eight bit MIME character
+set in which the page was served---breaks when a user types a character
+outside that character set.  Best practice for web development is to
+serve all pages as UTF-8 and treat incoming form data as using that
+coding system.  (Oh, and gamble that your clients won't ever want to
+type anything outside Unicode.  But that's not so much of a gamble with
+today's client operating systems.)  We don't treat non-ASCII in this
+example, as dealing with @samp{(read-multibyte-character ...)} and
+errors therewith would make it much harder to understand.
+
+  Since CCL isn't a very rich language, we move much of the logic that
+would ordinarily be computed from operations like @code{(member ..)},
+@code{(and ...)} and @code{(or ...)} into tables, from which register
+values are read and written, and on which @code{if} statements are
+predicated.  Much more of the implementation of this coding system is
+occupied with constructing these tables---in normal Emacs Lisp---than it
+is with actual CCL code.
+
+  All the @code{defvar} statements we deal with in the next few sections
+are surrounded by a @code{(eval-and-compile ...)}, which means that the
+logic which initializes these variables executes at compile time, and if
+XEmacs loads the compiled version of the file, these variables are
+initialized as constants.
 
 
-  This section is not yet written.
+@menu
+* Four bits to ASCII::  Two tables used for getting hex digits from ASCII.
+* URI Encoding constants::  Useful predefined characters. 
+* Numeric to ASCII-hexadecimal conversion:: Trivial in Lisp, not so in CCL.
+* Characters to be preserved:: No transformation needed for these characters.
+* The program to decode to internal format:: .
+* The program to encode from internal format:: . 
+* The actual coding system:: .
+@end menu
+
+@node Four bits to ASCII, URI Encoding constants, , CCL Example
+@subsubsection Four bits to ASCII
+
+  The first @code{defvar} is for
+@code{url-coding-high-order-nybble-as-ascii}, a 256-entry table that
+maps from an octet's value to the ASCII encoding for the hex value of
+its most significant four bits.  That might sound complex, but it isn't;
+for decimal 65, hex value @samp{#x41}, the entry in the table is the
+ASCII encoding of `4'.  For decimal 122, ASCII `z', hex value
+@code{#x7a}, @code{(elt url-coding-high-order-nybble-as-ascii #x7a)}
+after this file is loaded gives the ASCII encoding of 7.
+
+@example
+(defvar url-coding-high-order-nybble-as-ascii
+  (let ((val (make-vector 256 0))
+       (i 0))
+    (while (< i (length val))
+      (aset val i (char-to-int (aref (format "%02X" i) 0)))
+      (setq i (1+ i)))
+    val)
+  "Table to find an ASCII version of an octet's most significant 4 bits.")
+@end example
+
+  The next table, @code{url-coding-low-order-nybble-as-ascii} is almost
+the same thing, but this time it has a map for the hex encoding of the
+low-order four bits.  So the sixty-fifth entry (offset @samp{#x41}) is
+the ASCII encoding of `1', the hundred-and-twenty-second (offset
+@samp{#x7a}) is the ASCII encoding of `A'.
+
+@example
+(defvar url-coding-low-order-nybble-as-ascii 
+  (let ((val (make-vector 256 0))
+       (i 0))
+    (while (< i (length val))
+      (aset val i (char-to-int (aref (format "%02X" i) 1)))
+      (setq i (1+ i)))
+    val)
+  "Table to find an ASCII version of an octet's least significant 4 bits.")
+@end example
+
+@node URI Encoding constants, Numeric to ASCII-hexadecimal conversion, Four bits to ASCII, CCL Example
+@subsubsection URI Encoding constants
+
+  Next, we have a couple of variables that make the CCL code more
+readable.  The first is the ASCII encoding of the percentage sign; this
+character is used as an escape code, to start the encoding of a
+non-printable character.  For historical reasons, URL encoding allows
+the space character to be encoded as a plus sign--it does make typing
+URLs like @samp{http://google.com/search?q=XEmacs+home+page} easier--and
+as such, we have to check when decoding for this value, and map it to
+the space character.  When doing this in CCL, we use the
+@code{url-coding-escaped-space-code} variable. 
+  
+@example
+(defvar url-coding-escape-character-code (char-to-int ?%)
+  "The code point for the percentage sign, in ASCII.")
+
+(defvar url-coding-escaped-space-code (char-to-int ?+)
+  "The URL-encoded value of the space character, that is, +.")
+@end example
+
+@node Numeric to ASCII-hexadecimal conversion, Characters to be preserved, URI Encoding constants, CCL Example
+@subsubsection Numeric to ASCII-hexadecimal conversion
+
+  Now, we have a couple of utility tables that wouldn't be necessary in
+a more expressive programming language than is CCL. The first is sixteen
+in length, and maps a hexadecimal number to the ASCII encoding of that
+number; so zero maps to ASCII `0', ten maps to ASCII `A.' The second
+does the reverse; that is, it maps an ASCII character to its value when
+interpreted as a hexadecimal digit. ('A' => 10, 'c' => 12, '2' => 2, as
+a few examples.)
+
+@example
+(defvar url-coding-hex-digit-table 
+  (let ((i 0)
+       (val (make-vector 16 0)))
+    (while (< i 16)
+      (aset val i (char-to-int (aref (format "%X" i) 0)))
+      (setq i (1+ i)))
+    val)
+  "A map from a hexadecimal digit's numeric value to its encoding in ASCII.")
+
+(defvar url-coding-latin-1-as-hex-table
+  (let ((val (make-vector 256 0))
+       (i 0))
+    (while (< i (length val))
+      ;; Get a hex val for this ASCII character.
+      (aset val i (string-to-int (format "%c" i) 16))
+      (setq i (1+ i)))
+    val)
+  "A map from Latin 1 code points to their values as hexadecimal digits.")
+@end example
+
+@node Characters to be preserved, The program to decode to internal format, Numeric to ASCII-hexadecimal conversion, CCL Example
+@subsubsection Characters to be preserved
+
+  And finally, the last of these tables.  URL encoding says that
+alphanumeric characters, the underscore, hyphen and the full stop
+@footnote{That's what the standards call it, though my North American
+readers will be more familiar with it as the period character.} retain
+their ASCII encoding, and don't undergo transformation.
+@code{url-coding-should-preserve-table} is an array in which the entries
+are one if the corresponding ASCII character should be left as-is, and
+zero if they should be transformed.  So the entries for all the control
+and most of the punctuation charcters are zero.  Lisp programmers will
+observe that this initialization is particularly inefficient, but
+they'll also be aware that this is a long way from an inner loop where
+every nanosecond counts.
+
+@example
+(defvar url-coding-should-preserve-table 
+  (let ((preserve 
+        (list ?- ?_ ?. ?a ?b ?c ?d ?e ?f ?g ?h ?i ?j ?k ?l ?m ?n ?o 
+              ?p ?q ?r ?s ?t ?u ?v ?w ?x ?y ?z ?A ?B ?C ?D ?E ?F ?G
+              ?H ?I ?J ?K ?L ?M ?N ?O ?P ?Q ?R ?S ?T ?U ?V ?W ?X ?Y
+              ?Z ?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9))
+       (i 0)
+       (res (make-vector 256 0)))
+    (while (< i 256)
+      (when (member (int-char i) preserve)
+       (aset res i 1))
+      (setq i (1+ i)))
+    res)
+  "A 256-entry array of flags, indicating whether or not to preserve an
+octet as its ASCII encoding.")
+@end example
+
+@node The program to decode to internal format, The program to encode from internal format, Characters to be preserved, CCL Example
+@subsubsection The program to decode to internal format
+
+  After the almost interminable tables, we get to the CCL.  The first
+CCL program, @code{ccl-decode-urlcoding} decodes from the URL coding to
+our internal format; since this version of CCL doesn't have support for
+error checking on the input, we don't do any verification on it.
+
+The buffer magnification--approximate ratio of the size of the output
+buffer to the size of the input buffer--is declared as one, because
+fractional values aren't allowed. (Since all those %20's will map to 
+` ', the length of the output text will be less than that of the input
+text.)  
+
+So, first we read an octet from the input buffer into register
+@samp{r0}, to set up the loop.  Next, we start the loop, with a
+@code{(loop ...)} statement, and we check if the value in @samp{r0} is a
+percentage sign.  (Note the comma before
+@code{url-coding-escape-character-code}; since CCL is a Lisp macro
+language, we can break out of the macro evaluation with a comman, and as
+such, ``@code{,url-coding-escape-character-code}'' will be evaluated as a
+literal `37.')  
+
+If it is a percentage sign, we read the next two octets into @samp{r2}
+and @samp{r3}, and convert them into their hexadecimal numeric values,
+using the @code{url-coding-latin-1-as-hex-table} array declared above.
+(But again, it'll be interpreted as a literal array.)  We then left
+shift the first by four bits, mask the two together, and write the
+result to the output buffer.
+
+If it isn't a percentage sign, and it is a `+' sign, we write a
+space--hexadecimal 20--to the output buffer. 
+
+If none of those things are true, we pass the octet to the output buffer
+untransformed.  (This could be a place to put error checking, in a more
+expressive language.)  We then read one more octet from the input
+buffer, and move to the next iteration of the loop. 
+
+@example
+(define-ccl-program ccl-decode-urlcoding
+  `(1  
+    ((read r0)
+     (loop
+       (if (r0 == ,url-coding-escape-character-code)
+          ((read r2 r3)
+           ;; Assign the value at offset r2 in the url-coding-hex-digit-table
+           ;; to r3.
+           (r2 = r2 ,url-coding-latin-1-as-hex-table)
+           (r3 = r3 ,url-coding-latin-1-as-hex-table)
+           (r2 <<= 4)
+           (r3 |= r2)
+           (write r3))
+        (if (r0 == ,url-coding-escaped-space-code)
+            (write #x20)
+          (write r0)))
+       (read r0)
+       (repeat))))
+  "CCL program to take URI-encoded ASCII text and transform it to our
+internal encoding. ")
+@end example
+
+@node The program to encode from internal format, The actual coding system, The program to decode to internal format, CCL Example
+@subsubsection The program to encode from internal format
+
+  Next, we see the CCL program to encode ASCII text as URL coded text.
+Here, the buffer magnification is specified as three, to account for ` '
+mapping to %20, etc.  As before, we read an octet from the input into
+@samp{r0}, and move into the body of the loop.  Next, we check if we
+should preserve the value of this octet, by reading from offset
+@samp{r0} in the @code{url-coding-should-preserve-table} into @samp{r1}.
+Then we have an @samp{if} statement predicated on the value in
+@samp{r1}; for the true branch, we write the input octet directly.  For
+the false branch, we write a percentage sign, the ASCII encoding of the
+high four bits in hex, and then the ASCII encoding of the low four bits
+in hex. 
+
+We then read an octet from the input into @samp{r0}, and repeat the loop.
+
+@example
+(define-ccl-program ccl-encode-urlcoding
+  `(3
+    ((read r0)
+     (loop
+       (r1 = r0 ,url-coding-should-preserve-table)
+       ;; If we should preserve the value, just write the octet directly.
+       (if r1
+          (write r0)
+        ;; else, write a percentage sign, and the hex value of the octet, in
+        ;; an ASCII-friendly format.
+        ((write ,url-coding-escape-character-code)
+         (write r0 ,url-coding-high-order-nybble-as-ascii)
+         (write r0 ,url-coding-low-order-nybble-as-ascii)))
+       (read r0)
+       (repeat))))
+  "CCL program to encode octets (almost) according to RFC 1738")
+@end example
+
+@node The actual coding system, , The program to encode from internal format, CCL Example
+@subsubsection The actual coding system
+
+To actually create the coding system, we call
+@samp{make-coding-system}.  The first argument is the symbol that is to
+be the name of the coding system, in our case @samp{url-coding}. The
+second specifies that the coding system is to be of type
+@samp{ccl}---there are several other coding system types available,
+including, see the documentation for @samp{make-coding-system} for the
+full list. Then there's a documentation string describing the wherefore
+and caveats of the coding system, and the final argument is a property
+list giving information about the CCL programs and the coding system's
+mnemonic. 
+
+@example
+(make-coding-system 
+ 'url-coding 'ccl 
+ "The coding used by application/x-www-form-urlencoded HTTP applications.
+This coding form doesn't specify anything about non-ASCII characters, so
+make sure you've transformed to a seven-bit coding system first."
+ '(decode ccl-decode-urlcoding
+   encode ccl-encode-urlcoding
+   mnemonic "URLenc"))
+@end example
+
+If you're lucky, the @samp{url-coding} coding system describe here
+should be available in the XEmacs package system. Otherwise, downloading
+it from @samp{http://www.parhasard.net/url-coding.el} should work for
+the foreseeable future. 
 
 @node Category Tables, , CCL, MULE
 @section Category Tables
 
 @node Category Tables, , CCL, MULE
 @section Category Tables
index fd8c292..4f82114 100644 (file)
@@ -516,6 +516,19 @@ characters that stand for them.
 @item \S@var{code}
 @cindex @samp{\S} in regexp
 matches any character whose syntax is not @var{code}.
 @item \S@var{code}
 @cindex @samp{\S} in regexp
 matches any character whose syntax is not @var{code}.
+
+@item \c@var{category}
+@cindex @samp{\c} in regexp
+matches any character in @var{category}. Only available under Mule,
+categories, and category tables, are further described in @ref{Category
+Tables}. They are a mechanism for constructing classes of characters
+that can be local to a buffer, and that do not require complicated []
+expressions every time they are referenced.
+
+@item \C@var{category}
+@cindex @samp{\C} in regexp
+matches any character outside @var{category}. @xref{Category Tables},
+again, and note that this is only available under Mule. 
 @end table
 
   The following regular expression constructs match the empty string---that is,
 @end table
 
   The following regular expression constructs match the empty string---that is,
index dcdfabf..f02e55e 100644 (file)
@@ -1,3 +1,7 @@
+2005-12-03  Vin Shelton <acs@xemacs.org>
+
+       * XEmacs 21.4.18 is released
+
 2005-02-06  Vin Shelton <acs@xemacs.org>
 
        * XEmacs 21.4.17 is released
 2005-02-06  Vin Shelton <acs@xemacs.org>
 
        * XEmacs 21.4.17 is released
index e729b8a..1c44af6 100644 (file)
@@ -1,3 +1,7 @@
+2005-12-03  Vin Shelton <acs@xemacs.org>
+
+       * XEmacs 21.4.18 is released
+
 2005-02-06  Vin Shelton <acs@xemacs.org>
 
        * XEmacs 21.4.17 is released
 2005-02-06  Vin Shelton <acs@xemacs.org>
 
        * XEmacs 21.4.17 is released
index a59b580..e69420d 100644 (file)
@@ -1,3 +1,95 @@
+2005-12-03  Vin Shelton <acs@xemacs.org>
+
+       * XEmacs 21.4.18 is released
+
+2005-11-27  Kean Johnston <kean@armory.com>
+
+       * redisplay-tty.c (set_tty_modes):
+       (reset_tty_modes): disable auto-margins if the terminal supports
+       them.
+       (init_tty_for_redisplay): fix cursor shape.
+
+2005-04-05  Aidan Kehoe  <kehoea@parhasard.net>
+
+       * mule-ccl.c (ccl_driver): Calculate the charset and position code
+       for control-1 characters properly, both when reading multibyte
+       characters and writing them. 
+
+2005-03-12  Aidan Kehoe  <kehoea@parhasard.net>
+
+       * config.h.in: Make HAVE_XTREGISTERDRAWABLE available. 
+       * select-x.c (x_reply_selection_request): Use it; fix the bug we
+       were seeing with incremental selection transfer failing. 
+
+2005-11-26  Vin Shelton  <acs@xemacs.org>
+
+       * callproc.c (Fold_call_process_internal): Create the buffer if it
+       does not already exist.  The original patch came from Ben Wing in
+       http://list-archive.xemacs.org/xemacs-patches/200205/msg00117.html
+
+2002-05-13  Adrian Aichner  <adrian@xemacs.org>
+
+       * callproc.c: Process-related docstring improvements spurred by
+       Norbert Koch.
+
+2005-11-25  Vin Shelton  <acs@xemacs.org>
+
+       * depend: Regenerated.
+
+2005-07-11  Malcolm Purvis  <malcolmp@xemacs.org>
+
+       * glyphs-gtk.c:  Rename a local static variable because gcc 4.0
+       says it clashes with a global with the same name.
+
+2005-07-11  Atanu Ghosh <atanu@icsi.berkeley.edu>
+
+       * sysdll.c (dll_open): Under MacOS X return NULL under the
+       filename is NULL.  Fixes problems finding local symbols under 10.4
+       (Tiger)
+
+2005-11-15  Dr. Volker Zell  <Dr.Volker.Zell@oracle.com>
+       
+       * config.h.in: New HAVE_U_INT*_T defines.
+       
+       * database.c: Only use u_int*_t typedefs if not already
+       defined.
+
+2005-04-07 15:08  Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+       * src/process-unix.c (unix_open_network_stream): moved
+         'portbuf' buffer out of an inner block as it is used in the
+         entire function. With gcc4, the stack may get corrupted
+         after leaving this block. This patches adjusts the size of
+         the used buffer also; static '128' bytes are far too much
+         currently and might not suffice for future architectures
+         (e.g. for 512 bit ones ;)). Instead of, use only the really
+         required space (max octets * ln(256)/ln(10) chars + space
+         for '\0' and the sign)
+
+2005-04-08  Aidan Kehoe  <kehoea@parhasard.net>
+
+       * callproc.c: Include sysdir.h, so any necessary Mule processing
+       is done on the current directory name before starting a new
+       process.
+
+2005-04-06  Stephen J. Turnbull  <stephen@xemacs.org>
+
+       * chartab.c (Fchar_table_p):
+       (Fget_range_char_table):
+       (Fput_char_table):
+       (Fmap_char_table):
+       Describe range representation and fix typo.
+
+2005-02-12  Vin Shelton  <acs@xemacs.org>
+
+       * emacs.c (shut_down_emacs): Advise users to send email to the
+       xemacs-beta list instead of crashes@xemacs.org.
+
+2005-02-03  David Evers  <extsw@appliedgenerics.com>
+
+       * process-unix.c (unix_send_process): Flush the last chunk, even
+       when the pipe is blocked.
+
 2005-02-06  Vin Shelton <acs@xemacs.org>
 
        * XEmacs 21.4.17 is released
 2005-02-06  Vin Shelton <acs@xemacs.org>
 
        * XEmacs 21.4.17 is released
index 9b39b48..04f31cb 100644 (file)
@@ -48,6 +48,7 @@ Boston, MA 02111-1307, USA.  */
 #include "systime.h"
 #include "sysproc.h"
 #include "sysfile.h" /* Always include after sysproc.h */
 #include "systime.h"
 #include "sysproc.h"
 #include "sysfile.h" /* Always include after sysproc.h */
+#include "sysdir.h"
 #include "syssignal.h" /* Always include before systty.h */
 #include "systty.h"
 
 #include "syssignal.h" /* Always include before systty.h */
 #include "systty.h"
 
@@ -169,6 +170,8 @@ Arguments are
 The program's input comes from file INFILE (nil means `/dev/null').
 Insert output in BUFFER before point; t means current buffer;
  nil for BUFFER means discard it; 0 means discard and don't wait.
 The program's input comes from file INFILE (nil means `/dev/null').
 Insert output in BUFFER before point; t means current buffer;
  nil for BUFFER means discard it; 0 means discard and don't wait.
+If BUFFER is a string, then find or create a buffer with that name,
+then insert the output in that buffer, before point.
 BUFFER can also have the form (REAL-BUFFER STDERR-FILE); in that case,
 REAL-BUFFER says what to do with standard output, as above,
 while STDERR-FILE says what to do with standard error in the child.
 BUFFER can also have the form (REAL-BUFFER STDERR-FILE); in that case,
 REAL-BUFFER says what to do with standard output, as above,
 while STDERR-FILE says what to do with standard error in the child.
@@ -288,7 +291,7 @@ If you quit, the process is killed with SIGINT, or SIGKILL if you
            || ZEROP (buffer)))
        {
          Lisp_Object spec_buffer = buffer;
            || ZEROP (buffer)))
        {
          Lisp_Object spec_buffer = buffer;
-         buffer = Fget_buffer (buffer);
+         buffer = Fget_buffer_create (buffer);
          /* Mention the buffer name for a better error message.  */
          if (NILP (buffer))
            CHECK_BUFFER (spec_buffer);
          /* Mention the buffer name for a better error message.  */
          if (NILP (buffer))
            CHECK_BUFFER (spec_buffer);
index 53fa5fc..bf58ee4 100644 (file)
@@ -457,15 +457,17 @@ once per character).
 When Mule support exists, the types of ranges that can be assigned
 values are
 
 When Mule support exists, the types of ranges that can be assigned
 values are
 
--- all characters
+-- all characters (represented by t)
 -- an entire charset
 -- an entire charset
--- a single row in a two-octet charset
+-- a single row in a two-octet charset (represented by a vector of two
+   elements: a two-octet charset and a row number; the row must be an
+   integer, not a character)
 -- a single character
 
 When Mule support is not present, the types of ranges that can be
 assigned values are
 
 -- a single character
 
 When Mule support is not present, the types of ranges that can be
 assigned values are
 
--- all characters
+-- all characters (represented by t)
 -- a single character
 
 To create a char table, use `make-char-table'.
 -- a single character
 
 To create a char table, use `make-char-table'.
@@ -853,8 +855,11 @@ Find value for CHARACTER in CHAR-TABLE.
 }
 
 DEFUN ("get-range-char-table", Fget_range_char_table, 2, 3, 0, /*
 }
 
 DEFUN ("get-range-char-table", Fget_range_char_table, 2, 3, 0, /*
-Find value for a range in CHAR-TABLE.
+Find value for RANGE in CHAR-TABLE.
 If there is more than one value, return MULTI (defaults to nil).
 If there is more than one value, return MULTI (defaults to nil).
+
+Valid values for RANGE are single characters, charsets, a row in a
+two-octet charset, and all characters.  See `put-char-table'.
 */
        (range, char_table, multi))
 {
 */
        (range, char_table, multi))
 {
@@ -1142,8 +1147,9 @@ one of the following:
 
 -- t (all characters are affected)
 -- A charset (only allowed when Mule support is present)
 
 -- t (all characters are affected)
 -- A charset (only allowed when Mule support is present)
--- A vector of two elements: a two-octet charset and a row number
-   (only allowed when Mule support is present)
+-- A vector of two elements: a two-octet charset and a row number; the row
+   must be an integer, not a character (only allowed when Mule support is
+   present)
 -- A single character
 
 VALUE must be a value appropriate for the type of CHAR-TABLE.
 -- A single character
 
 VALUE must be a value appropriate for the type of CHAR-TABLE.
@@ -1437,12 +1443,18 @@ slow_map_char_table_fun (struct chartab_range *range,
 }
 
 DEFUN ("map-char-table", Fmap_char_table, 2, 3, 0, /*
 }
 
 DEFUN ("map-char-table", Fmap_char_table, 2, 3, 0, /*
-Map FUNCTION over entries in CHAR-TABLE, calling it with two args,
-each key and value in the table.
+Map FUNCTION over CHAR-TABLE until it returns non-nil; return that value.
+FUNCTION is called with two arguments, each key and entry in the table.
 
 
-RANGE specifies a subrange to map over and is in the same format as
-the RANGE argument to `put-range-table'.  If omitted or t, it defaults to
+RANGE specifies a subrange to map over.  If omitted or t, it defaults to
 the entire table.
 the entire table.
+
+Both RANGE and the keys passed to FUNCTION are in the same format as the
+RANGE argument to `put-char-table'.  N.B. This function does NOT map over
+all characters in RANGE, but over the subranges that have been assigned to.
+Thus this function is most suitable for searching a char-table, or for
+populating one char-table based on the contents of another.  The current
+implementation does not coalesce ranges all of whose values are the same.
 */
        (function, char_table, range))
 {
 */
        (function, char_table, range))
 {
index f32e890..5b8cefa 100644 (file)
@@ -205,6 +205,7 @@ void *alloca ();
 #undef THIS_IS_X11R6
 
 #undef HAVE_XCONVERTCASE
 #undef THIS_IS_X11R6
 
 #undef HAVE_XCONVERTCASE
+#undef HAVE_XTREGISTERDRAWABLE
 
 #undef HAVE_BALLOON_HELP
 
 
 #undef HAVE_BALLOON_HELP
 
@@ -422,6 +423,15 @@ void *alloca ();
 /* Compile in support for DBM databases?  May require libgdbm or libdbm. */
 #undef HAVE_DBM
 
 /* Compile in support for DBM databases?  May require libgdbm or libdbm. */
 #undef HAVE_DBM
 
+/* Define to 1 if the system has the type `u_int8_t'. */
+#undef HAVE_U_INT8_T
+/* Define to 1 if the system has the type `u_int16_t'. */
+#undef HAVE_U_INT16_T
+/* Define to 1 if the system has the type `u_int32_t'. */
+#undef HAVE_U_INT32_T
+/* Define to 1 if the system has the type `u_int64_t'. */
+#undef HAVE_U_INT64_T
+
 /* Compile in support for Berkeley DB style databases?  May require libdb. */
 #undef HAVE_BERKELEY_DB
 /* Full #include file path for Berkeley DB's db.h */
 /* Compile in support for Berkeley DB style databases?  May require libdb. */
 #undef HAVE_BERKELEY_DB
 /* Full #include file path for Berkeley DB's db.h */
index ba05621..cf9dd84 100644 (file)
@@ -82,6 +82,8 @@ struct tty_console
                                           character info */
     unsigned int flow_control :1;      /* Nonzero means use ^S/^Q as
                                           cretinous flow control.  */
                                           character info */
     unsigned int flow_control :1;      /* Nonzero means use ^S/^Q as
                                           cretinous flow control.  */
+    unsigned int auto_margins :1;      /* Nonzero means terminal wraps when
+                                          writing to the last column */
     int standout_width;                        /* # of spaces printed when
                                           change to standout mode */
     int underline_width;               /* # of spaces printed when
     int standout_width;                        /* # of spaces printed when
                                           change to standout mode */
     int underline_width;               /* # of spaces printed when
@@ -175,6 +177,9 @@ struct tty_console
     const char *keypad_off;            /* rmkx, ke */
 
     const char *orig_pair;             /* op, op */
     const char *keypad_off;            /* rmkx, ke */
 
     const char *orig_pair;             /* op, op */
+
+    const char *disable_auto_margins;  /* rmam, RA */
+    const char *enable_auto_margins;   /* smam, SA */
   } sd;
 
   /* costs of various operations */
   } sd;
 
   /* costs of various operations */
index 2e07885..33a8615 100644 (file)
@@ -46,13 +46,21 @@ Boston, MA 02111-1307, USA.  */
 #define __BIT_TYPES_DEFINED__
 #include <inttypes.h>
 #ifndef __FreeBSD__
 #define __BIT_TYPES_DEFINED__
 #include <inttypes.h>
 #ifndef __FreeBSD__
+#if !HAVE_U_INT8_T
 typedef uint8_t  u_int8_t;
 typedef uint8_t  u_int8_t;
+#endif
+#if !HAVE_U_INT16_T
 typedef uint16_t u_int16_t;
 typedef uint16_t u_int16_t;
+#endif
+#if !HAVE_U_INT32_T
 typedef uint32_t u_int32_t;
 typedef uint32_t u_int32_t;
+#endif
 #ifdef WE_DONT_NEED_QUADS
 #ifdef WE_DONT_NEED_QUADS
+#if !HAVE_U_INT64_T
 typedef uint64_t u_int64_t;
 #endif
 #endif /* WE_DONT_NEED_QUADS */
 typedef uint64_t u_int64_t;
 #endif
 #endif /* WE_DONT_NEED_QUADS */
+#endif /* !defined(__FreeBSD__) */
 #endif /* HAVE_INTTYPES_H */
 #endif /* !(defined __GLIBC__ && __GLIBC_MINOR__ >= 1) */
 /* Berkeley DB wants __STDC__ to be defined; else if does `#define const' */
 #endif /* HAVE_INTTYPES_H */
 #endif /* !(defined __GLIBC__ && __GLIBC_MINOR__ >= 1) */
 /* Berkeley DB wants __STDC__ to be defined; else if does `#define const' */
index f6a7d10..1fb89da 100644 (file)
@@ -91,7 +91,7 @@ blocktype.o: $(LISP_H) blocktype.h
 buffer.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h commands.h conslots.h console.h device.h elhash.h extents.h faces.h file-coding.h frame.h frameslots.h glyphs.h gui.h insdel.h lstream.h mule-charset.h process.h redisplay.h scrollbar.h select.h specifier.h syntax.h sysdep.h sysfile.h toolbar.h window.h winslots.h
 bytecode.o: $(LISP_H) backtrace.h buffer.h bufslots.h bytecode.h casetab.h chartab.h mule-charset.h opaque.h syntax.h
 callint.o: $(LISP_H) buffer.h bufslots.h bytecode.h casetab.h chartab.h commands.h events.h insdel.h mule-charset.h redisplay.h scrollbar.h systime.h window.h winslots.h
 buffer.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h commands.h conslots.h console.h device.h elhash.h extents.h faces.h file-coding.h frame.h frameslots.h glyphs.h gui.h insdel.h lstream.h mule-charset.h process.h redisplay.h scrollbar.h select.h specifier.h syntax.h sysdep.h sysfile.h toolbar.h window.h winslots.h
 bytecode.o: $(LISP_H) backtrace.h buffer.h bufslots.h bytecode.h casetab.h chartab.h mule-charset.h opaque.h syntax.h
 callint.o: $(LISP_H) buffer.h bufslots.h bytecode.h casetab.h chartab.h commands.h events.h insdel.h mule-charset.h redisplay.h scrollbar.h systime.h window.h winslots.h
-callproc.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h commands.h file-coding.h insdel.h lstream.h mule-charset.h nt.h process.h redisplay.h scrollbar.h sysdep.h sysfile.h sysproc.h syssignal.h systime.h systty.h syswindows.h window.h winslots.h
+callproc.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h commands.h file-coding.h insdel.h lstream.h mule-charset.h ndir.h nt.h process.h redisplay.h scrollbar.h sysdep.h sysdir.h sysfile.h sysproc.h syssignal.h systime.h systty.h syswindows.h window.h winslots.h
 casefiddle.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h insdel.h mule-charset.h syntax.h
 casetab.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h mule-charset.h opaque.h
 chartab.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h mule-charset.h syntax.h
 casefiddle.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h insdel.h mule-charset.h syntax.h
 casetab.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h mule-charset.h opaque.h
 chartab.o: $(LISP_H) buffer.h bufslots.h casetab.h chartab.h mule-charset.h syntax.h
index 8d3485b..7ca2548 100644 (file)
@@ -3070,7 +3070,7 @@ shut_down_emacs (int sig, Lisp_Object stuff, int no_auto_save)
 #else
         "Please report this bug by invoking M-x report-emacs-bug,\n"
         "or by selecting `Send Bug Report' from the Help menu.  If necessary, send\n"
 #else
         "Please report this bug by invoking M-x report-emacs-bug,\n"
         "or by selecting `Send Bug Report' from the Help menu.  If necessary, send\n"
-        "ordinary email to `crashes@xemacs.org'.  *MAKE SURE* to include the XEmacs\n"
+        "ordinary email to `xemacs-beta@xemacs.org'.  *MAKE SURE* to include the XEmacs\n"
         "configuration from M-x describe-installation, or equivalently the file\n"
         "Installation in the top of the build tree.\n"
 #endif
         "configuration from M-x describe-installation, or equivalently the file\n"
         "Installation in the top of the build tree.\n"
 #endif
index d33e8d0..83fe167 100644 (file)
@@ -2999,7 +2999,7 @@ complex_vars_of_glyphs_gtk (void)
 
 /* shared data for the image read/parse logic */
 static short hexTable[256];            /* conversion value */
 
 /* shared data for the image read/parse logic */
 static short hexTable[256];            /* conversion value */
-static int initialized = FALSE;        /* easier to fill in at run time */
+static int hexTable_initialized = FALSE;       /* easier to fill in at run time */
 
 /*
  *     Table index for the hex values. Initialized once, first time.
 
 /*
  *     Table index for the hex values. Initialized once, first time.
@@ -3032,7 +3032,7 @@ static void initHexTable()
     hexTable['}'] = -1;        hexTable['\n'] = -1;
     hexTable['\t'] = -1;
        
     hexTable['}'] = -1;        hexTable['\n'] = -1;
     hexTable['\t'] = -1;
        
-    initialized = TRUE;
+    hexTable_initialized = TRUE;
 }
 
 /*
 }
 
 /*
@@ -3089,7 +3089,7 @@ int read_bitmap_data (fstream, width, height, datap, x_hot, y_hot)
 #define Xmalloc(size) malloc(size)
 
     /* first time initialization */
 #define Xmalloc(size) malloc(size)
 
     /* first time initialization */
-    if (initialized == FALSE) initHexTable();
+    if (hexTable_initialized == FALSE) initHexTable();
 
     /* error cleanup and return macro  */
 #define        RETURN(code) { if (data) free (data); return code; }
 
     /* error cleanup and return macro  */
 #define        RETURN(code) { if (data) free (data); return code; }
index 947d64b..1091ef3 100644 (file)
@@ -1303,6 +1303,13 @@ ccl_driver (struct ccl_program *ccl,
                    reg[RRR] = i;
                    reg[rrr] = (*src++ & 0x7F);
                  }
                    reg[RRR] = i;
                    reg[rrr] = (*src++ & 0x7F);
                  }
+               else if (LEADING_BYTE_CONTROL_1 == i)
+                 {
+                   if (src >= src_end)
+                     goto ccl_read_multibyte_character_suspend;
+                   reg[RRR] = i;
+                   reg[rrr] = (*src++ - 0xA0);
+                 }
                else if (i <= MAX_LEADING_BYTE_OFFICIAL_2)
                  {
                    if ((src + 1) >= src_end)
                else if (i <= MAX_LEADING_BYTE_OFFICIAL_2)
                  {
                    if ((src + 1) >= src_end)
@@ -1350,7 +1357,7 @@ ccl_driver (struct ccl_program *ccl,
 
            case CCL_WriteMultibyteChar2:
              i = reg[RRR]; /* charset */
 
            case CCL_WriteMultibyteChar2:
              i = reg[RRR]; /* charset */
-             if (i == LEADING_BYTE_ASCII)
+             if (i == LEADING_BYTE_ASCII || i == LEADING_BYTE_CONTROL_1)
                i = reg[rrr] & 0xFF;
              else if (XCHARSET_DIMENSION (CHARSET_BY_LEADING_BYTE (i)) == 1)
                i = (((i - FIELD2_TO_OFFICIAL_LEADING_BYTE) << 7)
                i = reg[rrr] & 0xFF;
              else if (XCHARSET_DIMENSION (CHARSET_BY_LEADING_BYTE (i)) == 1)
                i = (((i - FIELD2_TO_OFFICIAL_LEADING_BYTE) << 7)
index 424246f..05b5046 100644 (file)
@@ -1293,26 +1293,38 @@ unix_send_process (Lisp_Object proc, struct lstream* lstream)
       Bufbyte chunkbuf[512];
       Bytecount chunklen;
 
       Bufbyte chunkbuf[512];
       Bytecount chunklen;
 
-      while (1)
+      do
        {
          Lstream_data_count writeret;
 
          chunklen = Lstream_read (lstream, chunkbuf, 512);
        {
          Lstream_data_count writeret;
 
          chunklen = Lstream_read (lstream, chunkbuf, 512);
-         if (chunklen <= 0)
-           break; /* perhaps should ABORT() if < 0?
-                     This should never happen. */
          old_sigpipe =
            (SIGTYPE (*) (int)) signal (SIGPIPE, send_process_trap);
          old_sigpipe =
            (SIGTYPE (*) (int)) signal (SIGPIPE, send_process_trap);
-         /* Lstream_write() will never successfully write less than
-            the amount sent in.  In the worst case, it just buffers
-            the unwritten data. */
-         writeret = Lstream_write (XLSTREAM (DATA_OUTSTREAM(p)), chunkbuf,
-                                   chunklen);
-         signal (SIGPIPE, old_sigpipe);
-         if (writeret < 0)
-           /* This is a real error.  Blocking errors are handled
-              specially inside of the filedesc stream. */
-           report_file_error ("writing to process", list1 (proc));
+         if (chunklen > 0)
+           {
+             int save_errno;
+
+             /* Lstream_write() will never successfully write less than
+                the amount sent in.  In the worst case, it just buffers
+                the unwritten data. */
+             writeret = Lstream_write (XLSTREAM (DATA_OUTSTREAM(p)), chunkbuf,
+                                       chunklen);
+             save_errno = errno;
+             signal (SIGPIPE, old_sigpipe);
+             errno = save_errno;
+             if (writeret < 0)
+               /* This is a real error.  Blocking errors are handled
+                  specially inside of the filedesc stream. */
+               report_file_error ("writing to process", list1 (proc));
+           }
+         else
+           {
+             /* Need to make sure that everything up to and including the
+                last chunk is flushed, even when the pipe is currently
+                blocked. */
+             Lstream_flush (XLSTREAM (DATA_OUTSTREAM(p)));
+             signal (SIGPIPE, old_sigpipe);
+           }
          while (Lstream_was_blocked_p (XLSTREAM (p->pipe_outstream)))
            {
              /* Buffer is full.  Wait, accepting input;
          while (Lstream_was_blocked_p (XLSTREAM (p->pipe_outstream)))
            {
              /* Buffer is full.  Wait, accepting input;
@@ -1327,7 +1339,9 @@ unix_send_process (Lisp_Object proc, struct lstream* lstream)
              Lstream_flush (XLSTREAM (p->pipe_outstream));
              signal (SIGPIPE, old_sigpipe);
            }
              Lstream_flush (XLSTREAM (p->pipe_outstream));
              signal (SIGPIPE, old_sigpipe);
            }
+         /* Perhaps should abort() if < 0?  This should never happen. */
        }
        }
+      while (chunklen > 0);
     }
   else
     { /* We got here from a longjmp() from the SIGPIPE handler */
     }
   else
     { /* We got here from a longjmp() from the SIGPIPE handler */
@@ -1670,13 +1684,13 @@ unix_open_network_stream (Lisp_Object name, Lisp_Object host, Lisp_Object servic
     volatile int xerrno = 0;
     volatile int failed_connect = 0;
     char *ext_host;
     volatile int xerrno = 0;
     volatile int failed_connect = 0;
     char *ext_host;
+    char portbuf[sizeof(long)*3 + 2];
     /*
      * Caution: service can either be a string or int.
      * Convert to a C string for later use by getaddrinfo.
      */
     if (INTP (service))
       {
     /*
      * Caution: service can either be a string or int.
      * Convert to a C string for later use by getaddrinfo.
      */
     if (INTP (service))
       {
-       char portbuf[128];
        snprintf (portbuf, sizeof (portbuf), "%ld", (long) XINT (service));
        portstring = portbuf;
        port = htons ((unsigned short) XINT (service));
        snprintf (portbuf, sizeof (portbuf), "%ld", (long) XINT (service));
        portstring = portbuf;
        port = htons ((unsigned short) XINT (service));
index fe79a12..1970369 100644 (file)
@@ -864,6 +864,9 @@ set_tty_modes (struct console *c)
   OUTPUT1_IF (c, TTY_SD (c).init_motion);
   OUTPUT1_IF (c, TTY_SD (c).cursor_visible);
   OUTPUT1_IF (c, TTY_SD (c).keypad_on);
   OUTPUT1_IF (c, TTY_SD (c).init_motion);
   OUTPUT1_IF (c, TTY_SD (c).cursor_visible);
   OUTPUT1_IF (c, TTY_SD (c).keypad_on);
+
+  if (TTY_FLAGS (c).auto_margins)
+    OUTPUT1_IF (c, TTY_SD (c).disable_auto_margins);
 }
 
 /*****************************************************************************
 }
 
 /*****************************************************************************
@@ -882,6 +885,9 @@ reset_tty_modes (struct console *c)
   OUTPUT1_IF (c, TTY_SD (c).cursor_normal);
   OUTPUT1_IF (c, TTY_SD (c).end_motion);
 
   OUTPUT1_IF (c, TTY_SD (c).cursor_normal);
   OUTPUT1_IF (c, TTY_SD (c).end_motion);
 
+  if (TTY_FLAGS (c).auto_margins)
+    OUTPUT1_IF (c, TTY_SD (c).enable_auto_margins);
+
   {
     Lisp_Object frm = CONSOLE_SELECTED_FRAME (c);
 
   {
     Lisp_Object frm = CONSOLE_SELECTED_FRAME (c);
 
@@ -1185,12 +1191,14 @@ init_tty_for_redisplay (struct device *d, char *terminal_type)
       TTY_SD (c).audio_bell = "\07";
     }
 
       TTY_SD (c).audio_bell = "\07";
     }
 
-  TTY_SD (c).cursor_visible = tgetstr ("ve", &bufptr);
-  TTY_SD (c).cursor_normal = tgetstr ("vs", &bufptr);
+  TTY_SD (c).cursor_visible = tgetstr ("vs", &bufptr);
+  TTY_SD (c).cursor_normal = tgetstr ("ve", &bufptr);
   TTY_SD (c).init_motion = tgetstr ("ti", &bufptr);
   TTY_SD (c).end_motion = tgetstr ("te", &bufptr);
   TTY_SD (c).keypad_on = tgetstr ("ks", &bufptr);
   TTY_SD (c).keypad_off = tgetstr ("ke", &bufptr);
   TTY_SD (c).init_motion = tgetstr ("ti", &bufptr);
   TTY_SD (c).end_motion = tgetstr ("te", &bufptr);
   TTY_SD (c).keypad_on = tgetstr ("ks", &bufptr);
   TTY_SD (c).keypad_off = tgetstr ("ke", &bufptr);
+  TTY_SD (c).disable_auto_margins = tgetstr ("RA", &bufptr);
+  TTY_SD (c).enable_auto_margins = tgetstr ("SA", &bufptr);
 
 
   /*
 
 
   /*
@@ -1203,6 +1211,7 @@ init_tty_for_redisplay (struct device *d, char *terminal_type)
   TTY_FLAGS (c).memory_below_frame = tgetflag ("db");
   TTY_FLAGS (c).standout_width = tgetnum ("sg");
   TTY_FLAGS (c).underline_width = tgetnum ("ug");
   TTY_FLAGS (c).memory_below_frame = tgetflag ("db");
   TTY_FLAGS (c).standout_width = tgetnum ("sg");
   TTY_FLAGS (c).underline_width = tgetnum ("ug");
+  TTY_FLAGS (c).auto_margins = tgetflag ("am");
 
   if (TTY_FLAGS (c).standout_width == -1)
     TTY_FLAGS (c).standout_width = 0;
 
   if (TTY_FLAGS (c).standout_width == -1)
     TTY_FLAGS (c).standout_width = 0;
index 21332fd..8a2cff3 100644 (file)
@@ -509,14 +509,41 @@ x_reply_selection_request (XSelectionRequestEvent *event, int format,
     }
   else
     {
     }
   else
     {
+#ifndef HAVE_XTREGISTERDRAWABLE
+      invalid_operation("Copying that much data requires X11R6.", Qunbound);
+#else
       /* Send an INCR selection. */
       int prop_id;
       /* Send an INCR selection. */
       int prop_id;
+      Widget widget = FRAME_X_TEXT_WIDGET (XFRAME(DEVICE_SELECTED_FRAME(d)));
 
       if (x_window_to_frame (d, window)) /* #### debug */
        error ("attempt to transfer an INCR to ourself!");
 #if 0
       stderr_out ("\nINCR %d\n", bytes_remaining);
 #endif
 
       if (x_window_to_frame (d, window)) /* #### debug */
        error ("attempt to transfer an INCR to ourself!");
 #if 0
       stderr_out ("\nINCR %d\n", bytes_remaining);
 #endif
+      /* Tell Xt not to drop PropertyNotify events that arrive for the
+        target window, rather, pass them to us. This would be a hack, but
+        the Xt selection routines are broken for our purposes--we can't
+        pass them callbacks from Lisp, for example. Let's call it a
+        workaround.
+        The call to wait_for_property_change means we can break out of that
+        function, switch to another frame on the same display (which will
+        be another Xt widget), select a huge amount of text, and have the
+        same (foreign) app ask for another incremental selection
+        transfer. Programming like X11 made sense, would mean that, in that
+        case, XtRegisterDrawable is called twice with different widgets.
+        Since the results of calling XtRegisterDrawable when the drawable
+        is already registered with another widget are undefined, we want to
+        avoid that--so, only call it when XtWindowToWidget returns NULL,
+        which it will only do with a valid Window if it's not already
+        registered. */
+      if (NULL == XtWindowToWidget(display, window))
+      {
+       XtRegisterDrawable(display, (Drawable)window, widget);
+      }
+      
       prop_id = expect_property_change (display, window, reply.property,
                                        PropertyDelete);
 
       prop_id = expect_property_change (display, window, reply.property,
                                        PropertyDelete);
 
@@ -560,10 +587,14 @@ x_reply_selection_request (XSelectionRequestEvent *event, int format,
       stderr_out ("  INCR done\n");
 #endif
       if (! waiting_for_other_props_on_window (display, window))
       stderr_out ("  INCR done\n");
 #endif
       if (! waiting_for_other_props_on_window (display, window))
-       XSelectInput (display, window, 0L);
+      {
+        XSelectInput (display, window, 0L);
+        XtUnregisterDrawable(display, (Drawable)window);
+      }
 
       XChangeProperty (display, window, reply.property, type, format,
                       PropModeReplace, data, 0);
 
       XChangeProperty (display, window, reply.property, type, format,
                       PropModeReplace, data, 0);
+#endif /* HAVE_XTREGISTERDRAWABLE */
     }
 }
 
     }
 }
 
index 679e515..c9e28c0 100644 (file)
@@ -263,11 +263,23 @@ dll_handle
 dll_open (const char *fname)
 {
   NSObjectFileImage file;
 dll_open (const char *fname)
 {
   NSObjectFileImage file;
-  NSObjectFileImageReturnCode ret = 
-    NSCreateObjectFileImageFromFile(fname, &file);
+  NSObjectFileImageReturnCode ret;
+
+  /*
+   * MacOS X dll support is for bundles, not the current executable, so return
+   * NULL is this case.  However, dll_function() uses a special hack where a
+   * NULL handle can be used to find executable symbols.  This satisfies the
+   * needs of ui-gtk.c but is not a general solution.
+   */
+  if (fname == NULL)
+    return NULL;
+
+  ret = NSCreateObjectFileImageFromFile(fname, &file);
+
   if (ret != NSObjectFileImageSuccess) {
     return NULL;
   }
   if (ret != NSObjectFileImageSuccess) {
     return NULL;
   }
+
   return (dll_handle)NSLinkModule(file, fname, 
                                  NSLINKMODULE_OPTION_BINDNOW |
                                  NSLINKMODULE_OPTION_PRIVATE |
   return (dll_handle)NSLinkModule(file, fname, 
                                  NSLINKMODULE_OPTION_BINDNOW |
                                  NSLINKMODULE_OPTION_PRIVATE |
index 9fdc974..6ac9844 100644 (file)
@@ -475,7 +475,7 @@ typedef struct {
 # include <sys/exec_elf.h>
 #endif
 
 # include <sys/exec_elf.h>
 #endif
 
-#if defined(__FreeBSD__) && (defined(__alpha__) || defined(__amd64__))
+#if defined(__FreeBSD__) && (defined(__alpha__) || defined(_LP64))
 # ifdef __STDC__
 #  define ElfW(type)   Elf64_##type
 # else
 # ifdef __STDC__
 #  define ElfW(type)   Elf64_##type
 # else
index dbaa581..50fc29b 100644 (file)
@@ -1,3 +1,7 @@
+2005-12-03  Vin Shelton <acs@xemacs.org>
+
+       * XEmacs 21.4.18 is released
+
 2005-02-06  Vin Shelton <acs@xemacs.org>
 
        * XEmacs 21.4.17 is released
 2005-02-06  Vin Shelton <acs@xemacs.org>
 
        * XEmacs 21.4.17 is released
index 6833ad4..db4a72e 100644 (file)
@@ -2,8 +2,8 @@
 emacs_is_beta=
 emacs_major_version=21
 emacs_minor_version=4
 emacs_is_beta=
 emacs_major_version=21
 emacs_minor_version=4
-emacs_beta_version=17
-xemacs_codename="Jumbo Shrimp"
+emacs_beta_version=18
+xemacs_codename="Social Property"
 emacs_kit_version=
 infodock_major_version=4
 infodock_minor_version=0
 emacs_kit_version=
 infodock_major_version=4
 infodock_minor_version=0