http://ftp.x.org/contrib/applications/xscreensaver-3.24.tar.gz
authorZygo Blaxell <zblaxell@hungrycats.org>
Mon, 2 Mar 2009 05:42:42 +0000 (00:42 -0500)
committerZygo Blaxell <zblaxell@hungrycats.org>
Mon, 2 Mar 2009 05:42:42 +0000 (00:42 -0500)
-rw-r--r-- 1 zblaxell zblaxell 1284791 Apr  2  2000 xscreensaver-3.24.tar.gz
f73cf70fc62150d903887036119e82050e39641b  xscreensaver-3.24.tar.gz

36 files changed:
Makefile.in
README
config.h.in
configure
configure.in
driver/Makefile.in
driver/XScreenSaver.ad.in
driver/XScreenSaver_ad.h
driver/demo-Gtk-stubs.h
driver/demo-Gtk-widgets.c
driver/demo-Gtk.c
driver/passwd-kerberos.c
driver/passwd-pam.c
driver/screensaver-properties.desktop.in [new file with mode: 0644]
driver/xdpyinfo.c
driver/xscreensaver-command.man
driver/xscreensaver-demo.glade
driver/xscreensaver-demo.man
driver/xscreensaver.man
hacks/Makefile.in
hacks/bsod.c
hacks/bsod.man
hacks/critical.c
hacks/critical.man
hacks/flow.c
hacks/maze.c
hacks/phosphor.man
hacks/vidwhacker
hacks/webcollage
hacks/xflame.c
hacks/xflame.man [new file with mode: 0644]
hacks/xteevee.c
utils/erase.c
utils/version.h
xscreensaver.lsm
xscreensaver.spec

index f1a39486bbb1852b74b0a1e01b1fb0cbd996d014..5cc087cb64bb3d2100b2fa56dc6dbf220c88bd24 100644 (file)
@@ -131,7 +131,7 @@ bump-version::
   MAJOR="$$1"; MINOR="$$2";                                                \
   NEW=`echo $$MINOR + 1 | bc` ;                                                    \
   NEW=`echo $$NEW | sed 's/^\([0-9]\)$$/0\1/'` ;                           \
   MAJOR="$$1"; MINOR="$$2";                                                \
   NEW=`echo $$MINOR + 1 | bc` ;                                                    \
   NEW=`echo $$NEW | sed 's/^\([0-9]\)$$/0\1/'` ;                           \
-  D=`date '+%d-%b-%y'`;                                                            \
+  D=`date '+%d-%b-%Y'`;                                                            \
   if [ ! -f xscreensaver-$$MAJOR.$$MINOR.tar.gz ]; then                            \
     echo "WARNING: xscreensaver-$$MAJOR.$$MINOR.tar.gz does not exist.";    \
   fi ;                                                                     \
   if [ ! -f xscreensaver-$$MAJOR.$$MINOR.tar.gz ]; then                            \
     echo "WARNING: xscreensaver-$$MAJOR.$$MINOR.tar.gz does not exist.";    \
   fi ;                                                                     \
@@ -223,7 +223,7 @@ test-tar::
   ( cd BIN/lesstif ;                                                       \
     CC=cc ;                                                                \
     export CC ;                                                                    \
   ( cd BIN/lesstif ;                                                       \
     CC=cc ;                                                                \
     export CC ;                                                                    \
-    ../../configure --with-motif=/usr/local/lesstif ;                      \
+    ../../configure --with-motif=/usr/local/lesstif --without-gnome ;      \
     echo --------------------------------------------------------------- ;  \
     ( cd utils; gmake all ) ;                                              \
     ( cd driver; gmake all ) ;                                             \
     echo --------------------------------------------------------------- ;  \
     ( cd utils; gmake all ) ;                                              \
     ( cd driver; gmake all ) ;                                             \
diff --git a/README b/README
index ebe58b995d25ce1133a494de73e8224737db4a6e..5ff523c7fec208f34743f1aefc6c1cb38064982d 100644 (file)
--- a/README
+++ b/README
@@ -77,6 +77,18 @@ http://www.jwz.org/xscreensaver/.
 
                               ============
 
 
                               ============
 
+Changes since 3.23:   * Added `-ignorant' option to `maze' hack.
+                      * Updates to `critical', `bsod', `xflame', and `flow'.
+                      * Added support for Kerberos 5 (via its Kerberos 4
+                        compatibility layer.)
+                      * Fixed a bad leak in `xteevee'.
+                      * Updated `webcollage' to handle recent Altavista URL
+                        format changes.
+                      * Removed xscreensaver-demo's `Ok' and `Cancel' buttons,
+                        since they were confusing people: all changes are now
+                        instantanious.
+                      * Made xscreensaver-demo install itself into the Gnome
+                        Control Center.
 Changes since 3.22:   * Fixed some misplaced text fields in the Motif version
                         of xscreensaver-demo; fixed a crash in the Gtk version
                         that would happen if the programs list was empty.
 Changes since 3.22:   * Fixed some misplaced text fields in the Motif version
                         of xscreensaver-demo; fixed a crash in the Gtk version
                         that would happen if the programs list was empty.
@@ -94,7 +106,7 @@ Changes since 3.20:   * Tweaked the xscreensaver-demo UI (Gtk only.)
                         GL visual should be used with nVidia systems now.
                       * Made the Makefiles obey $install_prefix.
                       * Made the `xscreensaver.spec' file able to generate both
                         GL visual should be used with nVidia systems now.
                       * Made the Makefiles obey $install_prefix.
                       * Made the `xscreensaver.spec' file able to generate both
-                        GL and non-GL packages simultaniously.
+                        GL and non-GL packages simultaneously.
 Changes since 3.19:   * Added new hacks `ripples' and `sierpinski3d'.
                       * Made `xscreensaver-command -exit' be silent when no
                         screen saver was running (instead of complaining.)
 Changes since 3.19:   * Added new hacks `ripples' and `sierpinski3d'.
                       * Made `xscreensaver-command -exit' be silent when no
                         screen saver was running (instead of complaining.)
index c9b94b7064053bd069e56ad8470b2e081f46dcb8..b35e89a056e294c65e84c5caa9d42b6302313b8b 100644 (file)
  */
 #undef HAVE_GTK
 
  */
 #undef HAVE_GTK
 
+/*  Define this if you have Gnome and want to build support for the 
+    xscreensaver control panel in the Gnome Control Center (gnomecc).
+ */
+#undef HAVE_CRAPPLET
+
 /*  Define this if you have the XPM library installed.  Some of the demos can
  *  make use of this if it is available.
  */
 /*  Define this if you have the XPM library installed.  Some of the demos can
  *  make use of this if it is available.
  */
  */
 #undef HAVE_KERBEROS
 
  */
 #undef HAVE_KERBEROS
 
+/* Define this if you have Kerberos 5, meaning we need to use the Kerberos 4
+ * compatibility layer.
+ */
+#undef HAVE_KERBEROS5
+
 /*  Define this if you want to use PAM (Pluggable Authentication Modules)
  *  to lock/unlock the screen, instead of standard /etc/passwd authentication.
  */
 /*  Define this if you want to use PAM (Pluggable Authentication Modules)
  *  to lock/unlock the screen, instead of standard /etc/passwd authentication.
  */
index c6ce9ec195fb12dae9f699ca515c62fb042b0bec..e6ae69898723b28fa9536164432ea57b8d5cd918 100755 (executable)
--- a/configure
+++ b/configure
@@ -74,6 +74,8 @@ User interface options:
 ac_help="$ac_help
   --with-gtk              Use the Gtk toolkit for the user interface."
 ac_help="$ac_help
 ac_help="$ac_help
   --with-gtk              Use the Gtk toolkit for the user interface."
 ac_help="$ac_help
+  --with-gnome            Include support for the Gnome Control Center."
+ac_help="$ac_help
 
 Graphics options:
 
 
 Graphics options:
 
@@ -665,6 +667,14 @@ perl_version_cmd='print $]'
 
 
 
 
 
 
+###############################################################################
+#
+#       Function to demand "bc".  Losers.
+#
+###############################################################################
+
+
+
 ###############################################################################
 #
 #       Functions to check how to do ICMP PING requests.
 ###############################################################################
 #
 #       Functions to check how to do ICMP PING requests.
@@ -787,7 +797,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
 fi
 
 echo $ac_n "checking host system type""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:802: checking host system type" >&5
+echo "configure:812: checking host system type" >&5
 
 host_alias=$host
 case "$host_alias" in
 
 host_alias=$host
 case "$host_alias" in
@@ -810,7 +820,7 @@ echo "$ac_t""$host" 1>&6
 # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
 # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:825: checking for $ac_word" >&5
+echo "configure:835: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -840,7 +850,7 @@ if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:855: checking for $ac_word" >&5
+echo "configure:865: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -891,7 +901,7 @@ fi
       # Extract the first word of "cl", so it can be a program name with args.
 set dummy cl; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
       # Extract the first word of "cl", so it can be a program name with args.
 set dummy cl; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:906: checking for $ac_word" >&5
+echo "configure:916: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -923,7 +933,7 @@ fi
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:938: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:948: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
 
 ac_ext=c
 # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
 
 ac_ext=c
 # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -934,12 +944,12 @@ cross_compiling=$ac_cv_prog_cc_cross
 
 cat > conftest.$ac_ext << EOF
 
 
 cat > conftest.$ac_ext << EOF
 
-#line 949 "configure"
+#line 959 "configure"
 #include "confdefs.h"
 
 main(){return(0);}
 EOF
 #include "confdefs.h"
 
 main(){return(0);}
 EOF
-if { (eval echo configure:954: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:964: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -965,12 +975,12 @@ if test $ac_cv_prog_cc_works = no; then
   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:980: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:990: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 cross_compiling=$ac_cv_prog_cc_cross
 
 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 cross_compiling=$ac_cv_prog_cc_cross
 
 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:985: checking whether we are using GNU C" >&5
+echo "configure:995: checking whether we are using GNU C" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -979,7 +989,7 @@ else
   yes;
 #endif
 EOF
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:994: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1004: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
@@ -998,7 +1008,7 @@ ac_test_CFLAGS="${CFLAGS+set}"
 ac_save_CFLAGS="$CFLAGS"
 CFLAGS=
 echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
 ac_save_CFLAGS="$CFLAGS"
 CFLAGS=
 echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1013: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1023: checking whether ${CC-cc} accepts -g" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1032,7 +1042,7 @@ fi
 
   if test -z "$GCC"; then
     echo $ac_n "checking how to request ANSI compilation""... $ac_c" 1>&6
 
   if test -z "$GCC"; then
     echo $ac_n "checking how to request ANSI compilation""... $ac_c" 1>&6
-echo "configure:1047: checking how to request ANSI compilation" >&5
+echo "configure:1057: checking how to request ANSI compilation" >&5
     case "$host" in
       *-hpux* )
         echo "$ac_t""HPUX: adding -Ae" 1>&6
     case "$host" in
       *-hpux* )
         echo "$ac_t""HPUX: adding -Ae" 1>&6
@@ -1055,16 +1065,16 @@ echo "configure:1047: checking how to request ANSI compilation" >&5
   fi
 
   echo $ac_n "checking whether the compiler works on ANSI C""... $ac_c" 1>&6
   fi
 
   echo $ac_n "checking whether the compiler works on ANSI C""... $ac_c" 1>&6
-echo "configure:1070: checking whether the compiler works on ANSI C" >&5
+echo "configure:1080: checking whether the compiler works on ANSI C" >&5
   if test "$cross_compiling" = yes; then
   { echo "configure: error: Couldn't build even a trivial ANSI C program: check CC." 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
   if test "$cross_compiling" = yes; then
   { echo "configure: error: Couldn't build even a trivial ANSI C program: check CC." 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 1075 "configure"
+#line 1085 "configure"
 #include "confdefs.h"
  main(int ac, char **av) { return 0; } 
 EOF
 #include "confdefs.h"
  main(int ac, char **av) { return 0; } 
 EOF
-if { (eval echo configure:1079: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1089: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   echo "$ac_t""yes" 1>&6
 else
 then
   echo "$ac_t""yes" 1>&6
 else
@@ -1099,7 +1109,7 @@ fi
   fi
 
 echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
   fi
 
 echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1114: checking how to run the C preprocessor" >&5
+echo "configure:1124: checking how to run the C preprocessor" >&5
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
@@ -1114,13 +1124,13 @@ else
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
-#line 1129 "configure"
+#line 1139 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1135: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1145: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1131,13 +1141,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 1146 "configure"
+#line 1156 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1152: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1162: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1148,13 +1158,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -nologo -E"
   cat > conftest.$ac_ext <<EOF
   rm -rf conftest*
   CPP="${CC-cc} -nologo -E"
   cat > conftest.$ac_ext <<EOF
-#line 1163 "configure"
+#line 1173 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1169: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1179: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1179,12 +1189,12 @@ fi
 echo "$ac_t""$CPP" 1>&6
 
 echo $ac_n "checking for working const""... $ac_c" 1>&6
 echo "$ac_t""$CPP" 1>&6
 
 echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:1194: checking for working const" >&5
+echo "configure:1204: checking for working const" >&5
 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1199 "configure"
+#line 1209 "configure"
 #include "confdefs.h"
 
 int main() {
 #include "confdefs.h"
 
 int main() {
@@ -1233,7 +1243,7 @@ ccp = (char const *const *) p;
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:1248: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1258: \"$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
@@ -1254,21 +1264,21 @@ EOF
 fi
 
 echo $ac_n "checking for inline""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:1269: checking for inline" >&5
+echo "configure:1279: checking for inline" >&5
 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat > conftest.$ac_ext <<EOF
-#line 1276 "configure"
+#line 1286 "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:1283: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1293: \"$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
@@ -1293,6 +1303,19 @@ EOF
  ;;
 esac
 
  ;;
 esac
 
+ac_bc_result=`echo 6+9 | bc 2>/dev/null`
+  echo $ac_n "checking for bc""... $ac_c" 1>&6
+echo "configure:1320: checking for bc" >&5
+  if test "$ac_bc_result" = "15" ; then
+    echo "$ac_t""yes" 1>&6
+  else
+    echo "$ac_t""no" 1>&6
+    echo ''
+    { echo "configure: error: Your system doesn't have \"bc\", which has been a standard
+                  part of Unix since the 1970s.  Come back when your vendor
+                  has grown a clue." 1>&2; exit 1; }
+  fi
 
 # stuff for Makefiles
 # Find a good install program.  We prefer a C program (faster),
 
 # stuff for Makefiles
 # Find a good install program.  We prefer a C program (faster),
@@ -1307,7 +1330,7 @@ esac
 # 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:1322: checking for a BSD compatible install" >&5
+echo "configure:1345: checking for a BSD compatible install" >&5
 if test -z "$INSTALL"; then
 if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 if test -z "$INSTALL"; then
 if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1360,7 +1383,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
 echo $ac_n "checking whether \"\${INSTALL} -d\" creates intermediate directories""... $ac_c" 1>&6
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
 echo $ac_n "checking whether \"\${INSTALL} -d\" creates intermediate directories""... $ac_c" 1>&6
-echo "configure:1375: checking whether \"\${INSTALL} -d\" creates intermediate directories" >&5
+echo "configure:1398: checking whether \"\${INSTALL} -d\" creates intermediate directories" >&5
 if eval "test \"`echo '$''{'ac_cv_install_d_creates_dirs'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_install_d_creates_dirs'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1382,7 +1405,7 @@ echo "$ac_t""$ac_cv_install_d_creates_dirs" 1>&6
 
   if test "$ac_cv_install_d_creates_dirs" = no ; then
     echo $ac_n "checking whether \"mkdir -p\" creates intermediate directories""... $ac_c" 1>&6
 
   if test "$ac_cv_install_d_creates_dirs" = no ; then
     echo $ac_n "checking whether \"mkdir -p\" creates intermediate directories""... $ac_c" 1>&6
-echo "configure:1397: checking whether \"mkdir -p\" creates intermediate directories" >&5
+echo "configure:1420: checking whether \"mkdir -p\" creates intermediate directories" >&5
 if eval "test \"`echo '$''{'ac_cv_mkdir_p_creates_dirs'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_mkdir_p_creates_dirs'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1413,7 +1436,7 @@ echo "$ac_t""$ac_cv_mkdir_p_creates_dirs" 1>&6
   fi
 
 echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
   fi
 
 echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:1428: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:1451: checking whether ${MAKE-make} sets \${MAKE}" >&5
 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1442,12 +1465,12 @@ fi
 
 # random libc stuff
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
 
 # random libc stuff
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:1457: checking for ANSI C header files" >&5
+echo "configure:1480: checking for ANSI C header files" >&5
 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1462 "configure"
+#line 1485 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -1455,7 +1478,7 @@ else
 #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:1470: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1493: \"$ac_try\") 1>&5; (eval $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*
@@ -1472,7 +1495,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 1487 "configure"
+#line 1510 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -1490,7 +1513,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 1505 "configure"
+#line 1528 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -1511,7 +1534,7 @@ if test "$cross_compiling" = yes; then
   :
 else
   cat > conftest.$ac_ext <<EOF
   :
 else
   cat > conftest.$ac_ext <<EOF
-#line 1526 "configure"
+#line 1549 "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')
@@ -1522,7 +1545,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
 exit (0); }
 
 EOF
 exit (0); }
 
 EOF
-if { (eval echo configure:1537: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1560: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
 then
   :
 else
@@ -1549,17 +1572,17 @@ for ac_hdr in unistd.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:1564: checking for $ac_hdr" >&5
+echo "configure:1587: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1569 "configure"
+#line 1592 "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:1574: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1597: \"$ac_try\") 1>&5; (eval $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*
@@ -1586,12 +1609,12 @@ fi
 done
 
 echo $ac_n "checking for mode_t""... $ac_c" 1>&6
 done
 
 echo $ac_n "checking for mode_t""... $ac_c" 1>&6
-echo "configure:1601: checking for mode_t" >&5
+echo "configure:1624: checking for mode_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1606 "configure"
+#line 1629 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -1619,12 +1642,12 @@ 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:1634: checking for pid_t" >&5
+echo "configure:1657: checking for pid_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1639 "configure"
+#line 1662 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -1652,12 +1675,12 @@ EOF
 fi
 
 echo $ac_n "checking for size_t""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:1667: checking for size_t" >&5
+echo "configure:1690: checking for size_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1672 "configure"
+#line 1695 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -1685,12 +1708,12 @@ EOF
 fi
 
 echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:1700: checking return type of signal handlers" >&5
+echo "configure:1723: checking return type of signal handlers" >&5
 if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1705 "configure"
+#line 1728 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
@@ -1707,7 +1730,7 @@ int main() {
 int i;
 ; return 0; }
 EOF
 int i;
 ; return 0; }
 EOF
-if { (eval echo configure:1722: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1745: \"$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
@@ -1726,12 +1749,12 @@ EOF
 
 
 echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
 
 
 echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:1741: checking whether time.h and sys/time.h may both be included" >&5
+echo "configure:1764: checking whether time.h and sys/time.h may both be included" >&5
 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1746 "configure"
+#line 1769 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/time.h>
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/time.h>
@@ -1740,7 +1763,7 @@ int main() {
 struct tm *tp;
 ; return 0; }
 EOF
 struct tm *tp;
 ; return 0; }
 EOF
-if { (eval echo configure:1755: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1778: \"$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
@@ -1761,12 +1784,12 @@ EOF
 fi
 
 echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
-echo "configure:1776: checking for sys/wait.h that is POSIX.1 compatible" >&5
+echo "configure:1799: checking for sys/wait.h that is POSIX.1 compatible" >&5
 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1781 "configure"
+#line 1804 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/wait.h>
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/wait.h>
@@ -1782,7 +1805,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:1797: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1820: \"$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
@@ -1807,12 +1830,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
-echo "configure:1822: checking for $ac_hdr that defines DIR" >&5
+echo "configure:1845: checking for $ac_hdr that defines DIR" >&5
 if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1827 "configure"
+#line 1850 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <$ac_hdr>
 #include "confdefs.h"
 #include <sys/types.h>
 #include <$ac_hdr>
@@ -1820,7 +1843,7 @@ int main() {
 DIR *dirp = 0;
 ; return 0; }
 EOF
 DIR *dirp = 0;
 ; return 0; }
 EOF
-if { (eval echo configure:1835: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1858: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   eval "ac_cv_header_dirent_$ac_safe=yes"
 else
   rm -rf conftest*
   eval "ac_cv_header_dirent_$ac_safe=yes"
 else
@@ -1845,7 +1868,7 @@ done
 # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
 if test $ac_header_dirent = dirent.h; then
 echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
 # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
 if test $ac_header_dirent = dirent.h; then
 echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
-echo "configure:1860: checking for opendir in -ldir" >&5
+echo "configure:1883: checking for opendir in -ldir" >&5
 ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1853,7 +1876,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldir  $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-ldir  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1868 "configure"
+#line 1891 "configure"
 #include "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
@@ -1864,7 +1887,7 @@ int main() {
 opendir()
 ; return 0; }
 EOF
 opendir()
 ; return 0; }
 EOF
-if { (eval echo configure:1879: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1902: \"$ac_link\") 1>&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
@@ -1886,7 +1909,7 @@ fi
 
 else
 echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
 
 else
 echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
-echo "configure:1901: checking for opendir in -lx" >&5
+echo "configure:1924: checking for opendir in -lx" >&5
 ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1894,7 +1917,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lx  $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lx  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1909 "configure"
+#line 1932 "configure"
 #include "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
@@ -1905,7 +1928,7 @@ int main() {
 opendir()
 ; return 0; }
 EOF
 opendir()
 ; return 0; }
 EOF
-if { (eval echo configure:1920: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1943: \"$ac_link\") 1>&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
@@ -1928,12 +1951,12 @@ fi
 fi
 
 echo $ac_n "checking how to call gettimeofday""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking how to call gettimeofday""... $ac_c" 1>&6
-echo "configure:1943: checking how to call gettimeofday" >&5
+echo "configure:1966: checking how to call gettimeofday" >&5
   if eval "test \"`echo '$''{'ac_cv_gettimeofday_args'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
   if eval "test \"`echo '$''{'ac_cv_gettimeofday_args'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1948 "configure"
+#line 1971 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
                     #include <sys/time.h>
 #include "confdefs.h"
 #include <stdlib.h>
                     #include <sys/time.h>
@@ -1942,7 +1965,7 @@ struct timeval tv; struct timezone tzp;
                     gettimeofday(&tv, &tzp);
 ; return 0; }
 EOF
                     gettimeofday(&tv, &tzp);
 ; return 0; }
 EOF
-if { (eval echo configure:1957: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1980: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_gettimeofday_args=2
 else
   rm -rf conftest*
   ac_gettimeofday_args=2
 else
@@ -1950,7 +1973,7 @@ else
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   cat > conftest.$ac_ext <<EOF
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   cat > conftest.$ac_ext <<EOF
-#line 1965 "configure"
+#line 1988 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
                                     #include <sys/time.h>
 #include "confdefs.h"
 #include <stdlib.h>
                                     #include <sys/time.h>
@@ -1958,7 +1981,7 @@ int main() {
 struct timeval tv; gettimeofday(&tv);
 ; return 0; }
 EOF
 struct timeval tv; gettimeofday(&tv);
 ; return 0; }
 EOF
-if { (eval echo configure:1973: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1996: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_gettimeofday_args=1
 else
   rm -rf conftest*
   ac_gettimeofday_args=1
 else
@@ -1997,12 +2020,12 @@ EOF
 for ac_func in select fcntl uname nice setpriority getcwd getwd putenv
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
 for ac_func in select fcntl uname nice setpriority getcwd getwd putenv
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2012: checking for $ac_func" >&5
+echo "configure:2035: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2017 "configure"
+#line 2040 "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.  */
@@ -2025,7 +2048,7 @@ $ac_func();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:2040: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2063: \"$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
@@ -2053,12 +2076,12 @@ done
 for ac_func in sigaction syslog realpath
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
 for ac_func in sigaction syslog realpath
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2068: checking for $ac_func" >&5
+echo "configure:2091: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2073 "configure"
+#line 2096 "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.  */
@@ -2081,7 +2104,7 @@ $ac_func();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:2096: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2119: \"$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
@@ -2106,12 +2129,12 @@ fi
 done
 
 echo $ac_n "checking for struct icmp""... $ac_c" 1>&6
 done
 
 echo $ac_n "checking for struct icmp""... $ac_c" 1>&6
-echo "configure:2121: checking for struct icmp" >&5
+echo "configure:2144: checking for struct icmp" >&5
 if eval "test \"`echo '$''{'ac_cv_have_icmp'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_have_icmp'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2126 "configure"
+#line 2149 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
                    #include <stdio.h>
 #include "confdefs.h"
 #include <stdlib.h>
                    #include <stdio.h>
@@ -2146,7 +2169,7 @@ struct icmp i;
                    ip.ip_hl = 0;
 ; return 0; }
 EOF
                    ip.ip_hl = 0;
 ; return 0; }
 EOF
-if { (eval echo configure:2161: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2184: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_have_icmp=yes
 else
   rm -rf conftest*
   ac_cv_have_icmp=yes
 else
@@ -2166,12 +2189,12 @@ EOF
 
  fi
 echo $ac_n "checking for struct icmphdr""... $ac_c" 1>&6
 
  fi
 echo $ac_n "checking for struct icmphdr""... $ac_c" 1>&6
-echo "configure:2181: checking for struct icmphdr" >&5
+echo "configure:2204: checking for struct icmphdr" >&5
 if eval "test \"`echo '$''{'ac_cv_have_icmphdr'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_have_icmphdr'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2186 "configure"
+#line 2209 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
                    #include <stdio.h>
 #include "confdefs.h"
 #include <stdlib.h>
                    #include <stdio.h>
@@ -2206,7 +2229,7 @@ struct icmphdr i;
                    ip.ip_hl = 0;
 ; return 0; }
 EOF
                    ip.ip_hl = 0;
 ; return 0; }
 EOF
-if { (eval echo configure:2221: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2244: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_have_icmphdr=yes
 else
   rm -rf conftest*
   ac_cv_have_icmphdr=yes
 else
@@ -2229,17 +2252,17 @@ for ac_hdr in crypt.h sys/select.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:2244: checking for $ac_hdr" >&5
+echo "configure:2267: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2249 "configure"
+#line 2272 "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:2254: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2277: \"$ac_try\") 1>&5; (eval $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*
@@ -2270,7 +2293,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:2285: checking for $ac_word" >&5
+echo "configure:2308: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2309,7 +2332,7 @@ done
     PERL_VERSION=0
   else
     echo $ac_n "checking perl version""... $ac_c" 1>&6
     PERL_VERSION=0
   else
     echo $ac_n "checking perl version""... $ac_c" 1>&6
-echo "configure:2324: checking perl version" >&5
+echo "configure:2347: checking perl version" >&5
 if eval "test \"`echo '$''{'ac_cv_perl_version'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_perl_version'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2331,7 +2354,7 @@ fi
 # 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:2346: checking for X" >&5
+echo "configure:2369: 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
@@ -2393,12 +2416,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 2408 "configure"
+#line 2431 "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:2413: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2436: \"$ac_try\") 1>&5; (eval $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*
@@ -2467,14 +2490,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 2482 "configure"
+#line 2505 "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:2489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2512: \"$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.
@@ -2580,17 +2603,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:2595: checking whether -R must be followed by a space" >&5
+echo "configure:2618: 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 2598 "configure"
+#line 2621 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:2605: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2628: \"$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
@@ -2606,14 +2629,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 2621 "configure"
+#line 2644 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:2628: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2651: \"$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
@@ -2645,7 +2668,7 @@ rm -f conftest*
     # libraries were built with DECnet support.  And karl@cs.umb.edu says
     # the Alpha needs dnet_stub (dnet does not exist).
     echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6
     # libraries were built with DECnet support.  And karl@cs.umb.edu says
     # the Alpha needs dnet_stub (dnet does not exist).
     echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6
-echo "configure:2660: checking for dnet_ntoa in -ldnet" >&5
+echo "configure:2683: checking for dnet_ntoa in -ldnet" >&5
 ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2653,7 +2676,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldnet  $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-ldnet  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2668 "configure"
+#line 2691 "configure"
 #include "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
@@ -2664,7 +2687,7 @@ int main() {
 dnet_ntoa()
 ; return 0; }
 EOF
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:2679: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2702: \"$ac_link\") 1>&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
@@ -2686,7 +2709,7 @@ 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:2701: checking for dnet_ntoa in -ldnet_stub" >&5
+echo "configure:2724: checking for dnet_ntoa in -ldnet_stub" >&5
 ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2694,7 +2717,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldnet_stub  $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-ldnet_stub  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2709 "configure"
+#line 2732 "configure"
 #include "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
@@ -2705,7 +2728,7 @@ int main() {
 dnet_ntoa()
 ; return 0; }
 EOF
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:2720: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2743: \"$ac_link\") 1>&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
@@ -2734,12 +2757,12 @@ 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:2749: checking for gethostbyname" >&5
+echo "configure:2772: checking for gethostbyname" >&5
 if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2754 "configure"
+#line 2777 "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.  */
@@ -2762,7 +2785,7 @@ gethostbyname();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:2777: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2800: \"$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
@@ -2783,7 +2806,7 @@ 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:2798: checking for gethostbyname in -lnsl" >&5
+echo "configure:2821: checking for gethostbyname in -lnsl" >&5
 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2791,7 +2814,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lnsl  $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lnsl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2806 "configure"
+#line 2829 "configure"
 #include "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
@@ -2802,7 +2825,7 @@ int main() {
 gethostbyname()
 ; return 0; }
 EOF
 gethostbyname()
 ; return 0; }
 EOF
-if { (eval echo configure:2817: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2840: \"$ac_link\") 1>&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
@@ -2832,12 +2855,12 @@ 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:2847: checking for connect" >&5
+echo "configure:2870: checking for connect" >&5
 if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2852 "configure"
+#line 2875 "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.  */
@@ -2860,7 +2883,7 @@ connect();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:2875: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2898: \"$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
@@ -2881,7 +2904,7 @@ fi
 
     if test $ac_cv_func_connect = no; then
       echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6
 
     if test $ac_cv_func_connect = no; then
       echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6
-echo "configure:2896: checking for connect in -lsocket" >&5
+echo "configure:2919: checking for connect in -lsocket" >&5
 ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2889,7 +2912,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2904 "configure"
+#line 2927 "configure"
 #include "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
@@ -2900,7 +2923,7 @@ int main() {
 connect()
 ; return 0; }
 EOF
 connect()
 ; return 0; }
 EOF
-if { (eval echo configure:2915: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2938: \"$ac_link\") 1>&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
@@ -2924,12 +2947,12 @@ 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:2939: checking for remove" >&5
+echo "configure:2962: checking for remove" >&5
 if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2944 "configure"
+#line 2967 "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.  */
@@ -2952,7 +2975,7 @@ remove();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:2967: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2990: \"$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
@@ -2973,7 +2996,7 @@ 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:2988: checking for remove in -lposix" >&5
+echo "configure:3011: checking for remove in -lposix" >&5
 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2981,7 +3004,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lposix  $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lposix  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2996 "configure"
+#line 3019 "configure"
 #include "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
@@ -2992,7 +3015,7 @@ int main() {
 remove()
 ; return 0; }
 EOF
 remove()
 ; return 0; }
 EOF
-if { (eval echo configure:3007: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3030: \"$ac_link\") 1>&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
@@ -3016,12 +3039,12 @@ 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:3031: checking for shmat" >&5
+echo "configure:3054: checking for shmat" >&5
 if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3036 "configure"
+#line 3059 "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.  */
@@ -3044,7 +3067,7 @@ shmat();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:3059: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3082: \"$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
@@ -3065,7 +3088,7 @@ 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:3080: checking for shmat in -lipc" >&5
+echo "configure:3103: checking for shmat in -lipc" >&5
 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3073,7 +3096,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lipc  $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lipc  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3088 "configure"
+#line 3111 "configure"
 #include "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
@@ -3084,7 +3107,7 @@ int main() {
 shmat()
 ; return 0; }
 EOF
 shmat()
 ; return 0; }
 EOF
-if { (eval echo configure:3099: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3122: \"$ac_link\") 1>&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
@@ -3117,7 +3140,7 @@ fi
   # libraries we check for below, so use a different variable.
   #  --interran@uluru.Stanford.EDU, kb@cs.umb.edu.
   echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6
   # libraries we check for below, so use a different variable.
   #  --interran@uluru.Stanford.EDU, kb@cs.umb.edu.
   echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6
-echo "configure:3132: checking for IceConnectionNumber in -lICE" >&5
+echo "configure:3155: checking for IceConnectionNumber in -lICE" >&5
 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3125,7 +3148,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lICE $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lICE $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3140 "configure"
+#line 3163 "configure"
 #include "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
@@ -3136,7 +3159,7 @@ int main() {
 IceConnectionNumber()
 ; return 0; }
 EOF
 IceConnectionNumber()
 ; return 0; }
 EOF
-if { (eval echo configure:3151: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3174: \"$ac_link\") 1>&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
@@ -3167,7 +3190,7 @@ fi
 
 
     echo $ac_n "checking for X app-defaults directory""... $ac_c" 1>&6
 
 
     echo $ac_n "checking for X app-defaults directory""... $ac_c" 1>&6
-echo "configure:3182: checking for X app-defaults directory" >&5
+echo "configure:3205: checking for X app-defaults directory" >&5
 if eval "test \"`echo '$''{'ac_cv_x_app_defaults'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_x_app_defaults'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3366,7 +3389,7 @@ case "$host" in
 
         # Some versions of Slowlaris Motif require -lgen.  But not all.  Why?
         echo $ac_n "checking for regcmp in -lgen""... $ac_c" 1>&6
 
         # Some versions of Slowlaris Motif require -lgen.  But not all.  Why?
         echo $ac_n "checking for regcmp in -lgen""... $ac_c" 1>&6
-echo "configure:3381: checking for regcmp in -lgen" >&5
+echo "configure:3404: checking for regcmp in -lgen" >&5
 ac_lib_var=`echo gen'_'regcmp | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo gen'_'regcmp | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3374,7 +3397,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lgen  $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lgen  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3389 "configure"
+#line 3412 "configure"
 #include "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
@@ -3385,7 +3408,7 @@ int main() {
 regcmp()
 ; return 0; }
 EOF
 regcmp()
 ; return 0; }
 EOF
-if { (eval echo configure:3400: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3423: \"$ac_link\") 1>&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
@@ -3409,7 +3432,7 @@ fi
     ;;
   esac
 echo $ac_n "checking for XPointer""... $ac_c" 1>&6
     ;;
   esac
 echo $ac_n "checking for XPointer""... $ac_c" 1>&6
-echo "configure:3424: checking for XPointer" >&5
+echo "configure:3447: checking for XPointer" >&5
 if eval "test \"`echo '$''{'ac_cv_xpointer'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_xpointer'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3420,14 +3443,14 @@ else
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
-#line 3435 "configure"
+#line 3458 "configure"
 #include "confdefs.h"
 #include <X11/Xlib.h>
 int main() {
 XPointer foo = (XPointer) 0;
 ; return 0; }
 EOF
 #include "confdefs.h"
 #include <X11/Xlib.h>
 int main() {
 XPointer foo = (XPointer) 0;
 ; return 0; }
 EOF
-if { (eval echo configure:3442: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3465: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_xpointer=yes
 else
   rm -rf conftest*
   ac_cv_xpointer=yes
 else
@@ -3465,17 +3488,17 @@ have_xmu=no
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/Xmu/Error.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/Xmu/Error.h""... $ac_c" 1>&6
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/Xmu/Error.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/Xmu/Error.h""... $ac_c" 1>&6
-echo "configure:3480: checking for X11/Xmu/Error.h" >&5
+echo "configure:3503: checking for X11/Xmu/Error.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3485 "configure"
+#line 3508 "configure"
 #include "confdefs.h"
 #include <X11/Xmu/Error.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <X11/Xmu/Error.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3490: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3513: \"$ac_try\") 1>&5; (eval $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*
@@ -3526,7 +3549,7 @@ if test "$have_xmu" = yes ; then
   case "$host" in
     *-sunos4*)
     echo $ac_n "checking for the SunOS 4.1.x _get_wmShellWidgetClass bug""... $ac_c" 1>&6
   case "$host" in
     *-sunos4*)
     echo $ac_n "checking for the SunOS 4.1.x _get_wmShellWidgetClass bug""... $ac_c" 1>&6
-echo "configure:3541: checking for the SunOS 4.1.x _get_wmShellWidgetClass bug" >&5
+echo "configure:3564: checking for the SunOS 4.1.x _get_wmShellWidgetClass bug" >&5
 if eval "test \"`echo '$''{'ac_cv_sunos_xmu_bug'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_sunos_xmu_bug'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3539,14 +3562,14 @@ else
                     # with X libraries because we know it's SunOS.
                     LDFLAGS="$LDFLAGS -lXmu -lXt -lX11 -lXext -lm"
                     cat > conftest.$ac_ext <<EOF
                     # with X libraries because we know it's SunOS.
                     LDFLAGS="$LDFLAGS -lXmu -lXt -lX11 -lXext -lm"
                     cat > conftest.$ac_ext <<EOF
-#line 3554 "configure"
+#line 3577 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:3561: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3584: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_sunos_xmu_bug=no
 else
   rm -rf conftest*
   ac_cv_sunos_xmu_bug=no
 else
@@ -3562,21 +3585,21 @@ fi
 echo "$ac_t""$ac_cv_sunos_xmu_bug" 1>&6
     if test "$ac_cv_sunos_xmu_bug" = yes ; then
       echo $ac_n "checking whether the compiler understands -static""... $ac_c" 1>&6
 echo "$ac_t""$ac_cv_sunos_xmu_bug" 1>&6
     if test "$ac_cv_sunos_xmu_bug" = yes ; then
       echo $ac_n "checking whether the compiler understands -static""... $ac_c" 1>&6
-echo "configure:3577: checking whether the compiler understands -static" >&5
+echo "configure:3600: checking whether the compiler understands -static" >&5
 if eval "test \"`echo '$''{'ac_cv_ld_static'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_save_LDFLAGS="$LDFLAGS"
                       LDFLAGS="$LDFLAGS -static"
                       cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_ld_static'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_save_LDFLAGS="$LDFLAGS"
                       LDFLAGS="$LDFLAGS -static"
                       cat > conftest.$ac_ext <<EOF
-#line 3584 "configure"
+#line 3607 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:3591: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3614: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_ld_static=yes
 else
   rm -rf conftest*
   ac_cv_ld_static=yes
 else
@@ -3659,7 +3682,7 @@ fi
 
     /*)
      echo $ac_n "checking for SGI SCREEN_SAVER headers""... $ac_c" 1>&6
 
     /*)
      echo $ac_n "checking for SGI SCREEN_SAVER headers""... $ac_c" 1>&6
-echo "configure:3674: checking for SGI SCREEN_SAVER headers" >&5
+echo "configure:3697: checking for SGI SCREEN_SAVER headers" >&5
      d=$with_sgi/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
      d=$with_sgi/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -3669,7 +3692,7 @@ echo "configure:3674: checking for SGI SCREEN_SAVER headers" >&5
      fi
 
      echo $ac_n "checking for SGI SCREEN_SAVER libs""... $ac_c" 1>&6
      fi
 
      echo $ac_n "checking for SGI SCREEN_SAVER libs""... $ac_c" 1>&6
-echo "configure:3684: checking for SGI SCREEN_SAVER libs" >&5
+echo "configure:3707: checking for SGI SCREEN_SAVER libs" >&5
      d=$with_sgi/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
      d=$with_sgi/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -3702,17 +3725,17 @@ if test "$with_sgi" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/XScreenSaver.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/XScreenSaver.h""... $ac_c" 1>&6
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/XScreenSaver.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/XScreenSaver.h""... $ac_c" 1>&6
-echo "configure:3717: checking for X11/extensions/XScreenSaver.h" >&5
+echo "configure:3740: checking for X11/extensions/XScreenSaver.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3722 "configure"
+#line 3745 "configure"
 #include "confdefs.h"
 #include <X11/extensions/XScreenSaver.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <X11/extensions/XScreenSaver.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3727: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3750: \"$ac_try\") 1>&5; (eval $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*
@@ -3769,7 +3792,7 @@ fi
 
     /*)
      echo $ac_n "checking for MIT-SCREEN-SAVER headers""... $ac_c" 1>&6
 
     /*)
      echo $ac_n "checking for MIT-SCREEN-SAVER headers""... $ac_c" 1>&6
-echo "configure:3784: checking for MIT-SCREEN-SAVER headers" >&5
+echo "configure:3807: checking for MIT-SCREEN-SAVER headers" >&5
      d=$with_mit/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
      d=$with_mit/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -3779,7 +3802,7 @@ echo "configure:3784: checking for MIT-SCREEN-SAVER headers" >&5
      fi
 
      echo $ac_n "checking for MIT-SCREEN-SAVER libs""... $ac_c" 1>&6
      fi
 
      echo $ac_n "checking for MIT-SCREEN-SAVER libs""... $ac_c" 1>&6
-echo "configure:3794: checking for MIT-SCREEN-SAVER libs" >&5
+echo "configure:3817: checking for MIT-SCREEN-SAVER libs" >&5
      d=$with_mit/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
      d=$with_mit/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -3812,17 +3835,17 @@ if test "$with_mit" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/scrnsaver.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/scrnsaver.h""... $ac_c" 1>&6
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/scrnsaver.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/scrnsaver.h""... $ac_c" 1>&6
-echo "configure:3827: checking for X11/extensions/scrnsaver.h" >&5
+echo "configure:3850: checking for X11/extensions/scrnsaver.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3832 "configure"
+#line 3855 "configure"
 #include "confdefs.h"
 #include <X11/extensions/scrnsaver.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <X11/extensions/scrnsaver.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3837: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3860: \"$ac_try\") 1>&5; (eval $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*
@@ -3867,7 +3890,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for XScreenSaverRegister in -lXext""... $ac_c" 1>&6
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for XScreenSaverRegister in -lXext""... $ac_c" 1>&6
-echo "configure:3882: checking for XScreenSaverRegister in -lXext" >&5
+echo "configure:3905: checking for XScreenSaverRegister in -lXext" >&5
 ac_lib_var=`echo Xext'_'XScreenSaverRegister | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo Xext'_'XScreenSaverRegister | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3875,7 +3898,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3890 "configure"
+#line 3913 "configure"
 #include "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
@@ -3886,7 +3909,7 @@ int main() {
 XScreenSaverRegister()
 ; return 0; }
 EOF
 XScreenSaverRegister()
 ; return 0; }
 EOF
-if { (eval echo configure:3901: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3924: \"$ac_link\") 1>&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
@@ -3933,7 +3956,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for XScreenSaverRegister in -lXExExt""... $ac_c" 1>&6
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for XScreenSaverRegister in -lXExExt""... $ac_c" 1>&6
-echo "configure:3948: checking for XScreenSaverRegister in -lXExExt" >&5
+echo "configure:3971: checking for XScreenSaverRegister in -lXExExt" >&5
 ac_lib_var=`echo XExExt'_'XScreenSaverRegister | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo XExExt'_'XScreenSaverRegister | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3941,7 +3964,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXExExt -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lXExExt -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3956 "configure"
+#line 3979 "configure"
 #include "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
@@ -3952,7 +3975,7 @@ int main() {
 XScreenSaverRegister()
 ; return 0; }
 EOF
 XScreenSaverRegister()
 ; return 0; }
 EOF
-if { (eval echo configure:3967: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3990: \"$ac_link\") 1>&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
@@ -4002,7 +4025,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for XScreenSaverRegister in -lXss""... $ac_c" 1>&6
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for XScreenSaverRegister in -lXss""... $ac_c" 1>&6
-echo "configure:4017: checking for XScreenSaverRegister in -lXss" >&5
+echo "configure:4040: checking for XScreenSaverRegister in -lXss" >&5
 ac_lib_var=`echo Xss'_'XScreenSaverRegister | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo Xss'_'XScreenSaverRegister | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4010,7 +4033,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXss -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lXss -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4025 "configure"
+#line 4048 "configure"
 #include "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
@@ -4021,7 +4044,7 @@ int main() {
 XScreenSaverRegister()
 ; return 0; }
 EOF
 XScreenSaverRegister()
 ; return 0; }
 EOF
-if { (eval echo configure:4036: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4059: \"$ac_link\") 1>&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
@@ -4087,7 +4110,7 @@ fi
 
     /*)
      echo $ac_n "checking for XIDLE headers""... $ac_c" 1>&6
 
     /*)
      echo $ac_n "checking for XIDLE headers""... $ac_c" 1>&6
-echo "configure:4102: checking for XIDLE headers" >&5
+echo "configure:4125: checking for XIDLE headers" >&5
      d=$with_xidle/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
      d=$with_xidle/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -4097,7 +4120,7 @@ echo "configure:4102: checking for XIDLE headers" >&5
      fi
 
      echo $ac_n "checking for XIDLE libs""... $ac_c" 1>&6
      fi
 
      echo $ac_n "checking for XIDLE libs""... $ac_c" 1>&6
-echo "configure:4112: checking for XIDLE libs" >&5
+echo "configure:4135: checking for XIDLE libs" >&5
      d=$with_xidle/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
      d=$with_xidle/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -4130,17 +4153,17 @@ if test "$with_xidle" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/xidle.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/xidle.h""... $ac_c" 1>&6
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/xidle.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/xidle.h""... $ac_c" 1>&6
-echo "configure:4145: checking for X11/extensions/xidle.h" >&5
+echo "configure:4168: checking for X11/extensions/xidle.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4150 "configure"
+#line 4173 "configure"
 #include "confdefs.h"
 #include <X11/extensions/xidle.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <X11/extensions/xidle.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4155: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4178: \"$ac_try\") 1>&5; (eval $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*
@@ -4196,7 +4219,7 @@ fi
 
     /*)
      echo $ac_n "checking for SGI-VIDEO-CONTROL headers""... $ac_c" 1>&6
 
     /*)
      echo $ac_n "checking for SGI-VIDEO-CONTROL headers""... $ac_c" 1>&6
-echo "configure:4211: checking for SGI-VIDEO-CONTROL headers" >&5
+echo "configure:4234: checking for SGI-VIDEO-CONTROL headers" >&5
      d=$with_sgivc/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
      d=$with_sgivc/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -4206,7 +4229,7 @@ echo "configure:4211: checking for SGI-VIDEO-CONTROL headers" >&5
      fi
 
      echo $ac_n "checking for SGI-VIDEO-CONTROL libs""... $ac_c" 1>&6
      fi
 
      echo $ac_n "checking for SGI-VIDEO-CONTROL libs""... $ac_c" 1>&6
-echo "configure:4221: checking for SGI-VIDEO-CONTROL libs" >&5
+echo "configure:4244: checking for SGI-VIDEO-CONTROL libs" >&5
      d=$with_sgivc/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
      d=$with_sgivc/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -4241,17 +4264,17 @@ if test "$with_sgivc" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/XSGIvc.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/XSGIvc.h""... $ac_c" 1>&6
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/XSGIvc.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/XSGIvc.h""... $ac_c" 1>&6
-echo "configure:4256: checking for X11/extensions/XSGIvc.h" >&5
+echo "configure:4279: checking for X11/extensions/XSGIvc.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4261 "configure"
+#line 4284 "configure"
 #include "confdefs.h"
 #include <X11/extensions/XSGIvc.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <X11/extensions/XSGIvc.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4266: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4289: \"$ac_try\") 1>&5; (eval $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*
@@ -4295,7 +4318,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for XSGIvcQueryGammaMap in -lXsgivc""... $ac_c" 1>&6
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for XSGIvcQueryGammaMap in -lXsgivc""... $ac_c" 1>&6
-echo "configure:4310: checking for XSGIvcQueryGammaMap in -lXsgivc" >&5
+echo "configure:4333: checking for XSGIvcQueryGammaMap in -lXsgivc" >&5
 ac_lib_var=`echo Xsgivc'_'XSGIvcQueryGammaMap | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo Xsgivc'_'XSGIvcQueryGammaMap | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4303,7 +4326,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXsgivc -lXext -lX11 $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lXsgivc -lXext -lX11 $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4318 "configure"
+#line 4341 "configure"
 #include "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
@@ -4314,7 +4337,7 @@ int main() {
 XSGIvcQueryGammaMap()
 ; return 0; }
 EOF
 XSGIvcQueryGammaMap()
 ; return 0; }
 EOF
-if { (eval echo configure:4329: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4352: \"$ac_link\") 1>&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
@@ -4379,7 +4402,7 @@ fi
 
     /*)
      echo $ac_n "checking for DPMS headers""... $ac_c" 1>&6
 
     /*)
      echo $ac_n "checking for DPMS headers""... $ac_c" 1>&6
-echo "configure:4394: checking for DPMS headers" >&5
+echo "configure:4417: checking for DPMS headers" >&5
      d=$with_dpms/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
      d=$with_dpms/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -4389,7 +4412,7 @@ echo "configure:4394: checking for DPMS headers" >&5
      fi
 
      echo $ac_n "checking for DPMS libs""... $ac_c" 1>&6
      fi
 
      echo $ac_n "checking for DPMS libs""... $ac_c" 1>&6
-echo "configure:4404: checking for DPMS libs" >&5
+echo "configure:4427: checking for DPMS libs" >&5
      d=$with_dpms/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
      d=$with_dpms/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -4424,17 +4447,17 @@ if test "$with_dpms" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/dpms.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/dpms.h""... $ac_c" 1>&6
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/dpms.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/dpms.h""... $ac_c" 1>&6
-echo "configure:4439: checking for X11/extensions/dpms.h" >&5
+echo "configure:4462: checking for X11/extensions/dpms.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4444 "configure"
+#line 4467 "configure"
 #include "confdefs.h"
 #include <X11/extensions/dpms.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <X11/extensions/dpms.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4449: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4472: \"$ac_try\") 1>&5; (eval $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*
@@ -4478,7 +4501,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for DPMSInfo in -lXdpms""... $ac_c" 1>&6
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for DPMSInfo in -lXdpms""... $ac_c" 1>&6
-echo "configure:4493: checking for DPMSInfo in -lXdpms" >&5
+echo "configure:4516: checking for DPMSInfo in -lXdpms" >&5
 ac_lib_var=`echo Xdpms'_'DPMSInfo | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo Xdpms'_'DPMSInfo | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4486,7 +4509,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXdpms -lXext -lX11 $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lXdpms -lXext -lX11 $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4501 "configure"
+#line 4524 "configure"
 #include "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
@@ -4497,7 +4520,7 @@ int main() {
 DPMSInfo()
 ; return 0; }
 EOF
 DPMSInfo()
 ; return 0; }
 EOF
-if { (eval echo configure:4512: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4535: \"$ac_link\") 1>&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
@@ -4562,7 +4585,7 @@ fi
 
     /*)
      echo $ac_n "checking for xf86vmode headers""... $ac_c" 1>&6
 
     /*)
      echo $ac_n "checking for xf86vmode headers""... $ac_c" 1>&6
-echo "configure:4577: checking for xf86vmode headers" >&5
+echo "configure:4600: checking for xf86vmode headers" >&5
      d=$with_xf86vmode/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
      d=$with_xf86vmode/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -4572,7 +4595,7 @@ echo "configure:4577: checking for xf86vmode headers" >&5
      fi
 
      echo $ac_n "checking for xf86vmode libs""... $ac_c" 1>&6
      fi
 
      echo $ac_n "checking for xf86vmode libs""... $ac_c" 1>&6
-echo "configure:4587: checking for xf86vmode libs" >&5
+echo "configure:4610: checking for xf86vmode libs" >&5
      d=$with_xf86vmode/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
      d=$with_xf86vmode/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -4607,17 +4630,17 @@ if test "$with_xf86vmode" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/xf86vmode.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/xf86vmode.h""... $ac_c" 1>&6
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/xf86vmode.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/xf86vmode.h""... $ac_c" 1>&6
-echo "configure:4622: checking for X11/extensions/xf86vmode.h" >&5
+echo "configure:4645: checking for X11/extensions/xf86vmode.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4627 "configure"
+#line 4650 "configure"
 #include "confdefs.h"
 #include <X11/extensions/xf86vmode.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <X11/extensions/xf86vmode.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4632: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4655: \"$ac_try\") 1>&5; (eval $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*
@@ -4661,7 +4684,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for XF86VidModeGetViewPort in -lXxf86vm""... $ac_c" 1>&6
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for XF86VidModeGetViewPort in -lXxf86vm""... $ac_c" 1>&6
-echo "configure:4676: checking for XF86VidModeGetViewPort in -lXxf86vm" >&5
+echo "configure:4699: checking for XF86VidModeGetViewPort in -lXxf86vm" >&5
 ac_lib_var=`echo Xxf86vm'_'XF86VidModeGetViewPort | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo Xxf86vm'_'XF86VidModeGetViewPort | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4669,7 +4692,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXxf86vm -lXext -lX11 $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lXxf86vm -lXext -lX11 $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4684 "configure"
+#line 4707 "configure"
 #include "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
@@ -4680,7 +4703,7 @@ int main() {
 XF86VidModeGetViewPort()
 ; return 0; }
 EOF
 XF86VidModeGetViewPort()
 ; return 0; }
 EOF
-if { (eval echo configure:4695: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4718: \"$ac_link\") 1>&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
@@ -4734,7 +4757,7 @@ fi
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
-#line 4749 "configure"
+#line 4772 "configure"
 #include "confdefs.h"
 #include <X11/XHPlib.h>
 EOF
 #include "confdefs.h"
 #include <X11/XHPlib.h>
 EOF
@@ -4772,7 +4795,7 @@ fi
 if test "$with_proc_interrupts" = yes; then
 
    echo $ac_n "checking whether /proc/interrupts contains keyboard data""... $ac_c" 1>&6
 if test "$with_proc_interrupts" = yes; then
 
    echo $ac_n "checking whether /proc/interrupts contains keyboard data""... $ac_c" 1>&6
-echo "configure:4787: checking whether /proc/interrupts contains keyboard data" >&5
+echo "configure:4810: checking whether /proc/interrupts contains keyboard data" >&5
 if eval "test \"`echo '$''{'ac_cv_have_proc_interrupts'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_have_proc_interrupts'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4905,7 +4928,7 @@ fi
 
     /*)
      echo $ac_n "checking for PAM headers""... $ac_c" 1>&6
 
     /*)
      echo $ac_n "checking for PAM headers""... $ac_c" 1>&6
-echo "configure:4920: checking for PAM headers" >&5
+echo "configure:4943: checking for PAM headers" >&5
      d=$with_pam/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
      d=$with_pam/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -4915,7 +4938,7 @@ echo "configure:4920: checking for PAM headers" >&5
      fi
 
      echo $ac_n "checking for PAM libs""... $ac_c" 1>&6
      fi
 
      echo $ac_n "checking for PAM libs""... $ac_c" 1>&6
-echo "configure:4930: checking for PAM libs" >&5
+echo "configure:4953: checking for PAM libs" >&5
      d=$with_pam/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
      d=$with_pam/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -4941,7 +4964,7 @@ echo "configure:4930: checking for PAM libs" >&5
 
 if test "$enable_locking" = yes -a "$with_pam" = yes; then
   echo $ac_n "checking for PAM""... $ac_c" 1>&6
 
 if test "$enable_locking" = yes -a "$with_pam" = yes; then
   echo $ac_n "checking for PAM""... $ac_c" 1>&6
-echo "configure:4956: checking for PAM" >&5
+echo "configure:4979: checking for PAM" >&5
 if eval "test \"`echo '$''{'ac_cv_pam'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_pam'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4952,14 +4975,14 @@ else
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
-#line 4967 "configure"
+#line 4990 "configure"
 #include "confdefs.h"
 #include <security/pam_appl.h>
 int main() {
 
 ; return 0; }
 EOF
 #include "confdefs.h"
 #include <security/pam_appl.h>
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:4974: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4997: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_pam=yes
 else
   rm -rf conftest*
   ac_cv_pam=yes
 else
@@ -4984,7 +5007,7 @@ EOF
     # libpam typically requires dlopen and dlsym.  On FreeBSD,
     # those are in libc.  On Linux and Solaris, they're in libdl.
     echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
     # libpam typically requires dlopen and dlsym.  On FreeBSD,
     # those are in libc.  On Linux and Solaris, they're in libdl.
     echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:4999: checking for dlopen in -ldl" >&5
+echo "configure:5022: checking for dlopen in -ldl" >&5
 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4992,7 +5015,7 @@ else
   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 5007 "configure"
+#line 5030 "configure"
 #include "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
@@ -5003,7 +5026,7 @@ int main() {
 dlopen()
 ; return 0; }
 EOF
 dlopen()
 ; return 0; }
 EOF
-if { (eval echo configure:5018: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5041: \"$ac_link\") 1>&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
@@ -5025,12 +5048,12 @@ fi
 
 
     echo $ac_n "checking how to call pam_strerror""... $ac_c" 1>&6
 
 
     echo $ac_n "checking how to call pam_strerror""... $ac_c" 1>&6
-echo "configure:5040: checking how to call pam_strerror" >&5
+echo "configure:5063: checking how to call pam_strerror" >&5
     if eval "test \"`echo '$''{'ac_cv_pam_strerror_args'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
     if eval "test \"`echo '$''{'ac_cv_pam_strerror_args'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5045 "configure"
+#line 5068 "configure"
 #include "confdefs.h"
 #include <stdio.h>
                       #include <stdlib.h>
 #include "confdefs.h"
 #include <stdio.h>
                       #include <stdlib.h>
@@ -5040,7 +5063,7 @@ pam_handle_t *pamh = 0;
                       char *s = pam_strerror(pamh, PAM_SUCCESS);
 ; return 0; }
 EOF
                       char *s = pam_strerror(pamh, PAM_SUCCESS);
 ; return 0; }
 EOF
-if { (eval echo configure:5055: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5078: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_pam_strerror_args=2
 else
   rm -rf conftest*
   ac_pam_strerror_args=2
 else
@@ -5048,7 +5071,7 @@ else
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   cat > conftest.$ac_ext <<EOF
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   cat > conftest.$ac_ext <<EOF
-#line 5063 "configure"
+#line 5086 "configure"
 #include "confdefs.h"
 #include <stdio.h>
                                       #include <stdlib.h>
 #include "confdefs.h"
 #include <stdio.h>
                                       #include <stdlib.h>
@@ -5058,7 +5081,7 @@ char *s =
                                        pam_strerror(PAM_SUCCESS);
 ; return 0; }
 EOF
                                        pam_strerror(PAM_SUCCESS);
 ; return 0; }
 EOF
-if { (eval echo configure:5073: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5096: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_pam_strerror_args=1
 else
   rm -rf conftest*
   ac_pam_strerror_args=1
 else
@@ -5096,6 +5119,7 @@ fi
 ###############################################################################
 
 have_kerberos=no
 ###############################################################################
 
 have_kerberos=no
+have_kerberos5=no
 with_kerberos_req=unspecified
 
 # Check whether --with-kerberos or --without-kerberos was given.
 with_kerberos_req=unspecified
 
 # Check whether --with-kerberos or --without-kerberos was given.
@@ -5114,7 +5138,7 @@ fi
 
     /*)
      echo $ac_n "checking for Kerberos headers""... $ac_c" 1>&6
 
     /*)
      echo $ac_n "checking for Kerberos headers""... $ac_c" 1>&6
-echo "configure:5129: checking for Kerberos headers" >&5
+echo "configure:5153: checking for Kerberos headers" >&5
      d=$with_kerberos/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
      d=$with_kerberos/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -5124,7 +5148,7 @@ echo "configure:5129: checking for Kerberos headers" >&5
      fi
 
      echo $ac_n "checking for Kerberos libs""... $ac_c" 1>&6
      fi
 
      echo $ac_n "checking for Kerberos libs""... $ac_c" 1>&6
-echo "configure:5139: checking for Kerberos libs" >&5
+echo "configure:5163: checking for Kerberos libs" >&5
      d=$with_kerberos/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
      d=$with_kerberos/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -5149,8 +5173,8 @@ echo "configure:5139: checking for Kerberos libs" >&5
   
 
 if test "$enable_locking" = yes -a "$with_kerberos" = yes; then
   
 
 if test "$enable_locking" = yes -a "$with_kerberos" = yes; then
-  echo $ac_n "checking for Kerberos""... $ac_c" 1>&6
-echo "configure:5165: checking for Kerberos" >&5
+  echo $ac_n "checking for Kerberos 4""... $ac_c" 1>&6
+echo "configure:5189: checking for Kerberos 4" >&5
 if eval "test \"`echo '$''{'ac_cv_kerberos'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_kerberos'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5161,14 +5185,14 @@ else
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
-#line 5176 "configure"
+#line 5200 "configure"
 #include "confdefs.h"
 #include <krb.h>
 int main() {
 
 ; return 0; }
 EOF
 #include "confdefs.h"
 #include <krb.h>
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:5183: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5207: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_kerberos=yes
 else
   rm -rf conftest*
   ac_cv_kerberos=yes
 else
@@ -5182,22 +5206,78 @@ rm -f conftest*
 fi
 
 echo "$ac_t""$ac_cv_kerberos" 1>&6
 fi
 
 echo "$ac_t""$ac_cv_kerberos" 1>&6
+  echo $ac_n "checking for Kerberos 5""... $ac_c" 1>&6
+echo "configure:5222: checking for Kerberos 5" >&5
+if eval "test \"`echo '$''{'ac_cv_kerberos5'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+  ac_save_CPPFLAGS="$CPPFLAGS"
+  if test \! -z "$includedir" ; then 
+    CPPFLAGS="$CPPFLAGS -I$includedir"
+  fi
+  CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+  cat > conftest.$ac_ext <<EOF
+#line 5233 "configure"
+#include "confdefs.h"
+#include <kerberosIV/krb.h>
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:5240: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_kerberos5=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_kerberos5=no
+fi
+rm -f conftest*
+  CPPFLAGS="$ac_save_CPPFLAGS"
+fi
+
+echo "$ac_t""$ac_cv_kerberos5" 1>&6
+
   if test "$ac_cv_kerberos" = yes ; then
     have_kerberos=yes
     cat >> confdefs.h <<\EOF
 #define HAVE_KERBEROS 1
 EOF
 
   if test "$ac_cv_kerberos" = yes ; then
     have_kerberos=yes
     cat >> confdefs.h <<\EOF
 #define HAVE_KERBEROS 1
 EOF
 
+  fi
 
 
+  if test "$ac_cv_kerberos5" = yes ; then
+    have_kerberos=yes
+    have_kerberos5=yes
+    cat >> confdefs.h <<\EOF
+#define HAVE_KERBEROS 1
+EOF
+
+    cat >> confdefs.h <<\EOF
+#define HAVE_KERBEROS5 1
+EOF
+
+  fi
+
+  if test "$have_kerberos5" = yes ; then
+    # from Matt Knopp <mhat@infocalypse.netlag.com>
+    # (who got it from amu@mit.edu)
+    PASSWD_LIBS="$PASSWD_LIBS -lkrb4 -ldes425 -lkrb5 -lk5crypto -lcrypt -lcom_err"
+  elif test "$have_kerberos" = yes ; then
     # from Tim Showalter <tjs+@andrew.cmu.edu>
     PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes"
     # from Tim Showalter <tjs+@andrew.cmu.edu>
     PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes"
+  fi
+
+  if test "$have_kerberos" = yes ; then
     echo $ac_n "checking for res_search""... $ac_c" 1>&6
     echo $ac_n "checking for res_search""... $ac_c" 1>&6
-echo "configure:5207: checking for res_search" >&5
+echo "configure:5287: checking for res_search" >&5
 if eval "test \"`echo '$''{'ac_cv_func_res_search'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_func_res_search'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5212 "configure"
+#line 5292 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char res_search(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char res_search(); below.  */
@@ -5220,7 +5300,7 @@ res_search();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:5235: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5315: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_res_search=yes"
 else
   rm -rf conftest*
   eval "ac_cv_func_res_search=yes"
 else
@@ -5238,7 +5318,7 @@ if eval "test \"`echo '$ac_cv_func_'res_search`\" = yes"; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for res_search in -lresolv""... $ac_c" 1>&6
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for res_search in -lresolv""... $ac_c" 1>&6
-echo "configure:5253: checking for res_search in -lresolv" >&5
+echo "configure:5333: checking for res_search in -lresolv" >&5
 ac_lib_var=`echo resolv'_'res_search | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo resolv'_'res_search | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5246,7 +5326,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lresolv  $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lresolv  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5261 "configure"
+#line 5341 "configure"
 #include "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
@@ -5257,7 +5337,7 @@ int main() {
 res_search()
 ; return 0; }
 EOF
 res_search()
 ; return 0; }
 EOF
-if { (eval echo configure:5272: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5352: \"$ac_link\") 1>&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
@@ -5281,7 +5361,6 @@ fi
 
 fi
 
 
 fi
 
-
   fi
 fi
 
   fi
 fi
 
@@ -5313,7 +5392,7 @@ fi
 
     /*)
      echo $ac_n "checking for shadow password headers""... $ac_c" 1>&6
 
     /*)
      echo $ac_n "checking for shadow password headers""... $ac_c" 1>&6
-echo "configure:5328: checking for shadow password headers" >&5
+echo "configure:5407: checking for shadow password headers" >&5
      d=$with_shadow/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
      d=$with_shadow/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -5323,7 +5402,7 @@ echo "configure:5328: checking for shadow password headers" >&5
      fi
 
      echo $ac_n "checking for shadow password libs""... $ac_c" 1>&6
      fi
 
      echo $ac_n "checking for shadow password libs""... $ac_c" 1>&6
-echo "configure:5338: checking for shadow password libs" >&5
+echo "configure:5417: checking for shadow password libs" >&5
      d=$with_shadow/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
      d=$with_shadow/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -5361,7 +5440,7 @@ fi
 
 if test "$with_shadow" = yes ; then
   echo $ac_n "checking for Sun-style shadow passwords""... $ac_c" 1>&6
 
 if test "$with_shadow" = yes ; then
   echo $ac_n "checking for Sun-style shadow passwords""... $ac_c" 1>&6
-echo "configure:5376: checking for Sun-style shadow passwords" >&5
+echo "configure:5455: checking for Sun-style shadow passwords" >&5
 if eval "test \"`echo '$''{'ac_cv_sun_adjunct'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_sun_adjunct'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5372,7 +5451,7 @@ else
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
-#line 5387 "configure"
+#line 5466 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
                                     #include <unistd.h>
 #include "confdefs.h"
 #include <stdlib.h>
                                     #include <unistd.h>
@@ -5385,7 +5464,7 @@ struct passwd_adjunct *p = getpwanam("nobody");
                        const char *pw = p->pwa_passwd;
 ; return 0; }
 EOF
                        const char *pw = p->pwa_passwd;
 ; return 0; }
 EOF
-if { (eval echo configure:5400: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5479: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_sun_adjunct=yes
 else
   rm -rf conftest*
   ac_cv_sun_adjunct=yes
 else
@@ -5415,7 +5494,7 @@ fi
 
 if test "$with_shadow" = yes ; then
   echo $ac_n "checking for DEC-style shadow passwords""... $ac_c" 1>&6
 
 if test "$with_shadow" = yes ; then
   echo $ac_n "checking for DEC-style shadow passwords""... $ac_c" 1>&6
-echo "configure:5430: checking for DEC-style shadow passwords" >&5
+echo "configure:5509: checking for DEC-style shadow passwords" >&5
 if eval "test \"`echo '$''{'ac_cv_enhanced_passwd'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_enhanced_passwd'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5426,7 +5505,7 @@ else
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
-#line 5441 "configure"
+#line 5520 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
                                     #include <unistd.h>
 #include "confdefs.h"
 #include <stdlib.h>
                                     #include <unistd.h>
@@ -5443,7 +5522,7 @@ struct pr_passwd *p;
                        pw = p->ufld.fd_encrypt;
 ; return 0; }
 EOF
                        pw = p->ufld.fd_encrypt;
 ; return 0; }
 EOF
-if { (eval echo configure:5458: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5537: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_enhanced_passwd=yes
 else
   rm -rf conftest*
   ac_cv_enhanced_passwd=yes
 else
@@ -5467,7 +5546,7 @@ echo "$ac_t""$ac_cv_enhanced_passwd" 1>&6
     # But on DEC, it's in -lsecurity.
     #
     echo $ac_n "checking for getprpwnam in -lprot""... $ac_c" 1>&6
     # But on DEC, it's in -lsecurity.
     #
     echo $ac_n "checking for getprpwnam in -lprot""... $ac_c" 1>&6
-echo "configure:5482: checking for getprpwnam in -lprot" >&5
+echo "configure:5561: checking for getprpwnam in -lprot" >&5
 ac_lib_var=`echo prot'_'getprpwnam | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo prot'_'getprpwnam | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5475,7 +5554,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lprot -lx $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lprot -lx $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5490 "configure"
+#line 5569 "configure"
 #include "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
@@ -5486,7 +5565,7 @@ int main() {
 getprpwnam()
 ; return 0; }
 EOF
 getprpwnam()
 ; return 0; }
 EOF
-if { (eval echo configure:5501: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5580: \"$ac_link\") 1>&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
@@ -5505,7 +5584,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for getprpwnam in -lsecurity""... $ac_c" 1>&6
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for getprpwnam in -lsecurity""... $ac_c" 1>&6
-echo "configure:5520: checking for getprpwnam in -lsecurity" >&5
+echo "configure:5599: checking for getprpwnam in -lsecurity" >&5
 ac_lib_var=`echo security'_'getprpwnam | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo security'_'getprpwnam | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5513,7 +5592,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsecurity  $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lsecurity  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5528 "configure"
+#line 5607 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5524,7 +5603,7 @@ int main() {
 getprpwnam()
 ; return 0; }
 EOF
 getprpwnam()
 ; return 0; }
 EOF
-if { (eval echo configure:5539: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5618: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5557,7 +5636,7 @@ fi
 
 if test "$with_shadow" = yes ; then
   echo $ac_n "checking for HP-style shadow passwords""... $ac_c" 1>&6
 
 if test "$with_shadow" = yes ; then
   echo $ac_n "checking for HP-style shadow passwords""... $ac_c" 1>&6
-echo "configure:5572: checking for HP-style shadow passwords" >&5
+echo "configure:5651: checking for HP-style shadow passwords" >&5
 if eval "test \"`echo '$''{'ac_cv_hpux_passwd'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_hpux_passwd'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5568,7 +5647,7 @@ else
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
-#line 5583 "configure"
+#line 5662 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
                                     #include <unistd.h>
 #include "confdefs.h"
 #include <stdlib.h>
                                     #include <unistd.h>
@@ -5581,7 +5660,7 @@ struct s_passwd *p = getspwnam("nobody");
                        const char *pw = p->pw_passwd;
 ; return 0; }
 EOF
                        const char *pw = p->pw_passwd;
 ; return 0; }
 EOF
-if { (eval echo configure:5596: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5675: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_hpux_passwd=yes
 else
   rm -rf conftest*
   ac_cv_hpux_passwd=yes
 else
@@ -5602,7 +5681,7 @@ echo "$ac_t""$ac_cv_hpux_passwd" 1>&6
 
     # on HPUX, bigcrypt is in -lsec
     echo $ac_n "checking for bigcrypt in -lsec""... $ac_c" 1>&6
 
     # on HPUX, bigcrypt is in -lsec
     echo $ac_n "checking for bigcrypt in -lsec""... $ac_c" 1>&6
-echo "configure:5617: checking for bigcrypt in -lsec" >&5
+echo "configure:5696: checking for bigcrypt in -lsec" >&5
 ac_lib_var=`echo sec'_'bigcrypt | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo sec'_'bigcrypt | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5610,7 +5689,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsec  $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lsec  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5625 "configure"
+#line 5704 "configure"
 #include "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
@@ -5621,7 +5700,7 @@ int main() {
 bigcrypt()
 ; return 0; }
 EOF
 bigcrypt()
 ; return 0; }
 EOF
-if { (eval echo configure:5636: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5715: \"$ac_link\") 1>&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
@@ -5659,7 +5738,7 @@ fi
 
 if test "$with_shadow" = yes ; then
   echo $ac_n "checking for FreeBSD-style shadow passwords""... $ac_c" 1>&6
 
 if test "$with_shadow" = yes ; then
   echo $ac_n "checking for FreeBSD-style shadow passwords""... $ac_c" 1>&6
-echo "configure:5674: checking for FreeBSD-style shadow passwords" >&5
+echo "configure:5753: checking for FreeBSD-style shadow passwords" >&5
 if eval "test \"`echo '$''{'ac_cv_master_passwd'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_master_passwd'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5685,7 +5764,7 @@ fi
 
 if test "$with_shadow" = yes ; then
   echo $ac_n "checking for generic shadow passwords""... $ac_c" 1>&6
 
 if test "$with_shadow" = yes ; then
   echo $ac_n "checking for generic shadow passwords""... $ac_c" 1>&6
-echo "configure:5700: checking for generic shadow passwords" >&5
+echo "configure:5779: checking for generic shadow passwords" >&5
 if eval "test \"`echo '$''{'ac_cv_shadow'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_shadow'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5696,7 +5775,7 @@ else
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
-#line 5711 "configure"
+#line 5790 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
                                     #include <unistd.h>
 #include "confdefs.h"
 #include <stdlib.h>
                                     #include <unistd.h>
@@ -5708,7 +5787,7 @@ struct spwd *p = getspnam("nobody");
                        const char *pw = p->sp_pwdp;
 ; return 0; }
 EOF
                        const char *pw = p->sp_pwdp;
 ; return 0; }
 EOF
-if { (eval echo configure:5723: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5802: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_shadow=yes
 else
   rm -rf conftest*
   ac_cv_shadow=yes
 else
@@ -5729,7 +5808,7 @@ echo "$ac_t""$ac_cv_shadow" 1>&6
     # On some systems (UnixWare 2.1), getspnam() is in -lgen instead of -lc.
     have_getspnam=no
     echo $ac_n "checking for getspnam in -lc""... $ac_c" 1>&6
     # On some systems (UnixWare 2.1), getspnam() is in -lgen instead of -lc.
     have_getspnam=no
     echo $ac_n "checking for getspnam in -lc""... $ac_c" 1>&6
-echo "configure:5744: checking for getspnam in -lc" >&5
+echo "configure:5823: checking for getspnam in -lc" >&5
 ac_lib_var=`echo c'_'getspnam | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo c'_'getspnam | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5737,7 +5816,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lc  $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lc  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5752 "configure"
+#line 5831 "configure"
 #include "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
@@ -5748,7 +5827,7 @@ int main() {
 getspnam()
 ; return 0; }
 EOF
 getspnam()
 ; return 0; }
 EOF
-if { (eval echo configure:5763: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5842: \"$ac_link\") 1>&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
@@ -5770,7 +5849,7 @@ fi
 
     if test "$have_getspnam" = no ; then
       echo $ac_n "checking for getspnam in -lgen""... $ac_c" 1>&6
 
     if test "$have_getspnam" = no ; then
       echo $ac_n "checking for getspnam in -lgen""... $ac_c" 1>&6
-echo "configure:5785: checking for getspnam in -lgen" >&5
+echo "configure:5864: checking for getspnam in -lgen" >&5
 ac_lib_var=`echo gen'_'getspnam | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo gen'_'getspnam | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5778,7 +5857,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lgen  $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lgen  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5793 "configure"
+#line 5872 "configure"
 #include "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
@@ -5789,7 +5868,7 @@ int main() {
 getspnam()
 ; return 0; }
 EOF
 getspnam()
 ; return 0; }
 EOF
-if { (eval echo configure:5804: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5883: \"$ac_link\") 1>&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
@@ -5825,7 +5904,7 @@ if test "$enable_locking" = yes ; then
   # On some systems (UnixWare 2.1), crypt() is in -lcrypt instead of -lc.
   have_crypt=no
   echo $ac_n "checking for crypt in -lc""... $ac_c" 1>&6
   # On some systems (UnixWare 2.1), crypt() is in -lcrypt instead of -lc.
   have_crypt=no
   echo $ac_n "checking for crypt in -lc""... $ac_c" 1>&6
-echo "configure:5840: checking for crypt in -lc" >&5
+echo "configure:5919: checking for crypt in -lc" >&5
 ac_lib_var=`echo c'_'crypt | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo c'_'crypt | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5833,7 +5912,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lc  $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lc  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5848 "configure"
+#line 5927 "configure"
 #include "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
@@ -5844,7 +5923,7 @@ int main() {
 crypt()
 ; return 0; }
 EOF
 crypt()
 ; return 0; }
 EOF
-if { (eval echo configure:5859: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5938: \"$ac_link\") 1>&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
@@ -5866,7 +5945,7 @@ fi
 
   if test "$have_crypt" = no ; then
     echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6
 
   if test "$have_crypt" = no ; then
     echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6
-echo "configure:5881: checking for crypt in -lcrypt" >&5
+echo "configure:5960: checking for crypt in -lcrypt" >&5
 ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5874,7 +5953,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lcrypt  $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lcrypt  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5889 "configure"
+#line 5968 "configure"
 #include "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
@@ -5885,7 +5964,7 @@ int main() {
 crypt()
 ; return 0; }
 EOF
 crypt()
 ; return 0; }
 EOF
-if { (eval echo configure:5900: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5979: \"$ac_link\") 1>&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
@@ -5969,7 +6048,7 @@ fi
 
     /*)
      echo $ac_n "checking for Motif headers""... $ac_c" 1>&6
 
     /*)
      echo $ac_n "checking for Motif headers""... $ac_c" 1>&6
-echo "configure:5984: checking for Motif headers" >&5
+echo "configure:6063: checking for Motif headers" >&5
      d=$with_motif/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
      d=$with_motif/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -5979,7 +6058,7 @@ echo "configure:5984: checking for Motif headers" >&5
      fi
 
      echo $ac_n "checking for Motif libs""... $ac_c" 1>&6
      fi
 
      echo $ac_n "checking for Motif libs""... $ac_c" 1>&6
-echo "configure:5994: checking for Motif libs" >&5
+echo "configure:6073: checking for Motif libs" >&5
      d=$with_motif/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
      d=$with_motif/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -6018,17 +6097,17 @@ if test "$with_motif" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "Xm/Xm.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for Xm/Xm.h""... $ac_c" 1>&6
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "Xm/Xm.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for Xm/Xm.h""... $ac_c" 1>&6
-echo "configure:6033: checking for Xm/Xm.h" >&5
+echo "configure:6112: checking for Xm/Xm.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6038 "configure"
+#line 6117 "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:6043: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6122: \"$ac_try\") 1>&5; (eval $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*
@@ -6067,17 +6146,17 @@ if test "$have_motif" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "Xm/ComboBox.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for Xm/ComboBox.h""... $ac_c" 1>&6
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "Xm/ComboBox.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for Xm/ComboBox.h""... $ac_c" 1>&6
-echo "configure:6082: checking for Xm/ComboBox.h" >&5
+echo "configure:6161: checking for Xm/ComboBox.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6087 "configure"
+#line 6166 "configure"
 #include "confdefs.h"
 #include <Xm/ComboBox.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <Xm/ComboBox.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6092: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6171: \"$ac_try\") 1>&5; (eval $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*
@@ -6107,7 +6186,7 @@ fi
 
 ###############################################################################
 #
 
 ###############################################################################
 #
-#       Check for -lgtk.
+#       Check for -lgtk (and Gnome stuff)
 #
 ###############################################################################
 
 #
 ###############################################################################
 
@@ -6140,7 +6219,7 @@ esac
 
     /*)
      echo $ac_n "checking for Gtk headers""... $ac_c" 1>&6
 
     /*)
      echo $ac_n "checking for Gtk headers""... $ac_c" 1>&6
-echo "configure:6155: checking for Gtk headers" >&5
+echo "configure:6234: checking for Gtk headers" >&5
      d=$with_gtk/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
      d=$with_gtk/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -6150,7 +6229,7 @@ echo "configure:6155: checking for Gtk headers" >&5
      fi
 
      echo $ac_n "checking for Gtk libs""... $ac_c" 1>&6
      fi
 
      echo $ac_n "checking for Gtk libs""... $ac_c" 1>&6
-echo "configure:6165: checking for Gtk libs" >&5
+echo "configure:6244: checking for Gtk libs" >&5
      d=$with_gtk/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
      d=$with_gtk/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -6179,6 +6258,75 @@ if test "$with_gtk" != yes -a "$with_gtk" != no ; then
   exit 1
 fi
 
   exit 1
 fi
 
+have_gnome=no
+with_gnome_req=unspecified
+# Check whether --with-gnome or --without-gnome was given.
+if test "${with_gnome+set}" = set; then
+  withval="$with_gnome"
+  with_gnome="$withval"; with_gnome_req="$withval"
+else
+  with_gnome=yes
+fi
+
+
+# if --with-gnome=/directory/ was specified, remember that directory so that
+# we can also look for the `gnome-config' program in that directory.
+case "$with_gnome" in
+  /*)
+    gnome_dir="$with_gnome"
+    ;;
+  *)
+    gnome_dir=""
+    ;;
+esac
+
+
+   case "$with_gnome" in
+    yes) ;;
+    no)  ;;
+
+    /*)
+     echo $ac_n "checking for Gnome headers""... $ac_c" 1>&6
+echo "configure:6302: checking for Gnome headers" >&5
+     d=$with_gnome/include
+     if test -d $d; then
+       X_CFLAGS="-I$d $X_CFLAGS"
+       echo "$ac_t""$d" 1>&6
+     else
+       echo "$ac_t""not found ($d: no such directory)" 1>&6
+     fi
+
+     echo $ac_n "checking for Gnome libs""... $ac_c" 1>&6
+echo "configure:6312: checking for Gnome libs" >&5
+     d=$with_gnome/lib
+     if test -d $d; then
+       X_LIBS="-L$d $X_LIBS"
+       echo "$ac_t""$d" 1>&6
+     else
+       echo "$ac_t""not found ($d: no such directory)" 1>&6
+     fi
+
+     # replace the directory string with "yes".
+     with_gnome_req="yes"
+     with_gnome=$with_gnome_req
+     ;;
+
+    *)
+     echo ""
+     echo "error: argument to --with-gnome must be \"yes\", \"no\", or a directory."
+     echo "       If it is a directory, then \`DIR/include' will be added to"
+     echo "       the -I list, and \`DIR/lib' will be added to the -L list."
+     exit 1
+     ;;
+   esac
+  
+
+if test "$with_gnome" != yes -a "$with_gnome" != no ; then
+  echo "error: must be yes or no: --with-gnome=$with_gnome"
+  exit 1
+fi
+
+
 jurassic_gtk=no
 if test "$with_gtk" = yes; then
   have_gtk=no
 jurassic_gtk=no
 if test "$with_gtk" = yes; then
   have_gtk=no
@@ -6191,7 +6339,13 @@ if test "$with_gtk" = yes; then
   if test ! -z "$gtk_dir"; then
     # canonicalize slashes.
     gtk_dir=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
   if test ! -z "$gtk_dir"; then
     # canonicalize slashes.
     gtk_dir=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
-    gtk_path="$gtk_dir:$gtk_dir:$gtk_path"
+    gtk_path="$gtk_dir:$gtk_path"
+  fi
+
+  if test ! -z "gnome_dir"; then
+    # canonicalize slashes.
+    gnome_dir=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
+    gtk_path="$gnome_dir:$gtk_path"
   fi
 
   for ac_prog in glib-config
   fi
 
   for ac_prog in glib-config
@@ -6199,7 +6353,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:6214: checking for $ac_word" >&5
+echo "configure:6368: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_glib_config'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_path_glib_config'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6239,7 +6393,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:6254: checking for $ac_word" >&5
+echo "configure:6408: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_gtk_config'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_path_gtk_config'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6275,12 +6429,59 @@ test -n "$gtk_config" && break
 done
 
 
 done
 
 
+  if test "$with_gnome" = yes; then
+    for ac_prog in gnome-config
+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
+echo "configure:6450: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_gnome_config'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$gnome_config" in
+  /*)
+  ac_cv_path_gnome_config="$gnome_config" # Let the user override the test with a path.
+  ;;
+  ?:/*)                         
+  ac_cv_path_gnome_config="$gnome_config" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$gtk_path"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_gnome_config="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  ;;
+esac
+fi
+gnome_config="$ac_cv_path_gnome_config"
+if test -n "$gnome_config"; then
+  echo "$ac_t""$gnome_config" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+test -n "$gnome_config" && break
+done
+
+  fi
+
   if test -n "$glib_config" -a  -n "gtk_config" ; then
     have_gtk=yes
   if test -n "$glib_config" -a  -n "gtk_config" ; then
     have_gtk=yes
+    if test "$with_gnome" = yes -a -n "$gnome_config" ; then
+      have_gnome=yes
+    fi
   fi
   fi
+
   if test "$have_gtk" = yes; then
     echo $ac_n "checking Gtk version number""... $ac_c" 1>&6
   if test "$have_gtk" = yes; then
     echo $ac_n "checking Gtk version number""... $ac_c" 1>&6
-echo "configure:6295: checking Gtk version number" >&5
+echo "configure:6496: checking Gtk version number" >&5
 if eval "test \"`echo '$''{'ac_cv_gtk_version_string'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_gtk_version_string'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6302,12 +6503,14 @@ echo "$ac_t""$ac_cv_gtk_version_string" 1>&6
     if test "$ac_gtk_version" = "unknown" || test "$ac_gtk_version" -lt 1002
     then
       have_gtk=no
     if test "$ac_gtk_version" = "unknown" || test "$ac_gtk_version" -lt 1002
     then
       have_gtk=no
+      have_gnome=no
       jurassic_gtk=yes
     fi
   fi
       jurassic_gtk=yes
     fi
   fi
+
   if test "$have_gtk" = yes; then
     echo $ac_n "checking for Gtk includes""... $ac_c" 1>&6
   if test "$have_gtk" = yes; then
     echo $ac_n "checking for Gtk includes""... $ac_c" 1>&6
-echo "configure:6322: checking for Gtk includes" >&5
+echo "configure:6525: checking for Gtk includes" >&5
 if eval "test \"`echo '$''{'ac_cv_gtk_config_cflags'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_gtk_config_cflags'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6316,7 +6519,7 @@ fi
 
 echo "$ac_t""$ac_cv_gtk_config_cflags" 1>&6
     echo $ac_n "checking for Gtk libs""... $ac_c" 1>&6
 
 echo "$ac_t""$ac_cv_gtk_config_cflags" 1>&6
     echo $ac_n "checking for Gtk libs""... $ac_c" 1>&6
-echo "configure:6331: checking for Gtk libs" >&5
+echo "configure:6534: checking for Gtk libs" >&5
 if eval "test \"`echo '$''{'ac_cv_gtk_config_libs'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_gtk_config_libs'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6324,13 +6527,87 @@ else
 fi
 
 echo "$ac_t""$ac_cv_gtk_config_libs" 1>&6
 fi
 
 echo "$ac_t""$ac_cv_gtk_config_libs" 1>&6
-    INCLUDES="$INCLUDES $ac_cv_gtk_config_cflags"
-    GTK_LIBS="$GTK_LIBS $ac_cv_gtk_config_libs"
+  fi
+  ac_gtk_config_cflags=$ac_cv_gtk_config_cflags
+  ac_gtk_config_libs=$ac_cv_gtk_config_libs
+
+  # Check for Gnome Capplet support.
+  #
+  if test "$have_gnome" = yes -a "$have_gtk" = yes; then
+    gnome_config_libs="capplet gnomeui"
+    echo $ac_n "checking for Gnome capplet includes""... $ac_c" 1>&6
+echo "configure:6551: checking for Gnome capplet includes" >&5
+    if eval "test \"`echo '$''{'ac_cv_gnome_config_cflags'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if ( $gnome_config --cflags $gnome_config_libs 2>&1 >/dev/null | \
+            grep -q Unknown ) ; then
+         ac_cv_gnome_config_cflags=''
+       else
+         ac_cv_gnome_config_cflags=`$gnome_config --cflags $gnome_config_libs`
+       fi
+fi
+
+    ac_gnome_config_cflags=$ac_cv_gnome_config_cflags
+    if test "$ac_gnome_config_cflags" = "" ; then
+      have_gnome=no
+      echo "$ac_t""no" 1>&6
+    else
+      echo "$ac_t""$ac_gnome_config_cflags" 1>&6
+    fi
+  fi
+
+  if test "$have_gnome" = yes -a "$have_gtk" = yes; then
+    echo $ac_n "checking for Gnome capplet libs""... $ac_c" 1>&6
+echo "configure:6574: checking for Gnome capplet libs" >&5
+    if eval "test \"`echo '$''{'ac_cv_gnome_config_libs'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if ( $gnome_config --libs $gnome_config_libs 2>&1 >/dev/null |
+            grep -q Unknown ) ; then
+         ac_cv_gnome_config_libs=''
+       else
+         ac_cv_gnome_config_libs=`$gnome_config --libs $gnome_config_libs`
+       fi
+fi
+
+    ac_gnome_config_libs=$ac_cv_gnome_config_libs
+    if test "$ac_gnome_config_libs" = "" ; then
+      have_gnome=no
+      echo "$ac_t""no" 1>&6
+    else
+      echo "$ac_t""$ac_gnome_config_libs" 1>&6
+    fi
+  fi
+
+  GNOME_DATADIR=""
+  if test "$have_gnome" = yes -a "$have_gtk" = yes; then
+    GNOME_DATADIR=`$gnome_config --datadir`
+  fi
+
+
+  # If we have Gnome, then override the gtk-config values with 
+  # the gnome-config values.
+  #
+  if test "$have_gnome" = yes -a "$have_gtk" = yes; then
+    ac_gtk_config_cflags=$ac_gnome_config_cflags
+    ac_gtk_config_libs=$ac_gnome_config_libs
+    cat >> confdefs.h <<\EOF
+#define HAVE_CRAPPLET 1
+EOF
+
+  fi
+
+
+  if test "$have_gtk" = yes; then
+    INCLUDES="$INCLUDES $ac_gtk_config_cflags"
+    GTK_LIBS="$GTK_LIBS $ac_gtk_config_libs"
     cat >> confdefs.h <<\EOF
 #define HAVE_GTK 1
 EOF
 
   fi
     cat >> confdefs.h <<\EOF
 #define HAVE_GTK 1
 EOF
 
   fi
+
 fi
 
 
 fi
 
 
@@ -6343,7 +6620,7 @@ fi
 have_lesstif=no
 if test "$have_motif" = yes ; then
   echo $ac_n "checking whether Motif is really LessTif""... $ac_c" 1>&6
 have_lesstif=no
 if test "$have_motif" = yes ; then
   echo $ac_n "checking whether Motif is really LessTif""... $ac_c" 1>&6
-echo "configure:6358: checking whether Motif is really LessTif" >&5
+echo "configure:6635: checking whether Motif is really LessTif" >&5
 if eval "test \"`echo '$''{'ac_cv_have_lesstif'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_have_lesstif'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6354,14 +6631,14 @@ else
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
-#line 6369 "configure"
+#line 6646 "configure"
 #include "confdefs.h"
 #include <Xm/Xm.h>
 int main() {
 long vers = LesstifVersion;
 ; return 0; }
 EOF
 #include "confdefs.h"
 #include <Xm/Xm.h>
 int main() {
 long vers = LesstifVersion;
 ; return 0; }
 EOF
-if { (eval echo configure:6376: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6653: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_have_lesstif=yes
 else
   rm -rf conftest*
   ac_cv_have_lesstif=yes
 else
@@ -6386,7 +6663,7 @@ if test "$have_lesstif" = yes ; then
   ltv=unknown
   echo unknown > conftest-lt
   echo $ac_n "checking LessTif version number""... $ac_c" 1>&6
   ltv=unknown
   echo unknown > conftest-lt
   echo $ac_n "checking LessTif version number""... $ac_c" 1>&6
-echo "configure:6401: checking LessTif version number" >&5
+echo "configure:6678: checking LessTif version number" >&5
 if eval "test \"`echo '$''{'ac_cv_lesstif_version_string'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_lesstif_version_string'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6401,7 +6678,7 @@ else
                      ac_cv_lesstif_version_string=unknown
 else
   cat > conftest.$ac_ext <<EOF
                      ac_cv_lesstif_version_string=unknown
 else
   cat > conftest.$ac_ext <<EOF
-#line 6416 "configure"
+#line 6693 "configure"
 #include "confdefs.h"
 #include <stdio.h>
                      #include <Xm/Xm.h>
 #include "confdefs.h"
 #include <stdio.h>
                      #include <Xm/Xm.h>
@@ -6414,7 +6691,7 @@ else
                        exit(0);
                      }
 EOF
                        exit(0);
                      }
 EOF
-if { (eval echo configure:6429: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6706: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ltv=`cat conftest-lt`
                      ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'`
 then
   ltv=`cat conftest-lt`
                      ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'`
@@ -6444,7 +6721,7 @@ if test "$have_motif" = yes ; then
   mtv=unknown
   echo unknown > conftest-mt
   echo $ac_n "checking Motif version number""... $ac_c" 1>&6
   mtv=unknown
   echo unknown > conftest-mt
   echo $ac_n "checking Motif version number""... $ac_c" 1>&6
-echo "configure:6459: checking Motif version number" >&5
+echo "configure:6736: checking Motif version number" >&5
 if eval "test \"`echo '$''{'ac_cv_motif_version_string'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_motif_version_string'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6459,7 +6736,7 @@ else
                      ac_cv_motif_version_string=unknown
 else
   cat > conftest.$ac_ext <<EOF
                      ac_cv_motif_version_string=unknown
 else
   cat > conftest.$ac_ext <<EOF
-#line 6474 "configure"
+#line 6751 "configure"
 #include "confdefs.h"
 #include <stdio.h>
                      #include <Xm/Xm.h>
 #include "confdefs.h"
 #include <stdio.h>
                      #include <Xm/Xm.h>
@@ -6472,7 +6749,7 @@ else
                        exit(0);
                      }
 EOF
                        exit(0);
                      }
 EOF
-if { (eval echo configure:6487: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6764: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   mtv=`cat conftest-mt`
                      ac_cv_motif_version=`echo $mtv | sed 's/ .*//'`
 then
   mtv=`cat conftest-mt`
                      ac_cv_motif_version=`echo $mtv | sed 's/ .*//'`
@@ -6516,7 +6793,7 @@ fi
 motif_requires_xpm=no
 if test "$have_motif" = yes ; then
    echo $ac_n "checking whether Motif requires XPM""... $ac_c" 1>&6
 motif_requires_xpm=no
 if test "$have_motif" = yes ; then
    echo $ac_n "checking whether Motif requires XPM""... $ac_c" 1>&6
-echo "configure:6531: checking whether Motif requires XPM" >&5
+echo "configure:6808: checking whether Motif requires XPM" >&5
    if test "$motif_version" = "unknown" || test "$motif_version" -ge 2000
    then
      motif_requires_xpm=yes
    if test "$motif_version" = "unknown" || test "$motif_version" -ge 2000
    then
      motif_requires_xpm=yes
@@ -6558,7 +6835,7 @@ if test "$have_motif" = yes ; then
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for XpQueryExtension in -lXp""... $ac_c" 1>&6
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for XpQueryExtension in -lXp""... $ac_c" 1>&6
-echo "configure:6573: checking for XpQueryExtension in -lXp" >&5
+echo "configure:6850: checking for XpQueryExtension in -lXp" >&5
 ac_lib_var=`echo Xp'_'XpQueryExtension | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo Xp'_'XpQueryExtension | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6566,7 +6843,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXp -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lXp -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6581 "configure"
+#line 6858 "configure"
 #include "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
@@ -6577,7 +6854,7 @@ int main() {
 XpQueryExtension()
 ; return 0; }
 EOF
 XpQueryExtension()
 ; return 0; }
 EOF
-if { (eval echo configure:6592: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6869: \"$ac_link\") 1>&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
@@ -6631,7 +6908,7 @@ if test "$have_motif" = yes ; then
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for _Xsetlocale in -lXintl""... $ac_c" 1>&6
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for _Xsetlocale in -lXintl""... $ac_c" 1>&6
-echo "configure:6646: checking for _Xsetlocale in -lXintl" >&5
+echo "configure:6923: checking for _Xsetlocale in -lXintl" >&5
 ac_lib_var=`echo Xintl'_'_Xsetlocale | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo Xintl'_'_Xsetlocale | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6639,7 +6916,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXintl -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lXintl -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6654 "configure"
+#line 6931 "configure"
 #include "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
@@ -6650,7 +6927,7 @@ int main() {
 _Xsetlocale()
 ; return 0; }
 EOF
 _Xsetlocale()
 ; return 0; }
 EOF
-if { (eval echo configure:6665: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6942: \"$ac_link\") 1>&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
@@ -6707,7 +6984,7 @@ fi
 
     /*)
      echo $ac_n "checking for GL headers""... $ac_c" 1>&6
 
     /*)
      echo $ac_n "checking for GL headers""... $ac_c" 1>&6
-echo "configure:6722: checking for GL headers" >&5
+echo "configure:6999: checking for GL headers" >&5
      d=$with_gl/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
      d=$with_gl/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -6717,7 +6994,7 @@ echo "configure:6722: checking for GL headers" >&5
      fi
 
      echo $ac_n "checking for GL libs""... $ac_c" 1>&6
      fi
 
      echo $ac_n "checking for GL libs""... $ac_c" 1>&6
-echo "configure:6732: checking for GL libs" >&5
+echo "configure:7009: checking for GL libs" >&5
      d=$with_gl/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
      d=$with_gl/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -6753,17 +7030,17 @@ if test "$with_gl" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "GL/gl.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for GL/gl.h""... $ac_c" 1>&6
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "GL/gl.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for GL/gl.h""... $ac_c" 1>&6
-echo "configure:6768: checking for GL/gl.h" >&5
+echo "configure:7045: checking for GL/gl.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6773 "configure"
+#line 7050 "configure"
 #include "confdefs.h"
 #include <GL/gl.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <GL/gl.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6778: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7055: \"$ac_try\") 1>&5; (eval $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*
@@ -6794,17 +7071,17 @@ fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "GL/glx.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for GL/glx.h""... $ac_c" 1>&6
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "GL/glx.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for GL/glx.h""... $ac_c" 1>&6
-echo "configure:6809: checking for GL/glx.h" >&5
+echo "configure:7086: checking for GL/glx.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6814 "configure"
+#line 7091 "configure"
 #include "confdefs.h"
 #include <GL/glx.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <GL/glx.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6819: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7096: \"$ac_try\") 1>&5; (eval $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*
@@ -6836,7 +7113,7 @@ fi
     # to link against.
     #
     echo $ac_n "checking whether GL is really MesaGL""... $ac_c" 1>&6
     # to link against.
     #
     echo $ac_n "checking whether GL is really MesaGL""... $ac_c" 1>&6
-echo "configure:6851: checking whether GL is really MesaGL" >&5
+echo "configure:7128: checking whether GL is really MesaGL" >&5
 if eval "test \"`echo '$''{'ac_cv_have_mesa_gl'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_have_mesa_gl'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6848,7 +7125,7 @@ else
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
-#line 6863 "configure"
+#line 7140 "configure"
 #include "confdefs.h"
 #include <GL/glx.h>
 EOF
 #include "confdefs.h"
 #include <GL/glx.h>
 EOF
@@ -6877,7 +7154,7 @@ echo "$ac_t""$ac_cv_have_mesa_gl" 1>&6
     #
     if test "$ac_have_mesa_gl" = yes; then
       echo $ac_n "checking for pthread_create in -lpthread""... $ac_c" 1>&6
     #
     if test "$ac_have_mesa_gl" = yes; then
       echo $ac_n "checking for pthread_create in -lpthread""... $ac_c" 1>&6
-echo "configure:6892: checking for pthread_create in -lpthread" >&5
+echo "configure:7169: checking for pthread_create in -lpthread" >&5
 ac_lib_var=`echo pthread'_'pthread_create | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo pthread'_'pthread_create | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6885,7 +7162,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lpthread  $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lpthread  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6900 "configure"
+#line 7177 "configure"
 #include "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
@@ -6896,7 +7173,7 @@ int main() {
 pthread_create()
 ; return 0; }
 EOF
 pthread_create()
 ; return 0; }
 EOF
-if { (eval echo configure:6911: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7188: \"$ac_link\") 1>&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
@@ -6943,7 +7220,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for glXCreateContext in -lMesaGL""... $ac_c" 1>&6
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for glXCreateContext in -lMesaGL""... $ac_c" 1>&6
-echo "configure:6958: checking for glXCreateContext in -lMesaGL" >&5
+echo "configure:7235: checking for glXCreateContext in -lMesaGL" >&5
 ac_lib_var=`echo MesaGL'_'glXCreateContext | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo MesaGL'_'glXCreateContext | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6951,7 +7228,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lMesaGL -lMesaGLU $GL_LIBS -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lMesaGL -lMesaGLU $GL_LIBS -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6966 "configure"
+#line 7243 "configure"
 #include "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
@@ -6962,7 +7239,7 @@ int main() {
 glXCreateContext()
 ; return 0; }
 EOF
 glXCreateContext()
 ; return 0; }
 EOF
-if { (eval echo configure:6977: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7254: \"$ac_link\") 1>&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
@@ -7008,7 +7285,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for glXCreateContext in -lGL""... $ac_c" 1>&6
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for glXCreateContext in -lGL""... $ac_c" 1>&6
-echo "configure:7023: checking for glXCreateContext in -lGL" >&5
+echo "configure:7300: checking for glXCreateContext in -lGL" >&5
 ac_lib_var=`echo GL'_'glXCreateContext | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo GL'_'glXCreateContext | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7016,7 +7293,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lGL -lGLU $GL_LIBS -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lGL -lGLU $GL_LIBS -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7031 "configure"
+#line 7308 "configure"
 #include "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
@@ -7027,7 +7304,7 @@ int main() {
 glXCreateContext()
 ; return 0; }
 EOF
 glXCreateContext()
 ; return 0; }
 EOF
-if { (eval echo configure:7042: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7319: \"$ac_link\") 1>&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
@@ -7085,12 +7362,12 @@ EOF
     if test "$ac_have_mesa_gl" = yes; then
 
       echo $ac_n "checking MesaGL version number""... $ac_c" 1>&6
     if test "$ac_have_mesa_gl" = yes; then
 
       echo $ac_n "checking MesaGL version number""... $ac_c" 1>&6
-echo "configure:7100: checking MesaGL version number" >&5
+echo "configure:7377: checking MesaGL version number" >&5
 if eval "test \"`echo '$''{'ac_cv_mesagl_version_string'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_mesagl_version_string'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7105 "configure"
+#line 7382 "configure"
 #include "confdefs.h"
 #include <GL/gl.h>
 configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION
 #include "confdefs.h"
 #include <GL/gl.h>
 configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION
@@ -7156,7 +7433,7 @@ echo "$ac_t""$ac_cv_mesagl_version_string" 1>&6
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for glBindTexture in -l$gl_lib_1""... $ac_c" 1>&6
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for glBindTexture in -l$gl_lib_1""... $ac_c" 1>&6
-echo "configure:7171: checking for glBindTexture in -l$gl_lib_1" >&5
+echo "configure:7448: checking for glBindTexture in -l$gl_lib_1" >&5
 ac_lib_var=`echo $gl_lib_1'_'glBindTexture | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo $gl_lib_1'_'glBindTexture | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7164,7 +7441,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-l$gl_lib_1 $GL_LIBS -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-l$gl_lib_1 $GL_LIBS -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7179 "configure"
+#line 7456 "configure"
 #include "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
@@ -7175,7 +7452,7 @@ int main() {
 glBindTexture()
 ; return 0; }
 EOF
 glBindTexture()
 ; return 0; }
 EOF
-if { (eval echo configure:7190: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7467: \"$ac_link\") 1>&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
@@ -7209,7 +7486,7 @@ fi
     # See comments in utils/visual-gl.c for why this is sometimes necessary.
     #
     echo $ac_n "checking whether drastic GL measures must be taken""... $ac_c" 1>&6
     # See comments in utils/visual-gl.c for why this is sometimes necessary.
     #
     echo $ac_n "checking whether drastic GL measures must be taken""... $ac_c" 1>&6
-echo "configure:7224: checking whether drastic GL measures must be taken" >&5
+echo "configure:7501: checking whether drastic GL measures must be taken" >&5
     case "$host" in
       *-sgi*)
         echo "$ac_t""yes -- hello, SGI." 1>&6
     case "$host" in
       *-sgi*)
         echo "$ac_t""yes -- hello, SGI." 1>&6
@@ -7262,7 +7539,7 @@ fi
 
     /*)
      echo $ac_n "checking for GLE headers""... $ac_c" 1>&6
 
     /*)
      echo $ac_n "checking for GLE headers""... $ac_c" 1>&6
-echo "configure:7277: checking for GLE headers" >&5
+echo "configure:7554: checking for GLE headers" >&5
      d=$with_gle/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
      d=$with_gle/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -7272,7 +7549,7 @@ echo "configure:7277: checking for GLE headers" >&5
      fi
 
      echo $ac_n "checking for GLE libs""... $ac_c" 1>&6
      fi
 
      echo $ac_n "checking for GLE libs""... $ac_c" 1>&6
-echo "configure:7287: checking for GLE libs" >&5
+echo "configure:7564: checking for GLE libs" >&5
      d=$with_gle/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
      d=$with_gle/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -7308,17 +7585,17 @@ if test "$with_gle" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "GL/gutil.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for GL/gutil.h""... $ac_c" 1>&6
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "GL/gutil.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for GL/gutil.h""... $ac_c" 1>&6
-echo "configure:7323: checking for GL/gutil.h" >&5
+echo "configure:7600: checking for GL/gutil.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7328 "configure"
+#line 7605 "configure"
 #include "confdefs.h"
 #include <GL/gutil.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <GL/gutil.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7333: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7610: \"$ac_try\") 1>&5; (eval $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*
@@ -7349,17 +7626,17 @@ fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "GL/tube.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for GL/tube.h""... $ac_c" 1>&6
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "GL/tube.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for GL/tube.h""... $ac_c" 1>&6
-echo "configure:7364: checking for GL/tube.h" >&5
+echo "configure:7641: checking for GL/tube.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7369 "configure"
+#line 7646 "configure"
 #include "confdefs.h"
 #include <GL/tube.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <GL/tube.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7374: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7651: \"$ac_try\") 1>&5; (eval $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*
@@ -7404,7 +7681,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for gleCreateGC in -lgle""... $ac_c" 1>&6
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for gleCreateGC in -lgle""... $ac_c" 1>&6
-echo "configure:7419: checking for gleCreateGC in -lgle" >&5
+echo "configure:7696: checking for gleCreateGC in -lgle" >&5
 ac_lib_var=`echo gle'_'gleCreateGC | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo gle'_'gleCreateGC | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7412,7 +7689,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lgle $GL_LIBS -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lgle $GL_LIBS -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7427 "configure"
+#line 7704 "configure"
 #include "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
@@ -7423,7 +7700,7 @@ int main() {
 gleCreateGC()
 ; return 0; }
 EOF
 gleCreateGC()
 ; return 0; }
 EOF
-if { (eval echo configure:7438: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7715: \"$ac_link\") 1>&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
@@ -7482,7 +7759,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for uview_direction_d in -lmatrix""... $ac_c" 1>&6
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for uview_direction_d in -lmatrix""... $ac_c" 1>&6
-echo "configure:7497: checking for uview_direction_d in -lmatrix" >&5
+echo "configure:7774: checking for uview_direction_d in -lmatrix" >&5
 ac_lib_var=`echo matrix'_'uview_direction_d | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo matrix'_'uview_direction_d | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7490,7 +7767,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lmatrix $GL_LIBS -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lmatrix $GL_LIBS -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7505 "configure"
+#line 7782 "configure"
 #include "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
@@ -7501,7 +7778,7 @@ int main() {
 uview_direction_d()
 ; return 0; }
 EOF
 uview_direction_d()
 ; return 0; }
 EOF
-if { (eval echo configure:7516: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7793: \"$ac_link\") 1>&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
@@ -7568,7 +7845,7 @@ fi
 
     /*)
      echo $ac_n "checking for XPM headers""... $ac_c" 1>&6
 
     /*)
      echo $ac_n "checking for XPM headers""... $ac_c" 1>&6
-echo "configure:7583: checking for XPM headers" >&5
+echo "configure:7860: checking for XPM headers" >&5
      d=$with_xpm/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
      d=$with_xpm/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -7578,7 +7855,7 @@ echo "configure:7583: checking for XPM headers" >&5
      fi
 
      echo $ac_n "checking for XPM libs""... $ac_c" 1>&6
      fi
 
      echo $ac_n "checking for XPM libs""... $ac_c" 1>&6
-echo "configure:7593: checking for XPM libs" >&5
+echo "configure:7870: checking for XPM libs" >&5
      d=$with_xpm/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
      d=$with_xpm/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -7611,17 +7888,17 @@ if test "$with_xpm" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/xpm.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/xpm.h""... $ac_c" 1>&6
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/xpm.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/xpm.h""... $ac_c" 1>&6
-echo "configure:7626: checking for X11/xpm.h" >&5
+echo "configure:7903: checking for X11/xpm.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7631 "configure"
+#line 7908 "configure"
 #include "confdefs.h"
 #include <X11/xpm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <X11/xpm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7636: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7913: \"$ac_try\") 1>&5; (eval $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*
@@ -7687,7 +7964,7 @@ fi
 
     /*)
      echo $ac_n "checking for XSHM headers""... $ac_c" 1>&6
 
     /*)
      echo $ac_n "checking for XSHM headers""... $ac_c" 1>&6
-echo "configure:7702: checking for XSHM headers" >&5
+echo "configure:7979: checking for XSHM headers" >&5
      d=$with_xshm/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
      d=$with_xshm/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -7697,7 +7974,7 @@ echo "configure:7702: checking for XSHM headers" >&5
      fi
 
      echo $ac_n "checking for XSHM libs""... $ac_c" 1>&6
      fi
 
      echo $ac_n "checking for XSHM libs""... $ac_c" 1>&6
-echo "configure:7712: checking for XSHM libs" >&5
+echo "configure:7989: checking for XSHM libs" >&5
      d=$with_xshm/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
      d=$with_xshm/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -7732,17 +8009,17 @@ if test "$with_xshm" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/XShm.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/XShm.h""... $ac_c" 1>&6
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/XShm.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/XShm.h""... $ac_c" 1>&6
-echo "configure:7747: checking for X11/extensions/XShm.h" >&5
+echo "configure:8024: checking for X11/extensions/XShm.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7752 "configure"
+#line 8029 "configure"
 #include "confdefs.h"
 #include <X11/extensions/XShm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <X11/extensions/XShm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7757: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8034: \"$ac_try\") 1>&5; (eval $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*
@@ -7776,17 +8053,17 @@ fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "sys/ipc.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for sys/ipc.h""... $ac_c" 1>&6
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "sys/ipc.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for sys/ipc.h""... $ac_c" 1>&6
-echo "configure:7791: checking for sys/ipc.h" >&5
+echo "configure:8068: checking for sys/ipc.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7796 "configure"
+#line 8073 "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:7801: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8078: \"$ac_try\") 1>&5; (eval $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*
@@ -7821,17 +8098,17 @@ fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "sys/shm.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for sys/shm.h""... $ac_c" 1>&6
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "sys/shm.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for sys/shm.h""... $ac_c" 1>&6
-echo "configure:7836: checking for sys/shm.h" >&5
+echo "configure:8113: checking for sys/shm.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7841 "configure"
+#line 8118 "configure"
 #include "confdefs.h"
 #include <sys/shm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <sys/shm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7846: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8123: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7883,7 +8160,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for XShmQueryExtension in -lXextSam""... $ac_c" 1>&6
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for XShmQueryExtension in -lXextSam""... $ac_c" 1>&6
-echo "configure:7898: checking for XShmQueryExtension in -lXextSam" >&5
+echo "configure:8175: checking for XShmQueryExtension in -lXextSam" >&5
 ac_lib_var=`echo XextSam'_'XShmQueryExtension | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo XextSam'_'XShmQueryExtension | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7891,7 +8168,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXextSam -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lXextSam -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7906 "configure"
+#line 8183 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7902,7 +8179,7 @@ int main() {
 XShmQueryExtension()
 ; return 0; }
 EOF
 XShmQueryExtension()
 ; return 0; }
 EOF
-if { (eval echo configure:7917: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8194: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7969,7 +8246,7 @@ fi
 
     /*)
      echo $ac_n "checking for DOUBLE-BUFFER headers""... $ac_c" 1>&6
 
     /*)
      echo $ac_n "checking for DOUBLE-BUFFER headers""... $ac_c" 1>&6
-echo "configure:7984: checking for DOUBLE-BUFFER headers" >&5
+echo "configure:8261: checking for DOUBLE-BUFFER headers" >&5
      d=$with_xdbe/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
      d=$with_xdbe/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -7979,7 +8256,7 @@ echo "configure:7984: checking for DOUBLE-BUFFER headers" >&5
      fi
 
      echo $ac_n "checking for DOUBLE-BUFFER libs""... $ac_c" 1>&6
      fi
 
      echo $ac_n "checking for DOUBLE-BUFFER libs""... $ac_c" 1>&6
-echo "configure:7994: checking for DOUBLE-BUFFER libs" >&5
+echo "configure:8271: checking for DOUBLE-BUFFER libs" >&5
      d=$with_xdbe/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
      d=$with_xdbe/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -8013,17 +8290,17 @@ if test "$with_xdbe" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/Xdbe.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/Xdbe.h""... $ac_c" 1>&6
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/Xdbe.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/Xdbe.h""... $ac_c" 1>&6
-echo "configure:8028: checking for X11/extensions/Xdbe.h" >&5
+echo "configure:8305: checking for X11/extensions/Xdbe.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8033 "configure"
+#line 8310 "configure"
 #include "confdefs.h"
 #include <X11/extensions/Xdbe.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <X11/extensions/Xdbe.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8038: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8315: \"$ac_try\") 1>&5; (eval $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*
@@ -8086,7 +8363,7 @@ fi
 
     /*)
      echo $ac_n "checking for XReadDisplay headers""... $ac_c" 1>&6
 
     /*)
      echo $ac_n "checking for XReadDisplay headers""... $ac_c" 1>&6
-echo "configure:8101: checking for XReadDisplay headers" >&5
+echo "configure:8378: checking for XReadDisplay headers" >&5
      d=$with_readdisplay/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
      d=$with_readdisplay/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -8096,7 +8373,7 @@ echo "configure:8101: checking for XReadDisplay headers" >&5
      fi
 
      echo $ac_n "checking for XReadDisplay libs""... $ac_c" 1>&6
      fi
 
      echo $ac_n "checking for XReadDisplay libs""... $ac_c" 1>&6
-echo "configure:8111: checking for XReadDisplay libs" >&5
+echo "configure:8388: checking for XReadDisplay libs" >&5
      d=$with_readdisplay/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
      d=$with_readdisplay/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -8129,17 +8406,17 @@ if test "$with_readdisplay" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/readdisplay.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/readdisplay.h""... $ac_c" 1>&6
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/readdisplay.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/readdisplay.h""... $ac_c" 1>&6
-echo "configure:8144: checking for X11/extensions/readdisplay.h" >&5
+echo "configure:8421: checking for X11/extensions/readdisplay.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8149 "configure"
+#line 8426 "configure"
 #include "confdefs.h"
 #include <X11/extensions/readdisplay.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <X11/extensions/readdisplay.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8154: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8431: \"$ac_try\") 1>&5; (eval $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*
@@ -8194,7 +8471,7 @@ fi
 
     /*)
      echo $ac_n "checking for Iris Video headers""... $ac_c" 1>&6
 
     /*)
      echo $ac_n "checking for Iris Video headers""... $ac_c" 1>&6
-echo "configure:8209: checking for Iris Video headers" >&5
+echo "configure:8486: checking for Iris Video headers" >&5
      d=$with_sgivideo/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
      d=$with_sgivideo/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -8204,7 +8481,7 @@ echo "configure:8209: checking for Iris Video headers" >&5
      fi
 
      echo $ac_n "checking for Iris Video libs""... $ac_c" 1>&6
      fi
 
      echo $ac_n "checking for Iris Video libs""... $ac_c" 1>&6
-echo "configure:8219: checking for Iris Video libs" >&5
+echo "configure:8496: checking for Iris Video libs" >&5
      d=$with_sgivideo/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
      d=$with_sgivideo/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -8237,17 +8514,17 @@ if test "$with_sgivideo" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "dmedia/vl.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for dmedia/vl.h""... $ac_c" 1>&6
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "dmedia/vl.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for dmedia/vl.h""... $ac_c" 1>&6
-echo "configure:8252: checking for dmedia/vl.h" >&5
+echo "configure:8529: checking for dmedia/vl.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8257 "configure"
+#line 8534 "configure"
 #include "confdefs.h"
 #include <dmedia/vl.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <dmedia/vl.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8262: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8539: \"$ac_try\") 1>&5; (eval $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*
@@ -8272,7 +8549,7 @@ fi
   if test "$have_sgivideo" = yes; then
     have_sgivideo=no
     echo $ac_n "checking for vlOpenVideo in -lvl""... $ac_c" 1>&6
   if test "$have_sgivideo" = yes; then
     have_sgivideo=no
     echo $ac_n "checking for vlOpenVideo in -lvl""... $ac_c" 1>&6
-echo "configure:8287: checking for vlOpenVideo in -lvl" >&5
+echo "configure:8564: checking for vlOpenVideo in -lvl" >&5
 ac_lib_var=`echo vl'_'vlOpenVideo | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo vl'_'vlOpenVideo | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -8280,7 +8557,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lvl  $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-lvl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 8295 "configure"
+#line 8572 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -8291,7 +8568,7 @@ int main() {
 vlOpenVideo()
 ; return 0; }
 EOF
 vlOpenVideo()
 ; return 0; }
 EOF
-if { (eval echo configure:8306: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8583: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8362,7 +8639,7 @@ if test -n "$with_zippy_req" ; then
   case "$with_zippy_req" in
     /*)
       echo $ac_n "checking for $with_zippy_req""... $ac_c" 1>&6
   case "$with_zippy_req" in
     /*)
       echo $ac_n "checking for $with_zippy_req""... $ac_c" 1>&6
-echo "configure:8377: checking for $with_zippy_req" >&5
+echo "configure:8654: checking for $with_zippy_req" >&5
       if test -x "$with_zippy_req" ; then
         echo "$ac_t""yes" 1>&6
       else
       if test -x "$with_zippy_req" ; then
         echo "$ac_t""yes" 1>&6
       else
@@ -8376,7 +8653,7 @@ echo "configure:8377: checking for $with_zippy_req" >&5
       # Extract the first word of "$with_zippy_req", so it can be a program name with args.
 set dummy $with_zippy_req; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
       # Extract the first word of "$with_zippy_req", so it can be a program name with args.
 set dummy $with_zippy_req; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:8391: checking for $ac_word" >&5
+echo "configure:8668: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_zip2'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_path_zip2'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8426,7 +8703,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:8441: checking for $ac_word" >&5
+echo "configure:8718: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_emacs_exe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_prog_emacs_exe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8460,7 +8737,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:8475: checking for $ac_word" >&5
+echo "configure:8752: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_xemacs_exe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_prog_xemacs_exe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8495,7 +8772,7 @@ done
 
   if test -n "$emacs_exe" ; then
     echo $ac_n "checking for emacs yow""... $ac_c" 1>&6
 
   if test -n "$emacs_exe" ; then
     echo $ac_n "checking for emacs yow""... $ac_c" 1>&6
-echo "configure:8510: checking for emacs yow" >&5
+echo "configure:8787: checking for emacs yow" >&5
     #
     # get emacs to tell us where the libexec directory is.
     #
     #
     # get emacs to tell us where the libexec directory is.
     #
@@ -8517,7 +8794,7 @@ echo "configure:8510: checking for emacs yow" >&5
 
   if test -z "$ac_cv_zippy_program" ; then
     echo $ac_n "checking for xemacs yow""... $ac_c" 1>&6
 
   if test -z "$ac_cv_zippy_program" ; then
     echo $ac_n "checking for xemacs yow""... $ac_c" 1>&6
-echo "configure:8532: checking for xemacs yow" >&5
+echo "configure:8809: checking for xemacs yow" >&5
     if test -n "$xemacs_exe" ; then
       #
       # get xemacs to tell us where the libexec directory is.
     if test -n "$xemacs_exe" ; then
       #
       # get xemacs to tell us where the libexec directory is.
@@ -8576,7 +8853,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:8591: checking for $ac_word" >&5
+echo "configure:8868: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_fortune'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_prog_fortune'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8612,7 +8889,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:8627: checking for $ac_word" >&5
+echo "configure:8904: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_fortune'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_path_fortune'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8782,6 +9059,7 @@ fi
 
 
 
 
 
 
+
 
 
 APPDEFAULTS=$ac_x_app_defaults
 
 
 APPDEFAULTS=$ac_x_app_defaults
@@ -8948,6 +9226,7 @@ s%@X_LIBS@%$X_LIBS%g
 s%@X_EXTRA_LIBS@%$X_EXTRA_LIBS%g
 s%@glib_config@%$glib_config%g
 s%@gtk_config@%$gtk_config%g
 s%@X_EXTRA_LIBS@%$X_EXTRA_LIBS%g
 s%@glib_config@%$glib_config%g
 s%@gtk_config@%$gtk_config%g
+s%@gnome_config@%$gnome_config%g
 s%@zip2@%$zip2%g
 s%@emacs_exe@%$emacs_exe%g
 s%@xemacs_exe@%$xemacs_exe%g
 s%@zip2@%$zip2%g
 s%@emacs_exe@%$emacs_exe%g
 s%@xemacs_exe@%$xemacs_exe%g
@@ -8985,6 +9264,7 @@ s%@GLE_EXES@%$GLE_EXES%g
 s%@GLE_MEN@%$GLE_MEN%g
 s%@GLE_KLUDGE@%$GLE_KLUDGE%g
 s%@HACKDIR@%$HACKDIR%g
 s%@GLE_MEN@%$GLE_MEN%g
 s%@GLE_KLUDGE@%$GLE_KLUDGE%g
 s%@HACKDIR@%$HACKDIR%g
+s%@GNOME_DATADIR@%$GNOME_DATADIR%g
 s%@APPDEFAULTS@%$APPDEFAULTS%g
 s%@DEPEND@%$DEPEND%g
 s%@DEPEND_FLAGS@%$DEPEND_FLAGS%g
 s%@APPDEFAULTS@%$APPDEFAULTS%g
 s%@DEPEND@%$DEPEND%g
 s%@DEPEND_FLAGS@%$DEPEND_FLAGS%g
@@ -9334,6 +9614,12 @@ elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then
 fi
 
 
 fi
 
 
+if test "$with_gnome_req" = yes -a "$have_gnome" = no ; then
+  warn  'Use of the Gnome Control Panel was requested, but the necessary'
+  warn2 'headers and/or libraries were not found.'
+fi
+
+
 if test "$have_motif" = yes -a "$have_lesstif" = yes ; then
 
   preferred_lesstif=0.86
 if test "$have_motif" = yes -a "$have_lesstif" = yes ; then
 
   preferred_lesstif=0.86
@@ -9516,7 +9802,7 @@ do_dir_warning=no
 # M4 sucks!!
 
 rpmv=`(rpm -qv xscreensaver) 2>&- | \
 # M4 sucks!!
 
 rpmv=`(rpm -qv xscreensaver) 2>&- | \
-      sed 's/^xscreensaver-\([0-9][0-9]*[.][0-9][0-9]*\)-[0-9][0-9]*$/\1/'`
+      sed 's/^xscreensaver-\([0-9][0-9]*[.][0-9][0-9]*\)-.*$/\1/'`
 
 
 if test \! -z "$rpmv" ; then
 
 
 if test \! -z "$rpmv" ; then
@@ -9547,15 +9833,15 @@ fi
 
 # Warn about egregious GNOME bogosity.
 #
 
 # Warn about egregious GNOME bogosity.
 #
-if (rpm -qv control-center) >&- 2>&- ; then
-  warning=no
-  warnL "The Gnome Control Center seems to be installed."
-  echo  ""
-  warn2 "Note that simply installing this version of xscreensaver"
-  warn2 "will not cause GNOME to know about the newly-added display"
-  warn2 "modes -- GNOME is just lame that way.  Instead of using the"
-  warn2 "Control Center, try using the \`xscreensaver-demo' command."
-fi
+#if (rpm -qv control-center) >&- 2>&- ; then
+#  warning=no
+#  warnL "The Gnome Control Center seems to be installed."
+#  echo  ""
+#  warn2 "Note that simply installing this version of xscreensaver"
+#  warn2 "will not cause GNOME to know about the newly-added display"
+#  warn2 "modes -- GNOME is just lame that way.  Instead of using the"
+#  warn2 "Control Center, try using the \`xscreensaver-demo' command."
+#fi
 
 
 if test "${bindir}" = "${HACKDIR}" ; then
 
 
 if test "${bindir}" = "${HACKDIR}" ; then
index 15c9635990e79477469815d84bf90da795cc0f82..57529eb7cb1da1af5bf15217308be81a962e70bb 100644 (file)
@@ -193,6 +193,26 @@ AC_DEFUN(AC_PROG_PERL,
  ])
 
 
  ])
 
 
+###############################################################################
+#
+#       Function to demand "bc".  Losers.
+#
+###############################################################################
+
+AC_DEFUN(AC_DEMAND_BC,
+ [ac_bc_result=`echo 6+9 | bc 2>/dev/null`
+  AC_MSG_CHECKING([for bc])
+  if test "$ac_bc_result" = "15" ; then
+    AC_MSG_RESULT(yes)
+  else
+    AC_MSG_RESULT(no)
+    echo ''
+    AC_MSG_ERROR([Your system doesn't have \"bc\", which has been a standard
+                  part of Unix since the 1970s.  Come back when your vendor
+                  has grown a clue.])
+  fi
+ ])
+
 ###############################################################################
 #
 #       Functions to check how to do ICMP PING requests.
 ###############################################################################
 #
 #       Functions to check how to do ICMP PING requests.
@@ -657,6 +677,7 @@ AC_PROG_CC_ANSI
 AC_PROG_CPP
 AC_C_CONST
 AC_C_INLINE
 AC_PROG_CPP
 AC_C_CONST
 AC_C_INLINE
+AC_DEMAND_BC
 
 # stuff for Makefiles
 AC_PROG_INSTALL
 
 # stuff for Makefiles
 AC_PROG_INSTALL
@@ -1222,6 +1243,7 @@ fi
 ###############################################################################
 
 have_kerberos=no
 ###############################################################################
 
 have_kerberos=no
+have_kerberos5=no
 with_kerberos_req=unspecified
 
 AC_ARG_WITH(kerberos, 
 with_kerberos_req=unspecified
 
 AC_ARG_WITH(kerberos, 
@@ -1231,21 +1253,41 @@ AC_ARG_WITH(kerberos,
 HANDLE_X_PATH_ARG(with_kerberos, --with-kerberos, Kerberos)
 
 if test "$enable_locking" = yes -a "$with_kerberos" = yes; then
 HANDLE_X_PATH_ARG(with_kerberos, --with-kerberos, Kerberos)
 
 if test "$enable_locking" = yes -a "$with_kerberos" = yes; then
-  AC_CACHE_CHECK([for Kerberos], ac_cv_kerberos,
+  AC_CACHE_CHECK([for Kerberos 4], ac_cv_kerberos,
                  [AC_TRY_X_COMPILE([#include <krb.h>],,
                                    [ac_cv_kerberos=yes],
                                    [ac_cv_kerberos=no])])
                  [AC_TRY_X_COMPILE([#include <krb.h>],,
                                    [ac_cv_kerberos=yes],
                                    [ac_cv_kerberos=no])])
+  AC_CACHE_CHECK([for Kerberos 5], ac_cv_kerberos5,
+                 [AC_TRY_X_COMPILE([#include <kerberosIV/krb.h>],,
+                                   [ac_cv_kerberos5=yes],
+                                   [ac_cv_kerberos5=no])])
+
   if test "$ac_cv_kerberos" = yes ; then
     have_kerberos=yes
     AC_DEFINE(HAVE_KERBEROS)
   if test "$ac_cv_kerberos" = yes ; then
     have_kerberos=yes
     AC_DEFINE(HAVE_KERBEROS)
+  fi
+
+  if test "$ac_cv_kerberos5" = yes ; then
+    have_kerberos=yes
+    have_kerberos5=yes
+    AC_DEFINE(HAVE_KERBEROS)
+    AC_DEFINE(HAVE_KERBEROS5)
+  fi
 
 
+  if test "$have_kerberos5" = yes ; then
+    # from Matt Knopp <mhat@infocalypse.netlag.com>
+    # (who got it from amu@mit.edu)
+    PASSWD_LIBS="$PASSWD_LIBS -lkrb4 -ldes425 -lkrb5 -lk5crypto -lcrypt -lcom_err"
+  elif test "$have_kerberos" = yes ; then
     # from Tim Showalter <tjs+@andrew.cmu.edu>
     PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes"
     # from Tim Showalter <tjs+@andrew.cmu.edu>
     PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes"
+  fi
+
+  if test "$have_kerberos" = yes ; then
     AC_CHECK_FUNC(res_search,,
       AC_CHECK_LIB(resolv,res_search,PASSWD_LIBS="${PASSWD_LIBS} -lresolv",
         AC_MSG_WARN([Can't find DNS resolver libraries needed for Kerberos])
       ))
     AC_CHECK_FUNC(res_search,,
       AC_CHECK_LIB(resolv,res_search,PASSWD_LIBS="${PASSWD_LIBS} -lresolv",
         AC_MSG_WARN([Can't find DNS resolver libraries needed for Kerberos])
       ))
-
   fi
 fi
 
   fi
 fi
 
@@ -1503,7 +1545,7 @@ fi
 
 ###############################################################################
 #
 
 ###############################################################################
 #
-#       Check for -lgtk.
+#       Check for -lgtk (and Gnome stuff)
 #
 ###############################################################################
 
 #
 ###############################################################################
 
@@ -1531,6 +1573,31 @@ if test "$with_gtk" != yes -a "$with_gtk" != no ; then
   exit 1
 fi
 
   exit 1
 fi
 
+have_gnome=no
+with_gnome_req=unspecified
+AC_ARG_WITH(gnome,
+[  --with-gnome            Include support for the Gnome Control Center.],
+  [with_gnome="$withval"; with_gnome_req="$withval"],[with_gnome=yes])
+
+# if --with-gnome=/directory/ was specified, remember that directory so that
+# we can also look for the `gnome-config' program in that directory.
+case "$with_gnome" in
+  /*)
+    gnome_dir="$with_gnome"
+    ;;
+  *)
+    gnome_dir=""
+    ;;
+esac
+
+HANDLE_X_PATH_ARG(with_gnome, --with-gnome, Gnome)
+
+if test "$with_gnome" != yes -a "$with_gnome" != no ; then
+  echo "error: must be yes or no: --with-gnome=$with_gnome"
+  exit 1
+fi
+
+
 jurassic_gtk=no
 if test "$with_gtk" = yes; then
   have_gtk=no
 jurassic_gtk=no
 if test "$with_gtk" = yes; then
   have_gtk=no
@@ -1543,15 +1610,29 @@ if test "$with_gtk" = yes; then
   if test ! -z "$gtk_dir"; then
     # canonicalize slashes.
     gtk_dir=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
   if test ! -z "$gtk_dir"; then
     # canonicalize slashes.
     gtk_dir=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
-    gtk_path="$gtk_dir:$gtk_dir:$gtk_path"
+    gtk_path="$gtk_dir:$gtk_path"
   fi
 
   fi
 
-  AC_PATH_PROGS(glib_config, glib-config,, $gtk_path)
-  AC_PATH_PROGS(gtk_config,  gtk-config,,  $gtk_path)
+  if test ! -z "gnome_dir"; then
+    # canonicalize slashes.
+    gnome_dir=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
+    gtk_path="$gnome_dir:$gtk_path"
+  fi
+
+  AC_PATH_PROGS(glib_config,  glib-config,,  $gtk_path)
+  AC_PATH_PROGS(gtk_config,   gtk-config,,   $gtk_path)
+
+  if test "$with_gnome" = yes; then
+    AC_PATH_PROGS(gnome_config, gnome-config,, $gtk_path)
+  fi
 
   if test -n "$glib_config" -a  -n "gtk_config" ; then
     have_gtk=yes
 
   if test -n "$glib_config" -a  -n "gtk_config" ; then
     have_gtk=yes
+    if test "$with_gnome" = yes -a -n "$gnome_config" ; then
+      have_gnome=yes
+    fi
   fi
   fi
+
   if test "$have_gtk" = yes; then
     AC_CACHE_CHECK([Gtk version number], ac_cv_gtk_version_string,
                    [ac_cv_gtk_version_string=`$glib_config --version`])
   if test "$have_gtk" = yes; then
     AC_CACHE_CHECK([Gtk version number], ac_cv_gtk_version_string,
                    [ac_cv_gtk_version_string=`$glib_config --version`])
@@ -1569,18 +1650,81 @@ if test "$with_gtk" = yes; then
     if test "$ac_gtk_version" = "unknown" || test "$ac_gtk_version" -lt 1002
     then
       have_gtk=no
     if test "$ac_gtk_version" = "unknown" || test "$ac_gtk_version" -lt 1002
     then
       have_gtk=no
+      have_gnome=no
       jurassic_gtk=yes
     fi
   fi
       jurassic_gtk=yes
     fi
   fi
+
   if test "$have_gtk" = yes; then
     AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
                    [ac_cv_gtk_config_cflags=`$gtk_config --cflags`])
     AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
                    [ac_cv_gtk_config_libs=`$gtk_config --libs`])
   if test "$have_gtk" = yes; then
     AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
                    [ac_cv_gtk_config_cflags=`$gtk_config --cflags`])
     AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
                    [ac_cv_gtk_config_libs=`$gtk_config --libs`])
-    INCLUDES="$INCLUDES $ac_cv_gtk_config_cflags"
-    GTK_LIBS="$GTK_LIBS $ac_cv_gtk_config_libs"
+  fi
+  ac_gtk_config_cflags=$ac_cv_gtk_config_cflags
+  ac_gtk_config_libs=$ac_cv_gtk_config_libs
+
+  # Check for Gnome Capplet support.
+  #
+  if test "$have_gnome" = yes -a "$have_gtk" = yes; then
+    gnome_config_libs="capplet gnomeui"
+    AC_MSG_CHECKING(for Gnome capplet includes)
+    AC_CACHE_VAL(ac_cv_gnome_config_cflags,
+      [if ( $gnome_config --cflags $gnome_config_libs 2>&1 >/dev/null | \
+            grep -q Unknown ) ; then
+         ac_cv_gnome_config_cflags=''
+       else
+         ac_cv_gnome_config_cflags=`$gnome_config --cflags $gnome_config_libs`
+       fi])
+    ac_gnome_config_cflags=$ac_cv_gnome_config_cflags
+    if test "$ac_gnome_config_cflags" = "" ; then
+      have_gnome=no
+      AC_MSG_RESULT(no)
+    else
+      AC_MSG_RESULT($ac_gnome_config_cflags)
+    fi
+  fi
+
+  if test "$have_gnome" = yes -a "$have_gtk" = yes; then
+    AC_MSG_CHECKING(for Gnome capplet libs)
+    AC_CACHE_VAL(ac_cv_gnome_config_libs,
+      [if ( $gnome_config --libs $gnome_config_libs 2>&1 >/dev/null |
+            grep -q Unknown ) ; then
+         ac_cv_gnome_config_libs=''
+       else
+         ac_cv_gnome_config_libs=`$gnome_config --libs $gnome_config_libs`
+       fi])
+    ac_gnome_config_libs=$ac_cv_gnome_config_libs
+    if test "$ac_gnome_config_libs" = "" ; then
+      have_gnome=no
+      AC_MSG_RESULT(no)
+    else
+      AC_MSG_RESULT($ac_gnome_config_libs)
+    fi
+  fi
+
+  GNOME_DATADIR=""
+  if test "$have_gnome" = yes -a "$have_gtk" = yes; then
+    GNOME_DATADIR=`$gnome_config --datadir`
+  fi
+
+
+  # If we have Gnome, then override the gtk-config values with 
+  # the gnome-config values.
+  #
+  if test "$have_gnome" = yes -a "$have_gtk" = yes; then
+    ac_gtk_config_cflags=$ac_gnome_config_cflags
+    ac_gtk_config_libs=$ac_gnome_config_libs
+    AC_DEFINE(HAVE_CRAPPLET)
+  fi
+
+
+  if test "$have_gtk" = yes; then
+    INCLUDES="$INCLUDES $ac_gtk_config_cflags"
+    GTK_LIBS="$GTK_LIBS $ac_gtk_config_libs"
     AC_DEFINE(HAVE_GTK)
   fi
     AC_DEFINE(HAVE_GTK)
   fi
+
 fi
 
 
 fi
 
 
@@ -2429,6 +2573,7 @@ AC_SUBST(GLE_EXES)
 AC_SUBST(GLE_MEN)
 AC_SUBST(GLE_KLUDGE)
 AC_SUBST(HACKDIR)
 AC_SUBST(GLE_MEN)
 AC_SUBST(GLE_KLUDGE)
 AC_SUBST(HACKDIR)
+AC_SUBST(GNOME_DATADIR)
 
 APPDEFAULTS=$ac_x_app_defaults
 AC_SUBST(APPDEFAULTS)
 
 APPDEFAULTS=$ac_x_app_defaults
 AC_SUBST(APPDEFAULTS)
@@ -2565,6 +2710,12 @@ elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then
 fi
 
 
 fi
 
 
+if test "$with_gnome_req" = yes -a "$have_gnome" = no ; then
+  warn  'Use of the Gnome Control Panel was requested, but the necessary'
+  warn2 'headers and/or libraries were not found.'
+fi
+
+
 if test "$have_motif" = yes -a "$have_lesstif" = yes ; then
 
   preferred_lesstif=0.86
 if test "$have_motif" = yes -a "$have_lesstif" = yes ; then
 
   preferred_lesstif=0.86
@@ -2747,7 +2898,7 @@ do_dir_warning=no
 # M4 sucks!!
 changequote(X,Y)
 rpmv=`(rpm -qv xscreensaver) 2>&- | \
 # M4 sucks!!
 changequote(X,Y)
 rpmv=`(rpm -qv xscreensaver) 2>&- | \
-      sed 's/^xscreensaver-\([0-9][0-9]*[.][0-9][0-9]*\)-[0-9][0-9]*$/\1/'`
+      sed 's/^xscreensaver-\([0-9][0-9]*[.][0-9][0-9]*\)-.*$/\1/'`
 changequote([,])
 
 if test \! -z "$rpmv" ; then
 changequote([,])
 
 if test \! -z "$rpmv" ; then
@@ -2778,15 +2929,15 @@ fi
 
 # Warn about egregious GNOME bogosity.
 #
 
 # Warn about egregious GNOME bogosity.
 #
-if (rpm -qv control-center) >&- 2>&- ; then
-  warning=no
-  warnL "The Gnome Control Center seems to be installed."
-  echo  ""
-  warn2 "Note that simply installing this version of xscreensaver"
-  warn2 "will not cause GNOME to know about the newly-added display"
-  warn2 "modes -- GNOME is just lame that way.  Instead of using the"
-  warn2 "Control Center, try using the \`xscreensaver-demo' command."
-fi
+#if (rpm -qv control-center) >&- 2>&- ; then
+#  warning=no
+#  warnL "The Gnome Control Center seems to be installed."
+#  echo  ""
+#  warn2 "Note that simply installing this version of xscreensaver"
+#  warn2 "will not cause GNOME to know about the newly-added display"
+#  warn2 "modes -- GNOME is just lame that way.  Instead of using the"
+#  warn2 "Control Center, try using the \`xscreensaver-demo' command."
+#fi
 
 
 if test "${bindir}" = "${HACKDIR}" ; then
 
 
 if test "${bindir}" = "${HACKDIR}" ; then
index 11e3c322e3882c9449c29f2ccd86c327d05ea165..393bc2188d919b4d88e3b3c262869339dbe81f9e 100644 (file)
@@ -16,6 +16,10 @@ mandir               = @mandir@
 man1dir                = $(mandir)/man1
 mansuffix      = 1
 
 man1dir                = $(mandir)/man1
 mansuffix      = 1
 
+GNOME_DATADIR  = @GNOME_DATADIR@
+GNOME_CCDIR    = $(GNOME_DATADIR)/control-center/Desktop
+GNOME_PANELDIR = $(GNOME_DATADIR)/gnome/apps/Settings/Desktop
+
 CC             = @CC@
 CFLAGS         = @CFLAGS@
 LDFLAGS                = @LDFLAGS@
 CC             = @CC@
 CFLAGS         = @CFLAGS@
 LDFLAGS                = @LDFLAGS@
@@ -153,7 +157,8 @@ MEN         = xscreensaver.man xscreensaver-demo.man \
 ALL_MEN                = xscreensaver.man \
                  xscreensaver-demo.man xscreensaver-command.man
 EXTRAS         = README Makefile.in XScreenSaver.ad.in xscreensaver.pam \
 ALL_MEN                = xscreensaver.man \
                  xscreensaver-demo.man xscreensaver-command.man
 EXTRAS         = README Makefile.in XScreenSaver.ad.in xscreensaver.pam \
-                 xscreensaver.kss xscreensaver-demo.glade .gdbinit
+                 xscreensaver.kss xscreensaver-demo.glade \
+                 screensaver-properties.desktop.in .gdbinit
 VMSFILES       = compile_axp.com compile_decc.com link_axp.com link_decc.com \
                  vms-getpwnam.c vms-pwd.h vms-hpwd.c vms-validate.c \
                  vms_axp.opt vms_axp_12.opt vms_decc.opt vms_decc_12.opt
 VMSFILES       = compile_axp.com compile_decc.com link_axp.com link_decc.com \
                  vms-getpwnam.c vms-pwd.h vms-hpwd.c vms-validate.c \
                  vms_axp.opt vms_axp_12.opt vms_decc.opt vms_decc_12.opt
@@ -167,8 +172,10 @@ TARFILES   = $(EXTRAS) $(VMSFILES) $(SAVER_SRCS_1) \
 default: $(EXES)
 all: $(EXES) $(EXES2)
 
 default: $(EXES)
 all: $(EXES) $(EXES2)
 
-install:   install-program   install-ad   install-kde   install-man   @INSTALL_PAM@
-uninstall: uninstall-program uninstall-ad uninstall-kde uninstall-man
+install:   install-program   install-ad   install-gnome   install-kde   \
+          install-man   @INSTALL_PAM@
+uninstall: uninstall-program uninstall-ad uninstall-gnome uninstall-kde \
+          uninstall-man
 
 install-strip:
        $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' \
 
 install-strip:
        $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' \
@@ -315,6 +322,26 @@ install-pam:
          fi ;                                                          \
        fi
 
          fi ;                                                          \
        fi
 
+install-gnome: screensaver-properties.desktop
+       @if [ "$(GNOME_DATADIR)" != "" ]; then                               \
+          echo $(INSTALL_DATA) $(srcdir)/screensaver-properties.desktop      \
+                          $(GNOME_CCDIR)/screensaver-properties.desktop    ; \
+               $(INSTALL_DATA) $(srcdir)/screensaver-properties.desktop      \
+                          $(GNOME_CCDIR)/screensaver-properties.desktop    ; \
+          echo $(INSTALL_DATA) $(srcdir)/screensaver-properties.desktop      \
+                       $(GNOME_PANELDIR)/screensaver-properties.desktop    ; \
+               $(INSTALL_DATA) $(srcdir)/screensaver-properties.desktop      \
+                       $(GNOME_PANELDIR)/screensaver-properties.desktop    ; \
+       fi
+
+uninstall-gnome:
+       @if [ "$(GNOME_DATADIR)" != "" ]; then                                \
+         echo rm -f $(GNOME_CCDIR)/screensaver-properties.desktop          ; \
+              rm -f $(GNOME_CCDIR)/screensaver-properties.desktop          ; \
+         echo rm -f $(GNOME_PANELDIR)/screensaver-properties.desktop       ; \
+              rm -f $(GNOME_PANELDIR)/screensaver-properties.desktop       ; \
+        fi
+
 install-kde:
        @src="$(srcdir)/xscreensaver.kss" ;                                   \
        if [ "$$KDEDIR" != "" ]; then                                         \
 install-kde:
        @src="$(srcdir)/xscreensaver.kss" ;                                   \
        if [ "$$KDEDIR" != "" ]; then                                         \
@@ -394,7 +421,7 @@ update_ad_version::
        @S=XScreenSaver.ad.in ;                                             \
        U=$(UTILS_SRC)/version.h ;                                          \
        V=`sed -n 's/.*\([0-9][0-9]*\.[0-9]*\).*/\1/p' < $$U` ;             \
        @S=XScreenSaver.ad.in ;                                             \
        U=$(UTILS_SRC)/version.h ;                                          \
        V=`sed -n 's/.*\([0-9][0-9]*\.[0-9]*\).*/\1/p' < $$U` ;             \
-       D=`date '+%d-%b-%y'` ;                                              \
+       D=`date '+%d-%b-%Y'` ;                                              \
        echo -n "Updating version number in $$S to $$V $$D... " ;           \
        T=/tmp/xs.$$$$ ;                                                    \
        sed -e "s/\(.*version \)[0-9][0-9]*\.[0-9]*\(.*\)/\1$$V\2/"         \
        echo -n "Updating version number in $$S to $$V $$D... " ;           \
        T=/tmp/xs.$$$$ ;                                                    \
        sed -e "s/\(.*version \)[0-9][0-9]*\.[0-9]*\(.*\)/\1$$V\2/"         \
@@ -412,7 +439,7 @@ update_man_version::
        @for S in $(MEN); do                                                \
        U=$(UTILS_SRC)/version.h ;                                          \
        V=`sed -n 's/.*\([0-9][0-9]*\.[0-9]*\).*/\1/p' < $$U` ;             \
        @for S in $(MEN); do                                                \
        U=$(UTILS_SRC)/version.h ;                                          \
        V=`sed -n 's/.*\([0-9][0-9]*\.[0-9]*\).*/\1/p' < $$U` ;             \
-       V="`date '+%d-%b-%y'` ($$V)" ;                                      \
+       V="`date '+%d-%b-%Y'` ($$V)" ;                                      \
        echo -n "Updating footer in $$S to \"$$V\"... " ;                   \
        T=/tmp/xs.$$$$ ;                                                    \
        sed "s/^\(\.TH[^\"]*\)\"[^\"]*\"\(.*\)/\1\"$$V\"\2/"                \
        echo -n "Updating footer in $$S to \"$$V\"... " ;                   \
        T=/tmp/xs.$$$$ ;                                                    \
        sed "s/^\(\.TH[^\"]*\)\"[^\"]*\"\(.*\)/\1\"$$V\"\2/"                \
@@ -468,6 +495,12 @@ subprocs.o: subprocs.c
 XScreenSaver_ad.h: XScreenSaver.ad
        $(SHELL) $(UTILS_SRC)/ad2c XScreenSaver.ad > XScreenSaver_ad.h
 
 XScreenSaver_ad.h: XScreenSaver.ad
        $(SHELL) $(UTILS_SRC)/ad2c XScreenSaver.ad > XScreenSaver_ad.h
 
+screensaver-properties.desktop: screensaver-properties.desktop.in Makefile
+       @echo generating $@... ;                                        \
+       sed "s%[@]bindir[@]%${bindir}%g"                                \
+         < ${srcdir}/screensaver-properties.desktop.in                 \
+         > $@
+
 # The executables linked in this directory.
 #
 xscreensaver: $(SAVER_OBJS)
 # The executables linked in this directory.
 #
 xscreensaver: $(SAVER_OBJS)
index cc1d0685aa5beca8d5564ebf19f242b644277a5a..4dd691ff7ef54b75c6ebaa12ed1829e50fd625a0 100644 (file)
@@ -4,8 +4,8 @@
 !            a screen saver and locker for the X window system
 !                            by Jamie Zawinski
 !
 !            a screen saver and locker for the X window system
 !                            by Jamie Zawinski
 !
-!                              version 3.23
-!                                30-Jan-00
+!                              version 3.24
+!                              03-Apr-200000
 !
 ! See "man xscreensaver" for more info.  The latest version is always
 ! available at http://www.jwz.org/xscreensaver/
 !
 ! See "man xscreensaver" for more info.  The latest version is always
 ! available at http://www.jwz.org/xscreensaver/
 ! your home directory, the settings in that file take precedence.
 
 
 ! your home directory, the settings in that file take precedence.
 
 
+! Don't hand this file to "xrdb" -- that isn't how app-defaults files work.
+! Though app-defaults files have (mostly) the same syntax as your ~/.Xdefaults
+! file, they are used differently, and if you run this file through xrdb,
+! you will probably mess things up.
+
+#error Do not run app-defaults files through xrdb!
+#error That does not do what you might expect.
+#error Put this file in /usr/lib/X11/app-defaults/XScreenSaver instead.
+
+! /* (xrdb prevention kludge: whole file)
+
 *timeout:              10
 *cycle:                        10
 *lockTimeout:          0
 *timeout:              10
 *cycle:                        10
 *lockTimeout:          0
                                  -texture_quality -light -fog              \n\
 @GLE_KLUDGE@GL:                        extrusion -root                             \n\
 @GL_KLUDGE@ GL:                        sierpinski3d -root                          \n\
                                  -texture_quality -light -fog              \n\
 @GLE_KLUDGE@GL:                        extrusion -root                             \n\
 @GL_KLUDGE@ GL:                        sierpinski3d -root                          \n\
+@GL_KLUDGE@ GL:                        starwars -root                              \n\
                                                                              \
 -                              xdaliclock -root -builtin3 -cycle           \n\
 - default-n:                   xearth -nofork -nostars -ncolors 50           \
                                                                              \
 -                              xdaliclock -root -builtin3 -cycle           \n\
 - default-n:                   xearth -nofork -nostars -ncolors 50           \
 -      "XMountains (top)"      xmountains -b -M -Z 0 -r 1 -m               \n\
 -                               xaos -root -autopilot -incoloring -1         \
                                   -nogui -outcoloring -1                   \n\
 -      "XMountains (top)"      xmountains -b -M -Z 0 -r 1 -m               \n\
 -                               xaos -root -autopilot -incoloring -1         \
                                   -nogui -outcoloring -1                   \n\
--                              xfishtank -d                                \n\
+-                              xfishtank -d -s                             \n\
 -                              xsnow                                       \n\
 -                              goban -root                                 \n\
 -                              electricsheep                               \n
 -                              xsnow                                       \n\
 -                              goban -root                                 \n\
 -                              electricsheep                               \n
@@ -519,11 +531,6 @@ XScreenSaver*doc.fontList:       *-helvetica-medium-r-*-*-*-100-*-*-*-iso8859-1
 ! sanity check -- hands off.
 *hacks.documentation.isInstalled: True
 
 ! sanity check -- hands off.
 *hacks.documentation.isInstalled: True
 
-*hacks.grav.documentation:                                             \
-This program draws a simple orbital simulation.         If you turn on         \
-trails, it looks kind of like a cloud-chamber photograph.  Written by  \
-Greg Bowering.
-
 *hacks.qix.documentation:                                              \
 This is the swiss army chainsaw of qix programs.  It bounces a series  \
 of line segments around the screen, and uses variations on this basic  \
 *hacks.qix.documentation:                                              \
 This is the swiss army chainsaw of qix programs.  It bounces a series  \
 of line segments around the screen, and uses variations on this basic  \
@@ -1262,3 +1269,5 @@ connection to the Internet.                                               \
 By Scott Draves.  You can find it at <http://www.electricsheep.org/>.   \
 See that web site for configuration information.
 
 By Scott Draves.  You can find it at <http://www.electricsheep.org/>.   \
 See that web site for configuration information.
 
+
+! (xrdb prevention kludge: whole file) */
index 8ed41bbf339f9c966a8ca2fde8b8ab289a8519b5..667edf9001cb6ddef7d5c0b614038df082a47082 100644 (file)
@@ -1,3 +1,6 @@
+"#error Do not run app-defaults files through xrdb!",
+"#error That does not do what you might expect.",
+"#error Put this file in /usr/lib/X11/app-defaults/XScreenSaver instead.",
 "*timeout:             10",
 "*cycle:                       10",
 "*lockTimeout:         0",
 "*timeout:             10",
 "*cycle:                       10",
 "*lockTimeout:         0",
                                  -texture_quality -light -fog              \\n\
           GL:                  extrusion -root                             \\n\
           GL:                  sierpinski3d -root                          \\n\
                                  -texture_quality -light -fog              \\n\
           GL:                  extrusion -root                             \\n\
           GL:                  sierpinski3d -root                          \\n\
+          GL:                  starwars -root                              \\n\
                                                                              \
 -                              xdaliclock -root -builtin3 -cycle           \\n\
 - default-n:                   xearth -nofork -nostars -ncolors 50           \
                                                                              \
 -                              xdaliclock -root -builtin3 -cycle           \\n\
 - default-n:                   xearth -nofork -nostars -ncolors 50           \
 -      \"XMountains (top)\"    xmountains -b -M -Z 0 -r 1 -m               \\n\
 -                               xaos -root -autopilot -incoloring -1         \
                                   -nogui -outcoloring -1                   \\n\
 -      \"XMountains (top)\"    xmountains -b -M -Z 0 -r 1 -m               \\n\
 -                               xaos -root -autopilot -incoloring -1         \
                                   -nogui -outcoloring -1                   \\n\
--                              xfishtank -d                                \\n\
+-                              xfishtank -d -s                             \\n\
 -                              xsnow                                       \\n\
 -                              goban -root                                 \\n\
 -                              electricsheep                               \\n",
 -                              xsnow                                       \\n\
 -                              goban -root                                 \\n\
 -                              electricsheep                               \\n",
 "*Cancel.rightOffset:          10",
 "*Cancel.bottomOffset:         10",
 "*hacks.documentation.isInstalled: True",
 "*Cancel.rightOffset:          10",
 "*Cancel.bottomOffset:         10",
 "*hacks.documentation.isInstalled: True",
-"*hacks.grav.documentation:                                            \
-This program draws a simple orbital simulation.         If you turn on         \
-trails, it looks kind of like a cloud-chamber photograph.  Written by  \
-Greg Bowering.",
 "*hacks.qix.documentation:                                             \
 This is the swiss army chainsaw of qix programs.  It bounces a series  \
 of line segments around the screen, and uses variations on this basic  \
 "*hacks.qix.documentation:                                             \
 This is the swiss army chainsaw of qix programs.  It bounces a series  \
 of line segments around the screen, and uses variations on this basic  \
index 8211d199e2f3288f0831942c651c937f1c4f11d2..7388d5a3d0d02f4ed7c96e7065a5689064faba27 100644 (file)
@@ -68,3 +68,15 @@ prefs_cancel_cb                        (GtkButton       *button,
 void
 manual_cb                              (GtkButton       *button,
                                         gpointer         user_data);
 void
 manual_cb                              (GtkButton       *button,
                                         gpointer         user_data);
+
+void
+notebook_switch_page_cb                (GtkNotebook     *notebook,
+                                        GtkNotebookPage *page,
+                                        gint             page_num,
+                                        gpointer         user_data);
+
+void
+pref_changed_cb                        (GtkNotebook     *notebook,
+                                        GtkNotebookPage *page,
+                                        gint             page_num,
+                                        gpointer         user_data);
index 510c9d632d6b9e4bfa5761165ce44593f8009161..fc03afac9f3cd026417c5a1da6092cb12b354463 100644 (file)
@@ -6,6 +6,7 @@
 #  include <config.h>
 #endif
 
 #  include <config.h>
 #endif
 
+#include <sys/types.h>
 #include <sys/stat.h>
 #include <unistd.h>
 #include <string.h>
 #include <sys/stat.h>
 #include <unistd.h>
 #include <string.h>
@@ -16,9 +17,8 @@
 #include "demo-Gtk-stubs.h"
 #include "demo-Gtk-widgets.h"
 
 #include "demo-Gtk-stubs.h"
 #include "demo-Gtk-widgets.h"
 
-
 GtkWidget*
 GtkWidget*
-create_xscreensaver_demo ()
+create_xscreensaver_demo (void)
 {
   GtkWidget *xscreensaver_demo;
   GtkWidget *outer_vbox;
 {
   GtkWidget *xscreensaver_demo;
   GtkWidget *outer_vbox;
@@ -91,9 +91,6 @@ create_xscreensaver_demo ()
   GtkWidget *fade_button;
   GtkWidget *unfade_button;
   GtkWidget *lock_button;
   GtkWidget *fade_button;
   GtkWidget *unfade_button;
   GtkWidget *lock_button;
-  GtkWidget *hbuttonbox3;
-  GtkWidget *prefs_ok;
-  GtkWidget *prefs_cancel;
   GtkWidget *prefs_tab;
   GtkAccelGroup *accel_group;
   GtkTooltips *tooltips;
   GtkWidget *prefs_tab;
   GtkAccelGroup *accel_group;
   GtkTooltips *tooltips;
@@ -786,33 +783,6 @@ create_xscreensaver_demo ()
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (0), 10, 0);
 
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (0), 10, 0);
 
-  hbuttonbox3 = gtk_hbutton_box_new ();
-  gtk_widget_set_name (hbuttonbox3, "hbuttonbox3");
-  gtk_widget_ref (hbuttonbox3);
-  gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "hbuttonbox3", hbuttonbox3,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (hbuttonbox3);
-  gtk_box_pack_start (GTK_BOX (prefs_hbox), hbuttonbox3, FALSE, FALSE, 0);
-  gtk_container_set_border_width (GTK_CONTAINER (hbuttonbox3), 10);
-
-  prefs_ok = gtk_button_new_with_label ("OK");
-  gtk_widget_set_name (prefs_ok, "prefs_ok");
-  gtk_widget_ref (prefs_ok);
-  gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "prefs_ok", prefs_ok,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (prefs_ok);
-  gtk_container_add (GTK_CONTAINER (hbuttonbox3), prefs_ok);
-  GTK_WIDGET_SET_FLAGS (prefs_ok, GTK_CAN_DEFAULT);
-
-  prefs_cancel = gtk_button_new_with_label ("Cancel");
-  gtk_widget_set_name (prefs_cancel, "prefs_cancel");
-  gtk_widget_ref (prefs_cancel);
-  gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "prefs_cancel", prefs_cancel,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (prefs_cancel);
-  gtk_container_add (GTK_CONTAINER (hbuttonbox3), prefs_cancel);
-  GTK_WIDGET_SET_FLAGS (prefs_cancel, GTK_CAN_DEFAULT);
-
   prefs_tab = gtk_label_new ("Screensaver Options");
   gtk_widget_set_name (prefs_tab, "prefs_tab");
   gtk_widget_ref (prefs_tab);
   prefs_tab = gtk_label_new ("Screensaver Options");
   gtk_widget_set_name (prefs_tab, "prefs_tab");
   gtk_widget_ref (prefs_tab);
@@ -851,6 +821,9 @@ create_xscreensaver_demo ()
   gtk_signal_connect (GTK_OBJECT (doc_menu), "activate",
                       GTK_SIGNAL_FUNC (doc_menu_cb),
                       NULL);
   gtk_signal_connect (GTK_OBJECT (doc_menu), "activate",
                       GTK_SIGNAL_FUNC (doc_menu_cb),
                       NULL);
+  gtk_signal_connect (GTK_OBJECT (notebook), "switch_page",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
+                      NULL);
   gtk_signal_connect (GTK_OBJECT (next), "clicked",
                       GTK_SIGNAL_FUNC (run_next_cb),
                       NULL);
   gtk_signal_connect (GTK_OBJECT (next), "clicked",
                       GTK_SIGNAL_FUNC (run_next_cb),
                       NULL);
@@ -863,11 +836,56 @@ create_xscreensaver_demo ()
   gtk_signal_connect (GTK_OBJECT (manual), "clicked",
                       GTK_SIGNAL_FUNC (manual_cb),
                       NULL);
   gtk_signal_connect (GTK_OBJECT (manual), "clicked",
                       GTK_SIGNAL_FUNC (manual_cb),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (prefs_ok), "clicked",
-                      GTK_SIGNAL_FUNC (prefs_ok_cb),
+  gtk_signal_connect (GTK_OBJECT (timeout_text), "activate",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
+                      NULL);
+  gtk_signal_connect (GTK_OBJECT (timeout_text), "focus_out_event",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
+                      NULL);
+  gtk_signal_connect (GTK_OBJECT (cycle_text), "activate",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
+                      NULL);
+  gtk_signal_connect (GTK_OBJECT (cycle_text), "focus_out_event",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
+                      NULL);
+  gtk_signal_connect (GTK_OBJECT (fade_text), "activate",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
+                      NULL);
+  gtk_signal_connect (GTK_OBJECT (fade_text), "focus_out_event",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
+                      NULL);
+  gtk_signal_connect (GTK_OBJECT (ticks_text), "activate",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
+                      NULL);
+  gtk_signal_connect (GTK_OBJECT (ticks_text), "focus_out_event",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
+                      NULL);
+  gtk_signal_connect (GTK_OBJECT (lock_text), "activate",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
+                      NULL);
+  gtk_signal_connect (GTK_OBJECT (lock_text), "focus_out_event",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
+                      NULL);
+  gtk_signal_connect (GTK_OBJECT (pass_text), "activate",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
+                      NULL);
+  gtk_signal_connect (GTK_OBJECT (pass_text), "focus_out_event",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
+                      NULL);
+  gtk_signal_connect (GTK_OBJECT (verbose_button), "toggled",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
+                      NULL);
+  gtk_signal_connect (GTK_OBJECT (install_button), "toggled",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
+                      NULL);
+  gtk_signal_connect (GTK_OBJECT (fade_button), "toggled",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
+                      NULL);
+  gtk_signal_connect (GTK_OBJECT (unfade_button), "toggled",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
                       NULL);
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (prefs_cancel), "clicked",
-                      GTK_SIGNAL_FUNC (prefs_cancel_cb),
+  gtk_signal_connect (GTK_OBJECT (lock_button), "toggled",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
                       NULL);
 
   gtk_widget_grab_default (next);
                       NULL);
 
   gtk_widget_grab_default (next);
index e027622726179ec964043ce7a4009d6e2a588bb6..11c64d8985de896a76f8c47856559f4da3c80aae 100644 (file)
 # include "xmu.h"
 #endif
 
 # include "xmu.h"
 #endif
 
-
-
 #include <gtk/gtk.h>
 
 #include <gtk/gtk.h>
 
+#ifdef HAVE_CRAPPLET
+# include <gnome.h>
+# include <capplet-widget.h>
+#endif
+
 extern Display *gdk_display;
 
 #include "version.h"
 extern Display *gdk_display;
 
 #include "version.h"
@@ -81,6 +84,10 @@ char *progname = 0;
 char *progclass = "XScreenSaver";
 XrmDatabase db;
 
 char *progclass = "XScreenSaver";
 XrmDatabase db;
 
+static Bool crapplet_p = False;
+static Bool initializing_p;
+static GtkWidget *toplevel_widget;
+
 typedef struct {
   saver_preferences *a, *b;
 } prefs_pair;
 typedef struct {
   saver_preferences *a, *b;
 } prefs_pair;
@@ -110,21 +117,10 @@ static int maybe_reload_init_file (GtkWidget *widget, prefs_pair *pair);
 static GtkWidget *
 name_to_widget (GtkWidget *widget, const char *name)
 {
 static GtkWidget *
 name_to_widget (GtkWidget *widget, const char *name)
 {
-  while (1)
-    {
-      GtkWidget *parent = (GTK_IS_MENU (widget)
-                           ? gtk_menu_get_attach_widget (GTK_MENU (widget))
-                           : widget->parent);
-      if (parent)
-        widget = parent;
-      else
-        break;
-    }
-  return (GtkWidget *) gtk_object_get_data (GTK_OBJECT (widget), name);
+  return (GtkWidget *) gtk_object_get_data (GTK_OBJECT(toplevel_widget), name);
 }
 
 
 }
 
 
-
 /* Why this behavior isn't automatic in *either* toolkit, I'll never know.
    Takes a scroller, viewport, or list as an argument.
  */
 /* Why this behavior isn't automatic in *either* toolkit, I'll never know.
    Takes a scroller, viewport, or list as an argument.
  */
@@ -217,9 +213,8 @@ ensure_selected_item_visible (GtkWidget *widget)
     }
 }
 
     }
 }
 
-
 static void
 static void
-warning_dialog_dismiss_cb (GtkButton *button, gpointer user_data)
+warning_dialog_dismiss_cb (GtkWidget *widget, gpointer user_data)
 {
   GtkWidget *shell = GTK_WIDGET (user_data);
   while (shell->parent)
 {
   GtkWidget *shell = GTK_WIDGET (user_data);
   while (shell->parent)
@@ -228,8 +223,17 @@ warning_dialog_dismiss_cb (GtkButton *button, gpointer user_data)
 }
 
 
 }
 
 
+void restart_menu_cb (GtkWidget *widget, gpointer user_data);
+
+static void warning_dialog_restart_cb (GtkWidget *widget, gpointer user_data)
+{
+  restart_menu_cb (widget, user_data);
+  warning_dialog_dismiss_cb (widget, user_data);
+}
+
 static void
 static void
-warning_dialog (GtkWidget *parent, const char *message, int center)
+warning_dialog (GtkWidget *parent, const char *message,
+                Boolean restart_button_p, int center)
 {
   char *msg = strdup (message);
   char *head;
 {
   char *msg = strdup (message);
   char *head;
@@ -237,6 +241,7 @@ warning_dialog (GtkWidget *parent, const char *message, int center)
   GtkWidget *dialog = gtk_dialog_new ();
   GtkWidget *label = 0;
   GtkWidget *ok = 0;
   GtkWidget *dialog = gtk_dialog_new ();
   GtkWidget *label = 0;
   GtkWidget *ok = 0;
+  GtkWidget *cancel = 0;
   int i = 0;
 
   while (parent->parent)
   int i = 0;
 
   while (parent->parent)
@@ -285,17 +290,37 @@ warning_dialog (GtkWidget *parent, const char *message, int center)
   ok = gtk_button_new_with_label ("OK");
   gtk_container_add (GTK_CONTAINER (label), ok);
 
   ok = gtk_button_new_with_label ("OK");
   gtk_container_add (GTK_CONTAINER (label), ok);
 
+  if (restart_button_p)
+    {
+      cancel = gtk_button_new_with_label ("Cancel");
+      gtk_container_add (GTK_CONTAINER (label), cancel);
+    }
+
   gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER);
   gtk_container_set_border_width (GTK_CONTAINER (dialog), 10);
   gtk_window_set_title (GTK_WINDOW (dialog), progclass);
   gtk_widget_show (ok);
   gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER);
   gtk_container_set_border_width (GTK_CONTAINER (dialog), 10);
   gtk_window_set_title (GTK_WINDOW (dialog), progclass);
   gtk_widget_show (ok);
+  if (cancel)
+    gtk_widget_show (cancel);
   gtk_widget_show (label);
   gtk_widget_show (dialog);
 /*  gtk_window_set_default (GTK_WINDOW (dialog), ok);*/
 
   gtk_widget_show (label);
   gtk_widget_show (dialog);
 /*  gtk_window_set_default (GTK_WINDOW (dialog), ok);*/
 
-  gtk_signal_connect_object (GTK_OBJECT (ok), "clicked",
-                             GTK_SIGNAL_FUNC (warning_dialog_dismiss_cb),
-                             (gpointer) dialog);
+  if (restart_button_p)
+    {
+      gtk_signal_connect_object (GTK_OBJECT (ok), "clicked",
+                                 GTK_SIGNAL_FUNC (warning_dialog_restart_cb),
+                                 (gpointer) dialog);
+      gtk_signal_connect_object (GTK_OBJECT (cancel), "clicked",
+                                 GTK_SIGNAL_FUNC (warning_dialog_dismiss_cb),
+                                 (gpointer) dialog);
+    }
+  else
+    {
+      gtk_signal_connect_object (GTK_OBJECT (ok), "clicked",
+                                 GTK_SIGNAL_FUNC (warning_dialog_dismiss_cb),
+                                 (gpointer) dialog);
+    }
   gdk_window_set_transient_for (GTK_WIDGET (dialog)->window,
                                 GTK_WIDGET (parent)->window);
 
   gdk_window_set_transient_for (GTK_WIDGET (dialog)->window,
                                 GTK_WIDGET (parent)->window);
 
@@ -321,7 +346,7 @@ run_cmd (GtkWidget *widget, Atom command, int arg)
         sprintf (buf, "Error:\n\n%s", err);
       else
         strcpy (buf, "Unknown error!");
         sprintf (buf, "Error:\n\n%s", err);
       else
         strcpy (buf, "Unknown error!");
-      warning_dialog (widget, buf, 100);
+      warning_dialog (widget, buf, False, 100);
     }
   if (err) free (err);
 }
     }
   if (err) free (err);
 }
@@ -368,7 +393,7 @@ cut_menu_cb (GtkMenuItem *menuitem, gpointer user_data)
   /* #### */
   warning_dialog (GTK_WIDGET (menuitem),
                   "Error:\n\n"
   /* #### */
   warning_dialog (GTK_WIDGET (menuitem),
                   "Error:\n\n"
-                  "cut unimplemented\n", 1);
+                  "cut unimplemented\n", False, 1);
 }
 
 
 }
 
 
@@ -378,7 +403,7 @@ copy_menu_cb (GtkMenuItem *menuitem, gpointer user_data)
   /* #### */
   warning_dialog (GTK_WIDGET (menuitem),
                   "Error:\n\n"
   /* #### */
   warning_dialog (GTK_WIDGET (menuitem),
                   "Error:\n\n"
-                  "copy unimplemented\n", 1);
+                  "copy unimplemented\n", False, 1);
 }
 
 
 }
 
 
@@ -388,7 +413,7 @@ paste_menu_cb (GtkMenuItem *menuitem, gpointer user_data)
   /* #### */
   warning_dialog (GTK_WIDGET (menuitem),
                   "Error:\n\n"
   /* #### */
   warning_dialog (GTK_WIDGET (menuitem),
                   "Error:\n\n"
-                  "paste unimplemented\n", 1);
+                  "paste unimplemented\n", False, 1);
 }
 
 
 }
 
 
@@ -408,7 +433,7 @@ about_menu_cb (GtkMenuItem *menuitem, gpointer user_data)
            s, s2);
   free (s);
 
            s, s2);
   free (s);
 
-  warning_dialog (GTK_WIDGET (menuitem), buf, 100);
+  warning_dialog (GTK_WIDGET (menuitem), buf, False, 100);
 }
 
 
 }
 
 
@@ -425,7 +450,7 @@ doc_menu_cb (GtkMenuItem *menuitem, gpointer user_data)
     {
       warning_dialog (GTK_WIDGET (menuitem),
                       "Error:\n\n"
     {
       warning_dialog (GTK_WIDGET (menuitem),
                       "Error:\n\n"
-                      "No Help URL has been specified.\n", 100);
+                      "No Help URL has been specified.\n", False, 100);
       return;
     }
 
       return;
     }
 
@@ -462,12 +487,12 @@ kill_menu_cb (GtkMenuItem *menuitem, gpointer user_data)
 
 
 void
 
 
 void
-restart_menu_cb (GtkMenuItem *menuitem, gpointer user_data)
+restart_menu_cb (GtkWidget *widget, gpointer user_data)
 {
 #if 0
 {
 #if 0
-  run_cmd (GTK_WIDGET (menuitem), XA_RESTART, 0);
+  run_cmd (GTK_WIDGET (widget), XA_RESTART, 0);
 #else
 #else
-  apply_changes_and_save (GTK_WIDGET (menuitem));
+  apply_changes_and_save (GTK_WIDGET (widget));
   xscreensaver_command (gdk_display, XA_EXIT, 0, False, NULL);
   sleep (1);
   system ("xscreensaver -nosplash &");
   xscreensaver_command (gdk_display, XA_EXIT, 0, False, NULL);
   sleep (1);
   system ("xscreensaver -nosplash &");
@@ -506,12 +531,12 @@ demo_write_init_file (GtkWidget *widget, saver_preferences *p)
       if (!f || !*f)
         warning_dialog (widget,
                         "Error:\n\nCouldn't determine init file name!\n",
       if (!f || !*f)
         warning_dialog (widget,
                         "Error:\n\nCouldn't determine init file name!\n",
-                        100);
+                        False, 100);
       else
         {
           char *b = (char *) malloc (strlen(f) + 1024);
           sprintf (b, "Error:\n\nCouldn't write %s\n", f);
       else
         {
           char *b = (char *) malloc (strlen(f) + 1024);
           sprintf (b, "Error:\n\nCouldn't write %s\n", f);
-          warning_dialog (widget, b, 100);
+          warning_dialog (widget, b, False, 100);
           free (b);
         }
       return -1;
           free (b);
         }
       return -1;
@@ -520,7 +545,7 @@ demo_write_init_file (GtkWidget *widget, saver_preferences *p)
 
 
 static int
 
 
 static int
-apply_changes_and_save (GtkWidget *widget)
+apply_changes_and_save_1 (GtkWidget *widget)
 {
   /* prefs_pair *pair = (prefs_pair *) client_data; */
   prefs_pair *pair = global_prefs_pair;  /* I hate C so much... */
 {
   /* prefs_pair *pair = (prefs_pair *) client_data; */
   prefs_pair *pair = global_prefs_pair;  /* I hate C so much... */
@@ -603,6 +628,16 @@ apply_changes_and_save (GtkWidget *widget)
   return 0;
 }
 
   return 0;
 }
 
+void prefs_ok_cb (GtkButton *button, gpointer user_data);
+
+static int
+apply_changes_and_save (GtkWidget *widget)
+{
+  prefs_ok_cb ((GtkButton *) widget, 0);
+  return apply_changes_and_save_1 (widget);
+}
+
+
 void
 run_this_cb (GtkButton *button, gpointer user_data)
 {
 void
 run_this_cb (GtkButton *button, gpointer user_data)
 {
@@ -652,7 +687,7 @@ manual_cb (GtkButton *button, gpointer user_data)
     {
       warning_dialog (GTK_WIDGET (button),
                       "Error:\n\nno `manualCommand' resource set.",
     {
       warning_dialog (GTK_WIDGET (button),
                       "Error:\n\nno `manualCommand' resource set.",
-                      100);
+                      False, 100);
     }
 
   free (name);
     }
 
   free (name);
@@ -731,7 +766,7 @@ hack_time_text (GtkWidget *widget, const char *line, Time *store, Bool sec_p)
                   "Error:\n\n"
                   "Unparsable time format: \"%s\"\n",
                   line);
                   "Error:\n\n"
                   "Unparsable time format: \"%s\"\n",
                   line);
-         warning_dialog (widget, b, 100);
+         warning_dialog (widget, b, False, 100);
        }
       else
        *store = value;
        }
       else
        *store = value;
@@ -772,7 +807,7 @@ prefs_ok_cb (GtkButton *button, gpointer user_data)
       { \
        char b[255]; \
        sprintf (b, "Error:\n\n" "Not an integer: \"%s\"\n", line); \
       { \
        char b[255]; \
        sprintf (b, "Error:\n\n" "Not an integer: \"%s\"\n", line); \
-       warning_dialog (GTK_WIDGET (button), b, 100); \
+       warning_dialog (GTK_WIDGET (button), b, False, 100); \
       } \
    else \
      *(field) = value; \
       } \
    else \
      *(field) = value; \
@@ -834,6 +869,14 @@ prefs_cancel_cb (GtkButton *button, gpointer user_data)
 }
 
 
 }
 
 
+void
+pref_changed_cb (GtkButton *button, gpointer user_data)
+{
+  if (! initializing_p)
+    apply_changes_and_save (GTK_WIDGET (button));
+}
+
+
 static gint
 list_doubleclick_cb (GtkWidget *button, GdkEventButton *event,
                      gpointer client_data)
 static gint
 list_doubleclick_cb (GtkWidget *button, GdkEventButton *event,
                      gpointer client_data)
@@ -1484,7 +1527,7 @@ maybe_reload_init_file (GtkWidget *widget, prefs_pair *pair)
                "Warning:\n\n"
                "file \"%s\" has changed, reloading.\n",
                f);
                "Warning:\n\n"
                "file \"%s\" has changed, reloading.\n",
                f);
-      warning_dialog (widget, b, 100);
+      warning_dialog (widget, b, False, 100);
       free (b);
 
       load_init_file (p);
       free (b);
 
       load_init_file (p);
@@ -1579,9 +1622,7 @@ the_network_is_not_the_computer (GtkWidget *parent)
       sprintf (msg,
               "Warning:\n\n"
                "The XScreenSaver daemon doesn't seem to be running\n"
       sprintf (msg,
               "Warning:\n\n"
                "The XScreenSaver daemon doesn't seem to be running\n"
-               "on display \"%s\".  You can launch it by selecting\n"
-               "`Restart Daemon' from the File menu, or by typing\n"
-               "\"xscreensaver &\" in a shell.",
+               "on display \"%s\".  Launch it now?",
               d);
     }
   else if (p && ruser && *ruser && !!strcmp (ruser, p->pw_name))
               d);
     }
   else if (p && ruser && *ruser && !!strcmp (ruser, p->pw_name))
@@ -1598,9 +1639,10 @@ the_network_is_not_the_computer (GtkWidget *parent)
              "the same ~/.xscreensaver file, so %s isn't\n"
              "going to work right.\n"
              "\n"
              "the same ~/.xscreensaver file, so %s isn't\n"
              "going to work right.\n"
              "\n"
-             "Either re-run %s as \"%s\", or re-run\n"
-             "xscreensaver as \"%s\" (which you can do by\n"
-              "selecting `Restart Daemon' from the File menu.)\n",
+             "You should either re-run %s as \"%s\", or re-run\n"
+             "xscreensaver as \"%s\".\n"
+              "\n"
+              "Restart the xscreensaver daemon now?\n",
              progname, luser, lhost,
              d,
              (ruser ? ruser : "???"), (rhost ? rhost : "???"),
              progname, luser, lhost,
              d,
              (ruser ? ruser : "???"), (rhost ? rhost : "???"),
@@ -1622,8 +1664,7 @@ the_network_is_not_the_computer (GtkWidget *parent)
               "if they don't see the same ~%s/.xscreensaver file) then\n"
               "%s won't work right.\n"
                "\n"
               "if they don't see the same ~%s/.xscreensaver file) then\n"
               "%s won't work right.\n"
                "\n"
-               "You can restart the daemon on \"%s\" as \"%s\" by\n"
-               "selecting `Restart Daemon' from the File menu.)",
+               "Restart the daemon on \"%s\" as \"%s\" now?\n",
               progname, luser, lhost,
               d,
               (ruser ? ruser : "???"), (rhost ? rhost : "???"),
               progname, luser, lhost,
               d,
               (ruser ? ruser : "???"), (rhost ? rhost : "???"),
@@ -1639,7 +1680,9 @@ the_network_is_not_the_computer (GtkWidget *parent)
               "Warning:\n\n"
               "This is %s version %s.\n"
               "But the xscreensaver managing display \"%s\"\n"
               "Warning:\n\n"
               "This is %s version %s.\n"
               "But the xscreensaver managing display \"%s\"\n"
-              "is version %s.  This could cause problems.",
+              "is version %s.  This could cause problems.\n"
+              "\n"
+              "Restart the xscreensaver daemon now?\n",
               progname, short_version,
               d,
               rversion);
               progname, short_version,
               d,
               rversion);
@@ -1647,7 +1690,7 @@ the_network_is_not_the_computer (GtkWidget *parent)
 
 
   if (*msg)
 
 
   if (*msg)
-    warning_dialog (parent, msg, 1);
+    warning_dialog (parent, msg, True, 1);
 
   free (msg);
 }
 
   free (msg);
 }
@@ -1703,10 +1746,40 @@ static char *defaults[] = {
  0
 };
 
  0
 };
 
+#if 0
+#ifdef HAVE_CRAPPLET
+static struct poptOption crapplet_options[] = {
+  {NULL, '\0', 0, NULL, 0}
+};
+#endif /* HAVE_CRAPPLET */
+#endif /* 0 */
+
+#define USAGE() \
+  fprintf (stderr, "usage: %s [ -display dpy-string ] [ -prefs ]\n", \
+           real_progname)
+
+
+static void
+map_window_cb (GtkWidget *w, gpointer user_data)
+{
+  Boolean oi = initializing_p;
+  initializing_p = True;
+  pixmapify_buttons (w);
+  eschew_gtk_lossage (w);
+  ensure_selected_item_visible (GTK_WIDGET(name_to_widget(w, "list")));
+  initializing_p = oi;
+}
+
+
 int
 main (int argc, char **argv)
 {
   XtAppContext app;
 int
 main (int argc, char **argv)
 {
   XtAppContext app;
+# ifdef HAVE_CRAPPLET
+  GnomeClient *client;
+  GnomeClientFlags flags;
+  int init_results;
+# endif /* HAVE_CRAPPLET */
   prefs_pair Pair, *pair;
   saver_preferences P, P2, *p, *p2;
   Bool prefs = False;
   prefs_pair Pair, *pair;
   saver_preferences P, P2, *p, *p2;
   Bool prefs = False;
@@ -1717,6 +1790,8 @@ main (int argc, char **argv)
   char *real_progname = argv[0];
   char *s;
 
   char *real_progname = argv[0];
   char *s;
 
+  initializing_p = True;
+
   s = strrchr (real_progname, '/');
   if (s) real_progname = s+1;
 
   s = strrchr (real_progname, '/');
   if (s) real_progname = s+1;
 
@@ -1755,9 +1830,68 @@ main (int argc, char **argv)
         !strncmp(argv[i], "-display", strlen(argv[i])))
       argv[i] = "--display";
 
         !strncmp(argv[i], "-display", strlen(argv[i])))
       argv[i] = "--display";
 
+
+  /* We need to parse this arg really early... Sigh. */
+  for (i = 1; i < argc; i++)
+    if (argv[i] &&
+        (!strcmp(argv[i], "--crapplet") ||
+         !strcmp(argv[i], "--capplet")))
+      {
+# ifdef HAVE_CRAPPLET
+        int j;
+        crapplet_p = True;
+        for (j = i; j < argc; j++)  /* remove it from the list */
+          argv[j] = argv[j+1];
+        argc--;
+
+# else  /* !HAVE_CRAPPLET */
+        fprintf (stderr, "%s: not compiled with --crapplet support\n",
+                 real_progname[i]);
+        USAGE ();
+        exit (1);
+# endif /* !HAVE_CRAPPLET */
+      }
+
   /* Let Gtk open the X connection, then initialize Xt to use that
   /* Let Gtk open the X connection, then initialize Xt to use that
-     same connection.  Doctor Frankenstein would be proud. */   
-  gtk_init (&argc, &argv);
+     same connection.  Doctor Frankenstein would be proud.
+   */
+# ifdef HAVE_CRAPPLET
+  if (crapplet_p)
+    {
+      init_results = gnome_capplet_init ("screensaver-properties",
+                                         short_version,
+                                         argc, argv, NULL, 0, NULL);
+
+      if (init_results < 0)
+        {
+#  if 0
+          g_error ("An initialization error occurred while "
+                   "starting xscreensaver-capplet.\n");
+#  else  /* !0 */
+          fprintf (stderr, "%s: gnome_capplet_init failed: %d\n",
+                   real_progname, init_results);
+          exit (1);
+#  endif /* !0 */
+        }
+
+      client = gnome_master_client ();
+
+      if (client)
+        flags = gnome_client_get_flags (client);
+      else
+        flags = 0;
+
+      if (flags & GNOME_CLIENT_IS_CONNECTED)
+        {
+          gnome_client_set_restart_style (client, GNOME_RESTART_NEVER);
+          gnome_client_flush (client);
+        }
+    }
+  else
+# endif /* HAVE_CRAPPLET */
+    {
+      gtk_init (&argc, &argv);
+    }
 
 
   /* We must read exactly the same resources as xscreensaver.
 
 
   /* We must read exactly the same resources as xscreensaver.
@@ -1796,12 +1930,15 @@ main (int argc, char **argv)
        s++;
       if (!strcmp (s, "-prefs"))
        prefs = True;
        s++;
       if (!strcmp (s, "-prefs"))
        prefs = True;
+      else if (crapplet_p)
+        /* There are lots of random args that we don't care about when we're
+           started as a crapplet, so just ignore unknown args in that case. */
+        ;
       else
        {
          fprintf (stderr, "%s: unknown option: %s\n", real_progname, argv[i]);
       else
        {
          fprintf (stderr, "%s: unknown option: %s\n", real_progname, argv[i]);
-         fprintf (stderr, "usage: %s [ -display dpy-string ] [ -prefs ]\n",
-                  real_progname);
-         exit (1);
+          USAGE ();
+          exit (1);
        }
     }
 
        }
     }
 
@@ -1853,6 +1990,7 @@ main (int argc, char **argv)
   /* Create the window and all its widgets.
    */
   gtk_window = create_xscreensaver_demo ();
   /* Create the window and all its widgets.
    */
   gtk_window = create_xscreensaver_demo ();
+  toplevel_widget = gtk_window;
 
   /* Set the window's title. */
   {
 
   /* Set the window's title. */
   {
@@ -1880,12 +2018,11 @@ main (int argc, char **argv)
   sensitize_demo_widgets (gtk_window, False);
   fix_text_entry_sizes (gtk_window);
   scroll_to_current_hack (gtk_window, pair);
   sensitize_demo_widgets (gtk_window, False);
   fix_text_entry_sizes (gtk_window);
   scroll_to_current_hack (gtk_window, pair);
-  gtk_widget_show (gtk_window);
 
 
-  /* The next three calls must come after gtk_widget_show(). */
-  pixmapify_buttons (gtk_window);
-  eschew_gtk_lossage (gtk_window);
-  ensure_selected_item_visible (GTK_WIDGET(name_to_widget(gtk_window,"list")));
+  gtk_signal_connect (
+              GTK_OBJECT (name_to_widget (GTK_WIDGET (gtk_window), "list")),
+              "map", GTK_SIGNAL_FUNC(map_window_cb), 0);
+
 
   /* Handle the -prefs command-line argument. */
   if (prefs)
 
   /* Handle the -prefs command-line argument. */
   if (prefs)
@@ -1895,8 +2032,46 @@ main (int argc, char **argv)
       gtk_notebook_set_page (notebook, 1);
     }
 
       gtk_notebook_set_page (notebook, 1);
     }
 
-  /* Issue any warnings about the running xscreensaver daemon. */
-  the_network_is_not_the_computer (gtk_window);
+# ifdef HAVE_CRAPPLET
+  if (crapplet_p)
+    {
+      GtkWidget *capplet;
+      GtkWidget *top_vbox;
+
+      capplet = capplet_widget_new ();
+
+      top_vbox = GTK_BIN (gtk_window)->child;
+
+      gtk_widget_ref (top_vbox);
+      gtk_container_remove (GTK_CONTAINER (gtk_window), top_vbox);
+      GTK_OBJECT_SET_FLAGS (top_vbox, GTK_FLOATING);
+
+      /* This is a crock, but otherwise, the Control Center expands to
+         be as tall as the screen. */
+      gtk_window_set_default_size (GTK_WINDOW (top_vbox), 600, 400);
+
+      /* In crapplet-mode, take off the menubar. */
+      gtk_widget_hide (name_to_widget (gtk_window, "menubar"));
+
+      gtk_container_add (GTK_CONTAINER (capplet), top_vbox);
+      gtk_widget_show (capplet);
+      gtk_widget_hide (gtk_window);
+
+      /* Hook up the Control Center's redundant Help button, too. */
+      gtk_signal_connect (GTK_OBJECT (capplet), "help",
+                          GTK_SIGNAL_FUNC (doc_menu_cb), 0);
+
+      /* Issue any warnings about the running xscreensaver daemon. */
+      the_network_is_not_the_computer (top_vbox);
+    }
+  else
+# endif /* HAVE_CRAPPLET */
+    {
+      gtk_widget_show (gtk_window);
+
+      /* Issue any warnings about the running xscreensaver daemon. */
+      the_network_is_not_the_computer (gtk_window);
+    }
 
   /* Run the Gtk event loop, and not the Xt event loop.  This means that
      if there were Xt timers or fds registered, they would never get serviced,
 
   /* Run the Gtk event loop, and not the Xt event loop.  This means that
      if there were Xt timers or fds registered, they would never get serviced,
@@ -1905,7 +2080,15 @@ main (int argc, char **argv)
      Xt so that we could process the command line and use the X resource
      manager.
    */
      Xt so that we could process the command line and use the X resource
      manager.
    */
-  gtk_main ();
+  initializing_p = False;
+
+# ifdef HAVE_CRAPPLET
+  if (crapplet_p)
+    capplet_gtk_main ();
+  else
+# endif /* HAVE_CRAPPLET */
+    gtk_main ();
+
   exit (0);
 }
 
   exit (0);
 }
 
index 1e28d60af27f09c481aff2ebd01914d513d057bd..ca3f13ea889d35b913a6def81b17bfb92ed4eeab 100644 (file)
@@ -1,6 +1,7 @@
 /* kpasswd.c --- verify kerberos passwords.
  * written by Nat Lanza (magus@cs.cmu.edu) for
 /* kpasswd.c --- verify kerberos passwords.
  * written by Nat Lanza (magus@cs.cmu.edu) for
- * xscreensaver, Copyright (c) 1993-1997, 1998 Jamie Zawinski <jwz@jwz.org>
+ * xscreensaver, Copyright (c) 1993-1997, 1998, 2000
+ *  Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
 #include <stdio.h>
 #include <string.h>
 #include <sys/types.h>
 #include <stdio.h>
 #include <string.h>
 #include <sys/types.h>
-#include <krb.h>
-#include <des.h>
+
+#ifdef HAVE_KERBEROS5
+# include <kerberosIV/krb.h>
+# include <kerberosIV/des.h>
+#else /* !HAVE_KERBEROS5 (meaning Kerberos 4) */
+# include <krb.h>
+# include <des.h>
+#endif /* !HAVE_KERBEROS5 */
 
 #if !defined(VMS) && !defined(HAVE_ADJUNCT_PASSWD)
 # include <pwd.h>
 
 #if !defined(VMS) && !defined(HAVE_ADJUNCT_PASSWD)
 # include <pwd.h>
index a02cf81195226879c57d63e8336a2bd2a55f16af..aedd47e294c4e64917b2554a7d32555b3105a3b8 100644 (file)
@@ -1,7 +1,7 @@
 /* passwd-pam.c --- verifying typed passwords with PAM
  * (Pluggable Authentication Modules.)
  * written by Bill Nottingham <notting@redhat.com> (and jwz) for
 /* passwd-pam.c --- verifying typed passwords with PAM
  * (Pluggable Authentication Modules.)
  * written by Bill Nottingham <notting@redhat.com> (and jwz) for
- * xscreensaver, Copyright (c) 1993-1998 Jamie Zawinski <jwz@jwz.org>
+ * xscreensaver, Copyright (c) 1993-1998, 2000 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -217,7 +217,17 @@ pam_passwd_valid_p (const char *typed_passwd, Bool verbose_p)
     fprintf (stderr, "%s:   pam_authenticate (...) ==> %d (%s)\n",
              blurb(), status, PAM_STRERROR(pamh, status));
   if (status == PAM_SUCCESS)  /* Win! */
     fprintf (stderr, "%s:   pam_authenticate (...) ==> %d (%s)\n",
              blurb(), status, PAM_STRERROR(pamh, status));
   if (status == PAM_SUCCESS)  /* Win! */
-    goto DONE;
+    {
+      /* Each time we successfully authenticate, refresh credentials,
+         for Kerberos/AFS/DCE/etc.  If this fails, just ignore that
+         failure and blunder along; it shouldn't matter.
+       */
+      int status2 = pam_setcred (pamh, PAM_REFRESH_CRED);
+      if (verbose_p)
+        fprintf (stderr, "%s:   pam_setcred (...) ==> %d (%s)\n",
+                 blurb(), status2, PAM_STRERROR(pamh, status2));
+      goto DONE;
+    }
 
   /* If that didn't work, set the user to root, and try to authenticate again.
    */
 
   /* If that didn't work, set the user to root, and try to authenticate again.
    */
diff --git a/driver/screensaver-properties.desktop.in b/driver/screensaver-properties.desktop.in
new file mode 100644 (file)
index 0000000..cdcd3e0
--- /dev/null
@@ -0,0 +1,42 @@
+[Desktop Entry]
+Name=Screensaver
+Name[da]=Pauseskærm
+Name[ca]=Protector de pantalla
+Name[de]=Bildschirmschoner
+Name[es]=Propiedades Salvapantallas
+Name[et]=Ekraanisäästja
+Name[fi]=Ruudunsäästäjä
+Name[fr]=Propriétés Économiseur d'écran
+Name[hu]=Képernyõvédõ
+Name[it]=Salvaschermo
+Name[ja]=¥¹¥¯¥ê¡¼¥ó¥»¡¼¥Ð¡¼
+Name[ko]=È­¸é º¸È£±â
+Name[no]=Skjermsparer
+Name[pl]=Wygaszacz ekranu
+Name[pt]=Propriedades da protecção de ecrã
+Name[pt_BR]=Propriedades da proteção de tela
+Name[ru]=èÒÁÎÉÔÅÌØ ÜËÒÁÎÁ
+Name[sv]=Skärmsläckare
+Name[wa]=Spårgneu di waitroûle
+Comment=Configure the settings of the screensaver.
+Comment[da]=Indstil din pauseskærm.
+Comment[ca]=Configurar el protector de pantalla.
+Comment[de]=Bildschirmschoner einrichten
+Comment[es]=Configurar el salvapantalla
+Comment[et]=Ekraanisäästja häälestus
+Comment[fi]=Aseta ruudunsäästäjän asetukset.
+Comment[fr]=Configurer l'économiseur d'écran
+Comment[hu]=Képernyõvédõ beállítások
+Comment[it]=Impostazioni del salvaschermo
+Comment[ja]=¥¹¥¯¥ê¡¼¥ó¥»¡¼¥Ð¡¼¤ÎÀßÄê
+Comment[ko]=È­¸é º¸È£±â ¼³Á¤
+Comment[no]=Endre innstillingene for skjermspareren
+Comment[pl]=Konfiguracja wygaszacza ekranu
+Comment[pt]=Configura as opções da protecção de ecrã.
+Comment[ru]=îÁÓÔÒÏÊËÁ ÈÒÁÎÉÔÅÌÑ ÜËÒÁÎÁ.
+Comment[sv]=Ändra inställningar för skärmsläckare
+Comment[wa]=Apontiaedje do spårgneu di waitroûle
+Exec=@bindir@/xscreensaver-demo --crapplet
+Icon=gnome-ccscreensaver.png
+Terminal=0
+Type=Application
index 21e101648e021fee754c91bf87036ef39090b190..7a0b07831c926c04d398f518aa0280a666c47e39 100644 (file)
@@ -27,10 +27,11 @@ in this Software without prior written authorization from The Open Group.
  * GLX and Overlay support added by Jamie Zawinski <jwz@jwz.org>, 11-Nov-99
  *
  *      To compile:
  * GLX and Overlay support added by Jamie Zawinski <jwz@jwz.org>, 11-Nov-99
  *
  *      To compile:
- *         cc -DHAVE_GLX xdpyinfo.c -o xdpyinfo -lGL -lX11 -lXext -lm
+ *         cc -DHAVE_GLX xdpyinfo.c -o xdpyinfo -lGL -lX11 -lXext [-lXtst] -lm
  *
  *      Other defines to consider:
  *
  *      Other defines to consider:
- *         -DHAVE_XIE -DHAVE_XTEST -DHAVE_SYNC -DHAVE_XRECORD
+ *         -DMITSHM -DHAVE_XDBE -DHAVE_XIE -DHAVE_XTEST -DHAVE_SYNC
+ *         -DHAVE_XRECORD
  */
 
 #include <X11/Xlib.h>
  */
 
 #include <X11/Xlib.h>
@@ -46,7 +47,9 @@ in this Software without prior written authorization from The Open Group.
 #ifdef HAVE_XSYNC
 #include <X11/extensions/sync.h>
 #endif /* HAVE_XSYNC */
 #ifdef HAVE_XSYNC
 #include <X11/extensions/sync.h>
 #endif /* HAVE_XSYNC */
+#ifdef HAVE_XDBE
 #include <X11/extensions/Xdbe.h>
 #include <X11/extensions/Xdbe.h>
+#endif /* HAVE_XDBE */
 #ifdef HAVE_XRECORD
 #include <X11/extensions/record.h>
 #endif /* HAVE_XRECORD */
 #ifdef HAVE_XRECORD
 #include <X11/extensions/record.h>
 #endif /* HAVE_XRECORD */
@@ -873,6 +876,7 @@ print_mitshm_info(dpy, extname)
 }
 #endif /* MITSHM */
 
 }
 #endif /* MITSHM */
 
+#ifdef HAVE_XDBE
 int
 print_dbe_info(dpy, extname)
     Display *dpy;
 int
 print_dbe_info(dpy, extname)
     Display *dpy;
@@ -902,6 +906,7 @@ print_dbe_info(dpy, extname)
     XdbeFreeVisualInfo(svi);
     return 1;
 }
     XdbeFreeVisualInfo(svi);
     return 1;
 }
+#endif /* HAVE_XDBE */
 
 #ifdef HAVE_XRECORD
 int
 
 #ifdef HAVE_XRECORD
 int
@@ -949,7 +954,9 @@ ExtensionPrintInfo known_extensions[] =
 #ifdef HAVE_XTEST
     {XTestExtensionName, print_xtest_info, False},
 #endif /* HAVE_XTEST */
 #ifdef HAVE_XTEST
     {XTestExtensionName, print_xtest_info, False},
 #endif /* HAVE_XTEST */
+#ifdef HAVE_XDBE
     {"DOUBLE-BUFFER", print_dbe_info, False},
     {"DOUBLE-BUFFER", print_dbe_info, False},
+#endif /* HAVE_XDBE */
 #ifdef HAVE_XRECORD
     {"RECORD", print_record_info, False}    
 #endif /* HAVE_XRECORD */
 #ifdef HAVE_XRECORD
     {"RECORD", print_record_info, False}    
 #endif /* HAVE_XRECORD */
index e6d20a48fd3163e8a21d4d75a9f2fcc3f84682e2..5e66859f6958d458b4bf972618772fe5aa8a6499 100644 (file)
@@ -11,7 +11,7 @@
 .if n .sp 1
 .if t .sp .5
 ..
 .if n .sp 1
 .if t .sp .5
 ..
-.TH XScreenSaver 1 "30-Jan-00 (3.23)" "X Version 11"
+.TH XScreenSaver 1 "03-Apr-2000 (3.24)" "X Version 11"
 .SH NAME
 xscreensaver-command - control a running xscreensaver process
 .SH SYNOPSIS
 .SH NAME
 xscreensaver-command - control a running xscreensaver process
 .SH SYNOPSIS
index 659dc9138c552ae23849ccd7059e8331915a472f..cf98335e8cb64d63900ca221c9cbd577582ff0f3 100644 (file)
@@ -19,9 +19,6 @@
   <main_header_file>demo-Gtk-widgets.h</main_header_file>
   <handler_source_file>demo-Gtk-stubs.c</handler_source_file>
   <handler_header_file>demo-Gtk-stubs.h</handler_header_file>
   <main_header_file>demo-Gtk-widgets.h</main_header_file>
   <handler_source_file>demo-Gtk-stubs.c</handler_source_file>
   <handler_header_file>demo-Gtk-stubs.h</handler_header_file>
-  <support_source_file>support.c</support_source_file>
-  <support_header_file>support.h</support_header_file>
-  <translatable_strings_file></translatable_strings_file>
 </project>
 
 <widget>
 </project>
 
 <widget>
       <class>GtkNotebook</class>
       <name>notebook</name>
       <can_focus>True</can_focus>
       <class>GtkNotebook</class>
       <name>notebook</name>
       <can_focus>True</can_focus>
+      <signal>
+       <name>switch_page</name>
+       <handler>pref_changed_cb</handler>
+       <last_modification_time>Mon, 03 Apr 2000 02:36:24 GMT</last_modification_time>
+      </signal>
       <show_tabs>True</show_tabs>
       <show_border>True</show_border>
       <tab_pos>GTK_POS_TOP</tab_pos>
       <show_tabs>True</show_tabs>
       <show_border>True</show_border>
       <tab_pos>GTK_POS_TOP</tab_pos>
@@ -615,6 +617,16 @@ Mono
              <name>timeout_text</name>
              <tooltip>How long until the screensaver activates.</tooltip>
              <can_focus>True</can_focus>
              <name>timeout_text</name>
              <tooltip>How long until the screensaver activates.</tooltip>
              <can_focus>True</can_focus>
+             <signal>
+               <name>activate</name>
+               <handler>pref_changed_cb</handler>
+               <last_modification_time>Mon, 03 Apr 2000 02:28:10 GMT</last_modification_time>
+             </signal>
+             <signal>
+               <name>focus_out_event</name>
+               <handler>pref_changed_cb</handler>
+               <last_modification_time>Mon, 03 Apr 2000 02:34:26 GMT</last_modification_time>
+             </signal>
              <editable>True</editable>
              <text_visible>True</text_visible>
              <text_max_length>8</text_max_length>
              <editable>True</editable>
              <text_visible>True</text_visible>
              <text_max_length>8</text_max_length>
@@ -640,6 +652,16 @@ Mono
              <name>cycle_text</name>
              <tooltip>How long each demo will be run before moving on to another.</tooltip>
              <can_focus>True</can_focus>
              <name>cycle_text</name>
              <tooltip>How long each demo will be run before moving on to another.</tooltip>
              <can_focus>True</can_focus>
+             <signal>
+               <name>activate</name>
+               <handler>pref_changed_cb</handler>
+               <last_modification_time>Mon, 03 Apr 2000 02:28:29 GMT</last_modification_time>
+             </signal>
+             <signal>
+               <name>focus_out_event</name>
+               <handler>pref_changed_cb</handler>
+               <last_modification_time>Mon, 03 Apr 2000 02:35:28 GMT</last_modification_time>
+             </signal>
              <editable>True</editable>
              <text_visible>True</text_visible>
              <text_max_length>8</text_max_length>
              <editable>True</editable>
              <text_visible>True</text_visible>
              <text_max_length>8</text_max_length>
@@ -665,6 +687,16 @@ Mono
              <name>fade_text</name>
              <tooltip>How long (in seconds) it should take for the screen to fade to black (8-bit displays only.)</tooltip>
              <can_focus>True</can_focus>
              <name>fade_text</name>
              <tooltip>How long (in seconds) it should take for the screen to fade to black (8-bit displays only.)</tooltip>
              <can_focus>True</can_focus>
+             <signal>
+               <name>activate</name>
+               <handler>pref_changed_cb</handler>
+               <last_modification_time>Mon, 03 Apr 2000 02:28:29 GMT</last_modification_time>
+             </signal>
+             <signal>
+               <name>focus_out_event</name>
+               <handler>pref_changed_cb</handler>
+               <last_modification_time>Mon, 03 Apr 2000 02:35:28 GMT</last_modification_time>
+             </signal>
              <editable>True</editable>
              <text_visible>True</text_visible>
              <text_max_length>8</text_max_length>
              <editable>True</editable>
              <text_visible>True</text_visible>
              <text_max_length>8</text_max_length>
@@ -690,6 +722,16 @@ Mono
              <name>ticks_text</name>
              <tooltip>How many steps are in the fade animation (8-bit displays only.)</tooltip>
              <can_focus>True</can_focus>
              <name>ticks_text</name>
              <tooltip>How many steps are in the fade animation (8-bit displays only.)</tooltip>
              <can_focus>True</can_focus>
+             <signal>
+               <name>activate</name>
+               <handler>pref_changed_cb</handler>
+               <last_modification_time>Mon, 03 Apr 2000 02:28:29 GMT</last_modification_time>
+             </signal>
+             <signal>
+               <name>focus_out_event</name>
+               <handler>pref_changed_cb</handler>
+               <last_modification_time>Mon, 03 Apr 2000 02:35:28 GMT</last_modification_time>
+             </signal>
              <editable>True</editable>
              <text_visible>True</text_visible>
              <text_max_length>8</text_max_length>
              <editable>True</editable>
              <text_visible>True</text_visible>
              <text_max_length>8</text_max_length>
@@ -715,6 +757,16 @@ Mono
              <name>lock_text</name>
              <tooltip>How long after the screensaver has activated until a password will be required (if  `Require Password' is also set.)</tooltip>
              <can_focus>True</can_focus>
              <name>lock_text</name>
              <tooltip>How long after the screensaver has activated until a password will be required (if  `Require Password' is also set.)</tooltip>
              <can_focus>True</can_focus>
+             <signal>
+               <name>activate</name>
+               <handler>pref_changed_cb</handler>
+               <last_modification_time>Mon, 03 Apr 2000 02:28:29 GMT</last_modification_time>
+             </signal>
+             <signal>
+               <name>focus_out_event</name>
+               <handler>pref_changed_cb</handler>
+               <last_modification_time>Mon, 03 Apr 2000 02:35:28 GMT</last_modification_time>
+             </signal>
              <editable>True</editable>
              <text_visible>True</text_visible>
              <text_max_length>8</text_max_length>
              <editable>True</editable>
              <text_visible>True</text_visible>
              <text_max_length>8</text_max_length>
@@ -740,6 +792,16 @@ Mono
              <name>pass_text</name>
              <tooltip>How long the password dialog will wait.</tooltip>
              <can_focus>True</can_focus>
              <name>pass_text</name>
              <tooltip>How long the password dialog will wait.</tooltip>
              <can_focus>True</can_focus>
+             <signal>
+               <name>activate</name>
+               <handler>pref_changed_cb</handler>
+               <last_modification_time>Mon, 03 Apr 2000 02:29:08 GMT</last_modification_time>
+             </signal>
+             <signal>
+               <name>focus_out_event</name>
+               <handler>pref_changed_cb</handler>
+               <last_modification_time>Mon, 03 Apr 2000 02:35:58 GMT</last_modification_time>
+             </signal>
              <editable>True</editable>
              <text_visible>True</text_visible>
              <text_max_length>8</text_max_length>
              <editable>True</editable>
              <text_visible>True</text_visible>
              <text_max_length>8</text_max_length>
@@ -920,6 +982,11 @@ Mono
              <class>GtkCheckButton</class>
              <name>verbose_button</name>
              <can_focus>True</can_focus>
              <class>GtkCheckButton</class>
              <name>verbose_button</name>
              <can_focus>True</can_focus>
+             <signal>
+               <name>toggled</name>
+               <handler>pref_changed_cb</handler>
+               <last_modification_time>Mon, 03 Apr 2000 02:31:53 GMT</last_modification_time>
+             </signal>
              <label>Verbose</label>
              <active>False</active>
              <draw_indicator>True</draw_indicator>
              <label>Verbose</label>
              <active>False</active>
              <draw_indicator>True</draw_indicator>
@@ -943,6 +1010,11 @@ Mono
              <class>GtkCheckButton</class>
              <name>install_button</name>
              <can_focus>True</can_focus>
              <class>GtkCheckButton</class>
              <name>install_button</name>
              <can_focus>True</can_focus>
+             <signal>
+               <name>toggled</name>
+               <handler>pref_changed_cb</handler>
+               <last_modification_time>Mon, 03 Apr 2000 02:32:25 GMT</last_modification_time>
+             </signal>
              <label>Install Colormap</label>
              <active>False</active>
              <draw_indicator>True</draw_indicator>
              <label>Install Colormap</label>
              <active>False</active>
              <draw_indicator>True</draw_indicator>
@@ -966,6 +1038,11 @@ Mono
              <class>GtkCheckButton</class>
              <name>fade_button</name>
              <can_focus>True</can_focus>
              <class>GtkCheckButton</class>
              <name>fade_button</name>
              <can_focus>True</can_focus>
+             <signal>
+               <name>toggled</name>
+               <handler>pref_changed_cb</handler>
+               <last_modification_time>Mon, 03 Apr 2000 02:32:39 GMT</last_modification_time>
+             </signal>
              <label>Fade Colormap</label>
              <active>False</active>
              <draw_indicator>True</draw_indicator>
              <label>Fade Colormap</label>
              <active>False</active>
              <draw_indicator>True</draw_indicator>
@@ -989,6 +1066,11 @@ Mono
              <class>GtkCheckButton</class>
              <name>unfade_button</name>
              <can_focus>True</can_focus>
              <class>GtkCheckButton</class>
              <name>unfade_button</name>
              <can_focus>True</can_focus>
+             <signal>
+               <name>toggled</name>
+               <handler>pref_changed_cb</handler>
+               <last_modification_time>Mon, 03 Apr 2000 02:32:51 GMT</last_modification_time>
+             </signal>
              <label>Unfade Colormap</label>
              <active>False</active>
              <draw_indicator>True</draw_indicator>
              <label>Unfade Colormap</label>
              <active>False</active>
              <draw_indicator>True</draw_indicator>
@@ -1012,6 +1094,11 @@ Mono
              <class>GtkCheckButton</class>
              <name>lock_button</name>
              <can_focus>True</can_focus>
              <class>GtkCheckButton</class>
              <name>lock_button</name>
              <can_focus>True</can_focus>
+             <signal>
+               <name>toggled</name>
+               <handler>pref_changed_cb</handler>
+               <last_modification_time>Mon, 03 Apr 2000 02:33:01 GMT</last_modification_time>
+             </signal>
              <label>Require Password</label>
              <active>False</active>
              <draw_indicator>True</draw_indicator>
              <label>Require Password</label>
              <active>False</active>
              <draw_indicator>True</draw_indicator>
@@ -1032,49 +1119,6 @@ Mono
            </widget>
          </widget>
        </widget>
            </widget>
          </widget>
        </widget>
-
-       <widget>
-         <class>GtkHButtonBox</class>
-         <name>hbuttonbox3</name>
-         <border_width>10</border_width>
-         <layout_style>GTK_BUTTONBOX_DEFAULT_STYLE</layout_style>
-         <spacing>30</spacing>
-         <child_min_width>85</child_min_width>
-         <child_min_height>27</child_min_height>
-         <child_ipad_x>7</child_ipad_x>
-         <child_ipad_y>0</child_ipad_y>
-         <child>
-           <padding>0</padding>
-           <expand>False</expand>
-           <fill>False</fill>
-         </child>
-
-         <widget>
-           <class>GtkButton</class>
-           <name>prefs_ok</name>
-           <can_default>True</can_default>
-           <can_focus>True</can_focus>
-           <signal>
-             <name>clicked</name>
-             <handler>prefs_ok_cb</handler>
-             <last_modification_time>Mon, 08 Nov 1999 04:39:18 GMT</last_modification_time>
-           </signal>
-           <label>OK</label>
-         </widget>
-
-         <widget>
-           <class>GtkButton</class>
-           <name>prefs_cancel</name>
-           <can_default>True</can_default>
-           <can_focus>True</can_focus>
-           <signal>
-             <name>clicked</name>
-             <handler>prefs_cancel_cb</handler>
-             <last_modification_time>Mon, 08 Nov 1999 04:39:33 GMT</last_modification_time>
-           </signal>
-           <label>Cancel</label>
-         </widget>
-       </widget>
       </widget>
 
       <widget>
       </widget>
 
       <widget>
index 2d974f029cb2b9edbe3797d3124176f8ece9e446..578ad9c0798e903d1c17047cc1161aadd792c623 100644 (file)
@@ -11,7 +11,7 @@
 .if n .sp 1
 .if t .sp .5
 ..
 .if n .sp 1
 .if t .sp .5
 ..
-.TH XScreenSaver 1 "30-Jan-00 (3.23)" "X Version 11"
+.TH XScreenSaver 1 "03-Apr-2000 (3.24)" "X Version 11"
 .SH NAME
 xscreensaver-demo - interactively control the background xscreensaver daemon
 .SH SYNOPSIS
 .SH NAME
 xscreensaver-demo - interactively control the background xscreensaver daemon
 .SH SYNOPSIS
index 272f93e59367df19aa63bb641a3b0e5e8b01eebc..f15cd3bc23588bec0397bed9e2f201d9dd4fc36e 100644 (file)
@@ -11,7 +11,7 @@
 .if n .sp 1
 .if t .sp .5
 ..
 .if n .sp 1
 .if t .sp .5
 ..
-.TH XScreenSaver 1 "30-Jan-00 (3.23)" "X Version 11"
+.TH XScreenSaver 1 "03-Apr-2000 (3.24)" "X Version 11"
 .SH NAME
 xscreensaver - graphics hack and screen locker, launched when the user is idle
 .SH SYNOPSIS
 .SH NAME
 xscreensaver - graphics hack and screen locker, launched when the user is idle
 .SH SYNOPSIS
index 5da1b76af0bd2b55e7b2218bd6355db16bc687ed..24927d93d3d3d0b8dadb91cbaef8defdd3bcaf41 100644 (file)
@@ -147,7 +147,7 @@ MEN         = attraction.man blitspin.man bouboule.man braid.man \
                  xjack.man xlyap.man jigsaw.man epicycle.man bsod.man \
                  sonar.man t3d.man squiral.man spotlight.man critical.man \
                  vidwhacker.man webcollage.man xsublim.man distort.man \
                  xjack.man xlyap.man jigsaw.man epicycle.man bsod.man \
                  sonar.man t3d.man squiral.man spotlight.man critical.man \
                  vidwhacker.man webcollage.man xsublim.man distort.man \
-                 phosphor.man xmatrix.man xteevee.man
+                 phosphor.man xmatrix.man xteevee.man xflame.man
 STAR           = *
 EXTRAS         = README Makefile.in xlock_23.h .gdbinit \
                  images/$(STAR).xbm \
 STAR           = *
 EXTRAS         = README Makefile.in xlock_23.h .gdbinit \
                  images/$(STAR).xbm \
@@ -499,8 +499,8 @@ interference:  interference.o       $(HACK_OBJS) $(COL) $(SHM) $(DBE)
 truchet:        truchet.o      $(HACK_OBJS) $(COL)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(COL) $(HACK_LIBS)
 
 truchet:        truchet.o      $(HACK_OBJS) $(COL)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(COL) $(HACK_LIBS)
 
-bsod:          bsod.o          $(HACK_OBJS) $(COL)
-       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(COL) $(HACK_LIBS) $(XPM_LIBS)
+bsod:          bsod.o          $(HACK_OBJS) $(GRAB)
+       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(GRAB) $(HACK_LIBS) $(XPM_LIBS) $(GRAB_LIBS)
 
 distort:       distort.o       $(HACK_OBJS) $(GRAB) $(SHM)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(GRAB) $(SHM) $(HACK_LIBS) $(GRAB_LIBS)
 
 distort:       distort.o       $(HACK_OBJS) $(GRAB) $(SHM)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(GRAB) $(SHM) $(HACK_LIBS) $(GRAB_LIBS)
@@ -1648,6 +1648,7 @@ xflame.o: $(UTILS_SRC)/colors.h
 xflame.o: $(UTILS_SRC)/grabscreen.h
 xflame.o: $(UTILS_SRC)/visual.h
 xflame.o: $(UTILS_SRC)/xshm.h
 xflame.o: $(UTILS_SRC)/grabscreen.h
 xflame.o: $(UTILS_SRC)/visual.h
 xflame.o: $(UTILS_SRC)/xshm.h
+xflame.o: $(srcdir)/images/bob.xbm
 wander.o: $(srcdir)/screenhack.h
 wander.o: ../config.h
 wander.o: $(UTILS_SRC)/yarandom.h
 wander.o: $(srcdir)/screenhack.h
 wander.o: ../config.h
 wander.o: $(UTILS_SRC)/yarandom.h
index faffc0f4e821a120c3baa8324d7a005821ee1452..5decc5c61dddcf0170ff682a904ad8b010c557c2 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1998 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1998, 2000 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -1019,6 +1019,85 @@ macsbug (Display *dpy, Window window, int delay)
   return True;
 }
 
   return True;
 }
 
+\f
+/* blit damage
+ *
+ * by Martin Pool <mbp@samba.org>, Feb 2000.
+ *
+ * This is meant to look like the preferred failure mode of NCD
+ * Xterms.  The parameters for choosing what to copy where might not
+ * be quite right, but it looks about ugly enough.
+ */
+static Bool
+blitdamage (Display *dpy, Window window, int delay)
+{
+  XGCValues gcv;
+  XWindowAttributes xwa;
+  GC gc0;
+  int i;
+  int delta_x = 0, delta_y = 0;
+  int w, h;
+  int chunk_h, chunk_w;
+  int steps;
+  long gc_mask = 0;
+  int src_x, src_y;
+  int x, y;
+  
+  if (!get_boolean_resource("doBlitDamage", "DoBlitDamage"))
+    return False;
+
+  XGetWindowAttributes(dpy, window, &xwa);
+
+  grab_screen_image(xwa.screen, window);
+
+  w = xwa.width;
+  h = xwa.height;
+
+  gc_mask = GCForeground;
+  
+  gcv.plane_mask = random();
+  gc_mask |= GCPlaneMask;
+  
+  gc0 = XCreateGC(dpy, window, gc_mask, &gcv);
+
+  steps = 50;
+  chunk_w = w / (random() % 1 + 1);
+  chunk_h = h / (random() % 1 + 1);
+  if (random() & 0x1000) 
+    delta_y = random() % 600;
+  if (!delta_y || (random() & 0x2000))
+    delta_x = random() % 600;
+  src_x = 0; 
+  src_y = 0; 
+  x = 0;
+  y = 0;
+  
+  for (i = 0; i < steps; i++) {
+    if (x + chunk_w > w) 
+      x -= w;
+    else
+      x += delta_x;
+    
+    if (y + chunk_h > h)
+      y -= h;
+    else
+      y += delta_y;
+    
+    XCopyArea(dpy, window, window, gc0,
+             src_x, src_y, 
+             chunk_w, chunk_h,
+             x, y);
+
+    bsod_sleep(dpy, 0);
+  }
+
+  bsod_sleep(dpy, delay);
+
+  XFreeGC(dpy, gc0);
+
+  return True;
+}
+
 
 \f
 char *progclass = "BSOD";
 
 \f
 char *progclass = "BSOD";
@@ -1034,6 +1113,7 @@ char *defaults [] = {
   "*doMacsBug:            True",
   "*doSCO:                True",
   "*doSparcLinux:         False",      /* boring */
   "*doMacsBug:            True",
   "*doSCO:                True",
   "*doSparcLinux:         False",      /* boring */
+  "*doBlitDamage:          True",
 
   ".Windows.font:         -*-courier-bold-r-*-*-*-120-*-*-m-*-*-*",
   ".Windows.font2:        -*-courier-bold-r-*-*-*-180-*-*-m-*-*-*",
 
   ".Windows.font:         -*-courier-bold-r-*-*-*-120-*-*-m-*-*-*",
   ".Windows.font2:        -*-courier-bold-r-*-*-*-180-*-*-m-*-*-*",
@@ -1098,7 +1178,7 @@ screenhack (Display *dpy, Window window)
   while (1)
     {
       Bool did;
   while (1)
     {
       Bool did;
-      do {  i = (random() & 0xFF) % 8; } while (i == j);
+      do {  i = (random() & 0xFF) % 9; } while (i == j);
       switch (i)
        {
        case 0: did = windows(dpy, window, delay, True); break;
       switch (i)
        {
        case 0: did = windows(dpy, window, delay, True); break;
@@ -1109,6 +1189,7 @@ screenhack (Display *dpy, Window window)
        case 5: did = sco(dpy, window, delay); break;
        case 6: did = sparc_linux(dpy, window, delay); break;
        case 7: did = atari(dpy, window, delay); break;
        case 5: did = sco(dpy, window, delay); break;
        case 6: did = sparc_linux(dpy, window, delay); break;
        case 7: did = atari(dpy, window, delay); break;
+       case 8: did = blitdamage(dpy, window, delay); break;
        default: abort(); break;
        }
       loop++;
        default: abort(); break;
        }
       loop++;
index 63bcee68a9d1b3795edc8a0e21d606c5d785c943..925b7b2163a7fab000d03f8473ba37b75ac9fb3c 100644 (file)
@@ -72,6 +72,7 @@ hacks are displayed and which aren't.
 .BR doMacsBug ,
 .BR doSCO ,
 .BR doAtari ,
 .BR doMacsBug ,
 .BR doSCO ,
 .BR doAtari ,
+.BR doBlitDamage ,
 and
 .BR doSparcLinux .
 Each of these is a Boolean resource, they all default to true, except for
 and
 .BR doSparcLinux .
 Each of these is a Boolean resource, they all default to true, except for
index 3f8f2763ab85dc812ca6fc16dd49fcc068fcd8e8..1e8f3a1ab19731ca7283f51a35402ef7647581a7 100644 (file)
@@ -1,5 +1,5 @@
 /* critical -- Self-organizing-criticality display hack for XScreenSaver
 /* critical -- Self-organizing-criticality display hack for XScreenSaver
- * Copyright (C) 1998, 1999 Martin Pool <mbp@humbug.org.au>
+ * Copyright (C) 1998, 1999, 2000 Martin Pool <mbp@humbug.org.au>
  *
  * Permission to use, copy, modify, distribute, and sell this software
  * and its documentation for any purpose is hereby granted without
  *
  * Permission to use, copy, modify, distribute, and sell this software
  * and its documentation for any purpose is hereby granted without
  *
  * Revision history:
  * 13 Nov 1998: Initial version, Martin Pool <mbp@humbug.org.au>
  *
  * Revision history:
  * 13 Nov 1998: Initial version, Martin Pool <mbp@humbug.org.au>
- */
+ * 08 Feb 2000: Change to keeping and erasing a trail, <mbp>
+ *
+ * It would be nice to draw curvy shapes rather than just straight
+ * lines, but X11 doesn't have spline primitives (?) so we'd have to
+ * do all the work ourselves  */
 
 #include "screenhack.h"
 #include "erase.h"
 
 #include <stdio.h>
 #include <stdlib.h>
 
 #include "screenhack.h"
 #include "erase.h"
 
 #include <stdio.h>
 #include <stdlib.h>
+#include <assert.h>
 
 char *progclass = "Critical";
 
 
 char *progclass = "Critical";
 
@@ -29,11 +34,14 @@ typedef struct {
   unsigned short *cells;
 } CriticalModel;
 
   unsigned short *cells;
 } CriticalModel;
 
+typedef struct {
+  int trail;                   /* length of trail */
+  int cell_size;
+} CriticalSettings;
+
 
 CriticalModel * model_allocate (int w, int h);
 void model_initialize (CriticalModel *model);
 
 CriticalModel * model_allocate (int w, int h);
 void model_initialize (CriticalModel *model);
-static void model_step (CriticalModel *model, int *top_x, int *top_y);
-
 
 /* Options this module understands.  */
 XrmOptionDescRec options[] = {
 
 /* Options this module understands.  */
 XrmOptionDescRec options[] = {
@@ -43,6 +51,7 @@ XrmOptionDescRec options[] = {
   { "-restart",                ".restart",     XrmoptionSepArg, 0 },
   { "-cellsize",       ".cellsize",    XrmoptionSepArg, 0 },
   { "-batchcount",     ".batchcount",  XrmoptionSepArg, 0 },
   { "-restart",                ".restart",     XrmoptionSepArg, 0 },
   { "-cellsize",       ".cellsize",    XrmoptionSepArg, 0 },
   { "-batchcount",     ".batchcount",  XrmoptionSepArg, 0 },
+  { "-trail",          ".trail",       XrmoptionSepArg, 0 },
   { 0, 0, 0, 0 }               /* end */
 };
 
   { 0, 0, 0, 0 }               /* end */
 };
 
@@ -54,12 +63,24 @@ char *defaults[] = {
   "*delay:                     10000", 
   "*ncolors:                   64",
   "*restart:                   8",
   "*delay:                     10000", 
   "*ncolors:                   64",
   "*restart:                   8",
-  "*cellsize:                  9",
   "*batchcount:                        1500",
   "*batchcount:                        1500",
+  "*trail:                     50",
   0                            /* end */
 };
 
 
   0                            /* end */
 };
 
 
+int
+clip (int low, int val, int high)
+{
+  if (val < low)
+    return low;
+  else if (val > high)
+    return high;
+  else
+    return val;
+}
+
+
 /* Allocate an return a new simulation model datastructure.
  */
 
 /* Allocate an return a new simulation model datastructure.
  */
 
@@ -122,11 +143,12 @@ model_initialize (CriticalModel *model)
    Neighbours that fall off the edge of the model are simply
    ignored. */
 static void
    Neighbours that fall off the edge of the model are simply
    ignored. */
 static void
-model_step (CriticalModel *model, int *top_x, int *top_y)
+model_step (CriticalModel *model, XPoint *ptop)
 {
   int                  x, y, i;
   int                  dx, dy;
 {
   int                  x, y, i;
   int                  dx, dy;
-  unsigned short       top_value;
+  unsigned short       top_value = 0;
+  int                  top_x = 0, top_y = 0;
 
   /* Find the top cell */
   top_value = 0;
 
   /* Find the top cell */
   top_value = 0;
@@ -137,8 +159,8 @@ model_step (CriticalModel *model, int *top_x, int *top_y)
        if (model->cells[i] >= top_value)
          {
            top_value = model->cells[i];
        if (model->cells[i] >= top_value)
          {
            top_value = model->cells[i];
-           *top_x = x;
-           *top_y = y;
+           top_x = x;
+           top_y = y;
          }
        i++;
       }
          }
        i++;
       }
@@ -146,19 +168,22 @@ model_step (CriticalModel *model, int *top_x, int *top_y)
   /* Replace it and its neighbours with new random values */
   for (dy = -1; dy <= 1; dy++)
     {
   /* Replace it and its neighbours with new random values */
   for (dy = -1; dy <= 1; dy++)
     {
-      int y = *top_y + dy;
+      int y = top_y + dy;
       if (y < 0  ||  y >= model->height)
        continue;
       
       for (dx = -1; dx <= 1; dx++)
        {
       if (y < 0  ||  y >= model->height)
        continue;
       
       for (dx = -1; dx <= 1; dx++)
        {
-         int x = *top_x + dx;
+         int x = top_x + dx;
          if (x < 0  ||  x >= model->width)
            continue;
          
          model->cells[y * model->width + x] = (unsigned short) random();
        }
     }
          if (x < 0  ||  x >= model->width)
            continue;
          
          model->cells[y * model->width + x] = (unsigned short) random();
        }
     }
+
+  ptop->x = top_x;
+  ptop->y = top_y;
 }
 
 
 }
 
 
@@ -212,25 +237,47 @@ setup_colormap (Display *dpy, XWindowAttributes *wattr,
 }
 
 
 }
 
 
+/* Draw one step of the hack.  Positions are cell coordinates. */
+static void
+draw_step (CriticalSettings *settings,
+          Display *dpy, Window window, GC gc,
+          int pos, XPoint *history)
+{
+  int cell_size = settings->cell_size;
+  int half = cell_size/2;
+  int old_pos = (pos + settings->trail - 1) % settings->trail;
+  
+  pos = pos % settings->trail;
+
+  XDrawLine (dpy, window, gc, 
+            history[pos].x * cell_size + half,
+            history[pos].y * cell_size + half,
+            history[old_pos].x * cell_size + half,
+            history[old_pos].y * cell_size + half);
+}
+
+
 
 /* Display a self-organizing criticality screen hack.  The program
    runs indefinately on the root window. */
 void
 screenhack (Display *dpy, Window window)
 {
 
 /* Display a self-organizing criticality screen hack.  The program
    runs indefinately on the root window. */
 void
 screenhack (Display *dpy, Window window)
 {
-  GC                   fgc, bgc;
-  XGCValues            gcv;
-  XWindowAttributes    wattr;
   int                  n_colors;
   XColor               *colors;
   int                  model_w, model_h;
   CriticalModel                *model;
   int                  lines_per_color = 10;
   int                  i_color = 0;
   int                  n_colors;
   XColor               *colors;
   int                  model_w, model_h;
   CriticalModel                *model;
   int                  lines_per_color = 10;
   int                  i_color = 0;
-  int                  x1, y1, x2, y2;
   long                 delay_usecs;
   long                 delay_usecs;
-  int                  cell_size;
   int                  batchcount;
   int                  batchcount;
+  XPoint               *history; /* in cell coords */
+  int                  pos = 0;
+  int                  wrapped = 0;
+  GC                   fgc, bgc;
+  XGCValues            gcv;
+  XWindowAttributes    wattr;
+  CriticalSettings     settings;
 
   /* Number of screens that should be drawn before reinitializing the
      model, and count of the number of screens done so far. */
 
   /* Number of screens that should be drawn before reinitializing the
      model, and count of the number of screens done so far. */
@@ -239,20 +286,30 @@ screenhack (Display *dpy, Window window)
   /* Find window attributes */
   XGetWindowAttributes (dpy, window, &wattr);
 
   /* Find window attributes */
   XGetWindowAttributes (dpy, window, &wattr);
 
-  /* Construct the initial model state. */
-  cell_size = get_integer_resource ("cellsize", "Integer");
-  if (cell_size < 1)
-    cell_size = 1;
-  if (cell_size >= 100)
-    cell_size = 99;
-
   batchcount = get_integer_resource ("batchcount", "Integer");
   if (batchcount < 5)
     batchcount = 5;
   batchcount = get_integer_resource ("batchcount", "Integer");
   if (batchcount < 5)
     batchcount = 5;
+
+  /* For the moment the model size is just fixed -- making it vary
+     with the screen size just makes the hack boring on large
+     screens. */
+  model_w = 80;
+  settings.cell_size = wattr.width / model_w;
+  model_h = wattr.height / settings.cell_size;
+
+  /* Construct the initial model state. */
+
+  settings.trail = clip(2, get_integer_resource ("trail", "Integer"), 1000);
   
   
-  model_w = wattr.width / cell_size;
-  model_h = wattr.height  / cell_size;
-  
+  history = malloc (sizeof history[0] * settings.trail);
+  if (!history)
+    {
+      fprintf (stderr, "critical: "
+              "couldn't allocate trail history of %d cells\n",
+              settings.trail);
+      return;
+    }
+
   model = model_allocate (model_w, model_h);
   if (!model)
     {
   model = model_allocate (model_w, model_h);
   if (!model)
     {
@@ -267,9 +324,6 @@ screenhack (Display *dpy, Window window)
 
   fgc = XCreateGC (dpy, window, 0, &gcv);
 
 
   fgc = XCreateGC (dpy, window, 0, &gcv);
 
-  x2 = random() % model_w;
-  y2 = random() % model_h;
-
   delay_usecs = get_integer_resource ("delay", "Integer");
   n_restart = get_integer_resource ("restart", "Integer");
     
   delay_usecs = get_integer_resource ("delay", "Integer");
   n_restart = get_integer_resource ("restart", "Integer");
     
@@ -280,10 +334,15 @@ screenhack (Display *dpy, Window window)
   while (1) {
     int i_batch;
 
   while (1) {
     int i_batch;
 
-    if (!i_restart)
+    if (i_restart == 0)
       {
       {
+       /* Time to start a new simulation, this one has probably got
+          to be a bit boring. */
        setup_colormap (dpy, &wattr, &colors, &n_colors);
        setup_colormap (dpy, &wattr, &colors, &n_colors);
+       erase_full_window (dpy, window);
        model_initialize (model);
        model_initialize (model);
+       pos = 1;
+       wrapped = 0;
       }
     
     for (i_batch = batchcount; i_batch; i_batch--)
       }
     
     for (i_batch = batchcount; i_batch; i_batch--)
@@ -296,27 +355,33 @@ screenhack (Display *dpy, Window window)
            XChangeGC (dpy, fgc, GCForeground, &gcv);
          }
        
            XChangeGC (dpy, fgc, GCForeground, &gcv);
          }
        
-      /* draw a line */
-      x1 = x2;
-      y1 = y2;
+       assert(pos >= 0 && pos < settings.trail);
+       model_step (model, &history[pos]);
 
 
-      model_step (model, &x2, &y2);
+       draw_step (&settings, dpy, window, fgc, pos, history);
 
 
-      XDrawLine (dpy, window, fgc,
-                x1 * cell_size + cell_size/2,
-                y1 * cell_size + cell_size/2,
-                x2 * cell_size + cell_size/2,
-                y2 * cell_size + cell_size/2);
+       /* we use the history as a ring buffer, but don't start erasing until
+          we've wrapped around once. */
+       if (++pos >= settings.trail)
+         {
+           pos -= settings.trail;
+           wrapped = 1;
+         }
 
 
-      XSync (dpy, False); 
-      screenhack_handle_events (dpy);
+       if (wrapped)
+         {
+           draw_step (&settings, dpy, window, bgc, pos+1, history);
+         }
 
 
-      if (delay_usecs)
-        usleep (delay_usecs);
-    }
+       XSync (dpy, False); 
+       screenhack_handle_events (dpy);
+       
+       if (delay_usecs)
+         usleep (delay_usecs);
 
 
+      }
+    
     i_restart = (i_restart + 1) % n_restart;
     i_restart = (i_restart + 1) % n_restart;
-    erase_full_window (dpy, window);
   }
 }
 
   }
 }
 
index 21eec6a565aceca78b91a5c243ed7964d1be4a51..4b4c22180e48532a43343e73a227398d8996738a 100644 (file)
@@ -1,4 +1,4 @@
-.TH XScreenSaver 1 "13-Nov-98" "X Version 11"
+.TH XScreenSaver 1 "08 Feb 2000" "X Version 11"
 .SH NAME
 critical - Draw a system showing self-organizing criticality
 .SH SYNOPSIS
 .SH NAME
 critical - Draw a system showing self-organizing criticality
 .SH SYNOPSIS
@@ -58,6 +58,9 @@ The maximum random radius increment to use.
 .B \-ncolors \fIinteger\fP
 How many colors should be allocated in the color ramp (note that this
 value interacts with \fIoffset\fP.)
 .B \-ncolors \fIinteger\fP
 How many colors should be allocated in the color ramp (note that this
 value interacts with \fIoffset\fP.)
+.TP 8
+.B \-trail \fIinteger\fP
+Length of the trail: between 5 and 100 is nice.
 .SH ENVIRONMENT
 .PP
 .TP 8
 .SH ENVIRONMENT
 .PP
 .TP 8
@@ -83,5 +86,5 @@ supporting documentation.  No representations are made about the
 suitability of this software for any purpose.  It is provided "as is"
 without express or implied warranty.
 .SH AUTHOR
 suitability of this software for any purpose.  It is provided "as is"
 without express or implied warranty.
 .SH AUTHOR
-Martin Pool <mbp@humbug.org.au>, 13-Nov-1998.  Based in part on the
+Martin Pool <mbp@humbug.org.au>, 1998-2000.  Based in part on the
 XScreenSaver code by Jamie Zawinski <jwz@jwz.org>.
 XScreenSaver code by Jamie Zawinski <jwz@jwz.org>.
index d3cc904f8d3ee136e2672bdb83c7b7bbffd23046..0f8c2f4aee2914762d3ccd952b1ebd042219fe4a 100644 (file)
@@ -8,6 +8,7 @@ static const char sccsid[] = "@(#)flow.c 4.10 98/04/24 xlockmore";
 
 /*-
  * Copyright (c) 1996 by Tim Auckland <Tim.Auckland@Sun.COM>
 
 /*-
  * Copyright (c) 1996 by Tim Auckland <Tim.Auckland@Sun.COM>
+ * Portions added by Stephen Davies are Copyright (c) 2000 Stephen Davies
  *
  * Permission to use, copy, modify, and distribute this software and its
  * documentation for any purpose and without fee is hereby granted,
  *
  * Permission to use, copy, modify, and distribute this software and its
  * documentation for any purpose and without fee is hereby granted,
@@ -27,6 +28,12 @@ static const char sccsid[] = "@(#)flow.c 4.10 98/04/24 xlockmore";
  * sections of the "Birkhoff Bagel" and Duffing's forced occilator.
  *
  * Revision History:
  * sections of the "Birkhoff Bagel" and Duffing's forced occilator.
  *
  * Revision History:
+ * 21-Feb-00: Major hackage by Chalky (Stephen Davies, chalky@null.net)
+ *            Forced perspective mode, added 3d box around attractor which
+ *            involved coding 3d-planar-clipping against the view-frustrum
+ *            thingy. Also made view alternate between piggybacking on a 'bee'
+ *            to zooming around outside the attractor. Most bees slow down and
+ *            stop, to make the structure of the attractor more obvious.
  * 31-Nov-98: [TDA] Added Duffing  (what a strange day that was :) DAB)
  *   Duffing's forced oscillator has been added to the formula list and
  *   the parameters section has been updated to display it in Poincare'
  * 31-Nov-98: [TDA] Added Duffing  (what a strange day that was :) DAB)
  *   Duffing's forced oscillator has been added to the formula list and
  *   the parameters section has been updated to display it in Poincare'
@@ -48,9 +55,16 @@ static const char sccsid[] = "@(#)flow.c 4.10 98/04/24 xlockmore";
 # define HACK_DRAW     draw_flow
 # define flow_opts     xlockmore_opts
 # define DEFAULTS      "*delay:                1000 \n" \
 # define HACK_DRAW     draw_flow
 # define flow_opts     xlockmore_opts
 # define DEFAULTS      "*delay:                1000 \n" \
-                                       "*count:                1024 \n" \
+                                       "*count:                500 \n" \
                                        "*cycles:               3000 \n" \
                                        "*cycles:               3000 \n" \
-                                       "*ncolors:              200 \n"
+                                       "*ncolors:              200 \n" \
+       "*rotate:         True \n" \
+       "*ride:           True \n" \
+       "*zoom:           True \n" \
+       "*allow2d:        True \n" \
+       "*box:            True \n" \
+       "*slow:           True \n" \
+       "*freeze:         True \n"
 # define SMOOTH_COLORS
 # include "xlockmore.h"                /* in xscreensaver distribution */
 # include "erase.h"
 # define SMOOTH_COLORS
 # include "xlockmore.h"                /* in xscreensaver distribution */
 # include "erase.h"
@@ -59,7 +73,8 @@ static const char sccsid[] = "@(#)flow.c 4.10 98/04/24 xlockmore";
 # include "xlock.h"            /* in xlockmore distribution */
 #endif /* STANDALONE */
 
 # include "xlock.h"            /* in xlockmore distribution */
 #endif /* STANDALONE */
 
-ModeSpecOpt flow_opts = { 0, NULL, 0, NULL, NULL };
+XrmOptionDescRec flow_options[];
+ModeSpecOpt flow_opts = { 7, flow_options, 0, NULL, NULL };
 
 #ifdef USE_MODULES
 ModStruct   flow_description = {
 
 #ifdef USE_MODULES
 ModStruct   flow_description = {
@@ -87,7 +102,22 @@ typedef struct {
 #define Z(t,b) (sp->p[t][b].z)
 #define balance_rand(v)        ((LRAND()/MAXRAND*(v))-((v)/2)) /* random around 0 */
 #define SCALE_X(A) (sp->width/2+sp->width/sp->size*(A))
 #define Z(t,b) (sp->p[t][b].z)
 #define balance_rand(v)        ((LRAND()/MAXRAND*(v))-((v)/2)) /* random around 0 */
 #define SCALE_X(A) (sp->width/2+sp->width/sp->size*(A))
-#define SCALE_Y(A) (sp->height/2+sp->height/sp->size*(A))
+/*#define SCALE_Y(A) (sp->height/2+sp->height/sp->size*(A))*/
+#define SCALE_Y(A) (sp->height/2+sp->width/sp->size*(A))
+
+/* Mode of operation. Rotate, ride and zoom are mutually exclusive */
+typedef enum {
+       FLOW_ROTATE = 1, /* Rotate around attractor */
+       FLOW_RIDE = 2,   /* Ride a trained bee */
+       FLOW_ZOOM = 4,   /* Zoom in and out */
+       FLOW_2D = 8,     /* Allow 2D attractors */
+       FLOW_BOX = 16,    /* Compute a box around the attractor */
+       FLOW_SLOW = 32,   /* Some bees are slower (and have antifreeze) */
+       FLOW_FREEZE = 64, /* Freeze some of the bees in action */
+} FlowMode;
+
+#define FLOW_DEFAULT (FLOW_ROTATE|FLOW_RIDE|FLOW_ZOOM|FLOW_2D|\
+               FLOW_BOX|FLOW_SLOW|FLOW_FREEZE)
 
 typedef struct {
        int         width;
 
 typedef struct {
        int         width;
@@ -101,11 +131,15 @@ typedef struct {
        XSegment   *old_segs;   /* old bee lines */
        int         nold_segs;
        double      step;
        XSegment   *old_segs;   /* old bee lines */
        int         nold_segs;
        double      step;
+       double          slow;
+       double          slow_view;
        dvector     centre;             /* centre */
        dvector     centre;             /* centre */
+       dvector         range;
        struct {
                double  depth;
                double  height;
        }           view;
        struct {
                double  depth;
                double  height;
        }           view;
+       dvector         circle[2]; /* POV that circles around the scene */
        dvector    *p[2];   /* bee positions x[time][bee#] */
        struct {
                double  theta;
        dvector    *p[2];   /* bee positions x[time][bee#] */
        struct {
                double  theta;
@@ -115,6 +149,7 @@ typedef struct {
        }           tumble;
        dvector  (*ODE) (Par par, double x, double y, double z);
        Par         par;
        }           tumble;
        dvector  (*ODE) (Par par, double x, double y, double z);
        Par         par;
+       FlowMode                mode; /* Mode of operation */
 } flowstruct;
 
 static flowstruct *flows = NULL;
 } flowstruct;
 
 static flowstruct *flows = NULL;
@@ -174,13 +209,14 @@ Duffing(Par par, double x, double y, double z)
        return d;
 }
 
        return d;
 }
 
+void init_clip(flowstruct *sp);
+
 void
 init_flow(ModeInfo * mi)
 {
        flowstruct *sp;
        int         b;
        double      beemult = 1;
 void
 init_flow(ModeInfo * mi)
 {
        flowstruct *sp;
        int         b;
        double      beemult = 1;
-       dvector     range;
        static int  allocated = 0;
 
        if (flows == NULL) {
        static int  allocated = 0;
 
        if (flows == NULL) {
@@ -191,6 +227,8 @@ init_flow(ModeInfo * mi)
        sp = &flows[MI_SCREEN(mi)];
 
        sp->count = 0;
        sp = &flows[MI_SCREEN(mi)];
 
        sp->count = 0;
+       sp->slow = 0.999;
+       sp->slow_view = 0.90;
 
        sp->width = MI_WIDTH(mi);
        sp->height = MI_HEIGHT(mi);
 
        sp->width = MI_WIDTH(mi);
        sp->height = MI_HEIGHT(mi);
@@ -201,72 +239,94 @@ init_flow(ModeInfo * mi)
        sp->tumble.dphi = 0.001;
        sp->view.height = 0;
        sp->view.depth = 0; /* no perspective view */
        sp->tumble.dphi = 0.001;
        sp->view.height = 0;
        sp->view.depth = 0; /* no perspective view */
+       sp->mode = 0;
+   if (get_boolean_resource ("rotate", "Boolean")) sp->mode |= FLOW_ROTATE;
+   if (get_boolean_resource ("ride", "Boolean")) sp->mode |= FLOW_RIDE;
+   if (get_boolean_resource ("zoom", "Boolean")) sp->mode |= FLOW_ZOOM;
+   if (get_boolean_resource ("allow2d", "Boolean")) sp->mode |= FLOW_2D;
+   if (get_boolean_resource ("slow", "Boolean")) sp->mode |= FLOW_SLOW;
+   if (get_boolean_resource ("freeze", "Boolean")) sp->mode |= FLOW_FREEZE;
+   if (get_boolean_resource ("box", "Boolean")) sp->mode |= FLOW_BOX;
+
+       b = (sp->mode & FLOW_2D) ? 5 : 3;
+       b = NRAND(b);
+
+       /* If more than one of rotate, ride and zoom are set, choose one */
+       if (b < 3) {
+               int num = 0, modes[3];
+
+               if (sp->mode & FLOW_ROTATE) modes[num++] = FLOW_ROTATE;
+               if (sp->mode & FLOW_RIDE) modes[num++] = FLOW_RIDE;
+               if (sp->mode & FLOW_ZOOM) modes[num++] = FLOW_ZOOM;
+
+               sp->mode &= ~(FLOW_ROTATE | FLOW_RIDE | FLOW_ZOOM);
 
 
-       switch (NRAND(8)) {
+               if (num) sp->mode |= modes[ NRAND(num) ];
+               else sp->mode |= FLOW_ZOOM;
+       }
+       
+       switch (b) {
        case 0:
                sp->view.depth = 10;
                sp->view.height = 0.2;
                beemult = 3;
        case 0:
                sp->view.depth = 10;
                sp->view.height = 0.2;
                beemult = 3;
-       case 1:
                sp->ODE = Lorentz;
                sp->step = 0.02;
                sp->size = 60;
                sp->centre.x = 0;
                sp->centre.y = 0;
                sp->centre.z = 24;
                sp->ODE = Lorentz;
                sp->step = 0.02;
                sp->size = 60;
                sp->centre.x = 0;
                sp->centre.y = 0;
                sp->centre.z = 24;
-               range.x = 5;
-               range.y = 5;
-               range.z = 1;
+               sp->range.x = 5;
+               sp->range.y = 5;
+               sp->range.z = 1;
                sp->par.a = 10 + balance_rand(5);
                sp->par.b = 28 + balance_rand(5);
                sp->par.c = 2 + balance_rand(1);
                break;
                sp->par.a = 10 + balance_rand(5);
                sp->par.b = 28 + balance_rand(5);
                sp->par.c = 2 + balance_rand(1);
                break;
-       case 2:
+       case 1:
                sp->view.depth = 10;
                sp->view.height = 0.1;
                beemult = 4;
                sp->view.depth = 10;
                sp->view.height = 0.1;
                beemult = 4;
-       case 3:
                sp->ODE = Rossler;
                sp->step = 0.05;
                sp->size = 24;
                sp->centre.x = 0;
                sp->centre.y = 0;
                sp->centre.z = 3;
                sp->ODE = Rossler;
                sp->step = 0.05;
                sp->size = 24;
                sp->centre.x = 0;
                sp->centre.y = 0;
                sp->centre.z = 3;
-               range.x = 4;
-               range.y = 4;
-               range.z = 7;
+               sp->range.x = 4;
+               sp->range.y = 4;
+               sp->range.z = 7;
                sp->par.a = 2 + balance_rand(1);
                sp->par.b = 0.2 + balance_rand(0.1);
                sp->par.c = 0.2 + balance_rand(0.1);
                break;
                sp->par.a = 2 + balance_rand(1);
                sp->par.b = 0.2 + balance_rand(0.1);
                sp->par.c = 0.2 + balance_rand(0.1);
                break;
-       case 4:
+       case 2:
                sp->view.depth = 10;
                sp->view.height = 0.1;
                beemult = 3;
                sp->view.depth = 10;
                sp->view.height = 0.1;
                beemult = 3;
-       case 5:
                sp->ODE = RosslerCone;
                sp->step = 0.05;
                sp->size = 24;
                sp->centre.x = 0;
                sp->centre.y = 0;
                sp->centre.z = 3;
                sp->ODE = RosslerCone;
                sp->step = 0.05;
                sp->size = 24;
                sp->centre.x = 0;
                sp->centre.y = 0;
                sp->centre.z = 3;
-               range.x = 4;
-               range.y = 4;
-               range.z = 4;
+               sp->range.x = 4;
+               sp->range.y = 4;
+               sp->range.z = 4;
                sp->par.a = 2;
                sp->par.b = 0.2;
                sp->par.c = 0.25 + balance_rand(0.09);
                break;
                sp->par.a = 2;
                sp->par.b = 0.2;
                sp->par.c = 0.25 + balance_rand(0.09);
                break;
-       case 6:
+       case 3:
                sp->ODE = Birkhoff;
                sp->step = 0.04;
                sp->size = 2.6;
                sp->centre.x = 0;
                sp->centre.y = 0;
                sp->centre.z = 0;
                sp->ODE = Birkhoff;
                sp->step = 0.04;
                sp->size = 2.6;
                sp->centre.x = 0;
                sp->centre.y = 0;
                sp->centre.z = 0;
-               range.x = 3;
-               range.y = 4;
-               range.z = 0;
+               sp->range.x = 3;
+               sp->range.y = 4;
+               sp->range.z = 0;
                sp->par.a = 10 + balance_rand(5);
                sp->par.b = 0.35 + balance_rand(0.25);
                sp->par.c = 1.57;
                sp->par.a = 10 + balance_rand(5);
                sp->par.b = 0.35 + balance_rand(0.25);
                sp->par.c = 1.57;
@@ -275,7 +335,7 @@ init_flow(ModeInfo * mi)
                sp->tumble.dtheta = 0;
                sp->tumble.dphi = 0;
                break;
                sp->tumble.dtheta = 0;
                sp->tumble.dphi = 0;
                break;
-       case 7:
+       case 4:
        default:
                sp->ODE = Duffing;
                sp->step = 0.02;
        default:
                sp->ODE = Duffing;
                sp->step = 0.02;
@@ -283,9 +343,9 @@ init_flow(ModeInfo * mi)
                sp->centre.x = 0;
                sp->centre.y = 0;
                sp->centre.z = 0;
                sp->centre.x = 0;
                sp->centre.y = 0;
                sp->centre.z = 0;
-               range.x = 20;
-               range.y = 20;
-               range.z = 0;
+               sp->range.x = 20;
+               sp->range.y = 20;
+               sp->range.z = 0;
                sp->par.a = 0.2 + balance_rand(0.1);
                sp->par.b = 27.0 + balance_rand(3.0);
                sp->par.c = 1.33;
                sp->par.a = 0.2 + balance_rand(0.1);
                sp->par.b = 27.0 + balance_rand(3.0);
                sp->par.c = 1.33;
@@ -297,6 +357,8 @@ init_flow(ModeInfo * mi)
                break;
        }
 
                break;
        }
 
+       sp->view.depth *= 4;
+
        sp->beecount = beemult * MI_COUNT(mi);
        if (sp->beecount < 0)   /* random variations */ 
                sp->beecount = NRAND(-sp->beecount) + 1; /* Minimum 1 */
        sp->beecount = beemult * MI_COUNT(mi);
        if (sp->beecount < 0)   /* random variations */ 
                sp->beecount = NRAND(-sp->beecount) + 1; /* Minimum 1 */
@@ -325,6 +387,7 @@ init_flow(ModeInfo * mi)
                        (void) free((void *) sp->p[1]);
                        sp->p[1] = NULL;
                }
                        (void) free((void *) sp->p[1]);
                        sp->p[1] = NULL;
                }
+               allocated = sp->beecount;
        }
 
        /* Allocate memory. */
        }
 
        /* Allocate memory. */
@@ -342,12 +405,204 @@ init_flow(ModeInfo * mi)
        /* Initialize point positions, velocities, etc. */
 
        for (b = 0; b < sp->beecount; b++) {
        /* Initialize point positions, velocities, etc. */
 
        for (b = 0; b < sp->beecount; b++) {
-               X(1, b) = X(0, b) = balance_rand(range.x);
-               Y(1, b) = Y(0, b) = balance_rand(range.y);
-               Z(1, b) = Z(0, b) = balance_rand(range.z);
+               X(1, b) = X(0, b) = balance_rand(sp->range.x);
+               Y(1, b) = Y(0, b) = balance_rand(sp->range.y);
+               Z(1, b) = Z(0, b) = balance_rand(sp->range.z);
+       }
+
+       init_clip(sp);
+
+}
+
+/* Clipping planes */
+#define PLANES 5
+static double plane_orig[][2][3] = {
+       /* X goes into screen, Y goes right, Z goes down(up?) */
+       /* {Normal}, {Point} */
+       { {1.0, 0, 0}, {0.01, 0, 0} },
+       { {1.0, 1.0, 0.0}, {0, 0, 0} },
+       { {1.0,-1.0, 0.0}, {0, 0, 0} },
+       { {1.0, 0.0, 1.0}, {0, 0, 0} },
+       { {1.0, 0.0,-1.0}, {0, 0, 0} }
+};
+static double plane[PLANES][2][3];
+static double plane_d[PLANES];
+
+#define BOX_P 32
+#define BOX_L 36
+#define MIN_BOX (3)
+#define MAX_BOX (MIN_BOX + BOX_L)
+/* Points that make up the box (normalized coordinates) */
+static double box_orig[][3] = {
+       {1,1,1},   /* 0 */
+       {1,1,-1},  /* 1 */
+       {1,-1,-1}, /* 2 */
+       {1,-1,1},  /* 3 */
+       {-1,1,1},  /* 4 */
+       {-1,1,-1}, /* 5 */
+       {-1,-1,-1},/* 6 */
+       {-1,-1,1}, /* 7 */
+       {1, .8, .8},
+       {1, .8,-.8},
+       {1,-.8,-.8},
+       {1,-.8, .8},
+       { .8,1, .8},
+       { .8,1,-.8},
+       {-.8,1,-.8},
+       {-.8,1, .8},
+       { .8, .8,1},
+       { .8,-.8,1},
+       {-.8,-.8,1},
+       {-.8, .8,1},
+       {-1, .8, .8},
+       {-1, .8,-.8},
+       {-1,-.8,-.8},
+       {-1,-.8, .8},
+       { .8,-1, .8},
+       { .8,-1,-.8},
+       {-.8,-1,-.8},
+       {-.8,-1, .8},
+       { .8, .8,-1},
+       { .8,-.8,-1},
+       {-.8,-.8,-1},
+       {-.8, .8,-1}
+};
+
+/* Container for scaled box points */
+static double box[BOX_P][3];
+
+/* Lines connecting the box dots */
+static double lines[0][2] = {
+       {0,1}, {1,2}, {2,3}, {3,0}, /* box */
+       {4,5}, {5,6}, {6,7}, {7,4},
+       {0,4}, {1,5}, {2,6}, {3,7},
+       {4+4,5+4}, {5+4,6+4}, {6+4,7+4}, {7+4,4+4},
+       {4+8,5+8}, {5+8,6+8}, {6+8,7+8}, {7+8,4+8},
+       {4+12,5+12}, {5+12,6+12}, {6+12,7+12}, {7+12,4+12},
+       {4+16,5+16}, {5+16,6+16}, {6+16,7+16}, {7+16,4+16},
+       {4+20,5+20}, {5+20,6+20}, {6+20,7+20}, {7+20,4+20},
+       {4+24,5+24}, {5+24,6+24}, {6+24,7+24}, {7+24,4+24},
+};
+       
+/* Boundaries of bees */
+double xmin, xmax;
+double ymin, ymax;
+double zmin, zmax;
+
+void init_clip(flowstruct *sp)
+{
+       int i;
+
+       /* Scale the planes to the screen. I had to invert the projection
+        * algorithms so that when projected they would be right at the edge of the
+        * screen. */
+       double width = sp->size/sp->view.depth/2;
+       double height = sp->size/sp->view.depth/2*sp->view.height/sp->view.height;
+       for (i = 0; i < PLANES; i++) {
+               /* Copy orig planes into planes, expanding <-> clippings */
+               plane[i][0][0] = plane_orig[i][0][0];
+               plane[i][0][1] = plane_orig[i][0][1] / width;
+               plane[i][0][2] = plane_orig[i][0][2] / height;
+               plane[i][1][0] = plane_orig[i][1][0];
+               plane[i][1][1] = plane_orig[i][1][1];
+               plane[i][1][2] = plane_orig[i][1][2];
+               
+               /* Calculate the 'd' part of 'ax + by + cz = d' */
+               plane_d[i] = - plane[i][0][0] * plane[i][1][0];
+               plane_d[i] -= plane[i][0][1] * plane[i][1][1];
+               plane_d[i] -= plane[i][0][2] * plane[i][1][2];
+       }
+       xmin = X(0, i); xmax = X(0,i);
+       ymin = Y(0, i); ymax = Y(0,i);
+       zmin = Z(0, i); zmax = Z(0,i);
+}
+
+/* Scale the box defined above to fit around all points */
+void create_box(flowstruct *sp)
+{
+       int i = MAX_BOX;
+       double xmid, ymid, zmid;
+       double xsize, ysize, zsize;
+       double size;
+
+       /* Count every 5th point for speed.. */
+       for (; i < sp->beecount; i += 5) {
+               if ( X(0,i) < xmin ) xmin = X(0, i);
+               else if ( X(0,i) > xmax ) xmax = X(0, i);
+               if ( Y(0,i) < ymin ) ymin = Y(0, i);
+               else if ( Y(0,i) > ymax ) ymax = Y(0, i);
+               if ( Z(0,i) < zmin ) zmin = Z(0, i);
+               else if ( Z(0,i) > zmax ) zmax = Z(0, i);
        }
        }
+       xmid = (xmax+xmin)/2;
+       ymid = (ymax+ymin)/2;
+       zmid = (zmax+zmin)/2;
+       xsize = xmax - xmin;
+       ysize = ymax - ymin;
+       zsize = zmax - zmin;
+       size = xsize;
+       if (ysize> size) size = ysize;
+       if (zsize > size) size = zsize;
+       size /= 2;
+
+       /* Scale box */
+       for (i = 0; i < BOX_P; i++) {
+               box[i][0] = box_orig[i][0] * size + xmid;
+               box[i][1] = box_orig[i][1] * size + ymid;
+               box[i][2] = box_orig[i][2] * size + zmid;
+       }
+
 }
 
 }
 
+/* Returns true if point is infront of the plane (rather than behind) */
+int infront_of(double x, double y, double z, int i)
+{
+       double sum = plane[i][0][0]*x + plane[i][0][1]*y + plane[i][0][2]*z + plane_d[i];
+       return sum >= 0.0;
+}
+
+/* Returns true if line was behind a clip plane, or clips the line */
+int clip(double *x1, double *y1, double *z1, double *x2, double *y2, double *z2)
+{
+       int i;
+       for (i = 0; i < PLANES; i++) {
+               double t;
+               double x, y, z; /* Intersection point */
+               double dx, dy, dz; /* line delta */
+               int front1, front2;
+               front1 = infront_of(*x1, *y1, *z1, i);
+               front2 = infront_of(*x2, *y2, *z2, i);
+               if (!front1 && !front2) return 1;
+               if (front1 && front2) continue;
+
+               dx = *x2 - *x1;
+               dy = *y2 - *y1;
+               dz = *z2 - *z1;
+
+               /* Find t in line equation */
+               t = ( plane_d[i] - 
+                               plane[i][0][0]*(*x1) - plane[i][0][1]*(*y1) - plane[i][0][2]*(*z1) ) 
+                               / 
+                       ( plane[i][0][0]*dx + plane[i][0][1]*dy + plane[i][0][2]*dz );
+
+               x = *x1 + dx * t;
+               y = *y1 + dy * t;
+               z = *z1 + dz * t;
+               /* Make point that was behind to be the intersect */
+               if (front2) {
+                       *x1 = x;
+                       *y1 = y;
+                       *z1 = z;
+               } else {
+                       *x2 = x;
+                       *y2 = y;
+                       *z2 = z;
+               }
+       }
+       return 0;
+}      
+
+
 void
 draw_flow(ModeInfo * mi)
 {
 void
 draw_flow(ModeInfo * mi)
 {
@@ -357,7 +612,14 @@ draw_flow(ModeInfo * mi)
        flowstruct *sp = &flows[MI_SCREEN(mi)];
        int         b, c, i;
        int         col, ix;
        flowstruct *sp = &flows[MI_SCREEN(mi)];
        int         b, c, i;
        int         col, ix;
+       int                     new_view = 0;
        double      M[3][3]; /* transformation matrix */
        double      M[3][3]; /* transformation matrix */
+       double          step_view = sp->step;
+       double          step_bees = sp->step;
+       double          step_slow = sp->step;
+       double          pp, pc;
+
+       create_box(sp);
 
        if(!sp->view.depth){ /* simple 3D tumble */
                double      sint, cost, sinp, cosp;
 
        if(!sp->view.depth){ /* simple 3D tumble */
                double      sint, cost, sinp, cosp;
@@ -382,30 +644,80 @@ draw_flow(ModeInfo * mi)
 
        MI_IS_DRAWN(mi) = True;
 
 
        MI_IS_DRAWN(mi) = True;
 
+       /* Calculate circling POV */
+       sp->circle[1] = sp->circle[0];
+       sp->circle[0].x = sp->size * 2 * sin(sp->count / 40.0) * (0.6 + 0.4 *cos(sp->count / 100.0));
+       sp->circle[0].y = sp->size * 2 * cos(sp->count / 40.0) * (0.6 + 0.4 *cos(sp->count / 100.0));
+       sp->circle[0].z = sp->size * 2 * sin(sp->count / 421.0);
+
+       if (sp->mode & FLOW_ROTATE)
+               pp = 0;
+       else if (sp->mode & FLOW_RIDE)
+               pp = 1;
+       else /* ZOOM */
+               /* Bistable oscillator to switch between the trained bee and the circler */
+               pp = -sin(sin(sin(cos(sp->count / 150.0)*M_PI/2)*M_PI/2)*M_PI/2) *0.5 + 0.5;
+       pc = 1 - pp;
+
+
+       /* Slow down or speed up the bees / view: */
+
+       /* exponentially accelerate towards zero */
+       sp->slow = sp->slow * 1.005 - 0.005; 
+       if (sp->slow < 0) sp->slow = 0;
+
+       sp->slow_view = sp->slow_view * 1.005 - 0.005;
+       if (sp->slow_view < 0) sp->slow_view = 0;
+
+       /* View speeds up, slow bees slow to half speed, and other bees will
+        * actually stop */
+       step_view = step_view * (1.01 - sp->slow_view * sp->slow_view) * 0.2;
+       step_slow = step_slow * (sp->slow + 0.5) / 2;
+       if (sp->mode & FLOW_SLOW)
+               step_bees = step_bees * sp->slow;
+       else
+               step_bees = step_slow;
+
        /* <=- Bees -=> */
        for (b = 0; b < sp->beecount; b++) {
        /* <=- Bees -=> */
        for (b = 0; b < sp->beecount; b++) {
+               /* Calc if this bee is slow. Note normal bees are exempt from
+                * calculations once they slow to half speed, so that they remain as
+                * frozen lines rather than barely-visible points */
+               int slow = ((b & 0x7) == 0);
+               if ( !(sp->mode & FLOW_FREEZE) ) slow = 1;
                /* Age the arrays. */
                /* Age the arrays. */
-               X(1, b) = X(0, b);
-               Y(1, b) = Y(0, b);
-               Z(1, b) = Z(0, b);
-
-               /* 2nd order Kunge Kutta */
-               {
-                       dvector     k1, k2;
-
-                       k1 = sp->ODE(sp->par, X(1, b), Y(1, b), Z(1, b));
-                       k1.x *= sp->step;
-                       k1.y *= sp->step;
-                       k1.z *= sp->step;
-                       k2 = sp->ODE(sp->par, X(1, b) + k1.x, Y(1, b) + k1.y, Z(1, b) + k1.z);
-                       k2.x *= sp->step;
-                       k2.y *= sp->step;
-                       k2.z *= sp->step;
-                       X(0, b) = X(1, b) + (k1.x + k2.x) / 2.0;
-                       Y(0, b) = Y(1, b) + (k1.y + k2.y) / 2.0;
-                       Z(0, b) = Z(1, b) + (k1.z + k2.z) / 2.0;
+               if (b < 2 || sp->slow > 0.5 || slow) {
+                       X(1, b) = X(0, b);
+                       Y(1, b) = Y(0, b);
+                       Z(1, b) = Z(0, b);
+
+                       /* 2nd order Kunge Kutta */
+                       {
+                               dvector     k1, k2;
+                               double          step;
+
+                               if (b == 0 || b == 1) {
+                                       step = step_view;
+                               } else if (slow) {
+                                       step = step_slow;
+                               } else {
+                                       step = step_bees;
+                               }
+                               k1 = sp->ODE(sp->par, X(1, b), Y(1, b), Z(1, b));
+                               k1.x *= step;
+                               k1.y *= step;
+                               k1.z *= step;
+                               k2 = sp->ODE(sp->par, X(1, b) + k1.x, Y(1, b) + k1.y, Z(1, b) + k1.z);
+                               k2.x *= step;
+                               k2.y *= step;
+                               k2.z *= step;
+                               X(0, b) = X(1, b) + (k1.x + k2.x) / 2.0;
+                               Y(0, b) = Y(1, b) + (k1.y + k2.y) / 2.0;
+                               Z(0, b) = Z(1, b) + (k1.z + k2.z) / 2.0;
+                       }
                }
 
                }
 
+
                /* Colour according to bee */
                col = b % (MI_NPIXELS(mi) - 1);
                ix = col * sp->beecount + sp->cnsegs[col];
                /* Colour according to bee */
                col = b % (MI_NPIXELS(mi) - 1);
                ix = col * sp->beecount + sp->cnsegs[col];
@@ -414,11 +726,12 @@ draw_flow(ModeInfo * mi)
 
                if(sp->view.depth) { /* perspective view has special points */
                        if(b==0){ /* point of view */
 
                if(sp->view.depth) { /* perspective view has special points */
                        if(b==0){ /* point of view */
-                               sp->centre.x=X(0, b);
-                               sp->centre.y=Y(0, b);
-                               sp->centre.z=Z(0, b);
+                               sp->centre.x = X(0, b) * pp + sp->circle[0].x * pc;
+                               sp->centre.y = Y(0, b) * pp + sp->circle[0].y * pc;
+                               sp->centre.z = Z(0, b) * pp + sp->circle[0].z * pc;
+                               /*printf("center: (%3.3f,%3.3f,%3.3f)\n",sp->centre.x, sp->centre.y, sp->centre.z);*/
                        }else if(b==1){ /* neighbour: used to compute local axes */
                        }else if(b==1){ /* neighbour: used to compute local axes */
-                               double x[3], p[3], x2=0, xp=0;
+                               double x[3], p[3], x2=0, xp=0, C[3][3];
                                int j;
 
                                /* forward */                           
                                int j;
 
                                /* forward */                           
@@ -456,6 +769,49 @@ draw_flow(ModeInfo * mi)
                                Y(0, 1)=Y(0, 0)+M[1][1];
                                Z(0, 1)=Z(0, 0)+M[1][2];
 
                                Y(0, 1)=Y(0, 0)+M[1][1];
                                Z(0, 1)=Z(0, 0)+M[1][2];
 
+                               /* Look at trained bee into C matrix */
+                               /* forward */                           
+                               x[0] = 0 - sp->circle[0].x;
+                               x[1] = 0 - sp->circle[0].y;
+                               x[2] = 0 - sp->circle[0].z;
+                       
+                               /* neighbour */
+                               p[0] = sp->circle[0].x - sp->circle[1].x;
+                               p[1] = sp->circle[0].y - sp->circle[1].y;
+                               p[2] = sp->circle[0].z - sp->circle[1].z;
+
+                               for(i=0; i<3; i++){
+                                       x2+= x[i]*x[i];    /* X . X */
+                                       xp+= x[i]*p[i];    /* X . P */
+                                       C[0][i] = x[i];    /* X */
+                               }
+
+                               for(i=0; i<3; i++)               /* (X x P) x X */
+                                       C[1][i] = x2*p[i] - xp*x[i]; /* == (X . X) P - (X . P) X */
+                               
+                               C[2][0] =  x[1]*p[2] - x[2]*p[1]; /* X x P */
+                               C[2][1] = -x[0]*p[2] + x[2]*p[0];
+                               C[2][2] =  x[0]*p[1] - x[1]*p[0];
+
+                               /* normalise axes */
+                               for(j=0; j<3; j++){
+                                       double A=0;
+                                       for(i=0; i<3; i++) A+=C[j][i]*C[j][i]; /* sum squares */
+                                       A=sqrt(A);
+                                       for(i=0; i<3; i++) C[j][i]/=A;
+                               }
+
+                               /* Interpolate between Center and Trained Bee matrices */
+                               /* This isn't very accurate and leads to weird transformations
+                                * (shearing, etc), but it works. Besides, sometimes they look
+                                * cool :) */
+                               pp = pp * pp; /* Don't follow bee's direction until very close */
+                               pc = 1 - pp;
+                               for (i = 0; i < 3; i++)
+                                       for (j = 0; j < 3; j++)
+                                               M[i][j] = M[i][j] * pp + C[i][j] * pc;
+                               
+
 #if 0  /* display local axes for testing */
                                X(1, b)=X(0, 0);
                                Y(1, b)=Y(0, 0);
 #if 0  /* display local axes for testing */
                                X(1, b)=X(0, 0);
                                Y(1, b)=Y(0, 0);
@@ -475,9 +831,18 @@ draw_flow(ModeInfo * mi)
                                Y(1, b)=Y(0, 0);
                                Z(1, b)=Z(0, 0);
 #endif
                                Y(1, b)=Y(0, 0);
                                Z(1, b)=Z(0, 0);
 #endif
+                       /* Draw a box... */
                        }
                }
                        }
                }
+                       if (b >= MIN_BOX && b < MAX_BOX) {
+                               int p1 = lines[b-MIN_BOX][0];
+                               int p2 = lines[b-MIN_BOX][1];
+                               X(0, b) = box[p1][0]; Y(0, b) = box[p1][1]; Z(0, b) = box[p1][2];
+                               X(1, b) = box[p2][0]; Y(1, b) = box[p2][1]; Z(1, b) = box[p2][2];
+                       }
+               
                
                
+#if 0  /* Original code */
                for(i=0; i<2; i++){
                        double x=X(i,b)-sp->centre.x;
                        double y=Y(i,b)-sp->centre.y;
                for(i=0; i<2; i++){
                        double x=X(i,b)-sp->centre.x;
                        double y=Y(i,b)-sp->centre.y;
@@ -507,7 +872,58 @@ draw_flow(ModeInfo * mi)
                }
                if(i == 2) /* both assigned */
                        sp->cnsegs[col]++;
                }
                if(i == 2) /* both assigned */
                        sp->cnsegs[col]++;
-    }
+#else  
+               /* Chalky's code w/ clipping */
+               if (b < ((sp->mode & FLOW_BOX) ? 2 : MAX_BOX))
+                       continue;
+               do {
+                       double x1=X(0,b)-sp->centre.x;
+                       double y1=Y(0,b)-sp->centre.y;
+                       double z1=Z(0,b)-sp->centre.z;
+                       double X1=M[0][0]*x1 + M[0][1]*y1 + M[0][2]*z1;
+                       double Y1=M[1][0]*x1 + M[1][1]*y1 + M[1][2]*z1;
+                       double Z1=M[2][0]*x1 + M[2][1]*y1 + M[2][2]*z1+sp->view.height;
+                       double absx1, absy1;                            
+                       double x2=X(1,b)-sp->centre.x;
+                       double y2=Y(1,b)-sp->centre.y;
+                       double z2=Z(1,b)-sp->centre.z;
+                       double X2=M[0][0]*x2 + M[0][1]*y2 + M[0][2]*z2;
+                       double Y2=M[1][0]*x2 + M[1][1]*y2 + M[1][2]*z2;
+                       double Z2=M[2][0]*x2 + M[2][1]*y2 + M[2][2]*z2+sp->view.height;
+                       double absx2, absy2;                            
+                       if(sp->view.depth){
+                               /* Need clipping if: is part of box, or close to viewer */
+                               if ( (b >= MIN_BOX && b < MAX_BOX) || X1 <= 0.1 || X2 < 0.1) 
+                                       if (clip(&X1, &Y1, &Z1, &X2, &Y2, &Z2))
+                                               break;
+                               if (X1 <= 0 || X2 <= 0) break;
+                               absx1=SCALE_X(sp->view.depth*Y1/X1);
+                               absy1=SCALE_Y(sp->view.depth*Z1/X1);
+                               if(absx1 < -sp->width || absx1 > 2*sp->width ||
+                                  absy1 < -sp->height || absy1 > 2*sp->height)
+                                       break;
+                               absx2=SCALE_X(sp->view.depth*Y2/X2);
+                               absy2=SCALE_Y(sp->view.depth*Z2/X2);
+                               if(absx2 < -sp->width || absx2 > 2*sp->width ||
+                                  absy2 < -sp->height || absy2 > 2*sp->height)
+                                       break;
+                       }else{
+                               absx1=SCALE_X(X1);
+                               absy1=SCALE_Y(Y1);
+                               absx2=SCALE_X(X2);
+                               absy2=SCALE_Y(Y2);
+                       }
+
+                       sp->csegs[ix].x1 = (short) absx1;
+                       sp->csegs[ix].y1 = (short) absy1;
+                       sp->csegs[ix].x2 = (short) absx2;
+                       sp->csegs[ix].y2 = (short) absy2;
+
+                       sp->cnsegs[col]++;
+               } while (0);
+#endif
+       }
+
        if (sp->count) { /* erase */
                XSetForeground(display, gc, MI_BLACK_PIXEL(mi));
                XDrawSegments(display, window, gc, sp->old_segs, sp->nold_segs);
        if (sp->count) { /* erase */
                XSetForeground(display, gc, MI_BLACK_PIXEL(mi));
                XDrawSegments(display, window, gc, sp->old_segs, sp->nold_segs);
@@ -534,6 +950,23 @@ draw_flow(ModeInfo * mi)
 
        if (++sp->count > MI_CYCLES(mi)) /* pick a new flow */
                init_flow(mi);
 
        if (++sp->count > MI_CYCLES(mi)) /* pick a new flow */
                init_flow(mi);
+
+       if (sp->count % (MI_CYCLES(mi)/4) == 0) { /* pick a new view */
+               new_view = 0; /* change to 1 .. */
+       }
+
+       if (X(0, 0) < xmin*2 || X(0, 0) > xmax*2) new_view = 1;
+       if (Y(0, 0) < ymin*2 || Y(0, 0) > ymax*2) new_view = 1;
+       if (Z(0, 0) < zmin*2 || Z(0, 0) > zmax*2) new_view = 1;
+
+       if (new_view) {
+               for (b = 0; b < 2; b++) {
+                       X(1, b) = X(0, b) = balance_rand(sp->range.x*4);
+                       Y(1, b) = Y(0, b) = balance_rand(sp->range.y*4);
+                       Z(1, b) = Z(0, b) = balance_rand(sp->range.z*4);
+               }
+               sp->slow_view = 0.90;
+       }
 }
 
 void
 }
 
 void
@@ -566,3 +999,29 @@ refresh_flow(ModeInfo * mi)
 {
        MI_CLEARWINDOW(mi);
 }
 {
        MI_CLEARWINDOW(mi);
 }
+
+XrmOptionDescRec flow_options[] =
+{
+       {"-rotate",  ".rotate", XrmoptionSepArg, 0},
+       {"-ride",  ".ride", XrmoptionSepArg, 0},
+       {"-zoom",  ".zoom", XrmoptionSepArg, 0},
+       {"-box",  ".box", XrmoptionSepArg, 0},
+       {"-slow",  ".slow", XrmoptionSepArg, 0},
+       {"-freeze",  ".freeze", XrmoptionSepArg, 0},
+       {"-allow2d",  ".allow2d", XrmoptionSepArg, 0},
+  { 0, 0, 0, 0 }
+};
+
+/*
+char*        defaults[] =
+{
+       "*rotate:         True",
+       "*ride:           True",
+       "*zoom:           True",
+       "*allow2d:        True",
+       "*box:            True",
+       "*slow:           True",
+       "*freeze:         True",
+  0
+};
+       */
index 40edf41b58bf9e8dfdc310585680c9b963d037a2..9d22778fb87ac6d5c4d300bc186ad416ab5a8a79 100644 (file)
@@ -1,6 +1,10 @@
 /******************************************************************************
  * [ maze ] ...
  *
 /******************************************************************************
  * [ maze ] ...
  *
+ * modified:  [ 1-04-00 ]  Johannes Keukelaar <johannes@nada.kth.se>
+ *              Added -ignorant option (not the default) to remove knowlege
+ *              of the direction in which the exit lies.
+ *
  * modified:  [ 6-28-98 ]  Zack Weinberg <zack@rabi.phys.columbia.edu>
  *
  *              Made the maze-solver somewhat more intelligent.  There are
  * modified:  [ 6-28-98 ]  Zack Weinberg <zack@rabi.phys.columbia.edu>
  *
  *              Made the maze-solver somewhat more intelligent.  There are
@@ -159,7 +163,7 @@ static GC   gc, cgc, tgc, sgc, ugc, logo_gc, erase_gc;
 static Pixmap  logo_map;
 
 static int     x = 0, y = 0, restart = 0, stop = 1, state = 1, max_length;
 static Pixmap  logo_map;
 
 static int     x = 0, y = 0, restart = 0, stop = 1, state = 1, max_length;
-static int      sync_p, bridge_p;
+static int      sync_p, bridge_p, ignorant_p;
 
 static int
 check_events (void)                        /* X event handler [ rhess ] */
 
 static int
 check_events (void)                        /* X event handler [ rhess ] */
@@ -1434,44 +1438,60 @@ solve_maze (void)                     /* solve it with graphical feedback */
        
        if(!ways)
            goto backtrack;
        
        if(!ways)
            goto backtrack;
-      
-       x = path[i].x - start_x;
-       y = path[i].y - start_y;
-       /* choice one */
-       if(abs(y) <= abs(x))
-           dir = (x > 0) ? WALL_LEFT : WALL_RIGHT;
-       else
-           dir = (y > 0) ? WALL_TOP : WALL_BOTTOM;
-       
-       if(dir & ways)
-           goto found;
-       
-       /* choice two */
-       switch(dir)
-       {
-       case WALL_LEFT:
-       case WALL_RIGHT:
-           dir = (y > 0) ? WALL_TOP : WALL_BOTTOM; break;
-       case WALL_TOP:
-       case WALL_BOTTOM:
-           dir = (x > 0) ? WALL_LEFT : WALL_RIGHT;
-       }
-       
-       if(dir & ways)
-           goto found;
-       
-       /* choice three */
-       
-       dir = (dir << 2 & WALL_ANY) | (dir >> 2 & WALL_ANY);
-       if(dir & ways)
-           goto found;
-       
-       /* choice four */
-       dir = ways;
-       if(!dir)
-           goto backtrack;
 
 
-    found:
+       if (!ignorant_p)
+         {
+           x = path[i].x - start_x;
+           y = path[i].y - start_y;
+           /* choice one */
+           if(abs(y) <= abs(x))
+             dir = (x > 0) ? WALL_LEFT : WALL_RIGHT;
+           else
+             dir = (y > 0) ? WALL_TOP : WALL_BOTTOM;
+           
+           if(dir & ways)
+             goto found;
+           
+           /* choice two */
+           switch(dir)
+             {
+             case WALL_LEFT:
+             case WALL_RIGHT:
+               dir = (y > 0) ? WALL_TOP : WALL_BOTTOM; break;
+             case WALL_TOP:
+             case WALL_BOTTOM:
+               dir = (x > 0) ? WALL_LEFT : WALL_RIGHT;
+             }
+           
+           if(dir & ways)
+             goto found;
+           
+           /* choice three */
+           
+           dir = (dir << 2 & WALL_ANY) | (dir >> 2 & WALL_ANY);
+           if(dir & ways)
+             goto found;
+           
+           /* choice four */
+           dir = ways;
+           if(!dir)
+             goto backtrack;
+           
+         found:
+         }
+       else
+         {
+           if(ways&WALL_TOP)
+             dir = WALL_TOP;
+           else if(ways&WALL_LEFT)
+             dir = WALL_LEFT;
+           else if(ways&WALL_BOTTOM)
+             dir = WALL_BOTTOM;
+           else if(ways&WALL_RIGHT)
+             dir = WALL_RIGHT;
+           else
+             goto backtrack;
+         }
        bt = 0;
        ways &= ~dir;  /* tried this one */
        
        bt = 0;
        ways &= ~dir;  /* tried this one */
        
@@ -1498,7 +1518,7 @@ solve_maze (void)                     /* solve it with graphical feedback */
            return;
        }
 
            return;
        }
 
-       if(!bt)
+       if(!bt && !ignorant_p)
            find_dead_regions();
        bt = 1;
        from = path[i-1].dir;
            find_dead_regions();
        bt = 1;
        from = path[i-1].dir;
@@ -1565,6 +1585,8 @@ char *defaults[] = {
 };
 
 XrmOptionDescRec options[] = {
 };
 
 XrmOptionDescRec options[] = {
+  { "-ignorant",        ".ignorant",    XrmoptionNoArg, "True" },
+  { "-no-ignorant",     ".ignorant",    XrmoptionNoArg, "False" },
   { "-grid-size",      ".gridSize",    XrmoptionSepArg, 0 },
   { "-solve-delay",    ".solveDelay",  XrmoptionSepArg, 0 },
   { "-pre-delay",      ".preDelay",    XrmoptionSepArg, 0 },
   { "-grid-size",      ".gridSize",    XrmoptionSepArg, 0 },
   { "-solve-delay",    ".solveDelay",  XrmoptionSepArg, 0 },
   { "-pre-delay",      ".preDelay",    XrmoptionSepArg, 0 },
@@ -1600,6 +1622,7 @@ screenhack(Display *display, Window window)
   generator = get_integer_resource("generator", "Integer");
   max_length = get_integer_resource("maxLength", "Integer");
   bridge_p = get_boolean_resource("bridge", "Boolean");
   generator = get_integer_resource("generator", "Integer");
   max_length = get_integer_resource("maxLength", "Integer");
   bridge_p = get_boolean_resource("bridge", "Boolean");
+  ignorant_p = get_boolean_resource("ignorant", "Boolean");
 
   if (size < 2) size = 7 + (random () % 30);
   grid_width = grid_height = size;
 
   if (size < 2) size = 7 + (random () % 30);
   grid_width = grid_height = size;
index e586f897ccb4ba60e52cd70fabb6ab05a698135c..0b8f7900076873a8efa05b5124eebeaf7fda0643 100644 (file)
@@ -1,3 +1,16 @@
+.de EX         \"Begin example
+.ne 5
+.if n .sp 1
+.if t .sp .5
+.nf
+.in +.5i
+..
+.de EE
+.fi
+.in -.5i
+.if n .sp 1
+.if t .sp .5
+..
 .TH XScreenSaver 1 "30-Oct-99" "X Version 11"
 .SH NAME
 phosphor - simulates an old terminal with long-sustain phosphor
 .TH XScreenSaver 1 "30-Oct-99" "X Version 11"
 .SH NAME
 phosphor - simulates an old terminal with long-sustain phosphor
@@ -61,6 +74,12 @@ In other words, programs like
 will work, but programs like
 .BR top (1)
 won't.
 will work, but programs like
 .BR top (1)
 won't.
+
+Here's a good trick, to get phosphor to display recent web search terms:
+.EX
+phosphor -program \\
+  'wget -qO- http://webcrawler.com/cgi-bin/SearchTicker'
+.EE
 .SH ENVIRONMENT
 .PP
 .TP 8
 .SH ENVIRONMENT
 .PP
 .TP 8
@@ -71,6 +90,7 @@ to get the default host and display number.
 to get the name of a resource file that overrides the global resources
 stored in the RESOURCE_MANAGER property.
 .SH SEE ALSO
 to get the name of a resource file that overrides the global resources
 stored in the RESOURCE_MANAGER property.
 .SH SEE ALSO
+.BR wget (1),
 .BR X (1),
 .BR xscreensaver (1)
 .SH COPYRIGHT
 .BR X (1),
 .BR xscreensaver (1)
 .SH COPYRIGHT
index a82da03ef9b1803856424d1a3e80c8a7e5c5439d..5d9fe9cd1592bda5623a10c5408445aa8cdc9a11 100755 (executable)
@@ -176,6 +176,11 @@ grab() {
     #   streamer -o $tmp_ppm1
     #
 
     #   streamer -o $tmp_ppm1
     #
 
+    # James Isaacs says this works for the ATI video capture card:
+    #
+    #   atitv snap $tmp_ppm1
+    #
+
   else
     echo "$0: don't know how to grab video on this OS." >&2
     clean2
   else
     echo "$0: don't know how to grab video on this OS." >&2
     clean2
index bf46fffd6114cfeb396eae6db5f9c93efb8a8623..880dfb933f6125a3d9494783765932e19616a830 100755 (executable)
@@ -27,7 +27,7 @@ require POSIX;
 use Fcntl ':flock'; # import LOCK_* constants
 
 
 use Fcntl ':flock'; # import LOCK_* constants
 
 
-my $version = q{ $Revision: 1.43 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/;
+my $version = q{ $Revision: 1.44 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/;
 my $copyright = "WebCollage $version, Copyright (c) 1999" .
     " Jamie Zawinski <jwz\@jwz.org>\n" .
     "            http://www.jwz.org/xscreensaver/\n";
 my $copyright = "WebCollage $version, Copyright (c) 1999" .
     " Jamie Zawinski <jwz\@jwz.org>\n" .
     "            http://www.jwz.org/xscreensaver/\n";
@@ -40,9 +40,9 @@ my $image_randomizer_1 = "http://www.altavista.com/query" .
                          "?mmdo=3" .
                          "&nbq=12" .
                          "&stype=simage" .
                          "?mmdo=3" .
                          "&nbq=12" .
                          "&stype=simage" .
-                         "&oart=1" .
-                         "&obw=1" .
-                         "&oshape=0" .
+                         "&iclr=1" .
+                         "&ibw=1" .
+                         "&iexc=1" .
                          "&what=web" .
                          "&q=";
 my $image_randomizer_2 = "http://www.hotbot.com/?clickSrc=search" .
                          "&what=web" .
                          "&q=";
 my $image_randomizer_2 = "http://www.hotbot.com/?clickSrc=search" .
@@ -565,6 +565,10 @@ sub random_word {
             $word = <IN>;   # toss partial line
             $word = <IN>;   # keep next line
         }
             $word = <IN>;   # toss partial line
             $word = <IN>;   # keep next line
         }
+       if (!$word) {
+          seek( IN, 0, 0 );
+          $word = <IN>;
+       }
         close (IN);
     }
 
         close (IN);
     }
 
@@ -580,6 +584,10 @@ sub random_word {
     $word =~ s/izes$/ize/;
     $word =~ tr/A-Z/a-z/;
 
     $word =~ s/izes$/ize/;
     $word =~ tr/A-Z/a-z/;
 
+    if ( $word =~ s/[ \t\n\r]/\+/g ) {  # convert intra-word spaces to "+".
+      $word = "\%22$word\%22";         # And put quotes (%22) around it.
+    }
+
     return $word;
 }
 
     return $word;
 }
 
index 9d0883c50167cdc8fff486fa0c0939bc7eeac013..2e569e07cb959ea3be9ae81dca8dbcd3271d45c7 100644 (file)
@@ -70,6 +70,8 @@
 # endif /* VMS */
 #endif /* HAVE_XMU */
 
 # endif /* VMS */
 #endif /* HAVE_XMU */
 
+#include "images/bob.xbm"
+
 #define MAX_VAL             255
 
 static Display         *display;
 #define MAX_VAL             255
 
 static Display         *display;
@@ -603,9 +605,33 @@ loadBitmap(int *w, int *h)
 {
   char *bitmap_name = get_string_resource ("bitmap", "Bitmap");
 
 {
   char *bitmap_name = get_string_resource ("bitmap", "Bitmap");
 
-  if (bitmap_name &&
-      *bitmap_name &&
-      !!strcmp(bitmap_name, "none"))
+  if (!bitmap_name ||
+      !*bitmap_name ||
+      !strcmp(bitmap_name, "none"))
+    ;
+  else if (!strcmp(bitmap_name, "(default)"))   /* use the builtin */
+    {
+      XImage *ximage;
+      unsigned char *result, *o;
+      char *bits = (char *) malloc (sizeof(bob_bits));
+      int x, y;
+      int scale = ((width > bob_width * 11) ? 2 : 1);
+      memcpy (bits, bob_bits, sizeof(bob_bits));
+      ximage = XCreateImage (display, visual, 1, XYBitmap, 0, bits,
+                             bob_width, bob_height, 8, 0);
+      ximage->byte_order = LSBFirst;
+      ximage->bitmap_bit_order = LSBFirst;
+      *w = ximage->width * scale;
+      *h = ximage->height * scale;
+      o = result = (unsigned char *) malloc ((*w * scale) * (*h * scale));
+      for (y = 0; y < *h; y++)
+        for (x = 0; x < *w; x++)
+          *o++ = (XGetPixel(ximage, x/scale, y/scale) ? 255 : 0);
+       
+      return result;
+    }
+  else  /* load a bitmap file */
     {
 #ifdef HAVE_XPM
       XpmInfo xpm_info = { 0, };
     {
 #ifdef HAVE_XPM
       XpmInfo xpm_info = { 0, };
@@ -731,7 +757,7 @@ char *progclass = "XFlame";
 char *defaults [] = {
   ".background:     black",
   ".foreground:     #FFAF5F",
 char *defaults [] = {
   ".background:     black",
   ".foreground:     #FFAF5F",
-  "*bitmap:         none",
+  "*bitmap:         (default)",
   "*bitmapBaseline: 20",
   "*delay:          10000",
   "*hspread:        30",
   "*bitmapBaseline: 20",
   "*delay:          10000",
   "*hspread:        30",
diff --git a/hacks/xflame.man b/hacks/xflame.man
new file mode 100644 (file)
index 0000000..15a553d
--- /dev/null
@@ -0,0 +1,63 @@
+.TH XScreenSaver 1 "27-Feb-00" "X Version 11"
+.SH NAME
+xflame - draws animated flames
+.SH SYNOPSIS
+.B xflame
+[\-display \fIhost:display.screen\fP] [\-window] [\-root] [\-install]
+[\-visual \fIvisual\fP] [\-hspread \fIint\fP] [\-vspread \fIint\fP]
+[\-residual \fIint\fP] [\-variance \fIint\fP] [\-vartrend \fIint\fP] 
+[\-bloom \| \-no\-bloom] 
+[\-bitmap \fIxbm\-file\fP] [\-baseline \fIint\fP]
+.SH DESCRIPTION
+The \fIxflame\fP program draws animated flames across the bottom of the
+screen.  The flames occasionally flare up.  If a bitmap is specified,
+that image will float above the flames, burning.
+.SH OPTIONS
+.I phosphor
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window.  This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP\fP
+Specify which visual to use.  Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-bitmap \fIfilename\fP\fP
+Specifies the bitmap file to use (a monochrome XBM file.)
+The name "none" means not to use a bitmap at all.
+If unspecified, a built-in image will be used.
+.PP
+The other options are arcane.  If someone would care to document them,
+that would be great.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 1996-1999 by Carsten Haitzler.  Permission to use, copy,
+modify, distribute, and sell this software and its documentation for
+any purpose is hereby granted without fee, provided that the above
+copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation.
+No representations are made about the suitability of this software for
+any purpose.  It is provided "as is" without express or implied
+warranty.
+.SH AUTHOR
+Primarily written by Carsten Haitzler <raster@redhat.com>.
+Modified over the years by Rahul Jain <rahul@rice.edu>, 
+Daniel Zahn <stumpy@religions.com>, and Jamie Zawinski <jwz@jwz.org>.
index fb515f6de6ce308d63f05b7f2f9edcd7d1be9f72..4d838bfd4e61de09c7dc10603a44706f7e4c66fc 100644 (file)
@@ -241,6 +241,12 @@ void xteevee_Static(Display* x_Disp,Window x_Win,XWindowAttributes* x_WinAttr,
                 x_Gc[color_Index]);
                XFreeGC(x_Disp,x_Gc[color_Index]);
        }
                 x_Gc[color_Index]);
                XFreeGC(x_Disp,x_Gc[color_Index]);
        }
+
+       for (tile_Index = 0;tile_Index < XTEEVEE_STATIC_TILE_COUNT;
+        tile_Index++)
+       {
+               XFreePixmap(x_Disp, tile_Tile[tile_Index]);
+       }
 }
 
 /* Vertical Roll =========================================================== */
 }
 
 /* Vertical Roll =========================================================== */
index c2c8de7b9da1520d9deed5873a910697cd02843f..851b5b490dfce2006d43377b00173e249bb0d3c9 100644 (file)
@@ -476,6 +476,54 @@ random_squares(Display * dpy, Window window, GC gc,
   free(squares);
 }
 
   free(squares);
 }
 
+/* I first saw something like this, albeit in reverse, in an early Tetris
+   implementation for the Mac.
+    -- Torbjörn Andersson <torbjorn@dev.eurotime.se>
+ */
+
+static void
+slide_lines (Display * dpy, Window window, GC gc, int width, int height,
+             int delay, int granularity)
+{
+  int slide_old_x, slide_new_x, clear_x;
+  int x, y, dx, dy;
+
+  /* This might need some tuning. The idea is to get sensible values no
+     matter what the size of the window.
+
+     Everything moves at constant speed. Should it accelerate instead? */
+
+  granularity *= 2;
+
+  dy = MAX (1, height / granularity);
+  dx = MAX (1, width / 100);
+
+  for (x = 0; x < width; x += dx)
+    {
+      for (y = 0; y < height; y += dy)
+       {
+         if ((y / dy) & 1)
+           {
+             slide_old_x = x;
+             slide_new_x = x + dx;
+             clear_x = x;
+           }
+         else
+           {
+             slide_old_x = dx;
+             slide_new_x = 0;
+             clear_x = width - x - dx;
+           }
+
+         XCopyArea (dpy, window, window, gc, slide_old_x, y, width - x - dx,
+                    dy, slide_new_x, y);
+         XClearArea (dpy, window, clear_x, y, dx, dy, False);
+       }
+
+      XSync(dpy, False);
+      usleep(delay * 3);
+    }
+}
 
 static Eraser erasers[] = {
   random_lines,
 
 static Eraser erasers[] = {
   random_lines,
@@ -488,6 +536,7 @@ static Eraser erasers[] = {
   fizzle,
   random_squares,
   spiral,
   fizzle,
   random_squares,
   spiral,
+  slide_lines,
 };
 
 
 };
 
 
index 2281a99f56c8bf08053f9b16be121c09b1047103..a3dc37e39e83403dd1e07928cc8e30311b0c31b8 100644 (file)
@@ -1,2 +1,2 @@
 static const char screensaver_id[] =
 static const char screensaver_id[] =
-       "@(#)xscreensaver 3.23 (30-Jan-00), by Jamie Zawinski (jwz@jwz.org)";
+       "@(#)xscreensaver 3.24 (03-Apr-2000), by Jamie Zawinski (jwz@jwz.org)";
index 53c873743e5df14fee0527c1f1af158c72129aec..e04d2cb9f0a80704c07862abe50e75d05c0b5eb4 100644 (file)
@@ -1,7 +1,7 @@
 Begin3
 Title:          xscreensaver
 Begin3
 Title:          xscreensaver
-Version:        3.23
-Entered-date:   30JAN00
+Version:        3.24
+Entered-date:   03APR00
 Description:    A modular screen saver and locker for the X Window System.
                 Highly customizable: allows the use of any program that
                 can draw on the root window as a display mode.
 Description:    A modular screen saver and locker for the X Window System.
                 Highly customizable: allows the use of any program that
                 can draw on the root window as a display mode.
@@ -10,15 +10,15 @@ Keywords:       screen saver, screen lock, lock, xlock, X11
 Author:         jwz@jwz.org (Jamie Zawinski)
 Maintained-by:  jwz@jwz.org (Jamie Zawinski)
 Primary-site:   http://www.jwz.org/xscreensaver/
 Author:         jwz@jwz.org (Jamie Zawinski)
 Maintained-by:  jwz@jwz.org (Jamie Zawinski)
 Primary-site:   http://www.jwz.org/xscreensaver/
-                1272K xscreensaver-3.23.tar.gz
+                1284K xscreensaver-3.24.tar.gz
                 40K  xscreensaver.README
                 1K   xscreensaver.lsm
 Alternate-site: sunsite.unc.edu /pub/Linux/X11/screensavers/
                 40K  xscreensaver.README
                 1K   xscreensaver.lsm
 Alternate-site: sunsite.unc.edu /pub/Linux/X11/screensavers/
-                1272K xscreensaver-3.23.tar.gz
+                1284K xscreensaver-3.24.tar.gz
                 40K  xscreensaver.README
                 1K   xscreensaver.lsm
 Alternate-site: ftp.x.org /contrib/applications/
                 40K  xscreensaver.README
                 1K   xscreensaver.lsm
 Alternate-site: ftp.x.org /contrib/applications/
-                1272K xscreensaver-3.23.tar.gz
+                1284K xscreensaver-3.24.tar.gz
                 40K  xscreensaver.README
                 1K   xscreensaver.lsm
 Platforms:      Linux, Irix, SunOS, Solaris, HPUX, AIX, FreeBSD, NetBSD,
                 40K  xscreensaver.README
                 1K   xscreensaver.lsm
 Platforms:      Linux, Irix, SunOS, Solaris, HPUX, AIX, FreeBSD, NetBSD,
index b8e4dfb0d1da8a9cd44a2fc102fcafd346f7a5db..6dc9021048af66666770df16d160589e5b2a4908 100644 (file)
@@ -1,5 +1,5 @@
 %define        name    xscreensaver
 %define        name    xscreensaver
-%define        version 3.23
+%define        version 3.24
 %define        release 1
 %define        serial  1
 %define        prefix  /usr/X11R6
 %define        release 1
 %define        serial  1
 %define        prefix  /usr/X11R6