TMP=/tmp/xd.$$$$ ; \
sed "s/xscreensaver-[0-9]\.[0-9][0-9]*/$$HEAD/g" download.html > $$TMP ; \
echo '' ; \
- diff -u0 download.html $$TMP ; \
+ diff -U0 download.html $$TMP ; \
echo '' ; \
\
OLDEST=`ls xscreensaver*.tar.gz | head -1` ; \
rm -f $$TMP ; \
\
(cd ..; $(MAKE) xscreensaver/changelog.html ); \
- cvs diff -u0 changelog.html ; \
+ cvs diff -U0 changelog.html ; \
set +x ; \
\
echo -n "Ok? "; \
============
+Changes since 4.17: * Oops, pay no attention to the man behind the curtain.
+Changes since 4.16: * New hacks, `anemotaxis' and `memscroller'.
+ * Fixed a bad bug that caused `vidwhacker' to never die.
+ * Fixed normals and lighting in `polyhedra'.
+ * Don't reuse the window when changing hacks (to work
+ around bugs in some GL implementations.)
+ * Made `xscreensaver-getimage-file' skip thumbnail-sized
+ images.
+ * Fixed endian problem in `barcode' on non-x86.
+ * Updates to `webcollage', `apple2', `fuzzyflakes',
+ `atunnel', and `pacman'.
+ * Timing tweaks to `bubble3d', `bouncingcow', `engine',
+ `gltext', `lavalite', `molecule', `spotlight',
+ `sballs', `boxed', `blinkbox', and `circuit'.
+ * Configure updates for Fedora core 2 / xorg 6.7.0.
+ * Compile without warnings under gcc 3.3.3.
+ * I give up: don't blank or lock the screen if we can't
+ get a keyboard grab. In that case, both choices are
+ bad.
Changes since 4.15: * New hacks, `polyhedra', `fuzzyflakes', `antinspect',
and `providence'.
* Minor updates to `webcollage', `bsod', `endgame',
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.57.
+# Generated by GNU Autoconf 2.59.
#
-# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
+# Copyright (C) 2003 Free Software Foundation, Inc.
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.
## --------------------- ##
elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
set -o posix
fi
+DUALCASE=1; export DUALCASE # for MKS sh
# Support unset when possible.
-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
as_unset=unset
else
as_unset=false
LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
LC_TELEPHONE LC_TIME
do
- if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
+ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
eval $as_var=C; export $as_var
else
$as_unset $as_var
if mkdir -p . 2>/dev/null; then
as_mkdir_p=:
else
+ test -d ./-p && rmdir ./-p
as_mkdir_p=false
fi
as_executable_p="test -f"
# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
# Sed expression to map a string onto a valid variable name.
-as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
# IFS
# Be sure to have absolute paths.
for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
- localstatedir libdir includedir oldincludedir infodir mandir
+ localstatedir libdir includedir oldincludedir infodir mandir
do
eval ac_val=$`echo $ac_var`
case $ac_val in
# Try the directory containing this script, then its parent.
ac_confdir=`(dirname "$0") 2>/dev/null ||
$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$0" : 'X\(//\)[^/]' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
+ X"$0" : 'X\(//\)[^/]' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
echo X"$0" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
cat <<_ACEOF
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
+ [$ac_default_prefix]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [PREFIX]
+ [PREFIX]
By default, \`make install' will install all the files in
\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
ac_top_srcdir=$ac_top_builddir$srcdir ;;
esac
-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
-# absolute.
-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
-ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+ case "$ac_dir" in
+ .) ac_abs_builddir=`pwd`;;
+ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+ *) ac_abs_builddir=`pwd`/"$ac_dir";;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+ case ${ac_top_builddir}. in
+ .) ac_abs_top_builddir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+ case $ac_srcdir in
+ .) ac_abs_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+ case $ac_top_srcdir in
+ .) ac_abs_top_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+ esac;;
+esac
cd $ac_dir
# Check for guested configure; otherwise get Cygnus style configure.
echo
$SHELL $ac_srcdir/configure --help=recursive
elif test -f $ac_srcdir/configure.ac ||
- test -f $ac_srcdir/configure.in; then
+ test -f $ac_srcdir/configure.in; then
echo
$ac_configure --help
else
if $ac_init_version; then
cat <<\_ACEOF
-Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
-Free Software Foundation, Inc.
+Copyright (C) 2003 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
running configure, to aid debugging if configure makes a mistake.
It was created by $as_me, which was
-generated by GNU Autoconf 2.57. Invocation command line was
+generated by GNU Autoconf 2.59. Invocation command line was
$ $0 $@
2)
ac_configure_args1="$ac_configure_args1 '$ac_arg'"
if test $ac_must_keep_next = true; then
- ac_must_keep_next=false # Got value, back to normal.
+ ac_must_keep_next=false # Got value, back to normal.
else
- case $ac_arg in
- *=* | --config-cache | -C | -disable-* | --disable-* \
- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
- | -with-* | --with-* | -without-* | --without-* | --x)
- case "$ac_configure_args0 " in
- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
- esac
- ;;
- -* ) ac_must_keep_next=true ;;
- esac
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
fi
ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
# Get rid of the leading space.
case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
*ac_space=\ *)
sed -n \
- "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
+ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
;;
*)
sed -n \
- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
;;
esac;
}
for ac_var in $ac_subst_files
do
eval ac_val=$`echo $ac_var`
- echo "$ac_var='"'"'$ac_val'"'"'"
+ echo "$ac_var='"'"'$ac_val'"'"'"
done | sort
echo
fi
echo "$as_me: caught signal $ac_signal"
echo "$as_me: exit $exit_status"
} >&5
- rm -f core core.* *.core &&
+ rm -f core *.core &&
rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
exit $exit_status
' 0
# value.
ac_cache_corrupted=false
for ac_var in `(set) 2>&1 |
- sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
+ sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
eval ac_old_set=\$ac_cv_env_${ac_var}_set
eval ac_new_set=\$ac_env_${ac_var}_set
eval ac_old_val="\$ac_cv_env_${ac_var}_value"
,);;
*)
if test "x$ac_old_val" != "x$ac_new_val"; then
- { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+ { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
+ { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
echo "$as_me: former value: $ac_old_val" >&2;}
- { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
+ { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
echo "$as_me: current value: $ac_new_val" >&2;}
- ac_cache_corrupted=:
+ ac_cache_corrupted=:
fi;;
esac
# Pass precious variables to config.status.
(exit $ac_status); }
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
# Try to create an executable without -o first, disregard a.out.
# It will help us diagnose broken compilers, and finding out an intuition
# of exeext.
-echo "$as_me:$LINENO: checking for C compiler default output" >&5
-echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
+echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
(eval $ac_link_default) 2>&5
test -f "$ac_file" || continue
case $ac_file in
*.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
- ;;
+ ;;
conftest.$ac_ext )
- # This is the source file.
- ;;
+ # This is the source file.
+ ;;
[ab].out )
- # We found the default executable, but exeext='' is most
- # certainly right.
- break;;
+ # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
*.* )
- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- # FIXME: I believe we export ac_cv_exeext for Libtool,
- # but it would be cool to find out if it's true. Does anybody
- # maintain Libtool? --akim.
- export ac_cv_exeext
- break;;
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ # FIXME: I believe we export ac_cv_exeext for Libtool,
+ # but it would be cool to find out if it's true. Does anybody
+ # maintain Libtool? --akim.
+ export ac_cv_exeext
+ break;;
* )
- break;;
+ break;;
esac
done
else
case $ac_file in
*.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
*.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- export ac_cv_exeext
- break;;
+ export ac_cv_exeext
+ break;;
* ) break;;
esac
done
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_compiler_gnu=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
ac_cv_c_compiler_gnu=$ac_compiler_gnu
fi
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_prog_cc_g=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
ac_cv_prog_cc_stdc=no
ac_save_CC=$CC
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
va_end (v);
return s;
}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std1 is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std1. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
int test (int i, double x);
struct s1 {int (*f) (int a);};
struct s2 {int (*f) (double a);};
CC="$ac_save_CC $ac_arg"
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
sed 's/^/| /' conftest.$ac_ext >&5
fi
-rm -f conftest.$ac_objext
+rm -f conftest.err conftest.$ac_objext
done
rm -f conftest.$ac_ext conftest.$ac_objext
CC=$ac_save_CC
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
for ac_declaration in \
- ''\
- '#include <stdlib.h>' \
+ '' \
'extern "C" void std::exit (int) throw (); using std::exit;' \
'extern "C" void std::exit (int); using std::exit;' \
'extern "C" void exit (int) throw ();' \
'void exit (int);'
do
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <stdlib.h>
$ac_declaration
+#include <stdlib.h>
int
main ()
{
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
continue
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
sed 's/^/| /' conftest.$ac_ext >&5
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
done
rm -f conftest*
if test -n "$ac_declaration"; then
sed 's/^/| /' conftest.$ac_ext >&5
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
{ (exit 1); exit 1; }; }
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
echo "$as_me: error: Couldn't build even a trivial ANSI C program: check CC." >&2;}
{ (exit 1); exit 1; }; }
fi
-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
if test -n "$GCC"; then
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
#else
# include <assert.h>
#endif
- Syntax error
+ Syntax error
_ACEOF
if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
else
ac_cpp_err=
fi
# OK, works on sane cases. Now check whether non-existent headers
# can be detected and how.
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
else
ac_cpp_err=
fi
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
#else
# include <assert.h>
#endif
- Syntax error
+ Syntax error
_ACEOF
if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
else
ac_cpp_err=
fi
# OK, works on sane cases. Now check whether non-existent headers
# can be detected and how.
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
else
ac_cpp_err=
fi
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_c_const=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5
echo "${ECHO_T}$ac_cv_c_const" >&6
ac_cv_c_inline=no
for ac_kw in inline __inline__ __inline; do
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
sed 's/^/| /' conftest.$ac_ext >&5
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
done
fi
echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5
echo "${ECHO_T}$ac_cv_c_inline" >&6
+
+
case $ac_cv_c_inline in
inline | yes) ;;
- no)
-cat >>confdefs.h <<\_ACEOF
-#define inline
-_ACEOF
- ;;
- *) cat >>confdefs.h <<_ACEOF
-#define inline $ac_cv_c_inline
+ *)
+ case $ac_cv_c_inline in
+ no) ac_val=;;
+ *) ac_val=$ac_cv_c_inline;;
+ esac
+ cat >>confdefs.h <<_ACEOF
+#ifndef __cplusplus
+#define inline $ac_val
+#endif
_ACEOF
- ;;
+ ;;
esac
# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
# AFS /usr/afsws/bin/install, which mishandles nonexistent args
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
# ./install, which can be erroneously created by make from ./install.sh.
echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
case $as_dir/ in
./ | .// | /cC/* | \
/etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
/usr/ucb/* ) ;;
*)
# OSF1 and SCO ODT 3.0 have their own names for install.
# by default.
for ac_prog in ginstall scoinst install; do
for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
- if test $ac_prog = install &&
- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- elif test $ac_prog = install &&
- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # program-specific install script used by HP pwplus--don't use.
- :
- else
- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
- break 3
- fi
- fi
+ if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+ if test $ac_prog = install &&
+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ break 3
+ fi
+ fi
done
done
;;
echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
+set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'`
if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_header_stdc=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
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 <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
:
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
#else
# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
#endif
int i;
for (i = 0; i < 256; i++)
if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
+ || toupper (i) != TOUPPER (i))
exit(2);
exit (0);
}
( exit $ac_status )
ac_cv_header_stdc=no
fi
-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
fi
fi
for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
- inttypes.h stdint.h unistd.h
+ inttypes.h stdint.h unistd.h
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
echo "$as_me:$LINENO: checking for $ac_header" >&5
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
eval "$as_ac_Header=no"
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
echo "$as_me:$LINENO: checking $ac_header usability" >&5
echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_header_compiler=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
echo "${ECHO_T}$ac_header_compiler" >&6
echo "$as_me:$LINENO: checking $ac_header presence" >&5
echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
else
ac_cpp_err=
fi
echo "${ECHO_T}$ac_header_preproc" >&6
# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc in
- yes:no )
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
{ echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- (
- cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
;;
- no:yes )
+ no:yes:* )
{ echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
{ echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists. ##
+## ------------------------------------------ ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- eval "$as_ac_Header=$ac_header_preproc"
+ eval "$as_ac_Header=\$ac_header_preproc"
fi
echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_type_mode_t=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_type_mode_t" >&5
echo "${ECHO_T}$ac_cv_type_mode_t" >&6
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_type_pid_t=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5
echo "${ECHO_T}$ac_cv_type_pid_t" >&6
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_type_size_t=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5
echo "${ECHO_T}$ac_cv_type_size_t" >&6
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_type_signal=int
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5
echo "${ECHO_T}$ac_cv_type_signal" >&6
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_header_time=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5
echo "${ECHO_T}$ac_cv_header_time" >&6
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_header_sys_wait_h=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5
echo "${ECHO_T}$ac_cv_header_sys_wait_h" >&6
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
eval "$as_ac_Header=no"
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
ac_func_search_save_LIBS=$LIBS
ac_cv_search_opendir=no
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
sed 's/^/| /' conftest.$ac_ext >&5
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
if test "$ac_cv_search_opendir" = no; then
for ac_lib in dir; do
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
sed 's/^/| /' conftest.$ac_ext >&5
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
done
fi
LIBS=$ac_func_search_save_LIBS
ac_func_search_save_LIBS=$LIBS
ac_cv_search_opendir=no
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
sed 's/^/| /' conftest.$ac_ext >&5
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
if test "$ac_cv_search_opendir" = no; then
for ac_lib in x; do
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
sed 's/^/| /' conftest.$ac_ext >&5
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
done
fi
LIBS=$ac_func_search_save_LIBS
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
sed 's/^/| /' conftest.$ac_ext >&5
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_gettimeofday_args=0
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
ac_cv_gettimeofday_args=$ac_gettimeofday_args
fi
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func (); below.
Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
<limits.h> exists even on freestanding compilers. */
+
#ifdef __STDC__
# include <limits.h>
#else
# include <assert.h>
#endif
+
+#undef $ac_func
+
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
eval "$as_ac_var=no"
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func (); below.
Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
<limits.h> exists even on freestanding compilers. */
+
#ifdef __STDC__
# include <limits.h>
#else
# include <assert.h>
#endif
+
+#undef $ac_func
+
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
eval "$as_ac_var=no"
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_have_icmp=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_have_icmp" >&5
echo "${ECHO_T}$ac_cv_have_icmp" >&6
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_have_icmphdr=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_have_icmphdr" >&5
echo "${ECHO_T}$ac_cv_have_icmphdr" >&6
echo "$as_me:$LINENO: checking $ac_header usability" >&5
echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_header_compiler=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
echo "${ECHO_T}$ac_header_compiler" >&6
echo "$as_me:$LINENO: checking $ac_header presence" >&5
echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
else
ac_cpp_err=
fi
echo "${ECHO_T}$ac_header_preproc" >&6
# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc in
- yes:no )
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
{ echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- (
- cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
;;
- no:yes )
+ no:yes:* )
{ echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
{ echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists. ##
+## ------------------------------------------ ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- eval "$as_ac_Header=$ac_header_preproc"
+ eval "$as_ac_Header=\$ac_header_preproc"
fi
echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
# Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR.
for ac_extension in a so sl; do
if test ! -f $ac_im_usrlibdir/libX11.$ac_extension &&
- test -f $ac_im_libdir/libX11.$ac_extension; then
- ac_im_usrlibdir=$ac_im_libdir; break
+ test -f $ac_im_libdir/libX11.$ac_extension; then
+ ac_im_usrlibdir=$ac_im_libdir; break
fi
done
# Screen out bogus values from the imake configuration. They are
# Guess where to find include files, by looking for Intrinsic.h.
# First, try using that file with no special directory specified.
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
else
ac_cpp_err=
fi
ac_save_LIBS=$LIBS
LIBS="-lXt $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
done
done
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi # $ac_x_libraries = no
if test "$ac_x_includes" = no || test "$ac_x_libraries" = no; then
else
# Record where we found X for the cache.
ac_cv_have_x="have_x=yes \
- ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries"
+ ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries"
fi
fi
echo $ECHO_N "checking whether -R must be followed by a space... $ECHO_C" >&6
ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_R_nospace=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
if test $ac_R_nospace = yes; then
echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
else
LIBS="$ac_xsave_LIBS -R $x_libraries"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_R_space=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
if test $ac_R_space = yes; then
echo "$as_me:$LINENO: result: yes" >&5
echo "${ECHO_T}yes" >&6
# the Alpha needs dnet_stub (dnet does not exist).
ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldnet $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_dnet_dnet_ntoa=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldnet_stub $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_dnet_stub_dnet_ntoa=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
fi
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS="$ac_xsave_LIBS"
# msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT,
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+/* Define gethostbyname to an innocuous variant, in case <limits.h> declares gethostbyname.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define gethostbyname innocuous_gethostbyname
+
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char gethostbyname (); below.
Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
<limits.h> exists even on freestanding compilers. */
+
#ifdef __STDC__
# include <limits.h>
#else
# include <assert.h>
#endif
+
+#undef gethostbyname
+
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_func_gethostbyname=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyname" >&5
echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6
ac_check_lib_save_LIBS=$LIBS
LIBS="-lnsl $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_nsl_gethostbyname=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5
fi
if test $ac_cv_lib_nsl_gethostbyname = no; then
- echo "$as_me:$LINENO: checking for gethostbyname in -lbsd" >&5
+ echo "$as_me:$LINENO: checking for gethostbyname in -lbsd" >&5
echo $ECHO_N "checking for gethostbyname in -lbsd... $ECHO_C" >&6
if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
ac_check_lib_save_LIBS=$LIBS
LIBS="-lbsd $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_bsd_gethostbyname=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_bsd_gethostbyname" >&5
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+/* Define connect to an innocuous variant, in case <limits.h> declares connect.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define connect innocuous_connect
+
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char connect (); below.
Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
<limits.h> exists even on freestanding compilers. */
+
#ifdef __STDC__
# include <limits.h>
#else
# include <assert.h>
#endif
+
+#undef connect
+
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_func_connect=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_func_connect" >&5
echo "${ECHO_T}$ac_cv_func_connect" >&6
ac_check_lib_save_LIBS=$LIBS
LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_socket_connect=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_socket_connect" >&5
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+/* Define remove to an innocuous variant, in case <limits.h> declares remove.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define remove innocuous_remove
+
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char remove (); below.
Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
<limits.h> exists even on freestanding compilers. */
+
#ifdef __STDC__
# include <limits.h>
#else
# include <assert.h>
#endif
+
+#undef remove
+
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_func_remove=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_func_remove" >&5
echo "${ECHO_T}$ac_cv_func_remove" >&6
ac_check_lib_save_LIBS=$LIBS
LIBS="-lposix $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_posix_remove=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_posix_remove" >&5
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+/* Define shmat to an innocuous variant, in case <limits.h> declares shmat.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define shmat innocuous_shmat
+
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char shmat (); below.
Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
<limits.h> exists even on freestanding compilers. */
+
#ifdef __STDC__
# include <limits.h>
#else
# include <assert.h>
#endif
+
+#undef shmat
+
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_func_shmat=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_func_shmat" >&5
echo "${ECHO_T}$ac_cv_func_shmat" >&6
ac_check_lib_save_LIBS=$LIBS
LIBS="-lipc $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_ipc_shmat=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_ipc_shmat" >&5
ac_check_lib_save_LIBS=$LIBS
LIBS="-lICE $X_EXTRA_LIBS $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_ICE_IceConnectionNumber=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
ac_check_lib_save_LIBS=$LIBS
LIBS="-lgen $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_gen_regcmp=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_gen_regcmp" >&5
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_xpointer=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
CPPFLAGS="$ac_save_CPPFLAGS"
fi
echo "$as_me:$LINENO: result: $ac_cv_xpointer" >&5
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_type_off_t=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5
echo "${ECHO_T}$ac_cv_type_off_t" >&6
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_working_alloca_h=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5
echo "${ECHO_T}$ac_cv_working_alloca_h" >&6
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_func_alloca_works=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5
echo "${ECHO_T}$ac_cv_func_alloca_works" >&6
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func (); below.
Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
<limits.h> exists even on freestanding compilers. */
+
#ifdef __STDC__
# include <limits.h>
#else
# include <assert.h>
#endif
+
+#undef $ac_func
+
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
eval "$as_ac_var=no"
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
ac_cv_c_stack_direction=0
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
( exit $ac_status )
ac_cv_c_stack_direction=-1
fi
-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
fi
echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5
echo "$as_me:$LINENO: checking $ac_header usability" >&5
echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_header_compiler=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
echo "${ECHO_T}$ac_header_compiler" >&6
echo "$as_me:$LINENO: checking $ac_header presence" >&5
echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
else
ac_cpp_err=
fi
echo "${ECHO_T}$ac_header_preproc" >&6
# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc in
- yes:no )
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
{ echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- (
- cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
;;
- no:yes )
+ no:yes:* )
{ echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
{ echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists. ##
+## ------------------------------------------ ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- eval "$as_ac_Header=$ac_header_preproc"
+ eval "$as_ac_Header=\$ac_header_preproc"
fi
echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func (); below.
Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
<limits.h> exists even on freestanding compilers. */
+
#ifdef __STDC__
# include <limits.h>
#else
# include <assert.h>
#endif
+
+#undef $ac_func
+
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
eval "$as_ac_var=no"
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
ac_cv_func_mmap_fixed_mapped=no
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
data2 = (char *) malloc (2 * pagesize);
if (!data2)
exit (1);
- data2 += (pagesize - ((int) data2 & (pagesize - 1))) & (pagesize - 1);
+ data2 += (pagesize - ((long) data2 & (pagesize - 1))) & (pagesize - 1);
if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE,
- MAP_PRIVATE | MAP_FIXED, fd, 0L))
+ MAP_PRIVATE | MAP_FIXED, fd, 0L))
exit (1);
for (i = 0; i < pagesize; ++i)
if (*(data + i) != *(data2 + i))
( exit $ac_status )
ac_cv_func_mmap_fixed_mapped=no
fi
-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
fi
echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5
echo "$as_me:$LINENO: checking $ac_header usability" >&5
echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_header_compiler=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
echo "${ECHO_T}$ac_header_compiler" >&6
echo "$as_me:$LINENO: checking $ac_header presence" >&5
echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
else
ac_cpp_err=
fi
echo "${ECHO_T}$ac_header_preproc" >&6
# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc in
- yes:no )
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
{ echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- (
- cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
;;
- no:yes )
+ no:yes:* )
{ echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
{ echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists. ##
+## ------------------------------------------ ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- eval "$as_ac_Header=$ac_header_preproc"
+ eval "$as_ac_Header=\$ac_header_preproc"
fi
echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func (); below.
Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
<limits.h> exists even on freestanding compilers. */
+
#ifdef __STDC__
# include <limits.h>
#else
# include <assert.h>
#endif
+
+#undef $ac_func
+
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
eval "$as_ac_var=no"
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
am_cv_val_LC_MESSAGES=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $am_cv_val_LC_MESSAGES" >&5
echo "${ECHO_T}$am_cv_val_LC_MESSAGES" >&6
echo "$as_me:$LINENO: checking libintl.h usability" >&5
echo $ECHO_N "checking libintl.h usability... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_header_compiler=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
echo "${ECHO_T}$ac_header_compiler" >&6
echo "$as_me:$LINENO: checking libintl.h presence" >&5
echo $ECHO_N "checking libintl.h presence... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
else
ac_cpp_err=
fi
echo "${ECHO_T}$ac_header_preproc" >&6
# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc in
- yes:no )
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
{ echo "$as_me:$LINENO: WARNING: libintl.h: accepted by the compiler, rejected by the preprocessor!" >&5
echo "$as_me: WARNING: libintl.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: libintl.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: libintl.h: proceeding with the preprocessor's result" >&2;}
- (
- cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
+ { echo "$as_me:$LINENO: WARNING: libintl.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: libintl.h: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
;;
- no:yes )
+ no:yes:* )
{ echo "$as_me:$LINENO: WARNING: libintl.h: present but cannot be compiled" >&5
echo "$as_me: WARNING: libintl.h: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: libintl.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: libintl.h: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: libintl.h: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: libintl.h: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: libintl.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: libintl.h: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: libintl.h: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: libintl.h: section \"Present But Cannot Be Compiled\"" >&2;}
{ echo "$as_me:$LINENO: WARNING: libintl.h: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: libintl.h: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: libintl.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: libintl.h: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists. ##
+## ------------------------------------------ ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
gt_cv_func_dgettext_libc=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $gt_cv_func_dgettext_libc" >&5
echo "${ECHO_T}$gt_cv_func_dgettext_libc" >&6
ac_check_lib_save_LIBS=$LIBS
LIBS="-lintl $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_intl_bindtextdomain=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_intl_bindtextdomain" >&5
ac_check_lib_save_LIBS=$LIBS
LIBS="-lintl $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_intl_dgettext=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dgettext" >&5
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func (); below.
Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
<limits.h> exists even on freestanding compilers. */
+
#ifdef __STDC__
# include <limits.h>
#else
# include <assert.h>
#endif
+
+#undef $ac_func
+
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
eval "$as_ac_var=no"
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
fi
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
CATOBJEXT=.mo
DATADIRNAME=lib
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
INSTOBJEXT=.mo
fi
fi
echo "$as_me:$LINENO: checking linux/version.h usability" >&5
echo $ECHO_N "checking linux/version.h usability... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_header_compiler=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
echo "${ECHO_T}$ac_header_compiler" >&6
echo "$as_me:$LINENO: checking linux/version.h presence" >&5
echo $ECHO_N "checking linux/version.h presence... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
else
ac_cpp_err=
fi
echo "${ECHO_T}$ac_header_preproc" >&6
# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc in
- yes:no )
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
{ echo "$as_me:$LINENO: WARNING: linux/version.h: accepted by the compiler, rejected by the preprocessor!" >&5
echo "$as_me: WARNING: linux/version.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: linux/version.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: linux/version.h: proceeding with the preprocessor's result" >&2;}
- (
- cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
+ { echo "$as_me:$LINENO: WARNING: linux/version.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: linux/version.h: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
;;
- no:yes )
+ no:yes:* )
{ echo "$as_me:$LINENO: WARNING: linux/version.h: present but cannot be compiled" >&5
echo "$as_me: WARNING: linux/version.h: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: linux/version.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: linux/version.h: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: linux/version.h: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: linux/version.h: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: linux/version.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: linux/version.h: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: linux/version.h: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: linux/version.h: section \"Present But Cannot Be Compiled\"" >&2;}
{ echo "$as_me:$LINENO: WARNING: linux/version.h: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: linux/version.h: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: linux/version.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: linux/version.h: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists. ##
+## ------------------------------------------ ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_header_X11_Xmu_Error_h=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_header_X11_Xmu_Error_h" >&5
echo "${ECHO_T}$ac_cv_header_X11_Xmu_Error_h" >&6
# with X libraries because we know it's SunOS.
LDFLAGS="$LDFLAGS -lXmu -lXt -lX11 -lXext -lm"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_sunos_xmu_bug=yes
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LDFLAGS="$ac_save_LDFLAGS"
fi
echo "$as_me:$LINENO: result: $ac_cv_sunos_xmu_bug" >&5
ac_save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS -static"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_ld_static=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LDFLAGS="$ac_save_LDFLAGS"
fi
echo "$as_me:$LINENO: result: $ac_cv_ld_static" >&5
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_header_X11_extensions_XScreenSaver_h=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_XScreenSaver_h" >&5
echo "${ECHO_T}$ac_cv_header_X11_extensions_XScreenSaver_h" >&6
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_header_X11_extensions_scrnsaver_h=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_scrnsaver_h" >&5
echo "${ECHO_T}$ac_cv_header_X11_extensions_scrnsaver_h" >&6
ac_check_lib_save_LIBS=$LIBS
LIBS="-lXext -lm $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_Xext_XScreenSaverRegister=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_Xext_XScreenSaverRegister" >&5
ac_check_lib_save_LIBS=$LIBS
LIBS="-lXExExt -lX11 -lXext -lm $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_XExExt_XScreenSaverRegister=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_XExExt_XScreenSaverRegister" >&5
ac_check_lib_save_LIBS=$LIBS
LIBS="-lXss -lX11 -lXext -lm $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_Xss_XScreenSaverRegister=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_Xss_XScreenSaverRegister" >&5
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_header_X11_extensions_xidle_h=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_xidle_h" >&5
echo "${ECHO_T}$ac_cv_header_X11_extensions_xidle_h" >&6
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_header_X11_extensions_XSGIvc_h=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_XSGIvc_h" >&5
echo "${ECHO_T}$ac_cv_header_X11_extensions_XSGIvc_h" >&6
ac_check_lib_save_LIBS=$LIBS
LIBS="-lXsgivc -lXext -lX11 $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_Xsgivc_XSGIvcQueryGammaMap=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_Xsgivc_XSGIvcQueryGammaMap" >&5
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_header_X11_extensions_dpms_h=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_dpms_h" >&5
echo "${ECHO_T}$ac_cv_header_X11_extensions_dpms_h" >&6
ac_check_lib_save_LIBS=$LIBS
LIBS="-lXext -lXext -lX11 $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_Xext_DPMSInfo=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_Xext_DPMSInfo" >&5
ac_check_lib_save_LIBS=$LIBS
LIBS="-lXdpms -lXext -lX11 $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_Xdpms_DPMSInfo=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_Xdpms_DPMSInfo" >&5
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_header_X11_extensions_Xinerama_h=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_Xinerama_h" >&5
echo "${ECHO_T}$ac_cv_header_X11_extensions_Xinerama_h" >&6
ac_check_lib_save_LIBS=$LIBS
LIBS="-lXext -lXext -lX11 $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_Xext_XineramaQueryScreens=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_Xext_XineramaQueryScreens" >&5
ac_check_lib_save_LIBS=$LIBS
LIBS="-lXinerama -lXext -lX11 $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_Xinerama_XineramaQueryScreens=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_Xinerama_XineramaQueryScreens" >&5
esac
+VIDMODE_LIBS=""
+
if test "$with_xf86vmode" = yes; then
# first check for xf86vmode.h
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_header_X11_extensions_xf86vmode_h=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_xf86vmode_h" >&5
echo "${ECHO_T}$ac_cv_header_X11_extensions_xf86vmode_h" >&6
ac_check_lib_save_LIBS=$LIBS
LIBS="-lXxf86vm -lXext -lX11 $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_Xxf86vm_XF86VidModeGetViewPort=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_Xxf86vm_XF86VidModeGetViewPort" >&5
echo "${ECHO_T}$ac_cv_lib_Xxf86vm_XF86VidModeGetViewPort" >&6
if test $ac_cv_lib_Xxf86vm_XF86VidModeGetViewPort = yes; then
- have_xf86vmode=yes; SAVER_LIBS="$SAVER_LIBS -lXxf86vm"
+ have_xf86vmode=yes;
+ VIDMODE_LIBS="-lXxf86vm";
+ SAVER_LIBS="$SAVER_LIBS $VIDMODE_LIBS"
else
true
fi
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_header_X11_extensions_xf86vmode_h=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_xf86vmode_h" >&5
echo "${ECHO_T}$ac_cv_header_X11_extensions_xf86vmode_h" >&6
ac_check_lib_save_LIBS=$LIBS
LIBS="-lXxf86vm -lXext -lX11 $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_Xxf86vm_XF86VidModeSetGamma=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_Xxf86vm_XF86VidModeSetGamma" >&5
ac_check_lib_save_LIBS=$LIBS
LIBS="-lXxf86vm -lXext -lX11 $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_Xxf86vm_XF86VidModeSetGammaRamp=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_Xxf86vm_XF86VidModeSetGammaRamp" >&5
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_header_X11_extensions_Xrandr_h=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_Xrandr_h" >&5
echo "${ECHO_T}$ac_cv_header_X11_extensions_Xrandr_h" >&6
ac_check_lib_save_LIBS=$LIBS
LIBS="-lXrender -lXext -lX11 $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_Xrender_XRenderSetSubpixelOrder=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_Xrender_XRenderSetSubpixelOrder" >&5
ac_check_lib_save_LIBS=$LIBS
LIBS="-lXext $xrender_libs -lXext -lX11 $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_Xext_XRRGetScreenInfo=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_Xext_XRRGetScreenInfo" >&5
ac_check_lib_save_LIBS=$LIBS
LIBS="-lXrandr $xrender_libs -lXext -lX11 $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_Xrandr_XRRGetScreenInfo=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_Xrandr_XRRGetScreenInfo" >&5
ac_check_lib_save_LIBS=$LIBS
LIBS="-lXxf86misc -lXext -lX11 $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_Xxf86misc_XF86MiscSetGrabKeysState=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_Xxf86misc_XF86MiscSetGrabKeysState" >&5
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_pam=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
CPPFLAGS="$ac_save_CPPFLAGS"
fi
echo "$as_me:$LINENO: result: $ac_cv_pam" >&5
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldl $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_dl_dlopen=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
ac_check_lib_save_LIBS=$LIBS
LIBS="-lc $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_c_sigtimedwait=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_c_sigtimedwait" >&5
ac_check_lib_save_LIBS=$LIBS
LIBS="-lrt $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_rt_sigtimedwait=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_rt_sigtimedwait" >&5
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
sed 's/^/| /' conftest.$ac_ext >&5
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_pam_strerror_args=0
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
ac_cv_pam_strerror_args=$ac_pam_strerror_args
fi
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_kerberos=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
CPPFLAGS="$ac_save_CPPFLAGS"
fi
echo "$as_me:$LINENO: result: $ac_cv_kerberos" >&5
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_kerberos5=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
CPPFLAGS="$ac_save_CPPFLAGS"
fi
echo "$as_me:$LINENO: result: $ac_cv_kerberos5" >&5
ac_check_lib_save_LIBS=$LIBS
LIBS="-lkrb4 $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_krb4_krb_get_tf_realm=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_krb4_krb_get_tf_realm" >&5
ac_check_lib_save_LIBS=$LIBS
LIBS="-lcrypt $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_crypt_crypt=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_crypt_crypt" >&5
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+/* Define res_search to an innocuous variant, in case <limits.h> declares res_search.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define res_search innocuous_res_search
+
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char res_search (); below.
Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
<limits.h> exists even on freestanding compilers. */
+
#ifdef __STDC__
# include <limits.h>
#else
# include <assert.h>
#endif
+
+#undef res_search
+
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_func_res_search=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_func_res_search" >&5
echo "${ECHO_T}$ac_cv_func_res_search" >&6
ac_check_lib_save_LIBS=$LIBS
LIBS="-lresolv $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_resolv_res_search=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_resolv_res_search" >&5
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_sun_adjunct=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
CPPFLAGS="$ac_save_CPPFLAGS"
fi
echo "$as_me:$LINENO: result: $ac_cv_sun_adjunct" >&5
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_enhanced_passwd=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
CPPFLAGS="$ac_save_CPPFLAGS"
fi
echo "$as_me:$LINENO: result: $ac_cv_enhanced_passwd" >&5
ac_check_lib_save_LIBS=$LIBS
LIBS="-lprot -lx $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_prot_getprpwnam=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_prot_getprpwnam" >&5
ac_check_lib_save_LIBS=$LIBS
LIBS="-lsecurity $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_security_getprpwnam=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_security_getprpwnam" >&5
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_hpux_passwd=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
CPPFLAGS="$ac_save_CPPFLAGS"
fi
echo "$as_me:$LINENO: result: $ac_cv_hpux_passwd" >&5
ac_check_lib_save_LIBS=$LIBS
LIBS="-lsec $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_sec_bigcrypt=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_sec_bigcrypt" >&5
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_shadow=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
CPPFLAGS="$ac_save_CPPFLAGS"
fi
echo "$as_me:$LINENO: result: $ac_cv_shadow" >&5
ac_check_lib_save_LIBS=$LIBS
LIBS="-lc $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_c_getspnam=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_c_getspnam" >&5
ac_check_lib_save_LIBS=$LIBS
LIBS="-lgen $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_gen_getspnam=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_gen_getspnam" >&5
ac_check_lib_save_LIBS=$LIBS
LIBS="-lc $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_c_crypt=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_c_crypt" >&5
ac_check_lib_save_LIBS=$LIBS
LIBS="-lcrypt $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_crypt_crypt=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_crypt_crypt" >&5
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_header_Xm_Xm_h=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_header_Xm_Xm_h" >&5
echo "${ECHO_T}$ac_cv_header_Xm_Xm_h" >&6
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_header_Xm_ComboBox_h=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_header_Xm_ComboBox_h" >&5
echo "${ECHO_T}$ac_cv_header_Xm_ComboBox_h" >&6
ac_check_lib_save_LIBS=$LIBS
LIBS="-lcapplet $ac_gnome_config_libs $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_capplet_capplet_widget_changes_are_immediate=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_capplet_capplet_widget_changes_are_immediate" >&5
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_header_libxml_xmlIO_h=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_header_libxml_xmlIO_h" >&5
echo "${ECHO_T}$ac_cv_header_libxml_xmlIO_h" >&6
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_header_xmlIO_h=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_header_xmlIO_h" >&5
echo "${ECHO_T}$ac_cv_header_xmlIO_h" >&6
ac_check_lib_save_LIBS=$LIBS
LIBS="-lz $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_z_zlibVersion=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_z_zlibVersion" >&5
ac_check_lib_save_LIBS=$LIBS
LIBS="-lc $ac_xml_config_libs $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_c_xmlParseChunk=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_c_xmlParseChunk" >&5
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_have_lesstif=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
CPPFLAGS="$ac_save_CPPFLAGS"
fi
echo "$as_me:$LINENO: result: $ac_cv_have_lesstif" >&5
ac_cv_lesstif_version_string=unknown
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
ac_cv_lesstif_version=unknown
ac_cv_lesstif_version_string=unknown
fi
-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
CPPFLAGS="$ac_save_CPPFLAGS"
fi
ac_cv_motif_version_string=unknown
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
ac_cv_motif_version=unknown
ac_cv_motif_version_string=unknown
fi
-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
CPPFLAGS="$ac_save_CPPFLAGS"
fi
ac_check_lib_save_LIBS=$LIBS
LIBS="-lXp -lX11 -lXext -lm $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_Xp_XpQueryExtension=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_Xp_XpQueryExtension" >&5
ac_check_lib_save_LIBS=$LIBS
LIBS="-lXintl -lX11 -lXext -lm $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_Xintl__Xsetlocale=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_Xintl__Xsetlocale" >&5
echo "$as_me:$LINENO: checking GL/gl.h usability" >&5
echo $ECHO_N "checking GL/gl.h usability... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_header_compiler=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
echo "${ECHO_T}$ac_header_compiler" >&6
echo "$as_me:$LINENO: checking GL/gl.h presence" >&5
echo $ECHO_N "checking GL/gl.h presence... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
else
ac_cpp_err=
fi
echo "${ECHO_T}$ac_header_preproc" >&6
# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc in
- yes:no )
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
{ echo "$as_me:$LINENO: WARNING: GL/gl.h: accepted by the compiler, rejected by the preprocessor!" >&5
echo "$as_me: WARNING: GL/gl.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: GL/gl.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: GL/gl.h: proceeding with the preprocessor's result" >&2;}
- (
- cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
+ { echo "$as_me:$LINENO: WARNING: GL/gl.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: GL/gl.h: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
;;
- no:yes )
+ no:yes:* )
{ echo "$as_me:$LINENO: WARNING: GL/gl.h: present but cannot be compiled" >&5
echo "$as_me: WARNING: GL/gl.h: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: GL/gl.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: GL/gl.h: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: GL/gl.h: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: GL/gl.h: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: GL/gl.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: GL/gl.h: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: GL/gl.h: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: GL/gl.h: section \"Present But Cannot Be Compiled\"" >&2;}
{ echo "$as_me:$LINENO: WARNING: GL/gl.h: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: GL/gl.h: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: GL/gl.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: GL/gl.h: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists. ##
+## ------------------------------------------ ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_header_GL_glx_h=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_header_GL_glx_h" >&5
echo "${ECHO_T}$ac_cv_header_GL_glx_h" >&6
fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
ac_check_lib_save_LIBS=$LIBS
LIBS="-lpthread $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_pthread_pthread_create=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_create" >&5
echo $ECHO_N "(cached) $ECHO_C" >&6
else
ac_check_lib_save_LIBS=$LIBS
-LIBS="-lMesaGL -lMesaGLU $GL_LIBS -lX11 -lXext -lm $LIBS"
+LIBS="-lMesaGL -lMesaGLU $GL_LIBS -lX11 -lXext $VIDMODE_LIBS -lm $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_MesaGL_glXCreateContext=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_MesaGL_glXCreateContext" >&5
echo "${ECHO_T}$ac_cv_lib_MesaGL_glXCreateContext" >&6
if test $ac_cv_lib_MesaGL_glXCreateContext = yes; then
gl_lib_1="MesaGL"
- GL_LIBS="-lMesaGL -lMesaGLU $GL_LIBS"
+ GL_LIBS="-lMesaGL -lMesaGLU $VIDMODE_LIBS $GL_LIBS"
fi
CPPFLAGS="$ac_save_CPPFLAGS"
echo $ECHO_N "(cached) $ECHO_C" >&6
else
ac_check_lib_save_LIBS=$LIBS
-LIBS="-lGL -lGLU $GL_LIBS -lX11 -lXext -lm $LIBS"
+LIBS="-lGL -lGLU $GL_LIBS -lX11 -lXext $VIDMODE_LIBS -lm $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_GL_glXCreateContext=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_GL_glXCreateContext" >&5
echo "${ECHO_T}$ac_cv_lib_GL_glXCreateContext" >&6
if test $ac_cv_lib_GL_glXCreateContext = yes; then
gl_lib_1="GL"
- GL_LIBS="-lGL -lGLU $GL_LIBS"
+ GL_LIBS="-lGL -lGLU $VIDMODE_LIBS $GL_LIBS"
fi
CPPFLAGS="$ac_save_CPPFLAGS"
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat > conftest.$ac_ext <<EOF
-#line 15962 "configure"
+#line 17308 "configure"
#include "confdefs.h"
#include <GL/gl.h>
#ifndef MESA_MAJOR_VERSION
ac_check_lib_save_LIBS=$LIBS
LIBS="-l$gl_lib_1 $GL_LIBS -lX11 -lXext -lm $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
eval "$as_ac_Lib=no"
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Lib'}'`" >&5
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_header_GL_gle_h=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_header_GL_gle_h" >&5
echo "${ECHO_T}$ac_cv_header_GL_gle_h" >&6
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_header_GL_gutil_h=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_header_GL_gutil_h" >&5
echo "${ECHO_T}$ac_cv_header_GL_gutil_h" >&6
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_header_GL_tube_h=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_header_GL_tube_h" >&5
echo "${ECHO_T}$ac_cv_header_GL_tube_h" >&6
ac_check_lib_save_LIBS=$LIBS
LIBS="-lgle $GL_LIBS -lX11 -lXext -lm $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_gle_gleCreateGC=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_gle_gleCreateGC" >&5
ac_check_lib_save_LIBS=$LIBS
LIBS="-lgle $GL_LIBS -lX11 -lXext -lm $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_gle_uview_direction=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_gle_uview_direction" >&5
ac_check_lib_save_LIBS=$LIBS
LIBS="-lmatrix $GL_LIBS -lX11 -lXext -lm $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_matrix_uview_direction_d=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_matrix_uview_direction_d" >&5
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_header_X11_xpm_h=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_header_X11_xpm_h" >&5
echo "${ECHO_T}$ac_cv_header_X11_xpm_h" >&6
echo "$as_me:$LINENO: checking gdk-pixbuf/gdk-pixbuf.h usability" >&5
echo $ECHO_N "checking gdk-pixbuf/gdk-pixbuf.h usability... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_header_compiler=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
echo "${ECHO_T}$ac_header_compiler" >&6
echo "$as_me:$LINENO: checking gdk-pixbuf/gdk-pixbuf.h presence" >&5
echo $ECHO_N "checking gdk-pixbuf/gdk-pixbuf.h presence... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
else
ac_cpp_err=
fi
echo "${ECHO_T}$ac_header_preproc" >&6
# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc in
- yes:no )
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
{ echo "$as_me:$LINENO: WARNING: gdk-pixbuf/gdk-pixbuf.h: accepted by the compiler, rejected by the preprocessor!" >&5
echo "$as_me: WARNING: gdk-pixbuf/gdk-pixbuf.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: gdk-pixbuf/gdk-pixbuf.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: gdk-pixbuf/gdk-pixbuf.h: proceeding with the preprocessor's result" >&2;}
- (
- cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
+ { echo "$as_me:$LINENO: WARNING: gdk-pixbuf/gdk-pixbuf.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: gdk-pixbuf/gdk-pixbuf.h: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
;;
- no:yes )
+ no:yes:* )
{ echo "$as_me:$LINENO: WARNING: gdk-pixbuf/gdk-pixbuf.h: present but cannot be compiled" >&5
echo "$as_me: WARNING: gdk-pixbuf/gdk-pixbuf.h: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: gdk-pixbuf/gdk-pixbuf.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: gdk-pixbuf/gdk-pixbuf.h: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: gdk-pixbuf/gdk-pixbuf.h: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: gdk-pixbuf/gdk-pixbuf.h: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: gdk-pixbuf/gdk-pixbuf.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: gdk-pixbuf/gdk-pixbuf.h: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: gdk-pixbuf/gdk-pixbuf.h: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: gdk-pixbuf/gdk-pixbuf.h: section \"Present But Cannot Be Compiled\"" >&2;}
{ echo "$as_me:$LINENO: WARNING: gdk-pixbuf/gdk-pixbuf.h: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: gdk-pixbuf/gdk-pixbuf.h: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: gdk-pixbuf/gdk-pixbuf.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: gdk-pixbuf/gdk-pixbuf.h: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists. ##
+## ------------------------------------------ ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
echo "$as_me:$LINENO: checking gdk-pixbuf/gdk-pixbuf-xlib.h usability" >&5
echo $ECHO_N "checking gdk-pixbuf/gdk-pixbuf-xlib.h usability... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_header_compiler=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
echo "${ECHO_T}$ac_header_compiler" >&6
echo "$as_me:$LINENO: checking gdk-pixbuf/gdk-pixbuf-xlib.h presence" >&5
echo $ECHO_N "checking gdk-pixbuf/gdk-pixbuf-xlib.h presence... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
else
ac_cpp_err=
fi
echo "${ECHO_T}$ac_header_preproc" >&6
# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc in
- yes:no )
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
{ echo "$as_me:$LINENO: WARNING: gdk-pixbuf/gdk-pixbuf-xlib.h: accepted by the compiler, rejected by the preprocessor!" >&5
echo "$as_me: WARNING: gdk-pixbuf/gdk-pixbuf-xlib.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: gdk-pixbuf/gdk-pixbuf-xlib.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: gdk-pixbuf/gdk-pixbuf-xlib.h: proceeding with the preprocessor's result" >&2;}
- (
- cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
+ { echo "$as_me:$LINENO: WARNING: gdk-pixbuf/gdk-pixbuf-xlib.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: gdk-pixbuf/gdk-pixbuf-xlib.h: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
;;
- no:yes )
+ no:yes:* )
{ echo "$as_me:$LINENO: WARNING: gdk-pixbuf/gdk-pixbuf-xlib.h: present but cannot be compiled" >&5
echo "$as_me: WARNING: gdk-pixbuf/gdk-pixbuf-xlib.h: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: gdk-pixbuf/gdk-pixbuf-xlib.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: gdk-pixbuf/gdk-pixbuf-xlib.h: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: gdk-pixbuf/gdk-pixbuf-xlib.h: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: gdk-pixbuf/gdk-pixbuf-xlib.h: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: gdk-pixbuf/gdk-pixbuf-xlib.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: gdk-pixbuf/gdk-pixbuf-xlib.h: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: gdk-pixbuf/gdk-pixbuf-xlib.h: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: gdk-pixbuf/gdk-pixbuf-xlib.h: section \"Present But Cannot Be Compiled\"" >&2;}
{ echo "$as_me:$LINENO: WARNING: gdk-pixbuf/gdk-pixbuf-xlib.h: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: gdk-pixbuf/gdk-pixbuf-xlib.h: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: gdk-pixbuf/gdk-pixbuf-xlib.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: gdk-pixbuf/gdk-pixbuf-xlib.h: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists. ##
+## ------------------------------------------ ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
echo "$as_me:$LINENO: checking gdk-pixbuf-xlib/gdk-pixbuf-xlib.h usability" >&5
echo $ECHO_N "checking gdk-pixbuf-xlib/gdk-pixbuf-xlib.h usability... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_header_compiler=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
echo "${ECHO_T}$ac_header_compiler" >&6
echo "$as_me:$LINENO: checking gdk-pixbuf-xlib/gdk-pixbuf-xlib.h presence" >&5
echo $ECHO_N "checking gdk-pixbuf-xlib/gdk-pixbuf-xlib.h presence... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
else
ac_cpp_err=
fi
echo "${ECHO_T}$ac_header_preproc" >&6
# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc in
- yes:no )
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
{ echo "$as_me:$LINENO: WARNING: gdk-pixbuf-xlib/gdk-pixbuf-xlib.h: accepted by the compiler, rejected by the preprocessor!" >&5
echo "$as_me: WARNING: gdk-pixbuf-xlib/gdk-pixbuf-xlib.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: gdk-pixbuf-xlib/gdk-pixbuf-xlib.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: gdk-pixbuf-xlib/gdk-pixbuf-xlib.h: proceeding with the preprocessor's result" >&2;}
- (
- cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
+ { echo "$as_me:$LINENO: WARNING: gdk-pixbuf-xlib/gdk-pixbuf-xlib.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: gdk-pixbuf-xlib/gdk-pixbuf-xlib.h: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
;;
- no:yes )
+ no:yes:* )
{ echo "$as_me:$LINENO: WARNING: gdk-pixbuf-xlib/gdk-pixbuf-xlib.h: present but cannot be compiled" >&5
echo "$as_me: WARNING: gdk-pixbuf-xlib/gdk-pixbuf-xlib.h: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: gdk-pixbuf-xlib/gdk-pixbuf-xlib.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: gdk-pixbuf-xlib/gdk-pixbuf-xlib.h: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: gdk-pixbuf-xlib/gdk-pixbuf-xlib.h: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: gdk-pixbuf-xlib/gdk-pixbuf-xlib.h: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: gdk-pixbuf-xlib/gdk-pixbuf-xlib.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: gdk-pixbuf-xlib/gdk-pixbuf-xlib.h: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: gdk-pixbuf-xlib/gdk-pixbuf-xlib.h: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: gdk-pixbuf-xlib/gdk-pixbuf-xlib.h: section \"Present But Cannot Be Compiled\"" >&2;}
{ echo "$as_me:$LINENO: WARNING: gdk-pixbuf-xlib/gdk-pixbuf-xlib.h: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: gdk-pixbuf-xlib/gdk-pixbuf-xlib.h: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: gdk-pixbuf-xlib/gdk-pixbuf-xlib.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: gdk-pixbuf-xlib/gdk-pixbuf-xlib.h: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists. ##
+## ------------------------------------------ ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
ac_check_lib_save_LIBS=$LIBS
LIBS="-lc $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_c_gdk_pixbuf_new_from_file=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_c_gdk_pixbuf_new_from_file" >&5
ac_check_lib_save_LIBS=$LIBS
LIBS="-lc $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_c_gdk_pixbuf_xlib_init=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_c_gdk_pixbuf_xlib_init" >&5
echo "$as_me:$LINENO: checking jpeglib.h usability" >&5
echo $ECHO_N "checking jpeglib.h usability... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_header_compiler=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
echo "${ECHO_T}$ac_header_compiler" >&6
echo "$as_me:$LINENO: checking jpeglib.h presence" >&5
echo $ECHO_N "checking jpeglib.h presence... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
else
ac_cpp_err=
fi
echo "${ECHO_T}$ac_header_preproc" >&6
# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc in
- yes:no )
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
{ echo "$as_me:$LINENO: WARNING: jpeglib.h: accepted by the compiler, rejected by the preprocessor!" >&5
echo "$as_me: WARNING: jpeglib.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: jpeglib.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: jpeglib.h: proceeding with the preprocessor's result" >&2;}
- (
- cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
+ { echo "$as_me:$LINENO: WARNING: jpeglib.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: jpeglib.h: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
;;
- no:yes )
+ no:yes:* )
{ echo "$as_me:$LINENO: WARNING: jpeglib.h: present but cannot be compiled" >&5
echo "$as_me: WARNING: jpeglib.h: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: jpeglib.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: jpeglib.h: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: jpeglib.h: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: jpeglib.h: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: jpeglib.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: jpeglib.h: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: jpeglib.h: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: jpeglib.h: section \"Present But Cannot Be Compiled\"" >&2;}
{ echo "$as_me:$LINENO: WARNING: jpeglib.h: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: jpeglib.h: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: jpeglib.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: jpeglib.h: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists. ##
+## ------------------------------------------ ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
ac_check_lib_save_LIBS=$LIBS
LIBS="-ljpeg $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_jpeg_jpeg_start_compress=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_jpeg_jpeg_start_compress" >&5
echo "$as_me:$LINENO: checking $ac_header usability" >&5
echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_header_compiler=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
echo "${ECHO_T}$ac_header_compiler" >&6
echo "$as_me:$LINENO: checking $ac_header presence" >&5
echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
else
ac_cpp_err=
fi
echo "${ECHO_T}$ac_header_preproc" >&6
# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc in
- yes:no )
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
{ echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- (
- cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
;;
- no:yes )
+ no:yes:* )
{ echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
{ echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists. ##
+## ------------------------------------------ ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- eval "$as_ac_Header=$ac_header_preproc"
+ eval "$as_ac_Header=\$ac_header_preproc"
fi
echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
ac_check_lib_save_LIBS=$LIBS
LIBS="-lutil $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_util_forkpty=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_util_forkpty" >&5
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_header_X11_extensions_XShm_h=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_XShm_h" >&5
echo "${ECHO_T}$ac_cv_header_X11_extensions_XShm_h" >&6
echo "$as_me:$LINENO: checking sys/ipc.h usability" >&5
echo $ECHO_N "checking sys/ipc.h usability... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_header_compiler=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
echo "${ECHO_T}$ac_header_compiler" >&6
echo "$as_me:$LINENO: checking sys/ipc.h presence" >&5
echo $ECHO_N "checking sys/ipc.h presence... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
else
ac_cpp_err=
fi
echo "${ECHO_T}$ac_header_preproc" >&6
# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc in
- yes:no )
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
{ echo "$as_me:$LINENO: WARNING: sys/ipc.h: accepted by the compiler, rejected by the preprocessor!" >&5
echo "$as_me: WARNING: sys/ipc.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: sys/ipc.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: sys/ipc.h: proceeding with the preprocessor's result" >&2;}
- (
- cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
+ { echo "$as_me:$LINENO: WARNING: sys/ipc.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: sys/ipc.h: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
;;
- no:yes )
+ no:yes:* )
{ echo "$as_me:$LINENO: WARNING: sys/ipc.h: present but cannot be compiled" >&5
echo "$as_me: WARNING: sys/ipc.h: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: sys/ipc.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: sys/ipc.h: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: sys/ipc.h: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: sys/ipc.h: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: sys/ipc.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: sys/ipc.h: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: sys/ipc.h: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: sys/ipc.h: section \"Present But Cannot Be Compiled\"" >&2;}
{ echo "$as_me:$LINENO: WARNING: sys/ipc.h: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: sys/ipc.h: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: sys/ipc.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: sys/ipc.h: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists. ##
+## ------------------------------------------ ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
echo "$as_me:$LINENO: checking sys/shm.h usability" >&5
echo $ECHO_N "checking sys/shm.h usability... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_header_compiler=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
echo "${ECHO_T}$ac_header_compiler" >&6
echo "$as_me:$LINENO: checking sys/shm.h presence" >&5
echo $ECHO_N "checking sys/shm.h presence... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
else
ac_cpp_err=
fi
echo "${ECHO_T}$ac_header_preproc" >&6
# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc in
- yes:no )
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
{ echo "$as_me:$LINENO: WARNING: sys/shm.h: accepted by the compiler, rejected by the preprocessor!" >&5
echo "$as_me: WARNING: sys/shm.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: sys/shm.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: sys/shm.h: proceeding with the preprocessor's result" >&2;}
- (
- cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
+ { echo "$as_me:$LINENO: WARNING: sys/shm.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: sys/shm.h: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
;;
- no:yes )
+ no:yes:* )
{ echo "$as_me:$LINENO: WARNING: sys/shm.h: present but cannot be compiled" >&5
echo "$as_me: WARNING: sys/shm.h: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: sys/shm.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: sys/shm.h: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: sys/shm.h: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: sys/shm.h: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: sys/shm.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: sys/shm.h: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: sys/shm.h: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: sys/shm.h: section \"Present But Cannot Be Compiled\"" >&2;}
{ echo "$as_me:$LINENO: WARNING: sys/shm.h: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: sys/shm.h: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: sys/shm.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: sys/shm.h: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists. ##
+## ------------------------------------------ ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
ac_check_lib_save_LIBS=$LIBS
LIBS="-lXextSam -lX11 -lXext -lm $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_lib_XextSam_XShmQueryExtension=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_XextSam_XShmQueryExtension" >&5
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_header_X11_extensions_Xdbe_h=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_Xdbe_h" >&5
echo "${ECHO_T}$ac_cv_header_X11_extensions_Xdbe_h" >&6
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
ac_cv_header_X11_extensions_readdisplay_h=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_readdisplay_h" >&5
echo "${ECHO_T}$ac_cv_header_X11_extensions_readdisplay_h" >&6
# `set' does not quote correctly, so add quotes (double-quote
# substitution turns \\\\ into \\, and sed turns \\ into \).
sed -n \
- "s/'/'\\\\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
;;
*)
# `set' quotes correctly as required by POSIX, so do not add quotes.
sed -n \
- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
;;
esac;
} |
# trailing colons and then remove the whole line if VPATH becomes empty
# (actually we leave an empty line to preserve line numbers).
if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=/{
+ ac_vpsub='/^[ ]*VPATH[ ]*=/{
s/:*\$(srcdir):*/:/;
s/:*\${srcdir}:*/:/;
s/:*@srcdir@:*/:/;
-s/^\([^=]*=[ ]*\):*/\1/;
+s/^\([^=]*=[ ]*\):*/\1/;
s/:*$//;
-s/^[^=]*=[ ]*$//;
+s/^[^=]*=[ ]*$//;
}'
fi
for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
# 1. Remove the extension, and $U if already installed.
ac_i=`echo "$ac_i" |
- sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
+ sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
# 2. Add them.
ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
set -o posix
fi
+DUALCASE=1; export DUALCASE # for MKS sh
# Support unset when possible.
-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
as_unset=unset
else
as_unset=false
LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
LC_TELEPHONE LC_TIME
do
- if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
+ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
eval $as_var=C; export $as_var
else
$as_unset $as_var
if mkdir -p . 2>/dev/null; then
as_mkdir_p=:
else
+ test -d ./-p && rmdir ./-p
as_mkdir_p=false
fi
as_executable_p="test -f"
# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
# Sed expression to map a string onto a valid variable name.
-as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
# IFS
cat >&5 <<_CSEOF
This file was extended by $as_me, which was
-generated by GNU Autoconf 2.57. Invocation command line was
+generated by GNU Autoconf 2.59. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
-d, --debug don't remove temporary files
--recheck update $as_me by reconfiguring in the same conditions
--file=FILE[:TEMPLATE]
- instantiate the configuration file FILE
+ instantiate the configuration file FILE
--header=FILE[:TEMPLATE]
- instantiate the configuration header FILE
+ instantiate the configuration header FILE
Configuration files:
$config_files
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
config.status
-configured by $0, generated by GNU Autoconf 2.57,
+configured by $0, generated by GNU Autoconf 2.59,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
-Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
-Free Software Foundation, Inc.
+Copyright (C) 2003 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
srcdir=$srcdir
(echo ':t
/@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
if test -z "$ac_sed_cmds"; then
- ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
+ ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
else
- ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
+ ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
fi
ac_sed_frag=`expr $ac_sed_frag + 1`
ac_beg=$ac_end
# Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
case $ac_file in
- | *:- | *:-:* ) # input from stdin
- cat >$tmp/stdin
- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ cat >$tmp/stdin
+ ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
*:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
* ) ac_file_in=$ac_file.in ;;
esac
# Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
ac_dir=`(dirname "$ac_file") 2>/dev/null ||
$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
echo X"$ac_file" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
as_dirs="$as_dir $as_dirs"
as_dir=`(dirname "$as_dir") 2>/dev/null ||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
echo X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
ac_top_srcdir=$ac_top_builddir$srcdir ;;
esac
-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
-# absolute.
-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
-ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+ case "$ac_dir" in
+ .) ac_abs_builddir=`pwd`;;
+ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+ *) ac_abs_builddir=`pwd`/"$ac_dir";;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+ case ${ac_top_builddir}. in
+ .) ac_abs_top_builddir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+ case $ac_srcdir in
+ .) ac_abs_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+ case $ac_top_srcdir in
+ .) ac_abs_top_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+ esac;;
+esac
case $INSTALL in
configure_input="$ac_file. "
fi
configure_input=$configure_input"Generated from `echo $ac_file_in |
- sed 's,.*/,,'` by configure."
+ sed 's,.*/,,'` by configure."
# First look for the input files in the build tree, otherwise in the
# src tree.
case $f in
-) echo $tmp/stdin ;;
[\\/$]*)
- # Absolute (can't be DOS-style, as IFS=:)
- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+ # Absolute (can't be DOS-style, as IFS=:)
+ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
- echo $f;;
+ echo "$f";;
*) # Relative
- if test -f "$f"; then
- # Build tree
- echo $f
- elif test -f "$srcdir/$f"; then
- # Source tree
- echo $srcdir/$f
- else
- # /dev/null tree
- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+ if test -f "$f"; then
+ # Build tree
+ echo "$f"
+ elif test -f "$srcdir/$f"; then
+ # Source tree
+ echo "$srcdir/$f"
+ else
+ # /dev/null tree
+ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
- fi;;
+ fi;;
esac
done` || { (exit 1); exit 1; }
_ACEOF
# NAME is the cpp macro being defined and VALUE is the value it is being given.
#
# ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)'
-ac_dB='[ ].*$,\1#\2'
+ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)'
+ac_dB='[ ].*$,\1#\2'
ac_dC=' '
ac_dD=',;t'
# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
+ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
ac_uB='$,\1#\2define\3'
ac_uC=' '
ac_uD=',;t'
# Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
case $ac_file in
- | *:- | *:-:* ) # input from stdin
- cat >$tmp/stdin
- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ cat >$tmp/stdin
+ ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
*:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
* ) ac_file_in=$ac_file.in ;;
esac
case $f in
-) echo $tmp/stdin ;;
[\\/$]*)
- # Absolute (can't be DOS-style, as IFS=:)
- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+ # Absolute (can't be DOS-style, as IFS=:)
+ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
- echo $f;;
+ # Do quote $f, to prevent DOS paths from being IFS'd.
+ echo "$f";;
*) # Relative
- if test -f "$f"; then
- # Build tree
- echo $f
- elif test -f "$srcdir/$f"; then
- # Source tree
- echo $srcdir/$f
- else
- # /dev/null tree
- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+ if test -f "$f"; then
+ # Build tree
+ echo "$f"
+ elif test -f "$srcdir/$f"; then
+ # Source tree
+ echo "$srcdir/$f"
+ else
+ # /dev/null tree
+ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
- fi;;
+ fi;;
esac
done` || { (exit 1); exit 1; }
# Remove the trailing spaces.
- sed 's/[ ]*$//' $ac_file_inputs >$tmp/in
+ sed 's/[ ]*$//' $ac_file_inputs >$tmp/in
_ACEOF
s,[\\$`],\\&,g
t clear
: clear
-s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
+s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
t end
-s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
+s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
: end
_ACEOF
# If some macros were called several times there might be several times
# example, in the case of _POSIX_SOURCE, which is predefined and required
# on some systems where configure will not decide to define it.
cat >>conftest.undefs <<\_ACEOF
-s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
+s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
_ACEOF
# Break up conftest.defines because some shells have a limit on the size
# of here documents, and old seds have small limits too (100 cmds).
echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
-echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
+echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
echo ' :' >>$CONFIG_STATUS
rm -f conftest.tail
# Write a limited-size here document to $tmp/defines.sed.
echo ' cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
# Speed up: don't consider the non `#define' lines.
- echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS
+ echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS
# Work around the forget-to-reset-the-flag bug.
echo 't clr' >>$CONFIG_STATUS
echo ': clr' >>$CONFIG_STATUS
# Write a limited-size here document to $tmp/undefs.sed.
echo ' cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
# Speed up: don't consider the non `#undef'
- echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS
+ echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS
# Work around the forget-to-reset-the-flag bug.
echo 't clr' >>$CONFIG_STATUS
echo ': clr' >>$CONFIG_STATUS
else
ac_dir=`(dirname "$ac_file") 2>/dev/null ||
$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
echo X"$ac_file" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
as_dirs="$as_dir $as_dirs"
as_dir=`(dirname "$as_dir") 2>/dev/null ||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
echo X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_dest" : 'X\(//\)[^/]' \| \
- X"$ac_dest" : 'X\(//\)$' \| \
- X"$ac_dest" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
+ X"$ac_dest" : 'X\(//\)[^/]' \| \
+ X"$ac_dest" : 'X\(//\)$' \| \
+ X"$ac_dest" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
echo X"$ac_dest" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
/^X\(\/\/\)$/{ s//\1/; q; }
/^X\(\/\).*/{ s//\1/; q; }
s/.*/./; q'`
+ { if $as_mkdir_p; then
+ mkdir -p "$ac_dir"
+ else
+ as_dir="$ac_dir"
+ as_dirs=
+ while test ! -d "$as_dir"; do
+ as_dirs="$as_dir $as_dirs"
+ as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ done
+ test ! -n "$as_dirs" || mkdir $as_dirs
+ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+ { (exit 1); exit 1; }; }; }
+
ac_builddir=.
if test "$ac_dir" != .; then
ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
ac_top_srcdir=$ac_top_builddir$srcdir ;;
esac
-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
-# absolute.
-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
-ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+ case "$ac_dir" in
+ .) ac_abs_builddir=`pwd`;;
+ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+ *) ac_abs_builddir=`pwd`/"$ac_dir";;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+ case ${ac_top_builddir}. in
+ .) ac_abs_top_builddir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+ case $ac_srcdir in
+ .) ac_abs_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+ case $ac_top_srcdir in
+ .) ac_abs_top_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+ esac;;
+esac
{ echo "$as_me:$LINENO: executing $ac_dest commands" >&5
HANDLE_X_PATH_ARG(with_xf86vmode, --with-xf86vmode-ext, xf86vmode)
+VIDMODE_LIBS=""
+
if test "$with_xf86vmode" = yes; then
# first check for xf86vmode.h
if test "$have_xf86vmode" = yes; then
have_xf86vmode=no
AC_CHECK_X_LIB(Xxf86vm, XF86VidModeGetViewPort,
- [have_xf86vmode=yes; SAVER_LIBS="$SAVER_LIBS -lXxf86vm"],
+ [have_xf86vmode=yes;
+ VIDMODE_LIBS="-lXxf86vm";
+ SAVER_LIBS="$SAVER_LIBS $VIDMODE_LIBS"],
[true], -lXext -lX11)
fi
if test "$ac_have_mesa_gl" = yes ; then
AC_CHECK_X_LIB(MesaGL, glXCreateContext,
[gl_lib_1="MesaGL"
- GL_LIBS="-lMesaGL -lMesaGLU $GL_LIBS"],
- [], -lMesaGLU $GL_LIBS -lX11 -lXext -lm)
+ GL_LIBS="-lMesaGL -lMesaGLU $VIDMODE_LIBS $GL_LIBS"],
+ [], -lMesaGLU $GL_LIBS -lX11 -lXext $VIDMODE_LIBS -lm)
fi
if test "$gl_lib_1" = "" ; then
AC_CHECK_X_LIB(GL, glXCreateContext,
[gl_lib_1="GL"
- GL_LIBS="-lGL -lGLU $GL_LIBS"],
- [], -lGLU $GL_LIBS -lX11 -lXext -lm)
+ GL_LIBS="-lGL -lGLU $VIDMODE_LIBS $GL_LIBS"],
+ [], -lGLU $GL_LIBS -lX11 -lXext $VIDMODE_LIBS -lm)
fi
if test "$gl_lib_1" = "" ; then
xscreensaver-demo-Gtk: $(DEMO_OBJS) $(GTK_OBJS)
$(CC) $(LDFLAGS) -o $@ $(DEMO_OBJS) $(GTK_OBJS) $(LIBS) $(X_LIBS) \
- $(GTK_LIBS) $(XML_LIBS) $(INTL_LIBS) $(X_PRE_LIBS) -lXt -lX11 \
- $(XDPMS_LIBS) -lXext $(X_EXTRA_LIBS)
+ $(GTK_LIBS) $(XPM_LIBS) $(XML_LIBS) $(INTL_LIBS) $(X_PRE_LIBS) \
+ -lXt -lX11 $(XDPMS_LIBS) -lXext $(X_EXTRA_LIBS)
xscreensaver-getimage: $(GETIMG_OBJS)
$(CC) $(LDFLAGS) -o $@ $(GETIMG_OBJS) $(GETIMG_LIBS) -lm
! a screen saver and locker for the X window system
! by Jamie Zawinski
!
-! version 4.16
-! 12-May-2004
+! version 4.18
+! 14-Aug-2004
!
! See "man xscreensaver" for more info. The latest version is always
! available at http://www.jwz.org/xscreensaver/
maze -root \n\
noseguy -root \n\
flame -root \n\
- lmorph -root \n\
+- lmorph -root \n\
deco -root \n\
moire -root \n\
moire2 -root \n\
lightning -root \n\
strange -root \n\
- spiral -root \n\
+- spiral -root \n\
laser -root \n\
grav -root \n\
"Grav (trails)" grav -root -trail -decay \n\
ifs -root \n\
julia -root \n\
penrose -root \n\
- sierpinski -root \n\
+- sierpinski -root \n\
braid -root \n\
galaxy -root \n\
bouboule -root \n\
flag -root \n\
sphere -root \n\
forest -root \n\
- lisa -root \n\
- lissie -root \n\
+- lisa -root \n\
+- lissie -root \n\
goop -root -max-velocity 0.5 -elasticity \
0.9 \n\
starfish -root \n\
coral -root -delay 0 \n\
mountain -root \n\
triangle -root -delay 1 \n\
- worm -root \n\
- rotor -root \n\
- ant -root \n\
- demon -root \n\
- loop -root \n\
- vines -root \n\
+- worm -root \n\
+- rotor -root \n\
+- ant -root \n\
+- demon -root \n\
+- loop -root \n\
+- vines -root \n\
kaleidescope -root \n\
xjack -root \n\
xlyap -root -randomize \n\
wander -root \n\
"Wander (spots)" wander -root -advance 0 -size 10 -circles \
-length 10000 -reset 100000 \n\
- critical -root \n\
+- critical -root \n\
phosphor -root \n\
xmatrix -root \n\
petri -root -size 2 -count 20 \n\
wormhole -root \n\
pacman -root \n\
fuzzyflakes -root \n\
+ anemotaxis -root \n\
+ memscroller -root \n\
- default-n: webcollage -root \n\
- default-n: "WebCollage (whacked)" \
webcollage -root -filter \
@GL_KLUDGE@ GL: pipes -root \n\
@GL_KLUDGE@ GL: sproingies -root \n\
@GL_KLUDGE@ GL: rubik -root \n\
-@GL_KLUDGE@ GL: atlantis -root \n\
+@GL_KLUDGE@ GL: atlantis -root -gradient \n\
@GL_KLUDGE@ GL: lament -root \n\
@GL_KLUDGE@ GL: bubble3d -root \n\
@GL_KLUDGE@ GL: glplanet -root \n\
@GL_KLUDGE@ GL: flipscreen3d -root \n\
@GL_KLUDGE@ GL: glsnake -root \n\
@GL_KLUDGE@ GL: boxed -root \n\
-@GL_KLUDGE@ GL: "GLForestFire" glforestfire -root \n\
+- GL: "GLForestFire" glforestfire -root \n\
- GL: "GLForestFire (rain)" glforestfire -root -count 0 \n\
-@GL_KLUDGE@ GL: sballs -root \n\
+- GL: sballs -root \n\
@GL_KLUDGE@ GL: cubenetic -root \n\
@GL_KLUDGE@ GL: spheremonics -root \n\
@GL_KLUDGE@ GL: lavalite -root \n\
*hacks.mirrorblob.name: MirrorBlob
*hacks.blinkbox.name: BlinkBox
*hacks.fuzzyflakes.name: FuzzyFlakes
+*hacks.memscroller.name: MemScroller
! obsolete, but still used by xscreensaver-demo-Xm.
*hacks.documentation.isInstalled: True
maze -root \\n\
noseguy -root \\n\
flame -root \\n\
- lmorph -root \\n\
+- lmorph -root \\n\
deco -root \\n\
moire -root \\n\
moire2 -root \\n\
lightning -root \\n\
strange -root \\n\
- spiral -root \\n\
+- spiral -root \\n\
laser -root \\n\
grav -root \\n\
\"Grav (trails)\" grav -root -trail -decay \\n\
ifs -root \\n\
julia -root \\n\
penrose -root \\n\
- sierpinski -root \\n\
+- sierpinski -root \\n\
braid -root \\n\
galaxy -root \\n\
bouboule -root \\n\
flag -root \\n\
sphere -root \\n\
forest -root \\n\
- lisa -root \\n\
- lissie -root \\n\
+- lisa -root \\n\
+- lissie -root \\n\
goop -root -max-velocity 0.5 -elasticity \
0.9 \\n\
starfish -root \\n\
coral -root -delay 0 \\n\
mountain -root \\n\
triangle -root -delay 1 \\n\
- worm -root \\n\
- rotor -root \\n\
- ant -root \\n\
- demon -root \\n\
- loop -root \\n\
- vines -root \\n\
+- worm -root \\n\
+- rotor -root \\n\
+- ant -root \\n\
+- demon -root \\n\
+- loop -root \\n\
+- vines -root \\n\
kaleidescope -root \\n\
xjack -root \\n\
xlyap -root -randomize \\n\
wander -root \\n\
\"Wander (spots)\" wander -root -advance 0 -size 10 -circles \
-length 10000 -reset 100000 \\n\
- critical -root \\n\
+- critical -root \\n\
phosphor -root \\n\
xmatrix -root \\n\
petri -root -size 2 -count 20 \\n\
wormhole -root \\n\
pacman -root \\n\
fuzzyflakes -root \\n\
+ anemotaxis -root \\n\
+ memscroller -root \\n\
- default-n: webcollage -root \\n\
- default-n: \"WebCollage (whacked)\" \
webcollage -root -filter \
GL: pipes -root \\n\
GL: sproingies -root \\n\
GL: rubik -root \\n\
- GL: atlantis -root \\n\
+ GL: atlantis -root -gradient \\n\
GL: lament -root \\n\
GL: bubble3d -root \\n\
GL: glplanet -root \\n\
GL: flipscreen3d -root \\n\
GL: glsnake -root \\n\
GL: boxed -root \\n\
- GL: \"GLForestFire\" glforestfire -root \\n\
+- GL: \"GLForestFire\" glforestfire -root \\n\
- GL: \"GLForestFire (rain)\" glforestfire -root -count 0 \\n\
- GL: sballs -root \\n\
+- GL: sballs -root \\n\
GL: cubenetic -root \\n\
GL: spheremonics -root \\n\
GL: lavalite -root \\n\
"*hacks.mirrorblob.name: MirrorBlob",
"*hacks.blinkbox.name: BlinkBox",
"*hacks.fuzzyflakes.name: FuzzyFlakes",
+"*hacks.memscroller.name: MemScroller",
"*hacks.documentation.isInstalled: True",
static void await_xscreensaver (state *);
static void schedule_preview (state *, const char *cmd);
-static void kill_preview_subproc (state *);
+static void kill_preview_subproc (state *, Bool reset_p);
static void schedule_preview_check (state *);
flush_dialog_changes_and_save (s);
status = xscreensaver_command (GDK_DISPLAY(), command, arg, False, &err);
+
+ /* Kludge: ignore the spurious "window unexpectedly deleted" errors... */
+ if (status < 0 && err && strstr (err, "unexpectedly deleted"))
+ status = 0;
+
if (status < 0)
{
char buf [255];
{
state *s = global_state_kludge; /* I hate C so much... */
flush_dialog_changes_and_save (s);
- kill_preview_subproc (s);
+ kill_preview_subproc (s, False);
gtk_main_quit ();
}
Atom type;
int format;
unsigned long nitems, bytesafter;
- CARD32 *data = 0;
+ unsigned char *dataP = 0;
Display *dpy = GDK_DISPLAY();
int hack_number = -1;
XA_SCREENSAVER_STATUS,
0, 3, False, XA_INTEGER,
&type, &format, &nitems, &bytesafter,
- (unsigned char **) &data)
+ &dataP)
== Success
&& type == XA_INTEGER
&& nitems >= 3
- && data)
- hack_number = (int) data[2] - 1;
+ && dataP)
+ {
+ CARD32 *data = (CARD32 *) dataP;
+ hack_number = (int) data[2] - 1;
+ }
- if (data) free (data);
+ if (dataP) XFree (dataP);
return hack_number;
}
}
+static void
+reset_preview_window (state *s)
+{
+ /* On some systems (most recently, MacOS X) OpenGL programs get confused
+ when you kill one and re-start another on the same window. So maybe
+ it's best to just always destroy and recreate the preview window
+ when changing hacks, instead of always trying to reuse the same one?
+ */
+ GtkWidget *pr = name_to_widget (s, "preview");
+ if (GTK_WIDGET_REALIZED (pr))
+ {
+ Window oid = (pr->window ? GDK_WINDOW_XWINDOW (pr->window) : 0);
+ Window id;
+ gtk_widget_hide (pr);
+ gtk_widget_unrealize (pr);
+ gtk_widget_realize (pr);
+ gtk_widget_show (pr);
+ id = (pr->window ? GDK_WINDOW_XWINDOW (pr->window) : 0);
+ if (s->debug_p)
+ fprintf (stderr, "%s: window id 0x%X -> 0x%X\n", blurb(),
+ (unsigned int) oid,
+ (unsigned int) id);
+ }
+}
+
+
static void
fix_preview_visual (state *s)
{
static void
-kill_preview_subproc (state *s)
+kill_preview_subproc (state *s, Bool reset_p)
{
s->running_preview_error_p = False;
}
reap_zombies (s);
+
+ if (reset_p)
+ {
+ reset_preview_window (s);
+ clear_preview_window (s);
+ }
}
const char *cmd = s->desired_preview_cmd;
GtkWidget *pr = name_to_widget (s, "preview");
- GdkWindow *window = pr->window;
+ GdkWindow *window;
+
+ reset_preview_window (s);
+
+ window = pr->window;
s->running_preview_error_p = False;
if (s->preview_suppressed_p)
{
- kill_preview_subproc (s);
+ kill_preview_subproc (s, False);
goto DONE;
}
(unsigned int) id);
}
- kill_preview_subproc (s);
+ kill_preview_subproc (s, False);
if (! new_cmd)
{
s->running_preview_error_p = True;
{
state *s = (state *) data;
if (! s->desired_preview_cmd)
- kill_preview_subproc (s);
+ kill_preview_subproc (s, True);
else if (!s->running_preview_cmd ||
!!strcmp (s->desired_preview_cmd, s->running_preview_cmd))
launch_preview_subproc (s);
Atom type;
int format;
unsigned long nitems, bytesafter;
- CARD32 *data = 0;
+ unsigned char *dataP = 0;
Display *dpy = GDK_DISPLAY();
Bool blanked_p = False;
XA_SCREENSAVER_STATUS,
0, 3, False, XA_INTEGER,
&type, &format, &nitems, &bytesafter,
- (unsigned char **) &data)
+ &dataP)
== Success
&& type == XA_INTEGER
&& nitems >= 3
- && data)
- blanked_p = (data[0] == XA_BLANK || data[0] == XA_LOCK);
+ && dataP)
+ {
+ Atom *data = (Atom *) dataP;
+ blanked_p = (data[0] == XA_BLANK || data[0] == XA_LOCK);
+ }
- if (data) free (data);
+ if (dataP) XFree (dataP);
return blanked_p;
}
{
if (s->debug_p)
fprintf (stderr, "%s: screen is blanked: killing preview\n", blurb());
- kill_preview_subproc (s);
+ kill_preview_subproc (s, True);
}
return True; /* re-execute timer */
state *s = global_state_kludge; /* I hate C so much... */
fprintf (stderr, "\nX error in %s:\n", blurb());
XmuPrintDefaultErrorMessage (dpy, error, stderr);
- kill_preview_subproc (s);
+ kill_preview_subproc (s, False);
exit (-1);
return 0;
}
# endif /* HAVE_CRAPPLET */
gtk_main ();
- kill_preview_subproc (s);
+ kill_preview_subproc (s, False);
exit (0);
}
XSync (si->dpy, False);
if (error_handler_hit_p) status = 666;
+ if (!lock_p && status == MiscExtGrabStateAlready)
+ status = MiscExtGrabStateSuccess; /* shut up, consider this success */
+
if (p->verbose_p && status != MiscExtGrabStateSuccess)
fprintf (stderr, "%s: error: XF86MiscSetGrabKeysState(%d) returned %s\n",
blurb(), !lock_p,
else
pw->timer = 0;
- idle_timer ((XtPointer) si, id);
+ idle_timer ((XtPointer) si, 0);
}
Atom type;
int format;
unsigned long nitems, bytesafter;
- char *v;
+ unsigned char *v;
int status;
/* We're walking the list of root-level windows and trying to find
XA_SCREENSAVER_VERSION,
0, 200, False, XA_STRING,
&type, &format, &nitems, &bytesafter,
- (unsigned char **) &v);
+ &v);
XSync (dpy, False);
XSetErrorHandler (old_handler);
old_handler = 0;
{
Window ret = kids[i];
if (version)
- *version = v;
+ *version = (char *) v;
XFree (kids);
return ret;
}
Atom type;
int format;
unsigned long nitems, bytesafter;
- CARD32 *data = 0;
+ unsigned char *dataP = 0;
if (XGetWindowProperty (dpy,
RootWindow (dpy, 0),
XA_SCREENSAVER_STATUS,
0, 999, False, XA_INTEGER,
&type, &format, &nitems, &bytesafter,
- (unsigned char **) &data)
+ &dataP)
== Success
&& type
- && data)
+ && dataP)
{
Atom blanked;
time_t tt;
char *s;
+ Atom *data = (Atom *) dataP;
if (type != XA_INTEGER || nitems < 3)
{
}
else
{
- if (data) free (data);
+ if (dataP) XFree (dataP);
fprintf (stdout, "\n");
fflush (stdout);
fprintf (stderr, "no saver status on root window.\n");
Atom type;
int format;
unsigned long nitems, bytesafter;
- char *msg = 0;
+ unsigned char *msg = 0;
XSync (dpy, False);
if (old_handler) abort();
0, 1024, True,
AnyPropertyType,
&type, &format, &nitems, &bytesafter,
- (unsigned char **) &msg);
+ &msg);
XSync (dpy, False);
XSetErrorHandler (old_handler);
old_handler = 0;
else
{
int ret = (msg[0] == '+' ? 0 : -1);
- sprintf (err, "%s: %s\n", progname, msg+1);
+ sprintf (err, "%s: %s\n", progname, (char *) msg+1);
if (error_ret)
*error_ret = strdup (err);
if (version_ret)
{
- char *v = 0;
+ unsigned char *v = 0;
XGetWindowProperty (dpy, window, XA_SCREENSAVER_VERSION, 0, 1,
False, XA_STRING, &type, &format, &nitems,
- &bytesafter, (unsigned char **) &v);
+ &bytesafter, &v);
if (v)
{
- *version_ret = strdup (v);
+ *version_ret = strdup ((char *) v);
XFree (v);
}
}
if (user_ret || host_ret)
{
- char *id = 0;
+ unsigned char *id = 0;
const char *user = 0;
const char *host = 0;
XGetWindowProperty (dpy, window, XA_SCREENSAVER_ID, 0, 512,
False, XA_STRING, &type, &format, &nitems,
- &bytesafter, (unsigned char **) &id);
+ &bytesafter, &id);
if (id && *id)
{
const char *old_tag = " on host ";
- const char *s = strstr (id, old_tag);
+ const char *s = strstr ((char *) id, old_tag);
if (s)
{
/* found ID of the form "1234 on host xyz". */
else
{
char *o = 0, *p = 0, *c = 0;
- o = strchr (id, '(');
+ o = strchr ((char *) id, '(');
if (o) p = strchr (o, '@');
if (p) c = strchr (p, ')');
if (c)
}
+static Bool error_handler_hit_p = False;
+
+static int
+ignore_all_errors_ehandler (Display *dpy, XErrorEvent *error)
+{
+ error_handler_hit_p = True;
+ return 0;
+}
+
+
int
main (int argc, char **argv)
{
- int event_number, error_number;
- int major, minor;
+ int event_number = -1, error_number = -1;
+ int major = -1, minor = -1;
int nscreens = 0;
int i;
for (i = 0; i < nscreens; i++)
{
- XRRScreenConfiguration *rrc =
- (major >= 0 ? XRRGetScreenInfo (dpy, RootWindow (dpy, i)) : 0);
+ XRRScreenConfiguration *rrc;
+ XErrorHandler old_handler;
+
+ XSync (dpy, False);
+ error_handler_hit_p = False;
+ old_handler = XSetErrorHandler (ignore_all_errors_ehandler);
- if (rrc)
+ rrc = (major >= 0 ? XRRGetScreenInfo (dpy, RootWindow (dpy, i)) : 0);
+
+ XSync (dpy, False);
+ XSetErrorHandler (old_handler);
+ XSync (dpy, False);
+
+ if (error_handler_hit_p)
+ {
+ fprintf(stderr, "%s: XRRGetScreenInfo(dpy, %d) ==> X error:\n",
+ blurb(), i);
+ /* do it again without the error handler to print the error */
+ rrc = XRRGetScreenInfo (dpy, RootWindow (dpy, i));
+ }
+ else if (rrc)
{
SizeID current_size = -1;
Rotation current_rotation = ~0;
}
+static Bool error_handler_hit_p = False;
+
+static int
+ignore_all_errors_ehandler (Display *dpy, XErrorEvent *error)
+{
+ error_handler_hit_p = True;
+ return 0;
+}
+
+
static int
screen_count (Display *dpy)
{
for (i = 0; i < nscreens; i++)
{
- int result;
+ int result = 0;
int x = 0, y = 0, dot = 0;
XF86VidModeModeLine ml = { 0, };
+ XErrorHandler old_handler;
+
+ XSync (dpy, False);
+ error_handler_hit_p = False;
+ old_handler = XSetErrorHandler (ignore_all_errors_ehandler);
result = XF86VidModeGetViewPort (dpy, i, &x, &y);
+
+ XSync (dpy, False);
+ XSetErrorHandler (old_handler);
+ XSync (dpy, False);
+
+ if (error_handler_hit_p)
+ {
+ fprintf(stderr,
+ "%s: XF86VidModeGetViewPort(dpy, %d, ...) ==> X error\n",
+ blurb(), i);
+ continue;
+ }
+
if (! result)
fprintf(stderr, "%s: XF86VidModeGetViewPort(dpy, %d, ...) ==> %d\n",
blurb(), i, result);
fake_event.xany.display = si->dpy;
fake_event.xany.window = 0;
XPutBackEvent (si->dpy, &fake_event);
+
+ /* If we are the timer that just went off, clear the pointer to the id. */
+ if (id)
+ {
+ if (si->timer_id && *id != si->timer_id)
+ abort(); /* oops, scheduled timer twice?? */
+ si->timer_id = 0;
+ }
}
-static void
+void
schedule_wakeup_event (saver_info *si, Time when, Bool verbose_p)
{
+ if (si->timer_id)
+ {
+ if (verbose_p)
+ fprintf (stderr, "%s: idle_timer already running\n", blurb());
+ return;
+ }
+
/* Wake up periodically to ask the server if we are idle. */
si->timer_id = XtAppAddTimeOut (si->app, when, idle_timer,
(XtPointer) si);
fprintf (stderr, "%s: killing idle_timer (%ld, %ld)\n",
blurb(), p->timeout, si->timer_id);
XtRemoveTimeOut (si->timer_id);
+ si->timer_id = 0;
}
schedule_wakeup_event (si, p->timeout, p->debug_p); /* sets si->timer_id */
*/
abort ();
- si->check_pointer_timer_id =
+ if (id && *id == si->check_pointer_timer_id) /* this is us - it's expired */
+ si->check_pointer_timer_id = 0;
+
+ if (si->check_pointer_timer_id) /* only queue one at a time */
+ XtRemoveTimeOut (si->check_pointer_timer_id);
+
+ si->check_pointer_timer_id = /* now re-queue */
XtAppAddTimeOut (si->app, p->pointer_timeout, check_pointer_timer,
(XtPointer) si);
{
if (polling_for_idleness)
/* This causes a no-op event to be delivered to us in a while, so that
- we come back around through the event loop again. Use of this timer
- is economical: for example, if the screensaver should come on in 5
- minutes, and the user has been idle for 2 minutes, then this
- timeout will go off no sooner than 3 minutes from now. */
+ we come back around through the event loop again. */
schedule_wakeup_event (si, p->timeout, p->debug_p);
if (polling_mouse_position)
if (until_idle_p)
{
Time idle;
+
+ /* We may be idle; check one last time to see if the mouse has
+ moved, just in case the idle-timer went off within the 5 second
+ window between mouse polling. If the mouse has moved, then
+ check_pointer_timer() will reset last_activity_time.
+ */
+ if (polling_mouse_position)
+ check_pointer_timer ((XtPointer) si, 0);
+
#ifdef HAVE_XIDLE_EXTENSION
if (si->using_xidle_extension)
{
{
/* The event went off, but it turns out that the user has not
yet been idle for long enough. So re-signal the event.
- */
+ Be economical: if we should blank after 5 minutes, and the
+ user has been idle for 2 minutes, then set this timer to
+ go off in 3 minutes.
+ */
if (polling_for_idleness)
schedule_wakeup_event (si, p->timeout - idle, p->debug_p);
}
XRRScreenChangeNotifyEvent *xrr_event =
(XRRScreenChangeNotifyEvent *) &event;
+ /* XRRRootToScreen is in Xrandr.h 1.4, 2001/06/07 */
int screen = XRRRootToScreen (si->dpy, xrr_event->window);
if (p->verbose_p)
xrr_event->width, xrr_event->height);
}
+# ifdef RRScreenChangeNotifyMask
/* Inform Xlib that it's ok to update its data structures. */
- XRRUpdateConfiguration (&event);
+ XRRUpdateConfiguration (&event); /* Xrandr.h 1.9, 2002/09/29 */
+# endif /* RRScreenChangeNotifyMask */
/* Resize the existing xscreensaver windows and cached ssi data. */
resize_screensaver_window (si);
blurb(), p->watchdog_timeout, si->watchdog_id);
}
}
+
+
+/* It's possible that a race condition could have led to the saver
+ window being unexpectedly still mapped. This can happen like so:
+
+ - screen is blanked
+ - hack is launched
+ - that hack tries to grab a screen image (it does this by
+ first unmapping the saver window, then remapping it.)
+ - hack unmaps window
+ - hack waits
+ - user becomes active
+ - hack re-maps window (*)
+ - driver kills subprocess
+ - driver unmaps window (**)
+
+ The race is that (*) might have been sent to the server before
+ the client process was killed, but, due to scheduling randomness,
+ might not have been received by the server until after (**).
+ In other words, (*) and (**) might happen out of order, meaning
+ the driver will unmap the window, and then after that, the
+ recently-dead client will re-map it. This leaves the user
+ locked out (it looks like a desktop, but it's not!)
+
+ To avoid this: after un-blanking the screen, we launch a timer
+ that wakes up once a second for ten seconds, and makes damned
+ sure that the window is still unmapped.
+ */
+
+void
+de_race_timer (XtPointer closure, XtIntervalId *id)
+{
+ saver_info *si = (saver_info *) closure;
+ saver_preferences *p = &si->prefs;
+ int secs = 1;
+
+ if (id == 0) /* if id is 0, this is the initialization call. */
+ {
+ si->de_race_ticks = 10;
+ if (p->verbose_p)
+ fprintf (stderr, "%s: starting de-race timer (%d seconds.)\n",
+ blurb(), si->de_race_ticks);
+ }
+ else
+ {
+ int i;
+ XSync (si->dpy, False);
+ for (i = 0; i < si->nscreens; i++)
+ {
+ saver_screen_info *ssi = &si->screens[i];
+ Window w = ssi->screensaver_window;
+ XWindowAttributes xgwa;
+ XGetWindowAttributes (si->dpy, w, &xgwa);
+ if (xgwa.map_state != IsUnmapped)
+ {
+ if (p->verbose_p)
+ fprintf (stderr,
+ "%s: %d: client race! emergency unmap 0x%lx.\n",
+ blurb(), i, (unsigned long) w);
+ XUnmapWindow (si->dpy, w);
+ }
+ else if (p->debug_p)
+ fprintf (stderr, "%s: %d: (de-race of 0x%lx is cool.)\n",
+ blurb(), i, (unsigned long) w);
+ }
+ XSync (si->dpy, False);
+
+ si->de_race_ticks--;
+ }
+
+ if (id && *id == si->de_race_id)
+ si->de_race_id = 0;
+
+ if (si->de_race_id) abort();
+
+ if (si->de_race_ticks <= 0)
+ {
+ si->de_race_id = 0;
+ if (p->verbose_p)
+ fprintf (stderr, "%s: de-race completed.\n", blurb());
+ }
+ else
+ {
+ si->de_race_id = XtAppAddTimeOut (si->app, secs * 1000,
+ de_race_timer, closure);
+ }
+}
fprintf (stderr, "%s: couldn't grab pointer! (%s)\n",
blurb(), grab_string(mstatus));
- return (kstatus == GrabSuccess ||
- mstatus == GrabSuccess);
+
+ /* When should we allow blanking to proceed? The current theory
+ is that a keyboard grab is manditory; a mouse grab is optional.
+
+ - If we don't have a keyboard grab, then we won't be able to
+ read a password to unlock, so the kbd grab is manditory.
+ (We can't conditionalize this on locked_p, because someone
+ might run "xscreensaver-command -lock" at any time.)
+
+ - If we don't have a mouse grab, then we might not see mouse
+ clicks as a signal to unblank -- but we will still see kbd
+ activity, so that's not a disaster.
+ */
+
+ if (kstatus != GrabSuccess) /* Do not blank without a kbd grab. */
+ return False;
+
+ return True; /* Grab is good, go ahead and blank. */
}
static void
Atom type;
int format;
unsigned long nitems, bytesafter;
- char *version;
+ unsigned char *version;
if (XGetWindowProperty (dpy, kids[i], XA_SCREENSAVER_VERSION, 0, 1,
False, XA_STRING, &type, &format, &nitems,
- &bytesafter, (unsigned char **) &version)
+ &bytesafter, &version)
== Success
&& type != None)
{
- char *id;
+ unsigned char *id;
if (!XGetWindowProperty (dpy, kids[i], XA_SCREENSAVER_ID, 0, 512,
False, XA_STRING, &type, &format, &nitems,
- &bytesafter, (unsigned char **) &id)
+ &bytesafter, &id)
== Success
|| type == None)
- id = "???";
+ id = (unsigned char *) "???";
fprintf (stderr,
"%s: already running on display %s (window 0x%x)\n from process %s.\n",
- blurb(), DisplayString (dpy), (int) kids [i], id);
+ blurb(), DisplayString (dpy), (int) kids [i],
+ (char *) id);
status = True;
}
}
Atom type;
int format;
unsigned long nitems, bytesafter;
- Pixmap *dataP = 0;
+ unsigned char *dataP = 0;
/* If the user has been using xv or xsetroot as a screensaver (to display
an image on the screensaver window, as a kind of slideshow) then the
*/
if (XGetWindowProperty (dpy, window, prop, 0, 1,
True, AnyPropertyType, &type, &format, &nitems,
- &bytesafter, (unsigned char **) &dataP)
+ &bytesafter, &dataP)
== Success
&& type != None)
{
- if (dataP && *dataP && type == XA_PIXMAP && format == 32 &&
+ Pixmap *pixP = (Pixmap *) dataP;
+ if (pixP && *pixP && type == XA_PIXMAP && format == 32 &&
nitems == 1 && bytesafter == 0)
{
if (verbose_p)
fprintf (stderr, "%s: destroying %s data (0x%lX).\n",
- blurb(), atom_name, *dataP);
- safe_XKillClient (dpy, *dataP);
+ blurb(), atom_name, *pixP);
+ safe_XKillClient (dpy, *pixP);
}
else
fprintf (stderr,
"\t%lu, %lu; type: %lu, format: %d, "
"nitems: %lu, bytesafter %ld\n",
blurb(), atom_name,
- (unsigned long) dataP, (dataP ? *dataP : 0), type,
+ (unsigned long) pixP, (pixP ? *pixP : 0), type,
format, nitems, bytesafter);
}
}
Atom type;
int format;
unsigned long nitems, bytesafter;
- Window *vrootP = 0;
+ unsigned char *dataP = 0;
+ Window *vrootP;
int j;
/* Skip this window if it is the xscreensaver window of any other
if (XGetWindowProperty (dpy, kids[i], XA_VROOT, 0, 1, False, XA_WINDOW,
&type, &format, &nitems, &bytesafter,
- (unsigned char **) &vrootP)
+ &dataP)
!= Success)
continue;
- if (! vrootP)
+ if (! dataP)
continue;
+
+ vrootP = (Window *) dataP;
if (ssi->real_vroot)
{
if (*vrootP == ssi->screensaver_window) abort ();
fprintf (stderr, "%s: %s received: restarting...\n",
blurb(), signal_name(sig));
- unblank_screen (si);
- kill_screenhack (si);
- XSync (si->dpy, False);
+
+ if (si->screen_blanked_p)
+ {
+ unblank_screen (si);
+ kill_screenhack (si);
+ XSync (si->dpy, False);
+ }
+
restart_process (si); /* Does not return */
abort ();
}
mscreen);
+# if 0
if (si->using_mit_saver_extension || si->using_sgi_saver_extension)
/* If we're using a server extension, then failure to get a grab is
not a big deal -- even without the grab, we will still be able
to un-blank when there is user activity, since the server will
tell us. */
+ /* #### No, that's not true: if we don't have a keyboard grab,
+ then we can't read passwords to unlock.
+ */
ok = True;
+# endif /* 0 */
if (!ok)
return False;
Visual *new_v = 0;
Bool got_it;
+ /* On some systems (most recently, MacOS X) OpenGL programs get confused
+ when you kill one and re-start another on the same window. So maybe
+ it's best to just always destroy and recreate the xscreensaver window
+ when changing hacks, instead of trying to reuse the old one?
+ */
+ Bool always_recreate_window_p = True;
+
if (visual_name && *visual_name)
{
if (!strcmp(visual_name, "default-i") ||
ssi->install_cmap_p = install_cmap_p;
if (new_v &&
- ((ssi->current_visual != new_v) ||
+ (always_recreate_window_p ||
+ (ssi->current_visual != new_v) ||
(install_cmap_p != was_installed_p)))
{
Colormap old_c = ssi->cmap;
-/* xscreensaver-command, Copyright (c) 1991-2003 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver-command, Copyright (c) 1991-2004 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
Atom type;
int format;
unsigned long nitems, bytesafter;
- CARD32 *data = 0;
+ unsigned char *dataP = 0;
if (XGetWindowProperty (dpy,
RootWindow (dpy, 0), /* always screen #0 */
XA_SCREENSAVER_STATUS,
0, 999, False, XA_INTEGER,
&type, &format, &nitems, &bytesafter,
- (unsigned char **) &data)
+ &dataP)
== Success
&& type
- && data)
+ && dataP)
{
time_t tt;
char *s;
Bool changed = False;
Bool running = False;
+ CARD32 *data = (CARD32 *) dataP;
if (type != XA_INTEGER || nitems < 3)
{
STATUS_LOSE:
- if (last) free (last);
- if (data) free (data);
+ if (last) XFree (last);
+ if (data) XFree (data);
fprintf (stderr, "%s: bad status format on root window.\n",
progname);
return -1;
fflush (stdout);
- if (last) free (last);
+ if (last) XFree (last);
last = data;
}
else
{
- if (last) free (last);
- if (data) free (data);
+ if (last) XFree (last);
+ if (dataP) XFree (dataP);
fprintf (stderr, "%s: no saver status on root window.\n",
progname);
return -1;
.if n .sp 1
.if t .sp .5
..
-.TH XScreenSaver 1 "12-May-2004 (4.16)" "X Version 11"
+.TH XScreenSaver 1 "14-Aug-2004 (4.18)" "X Version 11"
.SH NAME
xscreensaver-command - control a running xscreensaver process
.SH SYNOPSIS
.B xscreensaver-command
[\-display \fIhost:display.screen\fP] \
-[\-help] \
-[\-demo] \
-[\-prefs] \
-[\-activate] \
-[\-deactivate] \
-[\-cycle] \
-[\-next] \
-[\-prev] \
-[\-select \fIn\fP] \
-[\-exit] \
-[\-restart] \
-[\-lock] \
-[\-throttle] \
-[\-unthrottle] \
-[\-version] \
-[\-time] \
-[\-watch]
+[\-help | \
+\-demo | \
+\-prefs | \
+\-activate | \
+\-deactivate | \
+\-cycle | \
+\-next | \
+\-prev | \
+\-select \fIn\fP | \
+\-exit | \
+\-restart | \
+\-lock | \
+\-throttle | \
+\-unthrottle | \
+\-version | \
+\-time | \
+\-watch]
.SH DESCRIPTION
The \fIxscreensaver\-command\fP program controls a running \fIxscreensaver\fP
process by sending it client-messages.
<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
<glade-interface>
-<requires lib="gnome"/>
<widget class="GtkWindow" id="xscreensaver_demo">
<property name="title" translatable="yes">XScreenSaver</property>
.if n .sp 1
.if t .sp .5
..
-.TH XScreenSaver 1 "12-May-2004 (4.16)" "X Version 11"
+.TH XScreenSaver 1 "14-Aug-2004 (4.18)" "X Version 11"
.SH NAME
xscreensaver-demo - interactively control the background xscreensaver daemon
.SH SYNOPSIS
my $progname = $0; $progname =~ s@.*/@@g;
-my $version = q{ $Revision: 1.15 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/;
+my $version = q{ $Revision: 1.16 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/;
my $verbose = 0;
#
my $good_file_re = '\.(gif|p?jpe?g|png|tiff?|xbm|xpm)$';
+# JPEG, GIF, and PNG files that are are smaller than this size in either
+# direction are rejected: this is so that you can use an image directory
+# that contains both big images and thumbnails, and have it only select
+# the big versions.
+#
+my $min_image_width = 255;
+my $min_image_height = 255;
+
# These are programs that can be used to put an image file on the root
# window (including virtual root windows.) The first one of these programs
# that exists on $PATH will be used (with the file name as the last arg.)
#
-# If you add other programs to this list, please let me know!
+# Generally this isn't used any more; when "xscreensaver-getimage" invokes
+# this program, it does so with the "-file" argument (meaning that we just
+# return the file name) and then xscreensaver-getimage loads that file
+# directly. However, if you invoke "xscreensaver-getimage-file" directly,
+# without "-file", this will be used to actually load the image.
#
my @programs = (
"chbg -once -xscreensaver -max_grow 4 -max_size 100",
}
-my @all_files = ();
-my %seen_inodes;
-my $skip_count = 0;
-my $dir_count = 1;
+my @all_files = (); # list of "good" files we've collected
+my %seen_inodes; # for breaking recursive symlink loops
+my $skip_count = 0; # number of files skipped, for diagnostic messages
+my $dir_count = 1; # number of directories seen, for diagnostic messages
sub find_all_files {
my ($dir) = @_;
exit 1;
}
- my $n = int (rand ($#all_files + 1));
- my $file = $all_files[$n];
+ my $max_tries = 50;
+ for (my $i = 0; $i < $max_tries; $i++) {
- print STDERR "$progname: chose file $n: $file\n" if ($verbose > 1);
- return $file;
-}
+ my $n = int (rand ($#all_files + 1));
+ my $file = $all_files[$n];
+ if (large_enough_p ($file)) {
+ return $file;
+ }
+ }
+ print STDERR "$progname: no suitable images in $dir " .
+ "(after $max_tries tries)\n";
+ exit 1;
+}
sub display_file {
}
+sub large_enough_p {
+ my ($file) = @_;
+
+ my ($w, $h) = image_file_size ($file);
+
+ if (!defined ($h)) {
+ print STDERR "$progname: $file: unable to determine image size\n"
+ if ($verbose);
+ # Assume that unknown files are of good sizes: this will happen if
+ # they matched $good_file_re, but we don't have code to parse them.
+ # (This will also happen if the file is junk...)
+ return 1;
+ }
+
+ if ($w < $min_image_width || $h < $min_image_height) {
+ print STDERR "$progname: $file: too small ($w x $h)\n" if ($verbose > 1);
+ return 0;
+ }
+
+ print STDERR "$progname: $file: $w x $h\n" if ($verbose > 1);
+ return 1;
+}
+
+
+
+# Given the raw body of a GIF document, returns the dimensions of the image.
+#
+sub gif_size {
+ my ($body) = @_;
+ my $type = substr($body, 0, 6);
+ my $s;
+ return () unless ($type =~ /GIF8[7,9]a/);
+ $s = substr ($body, 6, 10);
+ my ($a,$b,$c,$d) = unpack ("C"x4, $s);
+ return (($b<<8|$a), ($d<<8|$c));
+}
+
+# Given the raw body of a JPEG document, returns the dimensions of the image.
+#
+sub jpeg_size {
+ my ($body) = @_;
+ my $i = 0;
+ my $L = length($body);
+
+ my $c1 = substr($body, $i, 1); $i++;
+ my $c2 = substr($body, $i, 1); $i++;
+ return () unless (ord($c1) == 0xFF && ord($c2) == 0xD8);
+
+ my $ch = "0";
+ while (ord($ch) != 0xDA && $i < $L) {
+ # Find next marker, beginning with 0xFF.
+ while (ord($ch) != 0xFF) {
+ return () if (length($body) <= $i);
+ $ch = substr($body, $i, 1); $i++;
+ }
+ # markers can be padded with any number of 0xFF.
+ while (ord($ch) == 0xFF) {
+ return () if (length($body) <= $i);
+ $ch = substr($body, $i, 1); $i++;
+ }
+
+ # $ch contains the value of the marker.
+ my $marker = ord($ch);
+
+ if (($marker >= 0xC0) &&
+ ($marker <= 0xCF) &&
+ ($marker != 0xC4) &&
+ ($marker != 0xCC)) { # it's a SOFn marker
+ $i += 3;
+ return () if (length($body) <= $i);
+ my $s = substr($body, $i, 4); $i += 4;
+ my ($a,$b,$c,$d) = unpack("C"x4, $s);
+ return (($c<<8|$d), ($a<<8|$b));
+
+ } else {
+ # We must skip variables, since FFs in variable names aren't
+ # valid JPEG markers.
+ return () if (length($body) <= $i);
+ my $s = substr($body, $i, 2); $i += 2;
+ my ($c1, $c2) = unpack ("C"x2, $s);
+ my $length = ($c1 << 8) | $c2;
+ return () if ($length < 2);
+ $i += $length-2;
+ }
+ }
+ return ();
+}
+
+# Given the raw body of a PNG document, returns the dimensions of the image.
+#
+sub png_size {
+ my ($body) = @_;
+ return () unless ($body =~ m/^\211PNG\r/);
+ my ($bits) = ($body =~ m/^.{12}(.{12})/s);
+ return () unless defined ($bits);
+ return () unless ($bits =~ /^IHDR/);
+ my ($ign, $w, $h) = unpack("a4N2", $bits);
+ return ($w, $h);
+}
+
+
+# Given the raw body of a GIF, JPEG, or PNG document, returns the dimensions
+# of the image.
+#
+sub image_size {
+ my ($body) = @_;
+ my ($w, $h) = gif_size ($body);
+ if ($w && $h) { return ($w, $h); }
+ ($w, $h) = jpeg_size ($body);
+ if ($w && $h) { return ($w, $h); }
+ # #### TODO: need image parsers for TIFF, XPM, XBM.
+ return png_size ($body);
+}
+
+# Returns the dimensions of the image file.
+#
+sub image_file_size {
+ my ($file) = @_;
+ my $body = '';
+ local *IN;
+ if (! open (IN, "<$file")) {
+ print STDERR "$progname: $file: $!\n" if ($verbose);
+ return undef;
+ }
+ while (<IN>) {
+ $body .= $_;
+ last if (length($body) > 1024 * 100); # the first 100k should be enough
+ }
+ close IN;
+ return image_size ($body);
+}
+
+
sub usage {
print STDERR "usage: $progname [--verbose] [--name] file-or-directory\n\n" .
" Puts the given image file (or a randomly selected image from the\n" .
-.TH XScreenSaver 1 "12-May-2004 (4.16)" "X Version 11"
+.TH XScreenSaver 1 "14-Aug-2004 (4.18)" "X Version 11"
.SH NAME
xscreensaver-getimage-file - put a randomly-selected image on the root window
.SH SYNOPSIS
-.TH XScreenSaver 1 "12-May-2004 (4.16)" "X Version 11"
+.TH XScreenSaver 1 "14-Aug-2004 (4.18)" "X Version 11"
.SH NAME
xscreensaver-getimage-video - put a video frame on the root window
.SH SYNOPSIS
Atom type;
int format;
unsigned long nitems, bytesafter;
- char *version;
+ unsigned char *version;
if (window != RootWindowOfScreen (screen))
return False;
XInternAtom (dpy, "_SCREENSAVER_VERSION", False),
0, 1, False, XA_STRING,
&type, &format, &nitems, &bytesafter,
- (unsigned char **) &version)
+ &version)
== Success
&& type != None)
return False;
-.TH XScreenSaver 1 "12-May-2004 (4.16)" "X Version 11"
+.TH XScreenSaver 1 "14-Aug-2004 (4.18)" "X Version 11"
.SH NAME
xscreensaver-getimage - put some randomly-selected image on the root window
.SH SYNOPSIS
continue;
}
+ /* Since we're about to blank the screen, kill the de-race timer,
+ if any. It might still be running if we have unblanked and then
+ re-blanked in a short period (e.g., when using the "next" button
+ in xscreensaver-demo.)
+ */
+ if (si->de_race_id)
+ {
+ if (p->verbose_p)
+ fprintf (stderr, "%s: stopping de-race timer (%d remaining.)\n",
+ blurb(), si->de_race_ticks);
+ XtRemoveTimeOut (si->de_race_id);
+ si->de_race_id = 0;
+ }
+
+
+ /* Now, try to blank.
+ */
+
if (! blank_screen (si))
{
/* We were unable to grab either the keyboard or mouse.
see any events, and the display would be wedged.
So, just go around the loop again and wait for the
- next bout of idleness.
+ next bout of idleness. (If the user remains idle, we
+ will next try to blank the screen again in no more than
+ 60 seconds.)
*/
+ Time retry = 60 * 1000;
+ if (p->timeout < retry)
+ retry = p->timeout;
- fprintf (stderr,
+ if (p->debug_p)
+ {
+ fprintf (stderr,
+ "%s: DEBUG MODE: unable to grab -- BLANKING ANYWAY.\n",
+ blurb());
+ }
+ else
+ {
+ fprintf (stderr,
"%s: unable to grab keyboard or mouse! Blanking aborted.\n",
- blurb());
- continue;
+ blurb());
+
+ schedule_wakeup_event (si, retry, p->debug_p);
+ continue;
+ }
}
kill_screenhack (si);
si->lock_id = 0;
}
- /* It's possible that a race condition could have led to the saver
- window being unexpectedly still mapped. This can happen like so:
-
- - screen is blanked
- - hack is launched
- - that hack tries to grab a screen image (it does this by
- first unmapping the saver window, then remapping it.)
- - hack unmaps window
- - hack waits
- - user becomes active
- - hack re-maps window (*)
- - driver kills subprocess
- - driver unmaps window (**)
-
- The race is that (*) might have been sent to the server before
- the client process was killed, but, due to scheduling randomness,
- might not have been received by the server until after (**).
- In other words, (*) and (**) might happen out of order, meaning
- the driver will unmap the window, and then after that, the
- recently-dead client will re-map it. This leaves the user
- locked out (it looks like a desktop, but it's not!)
-
- To avoid this: after un-blanking the screen, sleep for a second,
- and then really make sure the window is unmapped.
-
- Update: actually, let's do that once a second for 8 seconds,
- because sometimes the machine is slow, and we miss...
- */
- {
- int i, j;
- for (j = 0; j < 8; j++)
- {
- XSync (si->dpy, False);
- sleep (1);
- for (i = 0; i < si->nscreens; i++)
- {
- saver_screen_info *ssi = &si->screens[i];
- Window w = ssi->screensaver_window;
- XWindowAttributes xgwa;
- XGetWindowAttributes (si->dpy, w, &xgwa);
- if (xgwa.map_state != IsUnmapped)
- {
- if (p->verbose_p)
- fprintf (stderr,
- "%s: %d: client race! emergency unmap 0x%lx.\n",
- blurb(), i, (unsigned long) w);
- XUnmapWindow (si->dpy, w);
- }
- }
- XSync (si->dpy, False);
- }
- }
+ /* Since we're unblanked now, break race conditions and make
+ sure we stay that way (see comment in timers.c.) */
+ if (! si->de_race_id)
+ de_race_timer ((XtPointer) si, 0);
}
}
XtIntervalId watchdog_id; /* Timer to implement `prefs.watchdog */
XtIntervalId check_pointer_timer_id; /* `prefs.pointer_timeout' */
+ XtIntervalId de_race_id; /* Timer to make sure screen un-blanks */
+ int de_race_ticks;
+
time_t last_activity_time; /* Used only when no server exts. */
time_t last_wall_clock_time; /* Used to detect laptop suspend. */
saver_screen_info *last_activity_screen;
extern void activate_lock_timer (XtPointer si, XtIntervalId *id);
extern void reset_watchdog_timer (saver_info *si, Bool on_p);
extern void idle_timer (XtPointer si, XtIntervalId *id);
+extern void de_race_timer (XtPointer si, XtIntervalId *id);
extern void sleep_until_idle (saver_info *si, Bool until_idle_p);
extern void reset_timers (saver_info *si);
+extern void schedule_wakeup_event (saver_info *si, Time when, Bool verbose_p);
+
/* =======================================================================
remote control
.if n .sp 1
.if t .sp .5
..
-.TH XScreenSaver 1 "12-May-2004 (4.16)" "X Version 11"
+.TH XScreenSaver 1 "14-Aug-2004 (4.18)" "X Version 11"
.SH NAME
xscreensaver - extensible screen saver framework, plus locking
.SH SYNOPSIS
Bool ok = XRRQueryExtension (si->dpy,
&si->randr_event_number,
&si->randr_error_number);
+
if (ok)
{
int nscreens = ScreenCount (si->dpy); /* number of *real* screens */
if (p->verbose_p)
fprintf (stderr, "%s: selecting RANDR events\n", blurb());
for (i = 0; i < nscreens; i++)
+# ifdef RRScreenChangeNotifyMask /* randr.h 1.5, 2002/09/29 */
XRRSelectInput (si->dpy, RootWindow (si->dpy, i),
RRScreenChangeNotifyMask);
+# else /* !RRScreenChangeNotifyMask */ /* Xrandr.h 1.4, 2001/06/07 */
+ XRRScreenChangeSelectInput (si->dpy, RootWindow (si->dpy, i), True);
+# endif /* !RRScreenChangeNotifyMask */
}
return ok;
}
-#endif /* HAVE_XIDLE_EXTENSION */
+#endif /* HAVE_RANDR */
\f
anemone.c halftone.c metaballs.c eruption.c popsquares.c \
barcode.c piecewise.c cloudlife.c fontglide.c apple2.c \
apple2-main.c analogtv.c xanalogtv.c pong.c wormhole.c \
- mismunch.c pacman.c fuzzyflakes.c
+ mismunch.c pacman.c pacman_ai.c pacman_level.c \
+ fuzzyflakes.c anemotaxis.c memscroller.c
SCRIPTS = vidwhacker webcollage ljlatest
OBJS = attraction.o blitspin.o bouboule.o braid.o bubbles.o \
anemone.o halftone.o metaballs.o eruption.o popsquares.o \
barcode.o piecewise.o cloudlife.o fontglide.o apple2.o \
apple2-main.o analogtv.o xanalogtv.o pong.o wormhole.o \
- mismunch.o pacman.o fuzzyflakes.o
+ mismunch.o pacman.o pacman_ai.o pacman_level.o \
+ fuzzyflakes.o anemotaxis.o memscroller.c
NEXES = attraction blitspin bouboule braid bubbles decayscreen deco \
drift flag flame forest vines galaxy grav greynetic halo \
juggle polyominoes thornbird fluidballs anemone halftone \
metaballs eruption popsquares barcode piecewise cloudlife \
fontglide apple2 xanalogtv pong wormhole mismunch \
- pacman fuzzyflakes \
+ pacman fuzzyflakes anemotaxis memscroller \
@JPEG_EXES@
SEXES = sonar
JPEG_EXES = webcollage-helper
zoom.man halftone.man eruption.man metaballs.man \
barcode.man piecewise.man cloudlife.man ljlatest.man \
fontglide.man apple2.man xanalogtv.man pong.man \
- wormhole.man mismunch.man pacman.man fuzzyflakes.man
+ wormhole.man mismunch.man pacman.man fuzzyflakes.man \
+ anemotaxis.man memscroller.man
STAR = *
EXTRAS = README Makefile.in xlock_23.h xml2man.pl .gdbinit \
euler2d.tex \
images/noseguy/$(STAR).xbm \
images/noseguy/$(STAR).xpm \
images/jigsaw/$(STAR).xbm \
- images/molecules/$(STAR).pdb
+ images/molecules/$(STAR).pdb \
+ images/pacman/$(STAR).xpm
VMSFILES = compile_axp.com compile_decc.com link_axp.com link_decc.com \
vms_axp.opt vms_axp_12.opt vms_decc.opt vms_decc_12.opt
fuzzyflakes: fuzzyflakes.o $(HACK_OBJS)
$(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(HACK_LIBS)
+anemotaxis: anemotaxis.o $(HACK_OBJS) $(DBE)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(DBE) $(HACK_LIBS)
+
+memscroller: memscroller.o $(HACK_OBJS) $(SHM) $(COL)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(SHM) $(COL) $(HACK_LIBS)
# The rules for those hacks which follow the `xlockmore' API.
thornbird: thornbird.o $(XLOCK_OBJS)
$(CC_HACK) -o $@ $@.o $(XLOCK_OBJS) $(HACK_LIBS)
-pacman: pacman.o $(XLOCK_OBJS)
- $(CC_HACK) -o $@ $@.o $(XLOCK_OBJS) $(HACK_LIBS)
+PACOBJS=pacman_ai.o pacman_level.o
+pacman: pacman.o $(PACOBJS) $(XLOCK_OBJS) $(XPM)
+ $(CC_HACK) -o $@ $@.o $(PACOBJS) $(XLOCK_OBJS) $(XPM) $(XPM_LIBS)
# These are not like the others.
analogtv.o: ../config.h
anemone.o: ../config.h
anemone.o: $(srcdir)/screenhack.h
+anemotaxis.o: ../config.h
+anemotaxis.o: $(srcdir)/screenhack.h
ant.o: $(srcdir)/automata.h
ant.o: ../config.h
ant.o: $(srcdir)/screenhack.h
loop.o: $(srcdir)/xlockmoreI.h
maze.o: ../config.h
maze.o: $(srcdir)/screenhack.h
+memscroller.o: ../config.h
+memscroller.o: $(srcdir)/screenhack.h
metaballs.o: ../config.h
metaballs.o: $(srcdir)/screenhack.h
mismunch.o: ../config.h
noseguy.o: $(srcdir)/images/noseguy/nose-r2.xpm
noseguy.o: $(srcdir)/screenhack.h
noseguy.o: $(srcdir)/xpm-pixmap.h
+pacman_ai.o: ../config.h
+pacman_ai.o: $(srcdir)/pacman_ai.h
+pacman_ai.o: $(srcdir)/pacman.h
+pacman_ai.o: $(srcdir)/pacman_level.h
+pacman_ai.o: $(srcdir)/screenhack.h
+pacman_ai.o: $(srcdir)/xlockmoreI.h
+pacman_level.o: ../config.h
+pacman_level.o: $(srcdir)/pacman.h
+pacman_level.o: $(srcdir)/pacman_level.h
+pacman_level.o: $(srcdir)/screenhack.h
+pacman_level.o: $(srcdir)/xlockmoreI.h
pacman.o: ../config.h
+pacman.o: $(srcdir)/images/pacman/ghost-d1.xpm
+pacman.o: $(srcdir)/images/pacman/ghost-d2.xpm
+pacman.o: $(srcdir)/images/pacman/ghost-l1.xpm
+pacman.o: $(srcdir)/images/pacman/ghost-l2.xpm
+pacman.o: $(srcdir)/images/pacman/ghost-mask.xpm
+pacman.o: $(srcdir)/images/pacman/ghost-r1.xpm
+pacman.o: $(srcdir)/images/pacman/ghost-r2.xpm
+pacman.o: $(srcdir)/images/pacman/ghost-u1.xpm
+pacman.o: $(srcdir)/images/pacman/ghost-u2.xpm
pacman.o: $(srcdir)/pacman_ai.h
pacman.o: $(srcdir)/pacman.h
pacman.o: $(srcdir)/pacman_level.h
pacman.o: $(srcdir)/screenhack.h
pacman.o: $(srcdir)/xlockmore.h
pacman.o: $(srcdir)/xlockmoreI.h
+pacman.o: $(srcdir)/xpm-pixmap.h
pedal.o: ../config.h
pedal.o: $(srcdir)/screenhack.h
penetrate.o: ../config.h
if (!it->image) {
it->image = XCreateImage(it->dpy, it->xgwa.visual, it->xgwa.depth, ZPixmap, 0, 0,
it->usewidth, it->useheight, 8, 0);
- it->image->data = (char *)calloc(it->image->height, it->image->bytes_per_line);
+ it->image->data = (char *)malloc(it->image->height * it->image->bytes_per_line);
}
+ memset (it->image->data, 0, it->image->height * it->image->bytes_per_line);
}
--- /dev/null
+/* anemotaxis, Copyright (c) 2004 Eugene Balkovski
+ *
+ * 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.
+ */
+
+/*------------------------------------------------------------------------
+ |
+ | FILE anemotaxis.c
+ |
+ | DESCRIPTION Anemotaxis
+ |
+ | This code illustrates an optimal algorithm designed
+ | for searching a source of particles on a plane.
+ | The particles drift in one direction and walk randomly
+ | in the other. The only information available to the
+ | searcher is the presence of a particle at its location
+ | and the local direction from where particle arrived.
+ | The algorithm "explains" the behavior
+ | of some animals and insects
+ | who use olfactory and directional cues to find
+ | sources of odor (mates, food, home etc) in
+ | turbulent atmosphere (odor-modulated anemotaxis),
+ | e.g. male moths locating females who release
+ | pheromones to attract males. The search trajectories
+ | resemble the trajectories that the animals follow.
+ |
+ |
+ | WRITTEN BY Eugene Balkovski
+ |
+ | MODIFICATIONS june 2004 started
+ |
+ +----------------------------------------------------------------------*/
+
+/*
+ Options:
+
+ -distance <arg> size of the lattice
+ -sources <arg> number of sources
+ -searhers <arg> number of searcher */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "screenhack.h"
+
+#ifdef HAVE_DOUBLE_BUFFER_EXTENSION
+#include "xdbe.h"
+#endif
+
+
+/*-----------------------------------------------------------------------+
+ | PRIVATE DATA |
+ +-----------------------------------------------------------------------*/
+
+#define MAX_DIST 250
+#define MIN_DIST 10
+#define LINE_WIDTH 4
+#define MAX_INV_RATE 5
+
+#define RND(x) (random() % (x))
+#define X(x) ((int) (ax * (x) + bx))
+#define Y(x) ((int) (ay * (x) + by))
+
+typedef struct {
+ short x;
+ short y;
+} Point;
+
+typedef struct {
+
+ short y; /* y-coordinate of the particle (relative to the source) */
+
+ short v; /* velocity of the particle. Allowed values are -1, 0, 1.
+ 2 means the particle is not valid */
+} YV;
+
+typedef struct {
+
+ int n; /* size of array xv */
+
+ YV *yv; /* yv[i] keeps velocity and y-coordinate of the
+ particle at (i + 1, yv[i].y) relative to the
+ source */
+
+ int inv_rate; /* Inverse rate of particle emission (if 0 then
+ source doesn't emit new particles (although
+ old ones can still exist )*/
+
+ Point r; /* Position of the source */
+
+ long color;
+
+} Source;
+
+
+typedef struct PList {
+ Point r;
+ struct PList *next;
+} PList;
+
+typedef enum {UP_LEFT, UP_RIGHT, LEFT, RIGHT, DONE} State_t;
+
+typedef enum {FALSE = 0, TRUE = 1} bool;
+
+typedef struct {
+
+ Point r; /* Current position */
+
+ Point vertex; /* Position of the vertex of the most recent
+ cone, which is the region where the source
+ is located. We do exhaustive search in the
+ cone until we encounter a new particle,
+ which gives us a new cone. */
+
+ State_t state; /* Internal state variable */
+
+ unsigned char c; /* Concentration at r */
+
+ short v; /* Velocity at r (good only when c != 0) */
+
+ PList *hist; /* Trajectory */
+
+ int rs; /* small shift of x-coordinate to avoid
+ painting over the same x */
+
+ long color;
+
+} Searcher;
+
+static Source **source;
+static Searcher **searcher;
+
+static int max_dist, max_src, max_searcher;
+
+static double ax, ay, bx, by;
+static int dx, dy;
+
+static Display *dpy;
+static Window window;
+
+static Pixmap b, ba, bb;
+
+#ifdef HAVE_DOUBLE_BUFFER_EXTENSION
+static XdbeBackBuffer backb;
+#endif
+
+static long delay; /* usecs to wait between updates. */
+
+static int scrWidth, scrHeight;
+static GC gcDraw, gcClear;
+
+static bool dbuf;
+
+static XGCValues gcv;
+static Colormap cmap;
+
+
+/*-----------------------------------------------------------------------+
+ | PUBLIC DATA |
+ +-----------------------------------------------------------------------*/
+
+char *progclass = "Anemotaxis";
+
+char *defaults [] = {
+ ".background: black",
+ "*distance: 40",
+ "*sources: 25",
+ "*searchers: 25",
+ "*delay: 20000",
+#ifdef HAVE_DOUBLE_BUFFER_EXTENSION
+ "*useDBE: True",
+#endif
+ 0
+};
+
+
+XrmOptionDescRec options [] = {
+ { "-delay", ".delay", XrmoptionSepArg, 0 },
+ { "-distance", ".distance", XrmoptionSepArg, 0 },
+ { "-sources", ".sources", XrmoptionSepArg, 0 },
+ { "-searchers", ".searchers", XrmoptionSepArg, 0 },
+ { 0, 0, 0, 0 }
+};
+
+
+
+/*-----------------------------------------------------------------------+
+ | PRIVATE FUNCTIONS |
+ +-----------------------------------------------------------------------*/
+
+static void *emalloc(size_t size)
+{
+ void *ret = malloc(size);
+
+ if (ret == NULL) {
+ fprintf(stderr, "out of memory\n");
+ exit(1);
+ }
+ return ret;
+}
+
+static Searcher *new_searcher(void)
+{
+ Searcher *m = (Searcher *) emalloc(sizeof(Searcher));
+
+ m->r.x = m->vertex.x = max_dist;
+
+ do {
+ m->r.y = RND(2 * max_dist);
+ } while(m->r.y < MIN_DIST || m->r.y > 2 * max_dist - MIN_DIST);
+
+ m->vertex.y = m->r.y;
+
+ m->state = (RND(2) == 0 ? UP_RIGHT : UP_LEFT);
+ m->hist = NULL;
+ m->color = random();
+
+ m->rs = RND(dx);
+
+ return m;
+}
+
+static void destroy_searcher(Searcher *m)
+{
+ PList *p = m->hist, *q;
+
+ while(p != NULL) {
+ q = p->next;
+ free(p);
+ p = q;
+ }
+
+ free(m);
+}
+
+static void write_hist(Searcher *m)
+{
+ PList *l;
+
+ l = m->hist;
+ m->hist = (PList *) emalloc(sizeof(PList));
+ m->hist->next = l;
+ m->hist->r = m->r;
+
+}
+
+static void move_searcher(Searcher *m)
+{
+
+ if(m->c == TRUE) {
+ write_hist(m);
+ m->r.x -= 1;
+ m->r.y -= m->v;
+ write_hist(m);
+ m->state = (RND(2) == 0 ? UP_LEFT : UP_RIGHT);
+ m->vertex = m->r;
+ return;
+
+ }
+
+ switch(m->state) {
+ case UP_LEFT:
+
+ m->r.x -= 1;
+ m->r.y += 1;
+ m->state = RIGHT;
+ write_hist(m);
+ return;
+
+ case RIGHT:
+
+ m->r.y -= 1;
+ if(m->vertex.x - m->r.x == m->vertex.y - m->r.y) {
+ write_hist(m);
+ m->state = UP_RIGHT;
+ }
+ return;
+
+ case UP_RIGHT:
+
+ m->r.x -= 1;
+ m->r.y -= 1;
+
+ m->state = LEFT;
+ write_hist(m);
+ return;
+
+ case LEFT:
+
+ m->r.y += 1;
+
+ if(m->vertex.x - m->r.x == m->r.y - m->vertex.y) {
+ write_hist(m);
+ m->state = UP_LEFT;
+ }
+ return;
+
+ default:
+ break;
+ }
+
+}
+
+static void evolve_source(Source *s)
+{
+
+ int i;
+
+ /* propagate existing particles */
+
+ for(i = s->n - 1; i > 0; i--) {
+
+ if(s->yv[i - 1].v == 2)
+ s->yv[i].v = 2;
+ else {
+ s->yv[i].v = RND(3) - 1;
+ s->yv[i].y = s->yv[i - 1].y + s->yv[i].v;
+ }
+
+ }
+
+
+ if(s->inv_rate > 0 && (RND(s->inv_rate) == 0)) /* emit a particle */
+ s->yv[0].y = s->yv[0].v = RND(3) - 1;
+ else
+ s->yv[0].v = 2;
+
+}
+
+static Source *new_source(void)
+{
+ int i;
+
+ Source *s = (Source *) emalloc(sizeof(Source));
+ if(max_searcher == 0) {
+ s->r.x = 0;
+ s->r.y = RND(2 * max_dist);
+ }
+ else {
+ s->r.x = RND(max_dist / 3);
+ do {
+ s->r.y = RND(2 * max_dist);
+ } while(s->r.y < MIN_DIST || s->r.y > 2 * max_dist - MIN_DIST);
+ }
+
+ s->n = max_dist - s->r.x;
+ s->yv = emalloc(sizeof(YV) * s->n);
+
+ for(i = 0; i < s->n; i++)
+ s->yv[i].v = 2;
+
+ s->inv_rate = RND(MAX_INV_RATE);
+
+ if(s->inv_rate == 0)
+ s->inv_rate = 1;
+
+ s->color = random();
+
+ return s;
+}
+
+static void destroy_source(Source *s)
+{
+ free(s->yv);
+ free(s);
+}
+
+static void get_v(const Source *s, Searcher *m)
+{
+ int x = m->r.x - s->r.x - 1;
+
+ m->c = 0;
+
+ if(x < 0 || x >= s->n)
+ return;
+
+ if((s->yv[x].v == 2) || (s->yv[x].y != m->r.y - s->r.y))
+ return;
+
+ m->c = 1;
+ m->v = s->yv[x].v;
+ m->color = s->color;
+}
+
+
+static void init_anemotaxis(void)
+{
+ XWindowAttributes wa;
+
+ delay = get_integer_resource("delay", "Integer");
+ max_dist = get_integer_resource("distance", "Integer");
+
+ if(max_dist < MIN_DIST)
+ max_dist = MIN_DIST + 1;
+ if(max_dist > MAX_DIST)
+ max_dist = MAX_DIST;
+
+ max_src = get_integer_resource("sources", "Integer");
+
+ if(max_src <= 0)
+ max_src = 1;
+
+ max_searcher = get_integer_resource("searchers", "Integer");
+
+ if(max_searcher < 0)
+ max_searcher = 0;
+
+ dbuf = TRUE;
+
+ source = (Source **) emalloc(sizeof(Source *) * max_src);
+ memset(source, 0, max_src * sizeof(Source *));
+
+ source[0] = new_source();
+
+ searcher = (Searcher **) emalloc(max_searcher * sizeof(Searcher *));
+
+ memset(searcher, 0, max_searcher * sizeof(Searcher *));
+
+ b = ba = bb = 0; /* double-buffer to reduce flicker */
+
+#ifdef HAVE_DOUBLE_BUFFER_EXTENSION
+ b = backb = xdbe_get_backbuffer (dpy, window, XdbeUndefined);
+#endif
+
+ XGetWindowAttributes(dpy, window, &wa);
+ scrWidth = wa.width;
+ scrHeight = wa.height;
+ cmap = wa.colormap;
+ gcDraw = XCreateGC(dpy, window, GCForeground, &gcv);
+ gcv.foreground = get_pixel_resource("background", "Background", dpy, cmap);
+ gcClear = XCreateGC(dpy, window, GCForeground, &gcv);
+
+ if (dbuf) {
+ if (!b) {
+ ba = XCreatePixmap (dpy, window, scrWidth, scrHeight, wa.depth);
+ bb = XCreatePixmap (dpy, window, scrWidth, scrHeight, wa.depth);
+ b = ba;
+ }
+ }
+ else
+ b = window;
+
+
+ if (ba) XFillRectangle (dpy, ba, gcClear, 0, 0, scrWidth, scrHeight);
+ if (bb) XFillRectangle (dpy, bb, gcClear, 0, 0, scrWidth, scrHeight);
+
+ ax = scrWidth / (double) max_dist;
+ ay = scrHeight / (2. * max_dist);
+ bx = 0.;
+ by = 0.;
+
+ if((dx = scrWidth / (2 * max_dist)) == 0)
+ dx = 1;
+ if((dy = scrHeight / (4 * max_dist)) == 0)
+ dy = 1;
+ XSetLineAttributes(dpy, gcDraw, dx / 3 + 1, LineSolid, CapRound, JoinRound);
+ XClearWindow(dpy, window);
+}
+
+static void draw_searcher(Drawable curr_window, int i)
+{
+ Point r1, r2;
+ PList *l;
+
+ if(searcher[i] == NULL)
+ return;
+
+ XSetForeground(dpy, gcDraw, searcher[i]->color);
+
+ r1.x = X(searcher[i]->r.x) + searcher[i]->rs;
+ r1.y = Y(searcher[i]->r.y);
+
+ XFillRectangle(dpy, curr_window, gcDraw, r1.x - 2, r1.y - 2, 4, 4);
+
+ for(l = searcher[i]->hist; l != NULL; l = l->next) {
+
+ r2.x = X(l->r.x) + searcher[i]->rs;
+ r2.y = Y(l->r.y);
+
+ XDrawLine(dpy, curr_window, gcDraw, r1.x, r1.y, r2.x, r2.y);
+
+ r1 = r2;
+ }
+
+}
+
+static void draw_image(Drawable curr_window)
+{
+ int i, j;
+ int x, y;
+
+ for(i = 0; i < max_src; i++) {
+
+ if(source[i] == NULL)
+ continue;
+
+ XSetForeground(dpy, gcDraw, source[i]->color);
+
+ if(source[i]->inv_rate > 0) {
+
+ if(max_searcher > 0) {
+ x = (int) X(source[i]->r.x);
+ y = (int) Y(source[i]->r.y);
+ j = dx * (MAX_INV_RATE + 1 - source[i]->inv_rate) / (2 * MAX_INV_RATE);
+ if(j == 0)
+ j = 1;
+ XFillArc(dpy, curr_window, gcDraw, x - j, y - j, 2 * j, 2 * j, 0, 360 * 64);
+ }}
+
+ for(j = 0; j < source[i]->n; j++) {
+
+ if(source[i]->yv[j].v == 2)
+ continue;
+
+ /* Move the particles slightly off lattice */
+ x = X(source[i]->r.x + 1 + j) + RND(dx);
+ y = Y(source[i]->r.y + source[i]->yv[j].y) + RND(dy);
+ XFillArc(dpy, curr_window, gcDraw, x - 2, y - 2, 4, 4, 0, 360 * 64);
+ }
+
+ }
+
+ for(i = 0; i < max_searcher; i++)
+ draw_searcher(curr_window, i);
+
+}
+
+static void animate_anemotaxis(Drawable curr_window)
+{
+ int i, j;
+ bool dead;
+
+ for(i = 0; i < max_src; i++) {
+
+ if(source[i] == NULL)
+ continue;
+
+ evolve_source(source[i]);
+
+ /* reap dead sources for which all particles are gone */
+ if(source[i]->inv_rate == 0) {
+
+ dead = TRUE;
+
+ for(j = 0; j < source[i]->n; j++) {
+ if(source[i]->yv[j].v != 2) {
+ dead = FALSE;
+ break;
+ }
+ }
+
+ if(dead == TRUE) {
+ destroy_source(source[i]);
+ source[i] = NULL;
+ }
+ }
+ }
+
+ /* Decide if we want to add new sources */
+
+ for(i = 0; i < max_src; i++) {
+ if(source[i] == NULL && RND(max_dist * max_src) == 0)
+ source[i] = new_source();
+ }
+
+ if(max_searcher == 0) { /* kill some sources when searchers don't do that */
+ for(i = 0; i < max_src; i++) {
+ if(source[i] != NULL && RND(max_dist * max_src) == 0) {
+ destroy_source(source[i]);
+ source[i] = 0;
+ }
+ }
+ }
+
+ /* Now deal with searchers */
+
+ for(i = 0; i < max_searcher; i++) {
+
+ if((searcher[i] != NULL) && (searcher[i]->state == DONE)) {
+ destroy_searcher(searcher[i]);
+ searcher[i] = NULL;
+ }
+
+ if(searcher[i] == NULL) {
+
+ if(RND(max_dist * max_searcher) == 0) {
+
+ searcher[i] = new_searcher();
+
+ }
+ }
+
+ if(searcher[i] == NULL)
+ continue;
+
+ /* Check if searcher found a source or missed all of them */
+ for(j = 0; j < max_src; j++) {
+
+ if(source[j] == NULL || source[j]->inv_rate == 0)
+ continue;
+
+ if(searcher[i]->r.x < 0) {
+ searcher[i]->state = DONE;
+ break;
+ }
+
+ if((source[j]->r.y == searcher[i]->r.y) &&
+ (source[j]->r.x == searcher[i]->r.x)) {
+ searcher[i]->state = DONE;
+ source[j]->inv_rate = 0; /* source disappears */
+
+ /* Make it flash */
+ searcher[i]->color = WhitePixel(dpy, DefaultScreen(dpy));
+
+ break;
+ }
+ }
+
+ searcher[i]->c = 0; /* set it here in case we don't get to get_v() */
+
+ /* Find the concentration at searcher's location */
+
+ if(searcher[i]->state != DONE) {
+ for(j = 0; j < max_src; j++) {
+
+ if(source[j] == NULL)
+ continue;
+
+ get_v(source[j], searcher[i]);
+
+ if(searcher[i]->c == 1)
+ break;
+ }
+ }
+
+ move_searcher(searcher[i]);
+
+ }
+
+ draw_image(curr_window);
+ usleep(delay);
+}
+
+/*-----------------------------------------------------------------------+
+ | PUBLIC FUNCTIONS |
+ +-----------------------------------------------------------------------*/
+
+void screenhack(Display *disp, Window win)
+{
+
+ XWindowAttributes wa;
+ int w, h;
+
+
+ dpy = disp;
+ window = win;
+
+ init_anemotaxis();
+
+ for(;;) {
+
+ XGetWindowAttributes(dpy, window, &wa);
+
+ w = wa.width;
+ h = wa.height;
+
+ if(w != scrWidth || h != scrHeight) {
+ scrWidth = w;
+ scrHeight = h;
+ ax = scrWidth / (double) max_dist;
+ ay = scrHeight / (2. * max_dist);
+ bx = 0.;
+ by = 0.;
+
+ if((dx = scrWidth / (2 * max_dist)) == 0)
+ dx = 1;
+ if((dy = scrHeight / (4 * max_dist)) == 0)
+ dy = 1;
+ XSetLineAttributes(dpy, gcDraw, dx / 3 + 1, LineSolid, CapRound, JoinRound);
+ }
+
+ XFillRectangle (dpy, b, gcClear, 0, 0, scrWidth, scrHeight);
+ animate_anemotaxis(b);
+
+#ifdef HAVE_DOUBLE_BUFFER_EXTENSION
+ if (backb) {
+ XdbeSwapInfo info[1];
+ info[0].swap_window = window;
+ info[0].swap_action = XdbeUndefined;
+ XdbeSwapBuffers (dpy, info, 1);
+ }
+ else
+#endif
+ if (dbuf) {
+ XCopyArea (dpy, b, window, gcClear, 0, 0,
+ scrWidth, scrHeight, 0, 0);
+ b = (b == ba ? bb : ba);
+ }
+
+ screenhack_handle_events (dpy);
+ }
+
+}
--- /dev/null
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+anemotaxis - directional search on a plane.
+.SH SYNOPSIS
+.B anemotaxis
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-distance \fInumber\fP]
+[\-sources \fInumber\fP]
+[\-searchers \fInumber\fP]
+.SH DESCRIPTION
+The program demonstrates a search algorithm designed for locating a
+source of odor in turbulent atmosphere. The odor is convected by wind
+which has a constant mean direction and fluctuations around it. The
+searcher is able to sense the odor and determine local instantaneous
+wind direction. The goal is to find the source in the shortest mean
+time. Some animals face this task to find mates, food, home etc. They
+exhibit very particular, zigzagging search trajectories.
+
+This is modeled as a search on a discrete two-dimensional lattice. The
+source releases particles that drift with constant velocity in one
+direction and walk randomly in the other direction. The searcher knows
+if it hit a particle, and if so, particle's position one time step
+earlier (local wind direction). The program paints sources and
+particles released by them as well as trajectories of serchers who are
+trying to capture the sources.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\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 \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds. Default: 20000 (0.02 seconds.).
+.TP 8
+.B \-distance \fInumber\fP
+Max initial distance to the source . 10 - 250. Default: 40.
+.TP 8
+.B \-sources \fInumber\fP
+Max number of sources. Default: 25.
+.TP 8
+.B \-searchers \fInumber\fP
+Max number of searchers. Default: 25.
+
+.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 2004 by Eugene Balkovsky. 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
+Eugene Balkovsky
static XrmOptionDescRec opts[] =
{
- {(char *) "-neighbors", (char *) ".ant.neighbors", XrmoptionSepArg, (caddr_t) NULL},
- {(char *) "-truchet", (char *) ".ant.truchet", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+truchet", (char *) ".ant.truchet", XrmoptionNoArg, (caddr_t) "off"},
- {(char *) "-eyes", (char *) ".ant.eyes", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+eyes", (char *) ".ant.eyes", XrmoptionNoArg, (caddr_t) "off"},
- {(char *) "-sharpturn", (char *) ".ant.sharpturn", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+sharpturn", (char *) ".ant.sharpturn", XrmoptionNoArg, (caddr_t) "off"},
- {"-neighbors", ".ant.neighbors", XrmoptionSepArg, (caddr_t) 0},
- {"+neighbors", ".ant.neighbors", XrmoptionSepArg, (caddr_t) 0}
+ {"-neighbors", ".ant.neighbors", XrmoptionSepArg, NULL},
+ {"-truchet", ".ant.truchet", XrmoptionNoArg, "on"},
+ {"+truchet", ".ant.truchet", XrmoptionNoArg, "off"},
+ {"-eyes", ".ant.eyes", XrmoptionNoArg, "on"},
+ {"+eyes", ".ant.eyes", XrmoptionNoArg, "off"},
+ {"-sharpturn", ".ant.sharpturn", XrmoptionNoArg, "on"},
+ {"+sharpturn", ".ant.sharpturn", XrmoptionNoArg, "off"},
+ {"-neighbors", ".ant.neighbors", XrmoptionSepArg, 0},
+ {"+neighbors", ".ant.neighbors", XrmoptionSepArg, 0}
};
static argtype vars[] =
{
{&neighbors, "neighbors", "Neighbors", DEF_NEIGHBORS, t_Int},
{&truchet, "truchet", "Truchet", DEF_TRUCHET, t_Bool},
{&eyes, "eyes", "Eyes", DEF_EYES, t_Bool},
- {&sharpturn, "sharpturn", "SharpTurn", DEF_SHARPTURN, t_Bool},
+ {&sharpturn, "sharpturn", "SharpTurn", DEF_SHARPTURN, t_Bool},
{&neighbors, "neighbors", "Neighbors", DEF_NEIGHBORS, t_Int}
};
static OptionStruct desc[] =
{
- {(char *) "-neighbors num", (char *) "squares 4 or 8, hexagons 6, triangles 3 or 12"},
- {(char *) "-/+truchet", (char *) "turn on/off Truchet lines"},
- {(char *) "-/+eyes", (char *) "turn on/off eyes"},
- {(char *) "-/+sharpturn", (char *) "turn on/off sharp turns (6, 8 or 12 neighbors only)"}
+ {"-neighbors num", "squares 4 or 8, hexagons 6, triangles 3 or 12"},
+ {"-/+truchet", "turn on/off Truchet lines"},
+ {"-/+eyes", "turn on/off eyes"},
+ {"-/+sharpturn", "turn on/off sharp turns (6, 8 or 12 neighbors only)"}
};
ModeSpecOpt ant_opts =
static XrmOptionDescRec opts[] =
{
- {(char *) "-altgeom", (char *) ".apollonian.altgeom", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+altgeom", (char *) ".apollonian.altgeom", XrmoptionNoArg, (caddr_t) "off"},
- {(char *) "-label", (char *) ".apollonian.label", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+label", (char *) ".apollonian.label", XrmoptionNoArg, (caddr_t) "off"},
+ {"-altgeom", ".apollonian.altgeom", XrmoptionNoArg, "on"},
+ {"+altgeom", ".apollonian.altgeom", XrmoptionNoArg, "off"},
+ {"-label", ".apollonian.label", XrmoptionNoArg, "on"},
+ {"+label", ".apollonian.label", XrmoptionNoArg, "off"},
};
static argtype vars[] =
{
};
static OptionStruct desc[] =
{
- {(char *) "-/+altgeom", (char *) "turn on/off alternate geometries (off euclidean space, on includes spherical and hyperbolic)"},
- {(char *) "-/+label", (char *) "turn on/off alternate space and number labeling"},
+ {"-/+altgeom", "turn on/off alternate geometries (off euclidean space, on includes spherical and hyperbolic)"},
+ {"-/+label", "turn on/off alternate space and number labeling"},
};
ModeSpecOpt apollonian_opts =
a2_scroll(apple2_state_t *st)
{
int i;
- st->textlines[st->cursy][st->cursx] ^= 0xc0; /* turn off cursor */
+ st->textlines[st->cursy][st->cursx] |= 0xc0; /* turn off cursor */
+
for (i=0; i<23; i++) {
memcpy(st->textlines[i],st->textlines[i+1],40);
}
memset(st->textlines[23],0xe0,40);
- st->textlines[st->cursy][st->cursx] ^= 0xc0; /* turn cursor back on */
}
static void
theImage = XCreateImage(display, visual, 1, XYBitmap, 0, theBitmap->buf,
theBitmap->width, theBitmap->height, 8,
theBitmap->widthBytes);
+ theImage->bitmap_bit_order = LSBFirst;
+ theImage->byte_order = LSBFirst;
}
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) ANALOGTV.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) ANEMONE.C
+$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) ANEMOTAXIS.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) ANT.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) APOLLONIAN.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) APPLE2.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) LMORPH.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) LOOP.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) MAZE.C
+$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) MEMSCROLLER.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) METABALLS.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) MISMUNCH.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) MOIRE2.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) MUNCH.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) NERVEROT.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) NOSEGUY.C
+$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) PACMAN_AI.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) PACMAN.C
+$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) PACMAN_LEVEL.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) PEDAL.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) PENETRATE.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) PENROSE.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) ANALOGTV.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) ANEMONE.C
+$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) ANEMOTAXIS.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) ANT.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) APOLLONIAN.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) APPLE2.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) LMORPH.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) LOOP.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) MAZE.C
+$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) MEMSCROLLER.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) METABALLS.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) MISMUNCH.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) MOIRE2.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) MUNCH.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) NERVEROT.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) NOSEGUY.C
+$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) PACMAN_AI.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) PACMAN.C
+$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) PACMAN_LEVEL.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) PEDAL.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) PENETRATE.C
$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) PENROSE.C
a screen saver and locker for the X window system
by Jamie Zawinski
- version 4.16
- 12-May-2004
+ version 4.18
+ 14-Aug-2004
http://www.jwz.org/xscreensaver/
--- /dev/null
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<screensaver name="anemotaxis" _label="Anemotaxis">
+
+ <command arg="-root"/>
+
+ <number id="delay" type="slider" arg="-delay %"
+ _label="Speed" _low-label="Slow" _high-label="Fast"
+ low="0" high="60000" default="20000"
+ convert="invert"/>
+
+ <number id="distance" type="slider" arg="-distance %"
+ _label="Distance" _low-label="Near" _high-label="Far"
+ low="0" high="400" default="40"/>
+
+ <number id="sources" type="slider" arg="-sources %"
+ _label="Sources" _low-label="Few" _high-label="Many"
+ low="1" high="100" default="25"/>
+
+ <number id="searchers" type="slider" arg="-searchers %"
+ _label="Searchers" _low-label="Few" _high-label="Many"
+ low="1" high="100" default="25"/>
+
+ <_description>
+Anemotaxis demonstrates a search algorithm designed for locating a
+source of odor in turbulent atmosphere. The searcher is able to sense
+the odor and determine local instantaneous wind direction. The goal is
+to find the source in the shortest mean time. Written by Eugene Balkovsky.
+ </_description>
+</screensaver>
<hgroup>
<number id="points" type="spinbutton" arg="-points %"
_label="Ball Count" low="0" high="200" default="0"/>
- <number id="points" type="slider" arg="-size %"
+ <number id="size" type="slider" arg="-size %"
_low-label="Ball Mass" _high-label="High"
low="0" high="100" default="0"/>
</hgroup>
<number id="delay" type="slider" arg="-delay %"
_label="Speed" _low-label="Slow" _high-label="Fast"
- low="0" high="20000" default="10000"
+ low="0" high="40000" default="10000"
convert="invert"/>
<number id="ncolors" type="slider" arg="-colors %"
low="0" high="50000" default="30000"/>
<number id="boxsize" type="spinbutton" arg="-boxsize %"
- _label="Box Size" low="1" high="4" default="1"/>
+ _label="Box Size" low="1" high="8" default="1"/>
<hgroup>
<boolean id="fade" _label="Fade" arg-unset="-no-fade"/>
<number id="speed" type="slider" arg="-speed %"
_label="Bounce Speed" _low-label="Slow" _high-label="Fast"
- low="0.05" high="1.7" default="1.0"/>
+ low="0.05" high="1.7" default="0.7"/>
<number id="delay" type="slider" arg="-delay %"
_label="Animation Speed" _low-label="Slow" _high-label="Fast"
low="0" high="20000" default="20000"
convert="invert"/>
+ <number id="speed" type="slider" arg="-speed %"
+ _label="Motion Speed" _low-label="Slow" _high-label="Fast"
+ low="0.001" high="4.0" default="0.5"/>
+
<boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
<_description>
<number id="delay" type="slider" arg="-delay %"
_label="Speed" _low-label="Slow" _high-label="Fast"
- low="0" high="20000" default="10000"
+ low="0" high="20000" default="15000"
convert="invert"/>
<boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
<_description>
Draws fireworks and zooming, fading flares. By Tom Campbell.
-You can find it at <http://cosmos.dnsalias.net/cosmos/>
+You can find it at <http://www.cosmosx.org/>
</_description>
</screensaver>
\ No newline at end of file
<number id="delay" type="slider" arg="-delay %"
_label="Speed" _low-label="Slow" _high-label="Fast"
- low="0" high="50000" default="30000"
+ low="0" high="50000" default="20000"
convert="invert"/>
<number id="count" type="slider" arg="-count %"
<command arg="-root"/>
- <!-- #### -rotate-speed [1] -->
-
<number id="delay" type="slider" arg="-delay %"
_label="Speed" _low-label="Slow" _high-label="Fast"
- low="0" high="20000" default="10000"
+ low="0" high="40000" default="30000"
convert="invert"/>
<select id="engine">
<_description>
Another series of strange attractors: a flowing series of points,
-making strange rotational shapes. Written by Jeff Butterworth.
+making strange rotational shapes. Written by Tim Auckland.
</_description>
</screensaver>
<?xml version="1.0" encoding="ISO-8859-1"?>
-<screensaver name="fuaayflakes" _label="FuzzyFlakes">
+<screensaver name="fuzzyflakes" _label="FuzzyFlakes">
<command arg="-root"/>
+ <string id="color" _label="Color" arg="-color %"/>
+
<number id="arms" type="slider" arg="-arms %"
_label="Arms" _low-label="Few" _high-label="Many"
- low="1" high="10" default="5"
- convert="invert"/>
+ low="1" high="10" default="5"/>
<number id="thickness" type="slider" arg="-thickness %"
_label="Thickness" _low-label="Thin" _high-label="Thick"
- low="1" high="50" default="10"
- convert="invert"/>
+ low="1" high="50" default="10"/>
<number id="bthickness" type="slider" arg="-bthickness %"
_label="Border Thickness" _low-label="Thin" _high-label="Thick"
- low="0" high="50" default="3"
- convert="invert"/>
+ low="0" high="50" default="3"/>
<number id="radius" type="slider" arg="-radius %"
_label="Radius" _low-label="Small" _high-label="Large"
- low="1" high="100" default="20"
- convert="invert"/>
+ low="1" high="100" default="20"/>
<number id="layers" type="slider" arg="-layers %"
_label="Layers" _low-label="Few" _high-label="Many"
- low="1" high="10" default="3"
- convert="invert"/>
+ low="1" high="10" default="3"/>
<number id="delay" type="slider" arg="-delay %"
_label="Delay" _low-label="Slow" _high-label="Fast"
- low="0" high="250000" default="10000"
- convert="invert"/>
+ low="0" high="250000" default="10000"/>
<number id="speed" type="slider" arg="-speed %"
_label="Speed" _low-label="Slow" _high-label="Fast"
- low="1" high="50" default="10"
- convert="invert"/>
+ low="1" high="50" default="10"/>
<boolean id="db" _label="Double Buffer" arg-unset="-no-db"/>
+ <boolean id="rc" _label="Random Colors" arg-set="-random-colors"/>
<_description>
-Falling pastel colored snowflake/flower shapes.
+Falling colored snowflake/flower shapes.
Inspired by the credits of the anime "Azumanga Daioh".
Written by Barry Dmytro.
</_description>
filled with trees. Requires OpenGL, and a machine with fast hardware
support for texture maps.
-Written by Eric Lassauge <lassauge@free.fr>.
+Written by Eric Lassauge <lassauge@users.sourceforge.net>.
</_description>
</screensaver>
<command arg="-root"/>
- <!-- #### -no-rotate -->
- <!-- #### -no-roll -->
- <!-- #### -no-wander -->
<!-- #### -no-texture -->
<!-- #### -no-stars -->
<number id="delay" type="slider" arg="-delay %"
_label="Speed" _low-label="Slow" _high-label="Fast"
- low="0" high="20000" default="15000"
+ low="0" high="50000" default="20000"
convert="invert"/>
<select id="render">
<option id="solid" _label="Solid"/>
</select>
+ <hgroup>
+ <boolean id="wander" _label="Wander" arg-unset="-no-wander"/>
+ <boolean id="rotate" _label="Rotate" arg-unset="-no-rotate"/>
+ <boolean id="roll" _label="Roll" arg-unset="-no-roll"/>
+ <boolean id="stars" _label="Stars" arg-unset="-no-stars"/>
+ </hgroup>
+
<boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
<_description>
<number id="delay" type="slider" arg="-delay %"
_label="Speed" _low-label="Slow" _high-label="Fast"
- low="0" high="20000" default="10000"
+ low="0" high="30000" default="20000"
convert="invert"/>
<boolean id="wander" _label="Wander" arg-unset="-no-wander"/>
low="0.1" high="3.0" default="1.2"/>
<_description>
-This draws set of animating, transparent, amoeba-like blobs. The
-blobs change shape as they wander around the screen, and they are
-translucent, so you can see the lower blobs through the higher ones,
-and when one passes over another, their colors merge. Written by
-Jamie Zawinski. I got the idea for this from a cool mouse pad I
-have, which achieves the same kind of effect in real life by having
-several layers plastic with colored oil between them. Written by
-Jamie Zawinski.
+This draws set of animating, transparent, amoeba-like blobs. The blobs
+change shape as they wander around the screen, and they are translucent,
+so you can see the lower blobs through the higher ones, and when one
+passes over another, their colors merge. I got the idea for this from
+a cool mouse pad I have, which achieves the same kind of effect in real
+life by having several layers plastic with colored oil between them.
+Written by Jamie Zawinski.
</_description>
</screensaver>
<number id="delay" type="slider" arg="-delay %"
_label="Speed" _low-label="Slow" _high-label="Fast"
- low="0" high="20000" default="10000"
+ low="0" high="40000" default="20000"
convert="invert"/>
<select id="render">
<number id="delay" type="slider" arg="-delay %"
_label="Speed" _low-label="Slow" _high-label="Fast"
- low="0" high="50000" default="10000"
+ low="0" high="50000" default="30000"
convert="invert"/>
<number id="speed" type="slider" arg="-speed %"
--- /dev/null
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<screensaver name="memscroller" _label="MemScroller">
+
+ <command arg="-root"/>
+
+ <number id="delay" type="slider" arg="-delay %"
+ _label="Speed" _low-label="Slow" _high-label="Fast"
+ low="0" high="30000" default="10000"
+ convert="invert"/>
+
+ <select id="seedMode">
+ <option id="ram" _label="Dump Memory"/>
+ <option id="random" _label="Draw Random Numbers" arg-set="-random"/>
+ </select>
+
+ <select id="drawMode">
+ <option id="color" _label="Draw in RGB"/>
+ <option id="mono" _label="Draw Green" arg-set="-mono"/>
+ </select>
+
+ <_description>
+This draws a dump of its own process memory scrolling across the screen
+in three windows at three different rates. Written by Jamie Zawinski.
+ </_description>
+</screensaver>
<number id="delay" type="slider" arg="-delay %"
_label="Speed" _low-label="Slow" _high-label="Fast"
- low="0" high="20000" default="10000"
+ low="0" high="60000" default="30000"
convert="invert"/>
<select id="object">
Requires OpenGL, and a machine with fast hardware support for texture
maps.
-Written by Eric Lassauge <lassauge@free.fr>.
+Written by Eric Lassauge <lassauge@users.sourceforge.net>.
</_description>
</screensaver>
static XrmOptionDescRec opts[] =
{
- {"-nx", "crystal.nx", XrmoptionSepArg, (caddr_t) NULL},
- {"-ny", "crystal.ny", XrmoptionSepArg, (caddr_t) NULL},
- {"-centre", ".crystal.centre", XrmoptionNoArg, (caddr_t) "on"},
- {"+centre", ".crystal.centre", XrmoptionNoArg, (caddr_t) "off"},
- {"-maxsize", ".crystal.maxsize", XrmoptionNoArg, (caddr_t) "on"},
- {"+maxsize", ".crystal.maxsize", XrmoptionNoArg, (caddr_t) "off"},
- {"-cell", ".crystal.cell", XrmoptionNoArg, (caddr_t) "on"},
- {"+cell", ".crystal.cell", XrmoptionNoArg, (caddr_t) "off"},
- {"-grid", ".crystal.grid", XrmoptionNoArg, (caddr_t) "on"},
- {"+grid", ".crystal.grid", XrmoptionNoArg, (caddr_t) "off"},
- {"-shift", ".crystal.shift", XrmoptionNoArg, (caddr_t) "on"},
- {"+shift", ".crystal.shift", XrmoptionNoArg, (caddr_t) "off"}
+ {"-nx", "crystal.nx", XrmoptionSepArg, 0},
+ {"-ny", "crystal.ny", XrmoptionSepArg, 0},
+ {"-centre", ".crystal.centre", XrmoptionNoArg, "on"},
+ {"+centre", ".crystal.centre", XrmoptionNoArg, "off"},
+ {"-maxsize", ".crystal.maxsize", XrmoptionNoArg, "on"},
+ {"+maxsize", ".crystal.maxsize", XrmoptionNoArg, "off"},
+ {"-cell", ".crystal.cell", XrmoptionNoArg, "on"},
+ {"+cell", ".crystal.cell", XrmoptionNoArg, "off"},
+ {"-grid", ".crystal.grid", XrmoptionNoArg, "on"},
+ {"+grid", ".crystal.grid", XrmoptionNoArg, "off"},
+ {"-shift", ".crystal.shift", XrmoptionNoArg, "on"},
+ {"+shift", ".crystal.shift", XrmoptionNoArg, "off"}
};
static argtype vars[] =
static XrmOptionDescRec opts[] =
{
- {(char *) "-neighbors", (char *) ".demon.neighbors", XrmoptionSepArg, (caddr_t) NULL}
+ {"-neighbors", ".demon.neighbors", XrmoptionSepArg, 0}
};
static argtype vars[] =
};
static OptionStruct desc[] =
{
- {(char *) "-neighbors num", (char *) "squares 4 or 8, hexagons 6, triangles 3, 9 or 12"}
+ {"-neighbors num", "squares 4 or 8, hexagons 6, triangles 3, 9 or 12"}
};
ModeSpecOpt demon_opts =
static XrmOptionDescRec opts[] =
{
- {(char *) "-grow", (char *) ".drift.grow", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+grow", (char *) ".drift.grow", XrmoptionNoArg, (caddr_t) "off"},
- {(char *) "-liss", (char *) ".drift.trail", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+liss", (char *) ".drift.trail", XrmoptionNoArg, (caddr_t) "off"}
+ {"-grow", ".drift.grow", XrmoptionNoArg, "on"},
+ {"+grow", ".drift.grow", XrmoptionNoArg, "off"},
+ {"-liss", ".drift.trail", XrmoptionNoArg, "on"},
+ {"+liss", ".drift.trail", XrmoptionNoArg, "off"}
};
static argtype vars[] =
{
};
static OptionStruct desc[] =
{
- {(char *) "-/+grow", (char *) "turn on/off growing fractals, else they are animated"},
- {(char *) "-/+liss", (char *) "turn on/off using lissojous figures to get points"}
+ {"-/+grow", "turn on/off growing fractals, else they are animated"},
+ {"-/+liss", "turn on/off using lissojous figures to get points"}
};
ModeSpecOpt drift_opts =
static XrmOptionDescRec opts[] =
{
- {(char* ) "-eulertail", (char *) ".euler2d.eulertail",
- XrmoptionSepArg, (caddr_t) NULL},
- {(char* ) "-eulerpower", (char *) ".euler2d.eulerpower",
- XrmoptionSepArg, (caddr_t) NULL},
+ {"-eulertail", ".euler2d.eulertail", XrmoptionSepArg, NULL},
+ {"-eulerpower", ".euler2d.eulerpower", XrmoptionSepArg, NULL},
};
static argtype vars[] =
{
{&tail_len, "eulertail",
- (char *) "EulerTail", (char *) DEF_EULERTAIL, t_Int},
+ "EulerTail", (char *) DEF_EULERTAIL, t_Int},
{&power, "eulerpower",
- (char *) "EulerPower", (char *) "1", t_Float},
+ "EulerPower", "1", t_Float},
};
static OptionStruct desc[] =
{
- {(char *) "-eulertail len", (char *) "Length of Euler2d tails"},
- {(char *) "-eulerpower power", (char *) "power of interaction law for points for Euler2d"},
+ {"-eulertail len", "Length of Euler2d tails"},
+ {"-eulerpower power", "power of interaction law for points for Euler2d"},
};
ModeSpecOpt euler2d_opts =
.BR X (1),
.BR xscreensaver (1)
.SH COPYRIGHT
-Copyright \(co 2002 by Jeff Butterworth. 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.
+
+Copyright \(co 2002 by Tim Auckland and Jeff Butterworth. 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
-Jeff Butterworth.
+Tim Auckland based on code by Jeff Butterworth.
/* fuzzyflakes, Copyright (c) 2004
* Barry Dmytro <badcherry@mailc.net>
*
+ * ! 2004.06.10 21:05
+ * ! - Added support for resizing
+ * ! - Added a color scheme generation algorithm
+ * ! Thanks to <ZoeB> from #vegans@irc.blitzed.org
+ * ! - Added random color generation
+ * ! - Fixed errors in the xml config file
+ * ! - Cleaned up a few inconsistencies in the code
+ * ! - Changed the default color to #EFBEA5
+ *
+ * ! 2004.05.?? ??:??
+ * ! -original creation
+ *
* 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
#include <math.h>
#include "screenhack.h"
-#define PI 3.14159265359
+
+/* I have need of 1/3 and 2/3 constants later on */
+#define N1_3 0.3333333333
+#define N2_3 0.6666666666
typedef struct _flake_var
{
- double Ticks;
- double XPos, YPos;
- double TrueX;
- double XOffset;
- double Angle;
+ double Ticks;
+ double XPos, YPos;
+ double TrueX;
+ double XOffset;
+ double Angle;
} FlakeVariable;
+/* Struct containing the atrributes to our flakes */
static struct _flake
-{ /* Struct containing the atrributes to our flakes */
- int Arms;
- int Thickness;
- int BorderThickness;
- int Radius;
- unsigned long BordColor;
- unsigned long ForeColor;
- unsigned long BackColor;
- int Layers;
- int Density;
- int Delay;
- int FallingSpeed;
- FlakeVariable *** Flakes; /* a dynamic array containing positions of all the flakes */
- XGCValues GCValues;
- unsigned long GCFlags;
- GC GCVar;
- Display * DisplayVar;
- Window WindowVar;
- XWindowAttributes XGWA;
- struct _dbevar
- {
- Bool dbuf;
- Pixmap b,ba,bb;
- } DB;
+{
+ int Arms;
+ int Thickness;
+ int BorderThickness;
+ int Radius;
+ unsigned long BordColor;
+ unsigned long ForeColor;
+ unsigned long BackColor;
+ Bool RandomColors;
+ int Layers;
+ int Density;
+ int Delay;
+ int FallingSpeed;
+ struct _colors
+ {
+ char *Fore;
+ char *Bord;
+ char *Back;
+ } Colors;
+/* a dynamic array containing positions of all the flakes */
+ FlakeVariable ***Flakes;
+ XGCValues GCValues;
+ unsigned long GCFlags;
+ GC GCVar;
+ Display *DisplayVar;
+ Window WindowVar;
+ XWindowAttributes XGWA;
+ struct _dbevar
+ {
+ Bool dbuf;
+ Pixmap b, ba, bb;
+ } DB;
} Flake;
+/*
+ *This gets the pixel resource for a color: #ffffff
+ */
+unsigned int
+FuzzyFlakesColorResource(char *Color)
+{
+ XColor color;
+
+ if (!XParseColor(Flake.DisplayVar, Flake.XGWA.colormap, Color, &color))
+ {
+ fprintf(stderr, "%s: can't parse color %s", progname, Color);
+ return 0;
+ }
+ if (!XAllocColor(Flake.DisplayVar, Flake.XGWA.colormap, &color))
+ {
+ fprintf(stderr, "%s: can't allocate color %s", progname, Color);
+ return 0;
+ }
+ return color.pixel;
+}
+
+/*
+ * This is a great color matching algorithm that I got from
+ * a friend of mine on #vegans@irc.blitzed.org
+ * She wrote it in PHP and I ported it over to C
+ * her site is http://beautifulfreak.net/
+ */
+static int
+FuzzyFlakesColorHelper(void)
+{
+ unsigned int iR, iG, iB;
+ unsigned int iR0, iG0, iB0;
+ unsigned int iR1, iG1, iB1;
+ float fR, fG, fB;
+ float Max = 0, Min = 0, Lig, Sat;
+ float Hue, Hue0, Hue1;
+ float f1, f2;
+ float fR0, fG0, fB0;
+ float fR1, fG1, fB1;
+ float nR0, nG0, nB0;
+ float nR1, nG1, nB1;
+ XColor color;
+
+ /* First convert from hex to dec */
+ /* while splitting up the RGB values */
+ if (!XParseColor(Flake.DisplayVar, Flake.XGWA.colormap,
+ Flake.Colors.Back, &color))
+ {
+ fprintf(stderr, "%s: can't parse color %s", progname,
+ Flake.Colors.Back);
+ return 1;
+ }
+ iR = color.red >> 8;
+ iG = color.green >> 8;
+ iB = color.blue >> 8;
+
+ /* Convert from int to float */
+ fR = iR;
+ fG = iG;
+ fB = iB;
+
+ /* convert from 0-255 to 0-1 */
+ fR = fR / 255;
+ fG = fG / 255;
+ fB = fB / 255;
+
+ /* work out the lightness */
+ if (fR >= fG && fR >= fB)
+ Max = fR;
+ if (fG >= fR && fG >= fB)
+ Max = fG;
+ if (fB >= fR && fB >= fG)
+ Max = fB;
+
+ if (fR <= fG && fR <= fB)
+ Min = fR;
+ if (fG <= fR && fG <= fB)
+ Min = fG;
+ if (fB <= fR && fB <= fG)
+ Min = fB;
+
+ Lig = (Max + Min) / 2;
+
+ /* work out the saturation */
+ if (Max == Min)
+ Sat = 0;
+ else
+ {
+ if (Lig < 0.5)
+ Sat = (Max - Min) / (Max + Min);
+ else
+ Sat = (Max - Min) / (2 - Max - Min);
+ }
+
+ /*
+ * if our satration is too low we won't be
+ * able to see any objects
+ */
+ if (Sat < 0.03)
+ {
+ return 1;
+ }
+
+ /* work out the hue */
+ if (fR == Max)
+ Hue = (fG - fB) / (Max - Min);
+ else if (fG == Max)
+ Hue = 2 + (fB - fR) / (Max - Min);
+ else
+ Hue = 4 + (fR - fG) / (Max - Min);
+
+ Hue = Hue / 6;
+
+ /* fine two equidistant hues */
+ Hue0 = Hue + N1_3;
+ if (Hue0 > 1)
+ Hue0 = Hue0 - 1;
+ Hue1 = Hue0 + N1_3;
+ if (Hue1 > 1)
+ Hue1 = Hue1 - 1;
+
+ /* convert the colors into hex codes */
+ if (Lig < 0.5)
+ f2 = Lig * (1 + Sat);
+ else
+ f2 = (Lig + Sat) - (Lig * Sat);
+
+ f1 = (2 * Lig) - f2;
+
+ fR0 = (Hue0 + 1) / 3;
+ fR1 = (Hue1 + 1) / 3;
+ fG0 = Hue0;
+ fG1 = Hue1;
+ fB0 = (Hue0 - 1) / 3;
+ fB1 = (Hue1 - 1) / 3;
+
+ if (fR0 < 0)
+ fR0 = fR0 + 1;
+ if (fR0 > 1)
+ fR0 = fR0 - 1;
+ if (fG0 < 0)
+ fG0 = fG0 + 1;
+ if (fG0 > 1)
+ fG0 = fG0 - 1;
+ if (fB0 < 0)
+ fB0 = fB0 + 1;
+ if (fB0 > 1)
+ fB0 = fB0 - 1;
+
+ if (fR1 < 0)
+ fR1 = fR1 + 1;
+ if (fR1 > 1)
+ fR1 = fR1 - 1;
+ if (fG1 < 0)
+ fG1 = fG1 + 1;
+ if (fG1 > 1)
+ fG1 = fG1 - 1;
+ if (fB1 < 0)
+ fB1 = fB1 + 1;
+ if (fB1 > 1)
+ fB1 = fB1 - 1;
+
+ if (6 * fR0 < 1)
+ nR0 = f1 + (f2 - f1) * 6 * fR0;
+ else if (2 * fR0 < 1)
+ nR0 = f2;
+ else if (3 * fR0 < 2)
+ nR0 = f1 + (f2 - f1) * (N2_3 - fR0) * 6;
+ else
+ nR0 = f1;
+
+ if (6 * fG0 < 1)
+ nG0 = f1 + (f2 - f1) * 6 * fG0;
+ else if (2 * fG0 < 1)
+ nG0 = f2;
+ else if (3 * fG0 < 2)
+ nG0 = f1 + (f2 - f1) * (N2_3 - fG0) * 6;
+ else
+ nG0 = f1;
+
+ if (6 * fB0 < 1)
+ nB0 = f1 + (f2 - f1) * 6 * fB0;
+ else if (2 * fB0 < 1)
+ nB0 = f2;
+ else if (3 * fB0 < 2)
+ nB0 = f1 + (f2 - f1) * (N2_3 - fB0) * 6;
+ else
+ nB0 = f1;
+
+ if (6 * fR1 < 1)
+ nR1 = f1 + (f2 - f1) * 6 * fR1;
+ else if (2 * fR1 < 1)
+ nR1 = f2;
+ else if (3 * fR1 < 2)
+ nR1 = f1 + (f2 - f1) * (N2_3 - fR1) * 6;
+ else
+ nR1 = f1;
+
+ if (6 * fG1 < 1)
+ nG1 = f1 + (f2 - f1) * 6 * fG1;
+ else if (2 * fG1 < 1)
+ nG1 = f2;
+ else if (3 * fG1 < 2)
+ nG1 = f1 + (f2 - f1) * (N2_3 - fG1) * 6;
+ else
+ nG1 = f1;
+
+ if (6 * fB1 < 1)
+ nB1 = f1 + (f2 - f1) * 6 * fB1;
+ else if (2 * fB1 < 1)
+ nB1 = f2;
+ else if (3 * fB1 < 2)
+ nB1 = f1 + (f2 - f1) * (N2_3 - fB1) * 6;
+ else
+ nB1 = f1;
+
+ /* at last convert them to a hex string */
+ iR0 = nR0 * 255;
+ iG0 = nG0 * 255;
+ iB0 = nB0 * 255;
+
+ iR1 = nR1 * 255;
+ iG1 = nG1 * 255;
+ iB1 = nB1 * 255;
+
+ Flake.Colors.Fore = malloc(sizeof(unsigned char) * 8);
+ Flake.Colors.Bord = malloc(sizeof(unsigned char) * 8);
+
+ sprintf(Flake.Colors.Fore, "#%02X%02X%02X", iR0, iG0, iB0);
+ sprintf(Flake.Colors.Bord, "#%02X%02X%02X", iR1, iG1, iB1);
+
+ return 0;
+}
+
static void
-InitFuzzyFlakes (Display *dpy, Window window)
+FuzzyFlakesInit(Display * dpy, Window window)
{
- int i,j;
- XWindowAttributes xgwa;
- Colormap cmap;
-
- XGetWindowAttributes (dpy, window, &xgwa);
- cmap = xgwa.colormap;
- Flake.XGWA = xgwa;
- Flake.DB.b = Flake.DB.ba = Flake.DB.bb = 0;
- Flake.DB.dbuf = get_boolean_resource ("doubleBuffer", "Boolean");
-
-
- if (Flake.DB.dbuf)
- {
- Flake.DB.ba = XCreatePixmap (dpy, window, xgwa.width, xgwa.height,xgwa.depth);
- Flake.DB.bb = XCreatePixmap (dpy, window, xgwa.width, xgwa.height,xgwa.depth);
- Flake.DB.b = Flake.DB.ba;
- }
- else
- {
- Flake.DB.b = window;
- }
-
-
- Flake.DisplayVar = dpy;
- Flake.WindowVar = window;
- Flake.Arms = get_integer_resource ("arms", "Integer");
- Flake.Thickness = get_integer_resource ("thickness", "Integer");
- Flake.BorderThickness = get_integer_resource ("bthickness", "Integer");
- Flake.Radius = get_integer_resource ("radius", "Integer");
- Flake.BordColor = get_pixel_resource ("border","Border",dpy,cmap);
- Flake.ForeColor = get_pixel_resource ("foreground","Foreground",dpy,cmap);
- Flake.BackColor = get_pixel_resource ("background","Background",dpy,cmap);
- Flake.Density = get_integer_resource ("density", "Integer");
- Flake.Layers = get_integer_resource ("layers", "Integer");
- Flake.FallingSpeed = get_integer_resource ("fallingspeed", "Integer");
- Flake.Delay = get_integer_resource ("delay", "Integer");
-
- if (Flake.Delay < 0) Flake.Delay = 0;
-
- Flake.GCValues.foreground = get_pixel_resource("foreground","Foreground", dpy, cmap);
- Flake.GCValues.background = get_pixel_resource("background","Background", dpy, cmap);
- Flake.GCValues.line_width = Flake.Thickness;
- Flake.GCValues.line_style = LineSolid;
- Flake.GCValues.cap_style = CapProjecting;
- Flake.GCValues.join_style = JoinMiter;
- Flake.GCFlags |= (GCLineWidth | GCLineStyle | GCCapStyle | GCJoinStyle);
-
- Flake.GCVar = XCreateGC (Flake.DisplayVar, Flake.WindowVar, Flake.GCFlags, &Flake.GCValues);
-
- Flake.Density = Flake.XGWA.width/200*Flake.Density;
- Flake.Flakes = malloc(sizeof(FlakeVariable**)*Flake.Layers);
- for(i=1;i<=Flake.Layers;i++)
- {
- Flake.Flakes[i-1] = malloc(sizeof(FlakeVariable*)*Flake.Density);
- for(j=0;j<Flake.Density;j++)
+ int i, j;
+ XWindowAttributes xgwa;
+ Colormap cmap;
+
+ XGetWindowAttributes(dpy, window, &xgwa);
+ cmap = xgwa.colormap;
+ Flake.XGWA = xgwa;
+ Flake.DB.b = Flake.DB.ba = Flake.DB.bb = 0;
+ Flake.DB.dbuf = get_boolean_resource("doubleBuffer", "Boolean");
+
+ if (Flake.DB.dbuf)
+ {
+ Flake.DB.ba =
+ XCreatePixmap(dpy, window, xgwa.width, xgwa.height, xgwa.depth);
+ Flake.DB.bb =
+ XCreatePixmap(dpy, window, xgwa.width, xgwa.height, xgwa.depth);
+ Flake.DB.b = Flake.DB.ba;
+ }
+ else
{
- Flake.Flakes[i-1][j] = malloc(sizeof(FlakeVariable));
- Flake.Flakes[i-1][j]->XPos = random()%Flake.XGWA.width;
- Flake.Flakes[i-1][j]->YPos = random()%Flake.XGWA.height;
- Flake.Flakes[i-1][j]->Angle = random()%360*(PI/180);
- Flake.Flakes[i-1][j]->Ticks = random()%360;
- Flake.Flakes[i-1][j]->XOffset = random()%Flake.XGWA.height;
+ Flake.DB.b = window;
+ }
+
+ Flake.DisplayVar = dpy;
+ Flake.WindowVar = window;
+ Flake.Arms = get_integer_resource("arms", "Integer");
+ Flake.Thickness = get_integer_resource("thickness", "Integer");
+ Flake.BorderThickness = get_integer_resource("bthickness", "Integer");
+ Flake.Radius = get_integer_resource("radius", "Integer");
+
+ Flake.Density = get_integer_resource("density", "Integer");
+ Flake.Layers = get_integer_resource("layers", "Integer");
+ Flake.FallingSpeed = get_integer_resource("fallingspeed", "Integer");
+ Flake.Delay = get_integer_resource("delay", "Integer");
+ if (Flake.RandomColors == True)
+ Flake.RandomColors = get_boolean_resource("randomColors", "Boolean");
+
+ if (Flake.Delay < 0)
+ Flake.Delay = 0;
+
+ if (!Flake.Colors.Back)
+ {
+ Flake.Colors.Back = get_string_resource("color", "Color");
+ if (!FuzzyFlakesColorResource(Flake.Colors.Back))
+ {
+ fprintf(stderr, " reverting to random\n");
+ Flake.RandomColors = True;
+ }
+
+ if (Flake.RandomColors)
+ {
+ if (Flake.Colors.Back)
+ free(Flake.Colors.Back);
+ Flake.Colors.Back = malloc(sizeof(unsigned char) * 8);
+ sprintf(Flake.Colors.Back, "#%X%X%X%X%X%X", random() % 16,
+ random() % 16, random() % 16, random() % 16, random() % 16,
+ random() % 16);
+ }
+
+ /*
+ * Here we establish our colormap based on what is in
+ * Flake.Colors.Back
+ */
+ if (FuzzyFlakesColorHelper())
+ {
+ fprintf(stderr, " reverting to random\n");
+ if (Flake.Colors.Back)
+ free(Flake.Colors.Back);
+ Flake.Colors.Back = malloc(sizeof(unsigned char) * 8);
+ sprintf(Flake.Colors.Back, "#%X%X%X%X%X%X", random() % 16,
+ random() % 16, random() % 16, random() % 16, random() % 16,
+ random() % 16);
+ FuzzyFlakesColorHelper();
+ }
+
+ Flake.ForeColor = FuzzyFlakesColorResource(Flake.Colors.Fore);
+ Flake.BackColor = FuzzyFlakesColorResource(Flake.Colors.Back);
+ Flake.BordColor = FuzzyFlakesColorResource(Flake.Colors.Bord);
+
+ Flake.GCValues.foreground = Flake.ForeColor;
+ Flake.GCValues.background = Flake.BackColor;
+ Flake.RandomColors = False;
+ }
+
+ Flake.GCValues.line_width = Flake.Thickness;
+ Flake.GCValues.line_style = LineSolid;
+ Flake.GCValues.cap_style = CapProjecting;
+ Flake.GCValues.join_style = JoinMiter;
+ Flake.GCFlags |= (GCLineWidth | GCLineStyle | GCCapStyle | GCJoinStyle);
+
+ Flake.GCVar =
+ XCreateGC(Flake.DisplayVar, Flake.WindowVar, Flake.GCFlags,
+ &Flake.GCValues);
+
+ Flake.Density = Flake.XGWA.width / 200 * Flake.Density;
+ Flake.Flakes = malloc(sizeof(FlakeVariable **) * Flake.Layers);
+ for (i = 1; i <= Flake.Layers; i++)
+ {
+ Flake.Flakes[i - 1] = malloc(sizeof(FlakeVariable *) * Flake.Density);
+ for (j = 0; j < Flake.Density; j++)
+ {
+ Flake.Flakes[i - 1][j] = malloc(sizeof(FlakeVariable));
+ Flake.Flakes[i - 1][j]->XPos = random() % Flake.XGWA.width;
+ Flake.Flakes[i - 1][j]->YPos = random() % Flake.XGWA.height;
+ Flake.Flakes[i - 1][j]->Angle = random() % 360 * (M_PI / 180);
+ Flake.Flakes[i - 1][j]->Ticks = random() % 360;
+ Flake.Flakes[i - 1][j]->XOffset = random() % Flake.XGWA.height;
+ }
+ }
+}
+
+static void
+FuzzyFlakesFreeFlake(void)
+{
+ int i, j;
+
+ for (i = 1; i <= Flake.Layers; i++)
+ {
+ for (j = 0; j < Flake.Density; j++)
+ {
+ free(Flake.Flakes[i - 1][j]);
+ }
+ free(Flake.Flakes[i - 1]);
+ }
+
+ XFreePixmap(Flake.DisplayVar, Flake.DB.bb);
+ XFreePixmap(Flake.DisplayVar, Flake.DB.ba);
+}
+
+static void
+FuzzyFlakesResizeTest(void)
+{
+ XWindowAttributes xgwa;
+
+ XGetWindowAttributes(Flake.DisplayVar, Flake.WindowVar, &xgwa);
+ if (Flake.XGWA.width != xgwa.width || Flake.XGWA.height != xgwa.height)
+ {
+ FuzzyFlakesFreeFlake();
+ FuzzyFlakesInit(Flake.DisplayVar, Flake.WindowVar);
}
- }
}
static void
FuzzyFlakesMove(void)
{
- int i,j;
- for(i=1;i<=Flake.Layers;i++)
- {
- for(j=0;j<Flake.Density;j++)
+ int i, j;
+
+ for (i = 1; i <= Flake.Layers; i++)
{
- FlakeVariable * FlakeVar;
- FlakeVar = Flake.Flakes[i-1][j];
- FlakeVar->Ticks++;
- FlakeVar->YPos = FlakeVar->YPos + ((double)Flake.FallingSpeed)/10/i;
- FlakeVar->TrueX = (sin(FlakeVar->XOffset + FlakeVar->Ticks*(PI/180)*((double)Flake.FallingSpeed/10)))*10 + FlakeVar->XPos;
- FlakeVar->Angle = FlakeVar->Angle + 0.005*((double)Flake.FallingSpeed/10);
- if(FlakeVar->YPos - Flake.Radius > Flake.XGWA.height)
- {
- FlakeVar->Ticks = 0;
- FlakeVar->YPos = 0 - Flake.Radius;
- }
+ for (j = 0; j < Flake.Density; j++)
+ {
+ FlakeVariable *FlakeVar;
+
+ FlakeVar = Flake.Flakes[i - 1][j];
+ FlakeVar->Ticks++;
+ FlakeVar->YPos =
+ FlakeVar->YPos + ((double)Flake.FallingSpeed) / 10 / i;
+ FlakeVar->TrueX =
+ (sin
+ (FlakeVar->XOffset +
+ FlakeVar->Ticks * (M_PI / 180) * ((double)Flake.FallingSpeed /
+ 10))) * 10 + FlakeVar->XPos;
+ FlakeVar->Angle =
+ FlakeVar->Angle + 0.005 * ((double)Flake.FallingSpeed / 10);
+ if (FlakeVar->YPos - Flake.Radius > Flake.XGWA.height)
+ {
+ FlakeVar->Ticks = 0;
+ FlakeVar->YPos = 0 - Flake.Radius;
+ }
+ }
}
- }
}
static void
FuzzyFlakesDrawFlake(int XPos, int YPos, double AngleOffset, int Layer)
{
- int i;
- double x,y,Angle,Radius;
-
- /* calculate the shrink factor debending on which layer we are drawing atm */
- Radius = (double)(Flake.Radius - Layer * 5);
-
- /* draw the flake one arm at a time */
- for(i=1;i<=Flake.Arms;i++)
- {
- int Diameter;
- Diameter = (Flake.BorderThickness*2 + Flake.Thickness)/Layer;
- /* compute the angle of this arm of the flake */
- Angle = ((2*PI)/Flake.Arms)*i + AngleOffset;
- /* calculate the x and y dispositions for this arm */
- y=(int)(sin(Angle)*Radius);
- x=(int)(cos(Angle)*Radius);
- /* draw the base for the arm */
- Flake.GCValues.line_width = Diameter;
- XFreeGC(Flake.DisplayVar,Flake.GCVar);
- Flake.GCVar = XCreateGC (Flake.DisplayVar, Flake.DB.b, Flake.GCFlags, &Flake.GCValues);
- XSetForeground(Flake.DisplayVar,Flake.GCVar,Flake.BordColor);
- XDrawLine(Flake.DisplayVar, Flake.DB.b, Flake.GCVar, XPos,YPos,XPos+x,YPos+y);
-
- }
- /* draw the flake one arm at a time */
- for(i=1;i<=Flake.Arms;i++)
- {
- /* compute the angle of this arm of the flake */
- Angle = ((2*PI)/Flake.Arms)*i + AngleOffset;
- /* calculate the x and y dispositions for this arm */
- y=(int)(sin(Angle)*Radius);
- x=(int)(cos(Angle)*Radius);
- /* draw the inside of the arm */
- Flake.GCValues.line_width = Flake.Thickness/Layer;
- XFreeGC(Flake.DisplayVar,Flake.GCVar);
- Flake.GCVar = XCreateGC (Flake.DisplayVar, Flake.DB.b, Flake.GCFlags, &Flake.GCValues);
- XSetForeground(Flake.DisplayVar,Flake.GCVar,Flake.ForeColor);
- XDrawLine(Flake.DisplayVar, Flake.DB.b, Flake.GCVar, XPos,YPos,XPos+x,YPos+y);
- }
+ int i;
+ double x, y, Angle, Radius;
+
+ /* calculate the shrink factor debending on which layer we are drawing atm */
+ Radius = (double)(Flake.Radius - Layer * 5);
+ /* draw the flake one arm at a time */
+ for (i = 1; i <= Flake.Arms; i++)
+ {
+ int Diameter;
+
+ Diameter = (Flake.BorderThickness * 2 + Flake.Thickness) / Layer;
+ /* compute the angle of this arm of the flake */
+ Angle = ((2 * M_PI) / Flake.Arms) * i + AngleOffset;
+ /* calculate the x and y dispositions for this arm */
+ y = (int)(sin(Angle) * Radius);
+ x = (int)(cos(Angle) * Radius);
+ /* draw the base for the arm */
+ Flake.GCValues.line_width = Diameter;
+ XFreeGC(Flake.DisplayVar, Flake.GCVar);
+ Flake.GCVar =
+ XCreateGC(Flake.DisplayVar, Flake.DB.b, Flake.GCFlags,
+ &Flake.GCValues);
+ XSetForeground(Flake.DisplayVar, Flake.GCVar, Flake.BordColor);
+ XDrawLine(Flake.DisplayVar, Flake.DB.b, Flake.GCVar, XPos, YPos,
+ XPos + x, YPos + y);
+ }
+ /* draw the flake one arm at a time */
+ for (i = 1; i <= Flake.Arms; i++)
+ {
+ /* compute the angle of this arm of the flake */
+ Angle = ((2 * M_PI) / Flake.Arms) * i + AngleOffset;
+ /* calculate the x and y dispositions for this arm */
+ y = (int)(sin(Angle) * Radius);
+ x = (int)(cos(Angle) * Radius);
+ /* draw the inside of the arm */
+ Flake.GCValues.line_width = Flake.Thickness / Layer;
+ XFreeGC(Flake.DisplayVar, Flake.GCVar);
+ Flake.GCVar =
+ XCreateGC(Flake.DisplayVar, Flake.DB.b, Flake.GCFlags,
+ &Flake.GCValues);
+ XSetForeground(Flake.DisplayVar, Flake.GCVar, Flake.ForeColor);
+ XDrawLine(Flake.DisplayVar, Flake.DB.b, Flake.GCVar, XPos, YPos,
+ XPos + x, YPos + y);
+ }
}
static void
-FuzzyFlakes (Display *dpy, Window window)
+FuzzyFlakes(Display * dpy, Window window)
{
- int i,j;
-
- FuzzyFlakesMove();
-
- XSetForeground(Flake.DisplayVar,Flake.GCVar,Flake.BackColor);
- XFillRectangle(Flake.DisplayVar,Flake.DB.b,Flake.GCVar,0,0,Flake.XGWA.width,Flake.XGWA.height);
+ int i, j;
- for(i=Flake.Layers;i>=1;i--)
- {
- for(j=0;j<Flake.Density;j++)
+ FuzzyFlakesMove();
+ XSetForeground(Flake.DisplayVar, Flake.GCVar, Flake.BackColor);
+ XFillRectangle(Flake.DisplayVar, Flake.DB.b, Flake.GCVar, 0, 0,
+ Flake.XGWA.width, Flake.XGWA.height);
+ for (i = Flake.Layers; i >= 1; i--)
{
- FuzzyFlakesDrawFlake(
- Flake.Flakes[i-1][j]->TrueX,
- Flake.Flakes[i-1][j]->YPos,
- Flake.Flakes[i-1][j]->Angle,i);
+ for (j = 0; j < Flake.Density; j++)
+ {
+ FuzzyFlakesDrawFlake(Flake.Flakes[i - 1][j]->TrueX,
+ Flake.Flakes[i - 1][j]->YPos,
+ Flake.Flakes[i - 1][j]->Angle, i);
+ }
}
- }
}
-\f
-char *progclass = "FuzzyFlakes";
-
-char *defaults [] = {
- ".background: pale green",
- ".foreground: pink",
- ".border: snow4",
- "*arms: 5",
- "*thickness: 10",
- "*bthickness: 3",
- "*radius: 20",
- "*layers: 3",
- "*density: 5",
- "*fallingspeed: 10",
- "*delay: 10000",
- "*doubleBuffer: True",
- 0
+char *progclass = "FuzzyFlakes";
+char *defaults[] = {
+ "*color: #efbea5",
+ "*arms: 5",
+ "*thickness: 10",
+ "*bthickness: 3",
+ "*radius: 20",
+ "*layers: 3",
+ "*density: 5",
+ "*fallingspeed: 10",
+ "*delay: 10000",
+ "*doubleBuffer: True",
+ "*randomColors: False",
+ 0
};
-XrmOptionDescRec options [] = {
- { "-arms", ".arms", XrmoptionSepArg, 0 },
- { "-thickness", ".thickness", XrmoptionSepArg, 0 },
- { "-bthickness", ".bthickness", XrmoptionSepArg, 0 },
- { "-radius", ".radius", XrmoptionSepArg, 0 },
- { "-layers", ".layers", XrmoptionSepArg, 0 },
- { "-density", ".density", XrmoptionSepArg, 0 },
- { "-speed", ".fallingspeed",XrmoptionSepArg, 0 },
- { "-delay", ".delay", XrmoptionSepArg, 0 },
- { "-db", ".doubleBuffer", XrmoptionNoArg, "True" },
- { "-no-db", ".doubleBuffer", XrmoptionNoArg, "False" },
- { 0, 0, 0, 0 }
+XrmOptionDescRec options[] = {
+ {
+ "-color", ".color", XrmoptionSepArg, 0},
+ {
+ "-arms", ".arms", XrmoptionSepArg, 0},
+ {
+ "-thickness", ".thickness", XrmoptionSepArg, 0},
+ {
+ "-bthickness", ".bthickness", XrmoptionSepArg, 0},
+ {
+ "-radius", ".radius", XrmoptionSepArg, 0},
+ {
+ "-layers", ".layers", XrmoptionSepArg, 0},
+ {
+ "-density", ".density", XrmoptionSepArg, 0},
+ {
+ "-speed", ".fallingspeed", XrmoptionSepArg, 0},
+ {
+ "-delay", ".delay", XrmoptionSepArg, 0},
+ {
+ "-db", ".doubleBuffer", XrmoptionNoArg, "True"},
+ {
+ "-no-db", ".doubleBuffer", XrmoptionNoArg, "False"},
+ {
+ "-random-colors", ".randomColors", XrmoptionNoArg, "True"},
+ {
+ 0, 0, 0, 0}
};
void
-screenhack (Display *dpy, Window window)
+screenhack(Display * dpy, Window window)
{
- InitFuzzyFlakes (dpy, window);
- while (1)
- {
- FuzzyFlakes (dpy, Flake.DB.b);
- if (Flake.DB.dbuf)
- {
- XCopyArea (Flake.DisplayVar, Flake.DB.b, Flake.WindowVar, Flake.GCVar, 0, 0,
- Flake.XGWA.width, Flake.XGWA.height, 0, 0);
- Flake.DB.b = (Flake.DB.b == Flake.DB.ba ? Flake.DB.bb : Flake.DB.ba);
- }
- screenhack_handle_events (dpy);
- XSync (dpy, False);
- if (Flake.Delay) usleep (Flake.Delay);
- }
+ register int tick = 0;
+
+ /* This is needed even if it is going to be set to false */
+ Flake.RandomColors = True;
+
+ /* set up our colors amoung many other things */
+ FuzzyFlakesInit(dpy, window);
+
+ while (1)
+ {
+ /* Test every 50 ticks for a screen resize */
+ tick++;
+ if (tick == 50)
+ {
+ FuzzyFlakesResizeTest();
+ tick = 0;
+ }
+ FuzzyFlakes(dpy, Flake.DB.b);
+ if (Flake.DB.dbuf)
+ {
+ XCopyArea(Flake.DisplayVar, Flake.DB.b, Flake.WindowVar,
+ Flake.GCVar, 0, 0, Flake.XGWA.width, Flake.XGWA.height,
+ 0, 0);
+ Flake.DB.b =
+ (Flake.DB.b == Flake.DB.ba ? Flake.DB.bb : Flake.DB.ba);
+ }
+ screenhack_handle_events(dpy);
+ XSync(dpy, False);
+ if (Flake.Delay)
+ usleep(Flake.Delay);
+ }
}
+
+/* EOF */
.TH XScreenSaver 1 "12-May-04" "X Version 11"
.SH NAME
-fuzzyflakes - falling pastel snowflakes/flower shapes
+fuzzyflakes - falling snowflakes/flower shapes
.SH SYNOPSIS
.B fuzzyflakes
[\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP]
[\-layers \fIint\fP]
[\-density \fIint\fP]
[\-no-db]
+(\-color \fIstring\fP)
+(\-random-colors)
.SH DESCRIPTION
The
.I fuzzyflakes
.TP 8
.B \-no-db
Disable double-buffering.
+.TP 8
+.B \-color \fIstring\fP
+The base color for the color scheme. Typed as a hexadecimal triplet
+with or with out the leading #. ie. fa4563 & #43cd12 are both acceptable.
+If the satration of you color is too low (<0.03) the random color
+generator will kick in.
+The default color is #efbea5
+.TP 8
+.B \-random-colors
+This enables the random color generation. It is disabled by default.
+It overrides anything from -color
.SH ENVIRONMENT
.PP
.TP 8
warranty.
.SH AUTHOR
Barry Dmytro <badcherry@mailc.net>
+.SH CREDITS
+The color generation algorithm was borrowed from a friend <ZoeB>
+from #vegans@irc.blitzed.org. Her site is http://beautifulfreak.net/.
+To see her original code in action visit her site.
\ No newline at end of file
static XrmOptionDescRec opts[] =
{
- {"-tracks", ".galaxy.tracks", XrmoptionNoArg, (caddr_t) "on"},
- {"+tracks", ".galaxy.tracks", XrmoptionNoArg, (caddr_t) "off"}
+ {"-tracks", ".galaxy.tracks", XrmoptionNoArg, "on"},
+ {"+tracks", ".galaxy.tracks", XrmoptionNoArg, "off"}
};
static argtype vars[] =
atunnel.o: $(HACK_SRC)/images/tunnel0.xpm
atunnel.o: $(HACK_SRC)/images/tunnel1.xpm
atunnel.o: $(HACK_SRC)/images/tunnel2.xpm
+atunnel.o: $(HACK_SRC)/images/tunnel3.xpm
+atunnel.o: $(HACK_SRC)/images/tunnel4.xpm
+atunnel.o: $(HACK_SRC)/images/tunnel5.xpm
atunnel.o: $(srcdir)/tunnel_draw.h
atunnel.o: $(srcdir)/xpm-ximage.h
b_draw.o: $(srcdir)/bubble3d.h
static int shadows;
static XrmOptionDescRec opts[] = {
- {(char *) "-shadows",
- (char *) ".antinspect.shadows", XrmoptionNoArg, (caddr_t) "on"},
-
- {(char *) "+shadows",
- (char *) ".antinspect.shadows", XrmoptionNoArg, (caddr_t) "off"}
+ {"-shadows", ".antinspect.shadows", XrmoptionNoArg, "on"},
+ {"+shadows", ".antinspect.shadows", XrmoptionNoArg, "off"}
};
static argtype vars[] = {
- {(caddr_t *) &shadows,
- (char *) "shadows", (char *) "Shadows", (char *) DEF_SHADOWS, t_Bool}
+ {&shadows, "shadows", "Shadows", DEF_SHADOWS, t_Bool}
};
static OptionStruct desc[] = {
- {(char *) "-/+shadows",
- (char *) "turn on/off ant shadows"}
+ {"-/+shadows", "turn on/off ant shadows"}
};
ModeSpecOpt antinspect_opts = {sizeof opts / sizeof opts[0],
* Thanks goes also to Brian Paul for making it possible and inexpensive
* to use OpenGL at home.
*
- * My e-mail address is lassauge@sourceforge.net
+ * My e-mail address is lassauge@users.sourceforge.net
*
* Eric Lassauge (May-13-1998)
*
static int do_gradient;
static XrmOptionDescRec opts[] =
{
- {"-whalespeed", ".atlantis.whalespeed", XrmoptionSepArg, (caddr_t) NULL},
- {"-texture", ".atlantis.texture", XrmoptionNoArg, (caddr_t)"true"},
- {"+texture", ".atlantis.texture", XrmoptionNoArg, (caddr_t)"false"},
- {"-gradient", ".atlantis.gradient", XrmoptionNoArg, (caddr_t)"true"},
- {"+gradient", ".atlantis.gradient", XrmoptionNoArg, (caddr_t)"false"},
+ {"-whalespeed", ".atlantis.whalespeed", XrmoptionSepArg, 0},
+ {"-texture", ".atlantis.texture", XrmoptionNoArg, "true"},
+ {"+texture", ".atlantis.texture", XrmoptionNoArg, "false"},
+ {"-gradient", ".atlantis.gradient", XrmoptionNoArg, "true"},
+ {"+gradient", ".atlantis.gradient", XrmoptionNoArg, "false"},
};
static argtype vars[] =
* Thanks goes also to Brian Paul for making it possible and inexpensive
* to use OpenGL at home.
*
- * My e-mail address is lassauge@sagem.fr
+ * My e-mail address is lassauge@users.sourceforge.net
*
* Eric Lassauge (May-13-1998)
*
/* atunnels --- OpenGL Advanced Tunnel Screensaver */
#if 0
-static const char sccsid[] = "@(#)atunnels.c 5.07 2003/02/12 xlockmore";
+static const char sccsid[] = "@(#)atunnels.c 5.13 2004/05/25 xlockmore";
#endif
-/* Copyright (c) E. Lassauge, 2003. */
+/* Copyright (c) E. Lassauge, 2003-2004. */
/*
* Permission to use, copy, modify, and distribute this software and its
* Email: romka@ut.ee
* WEB: http://romka.demonews.com
*
- * Eric Lassauge (March-16-2002) <lassauge@mail.dotcom.fr>
+ * Eric Lassauge (May-25-2004) <lassauge@users.sourceforge.net>
* http://lassauge.free.fr/linux.html
*
* REVISION HISTORY:
*
+ * E.Lassauge - 25-May-2004:
+ * - added more texture !
* E.Lassauge - 16-Mar-2002:
* - created based on the Roman demo.
* - deleted all external file stuff to use xpm textures and
#include "../images/tunnel0.xpm"
#include "../images/tunnel1.xpm"
#include "../images/tunnel2.xpm"
+#include "../images/tunnel3.xpm"
+#include "../images/tunnel4.xpm"
+#include "../images/tunnel5.xpm"
#else /* !STANDALONE */
#include "pixmaps/tunnel0.xpm"
#include "pixmaps/tunnel1.xpm"
#include "pixmaps/tunnel2.xpm"
+#include "pixmaps/tunnel3.xpm"
+#include "pixmaps/tunnel4.xpm"
+#include "pixmaps/tunnel5.xpm"
#endif /* !STANDALONE */
#endif /* HAVE_XPM */
+
#undef countof
#define countof(x) (sizeof((x))/sizeof((*x)))
static Bool do_texture;
static XrmOptionDescRec opts[] = {
- {(char *)"-light", (char *)".atunnels.light", XrmoptionNoArg, (caddr_t) "true" },
- {(char *)"+light", (char *)".atunnels.light", XrmoptionNoArg, (caddr_t) "false" },
- {(char *)"-wire", (char *)".atunnels.wire", XrmoptionNoArg, (caddr_t) "true" },
- {(char *)"+wire", (char *)".atunnels.wire", XrmoptionNoArg, (caddr_t) "false" },
- {(char *)"-texture", (char *)".atunnels.texture", XrmoptionNoArg, (caddr_t) "true" },
- {(char *)"+texture", (char *)".atunnels.texture", XrmoptionNoArg, (caddr_t) "false" },
+ {"-light", ".atunnels.light", XrmoptionNoArg, "true" },
+ {"+light", ".atunnels.light", XrmoptionNoArg, "false" },
+ {"-wire", ".atunnels.wire", XrmoptionNoArg, "true" },
+ {"+wire", ".atunnels.wire", XrmoptionNoArg, "false" },
+ {"-texture", ".atunnels.texture", XrmoptionNoArg, "true" },
+ {"+texture", ".atunnels.texture", XrmoptionNoArg, "false" },
};
static argtype vars[] = {
static OptionStruct desc[] =
{
- {(char *)"-/+ light", (char *)"whether to do enable lighting (slower)"},
- {(char *)"-/+ wire", (char *)"whether to do use wireframe instead of filled (faster)"},
- {(char *)"-/+ texture", (char *)"whether to apply a texture (slower)"},
+ {"-/+ light", "whether to do enable lighting (slower)"},
+ {"-/+ wire", "whether to do use wireframe instead of filled (faster)"},
+ {"-/+ texture", "whether to apply a texture (slower)"},
};
ModeSpecOpt atunnels_opts = {countof(opts), opts, countof(vars), vars, desc};
} atunnelsstruct;
static atunnelsstruct *Atunnels = NULL;
-static GLuint texture[3]; /* texture id: GL world */
+
+static GLuint texture[MAX_TEXTURE]; /* texture id: GL world */
/*=================== Load Texture =========================================*/
static void LoadTexture(ModeInfo * mi, char **fn, int t_num)
glClearColor(0, 0, 0, 0);
if (do_texture)
{
- glGenTextures(3, texture);
+ glGenTextures(MAX_TEXTURE, texture);
LoadTexture(mi, texture0,0);
LoadTexture(mi, texture1,1);
LoadTexture(mi, texture2,2);
+ LoadTexture(mi, texture3,3);
+ LoadTexture(mi, texture4,4);
+ LoadTexture(mi, texture5,5);
glEnable(GL_TEXTURE_2D);
}
InitTunnel();
.SH AUTHOR
Roman Podobedov <romka@ut.ee>
-Eric Lassauge <lassauge@mail.dotcom.fr>
+Eric Lassauge <lassauge@users.sourceforge.net>
3, /* subdivision_depth */
#endif
5, /* nr_nudge_axes */
- 0.3, /* nudge_angle_factor */
- 0.15, /* nudge_factor */
+ 0.01, /* nudge_angle_factor */
+ 0.20, /* nudge_factor */
0.1, /* rotation_factor */
8, /* create_bubbles_every */
8, /* max_bubbles */
{0.7, 0.8, 0.9, 1.0}, /* p_bubble_group */
0.5, /* max_size */
0.1, /* min_size */
- 0.1, /* max_speed */
- 0.03, /* min_speed */
+ 0.03, /* max_speed */
+ 0.005, /* min_speed */
1.5, /* scale_factor */
-4, /* screen_bottom */
4, /* screen_top */
#define MAX_COUNT 20
#define ALPHA_AMT 0.05
-/* this should be between 1 and 4 */
-#define DEF_WH "1"
+/* this should be between 1 and 8 */
+#define DEF_WH "2"
#define DEF_DISSOLVE "False"
-#define DEF_FADE "True"
+#define DEF_FADE "True"
-#define DEFAULTS "*delay: 30000 \n" \
- "*wireframe: False \n" \
- "*boxsize: " DEF_WH "\n" \
- "*dissolve: " DEF_DISSOLVE "\n" \
- "*fade: " DEF_FADE "\n" \
+#define DEFAULTS "*delay: 30000 \n" \
+ "*wireframe: False \n" \
+ "*boxsize: " DEF_WH "\n" \
+ "*dissolve: " DEF_DISSOLVE "\n" \
+ "*fade: " DEF_FADE "\n" \
#undef countof
#define countof(x) (sizeof((x))/sizeof((*x)))
struct Bounding_box {
Tdpos top;
Tdpos bottom;
-} bbox = {{7,7,10},{-7,-7,-10}};
+} bbox = {{14,14,20},{-14,-14,-20}};
struct Ball {
GLfloat x;
static GLfloat des_amt = 1;
static XrmOptionDescRec opts[] = {
- { "-boxsize", ".boxsize", XrmoptionSepArg, 0 },
- { "-dissolve", ".dissolve", XrmoptionNoArg, "True" },
+ { "-boxsize", ".boxsize", XrmoptionSepArg, 0 },
+ { "-dissolve", ".dissolve", XrmoptionNoArg, "True" },
{ "+dissolve", ".dissolve", XrmoptionNoArg, "False" },
- { "-fade", ".fade", XrmoptionNoArg, "True" },
- { "+fade", ".fade", XrmoptionNoArg, "False" }
+ { "-fade", ".fade", XrmoptionNoArg, "True" },
+ { "+fade", ".fade", XrmoptionNoArg, "False" }
};
static argtype vars[] = {
- {(caddr_t *) &bscale.wh, "boxsize", "Boxsize", DEF_WH, t_Float},
- {(caddr_t *) &do_dissolve, "dissolve", "Dissolve", DEF_DISSOLVE, t_Bool},
- {(caddr_t *) &do_fade, "fade", "Fade", DEF_FADE, t_Bool},
+ {&bscale.wh, "boxsize", "Boxsize", DEF_WH, t_Float},
+ {&do_dissolve, "dissolve", "Dissolve", DEF_DISSOLVE, t_Bool},
+ {&do_fade, "fade", "Fade", DEF_FADE, t_Bool},
};
ModeSpecOpt sws_opts = {countof(opts), opts, countof(vars), vars, NULL};
exit(1);
}
if( (bscale.wh < 1) ||
- (bscale.wh > 4) ) {
+ (bscale.wh > 8) ) {
fprintf(stderr,"Boxsize out of range. Using default\n");
- bscale.wh = 1;
+ bscale.wh = 2;
}
if (do_dissolve){
des_amt = bscale.wh / MAX_COUNT;
glRotated(0.25,1,0,0);
+ glPushMatrix();
+ glScalef(0.5,0.5,0.5);
+
glColor3f(1,1,1);
glPushMatrix();
glTranslatef(ball.x += mo.x,
ball.y += mo.y,
ball.z += mo.z);
+ glScalef(2,2,2);
glCallList(ballList);
glPopMatrix();
}
+ glPopMatrix();
glFinish();
glXSwapBuffers(dpy, window);
static XrmOptionDescRec opts[] = {
{ "-holdtime", ".holdtime", XrmoptionSepArg, 0 },
{ "-changetime", ".changetime", XrmoptionSepArg, 0 },
- {"-texture", ".texture", XrmoptionNoArg, (caddr_t) "True" },
- {"+texture", ".texture", XrmoptionNoArg, (caddr_t) "False" },
- {"-fog", ".fog", XrmoptionNoArg, (caddr_t) "True" },
- {"+fog", ".fog", XrmoptionNoArg, (caddr_t) "False" },
+ {"-texture", ".texture", XrmoptionNoArg, "True" },
+ {"+texture", ".texture", XrmoptionNoArg, "False" },
+ {"-fog", ".fog", XrmoptionNoArg, "True" },
+ {"+fog", ".fog", XrmoptionNoArg, "False" },
};
static argtype vars[] = {
#define EVENT_MASK PointerMotionMask
#define sws_opts xlockmore_opts
-#define DEF_SPEED "1.0"
+#define DEF_SPEED "0.7"
#define DEF_TEXTURE "(none)"
#define DEFAULTS "*delay: 30000 \n" \
static XrmOptionDescRec opts[] = {
{ "-speed", ".speed", XrmoptionSepArg, 0 },
{"-texture", ".texture", XrmoptionSepArg, 0 },
- {"+texture", ".texture", XrmoptionNoArg, (caddr_t) "(none)" },
+ {"+texture", ".texture", XrmoptionNoArg, "(none)" },
};
static argtype vars[] = {
*/
#ifdef STANDALONE
-# define PROGCLASS "boxed"
-# define HACK_INIT init_boxed
-# define HACK_DRAW draw_boxed
-# define HACK_RESHAPE reshape_boxed
-# define boxed_opts xlockmore_opts
-# define DEFAULTS "*delay: 20000 \n" \
- "*showFPS: False \n" \
-
-# include "xlockmore.h" /* from the xscreensaver distribution */
+# define PROGCLASS "boxed"
+# define HACK_INIT init_boxed
+# define HACK_DRAW draw_boxed
+# define HACK_RESHAPE reshape_boxed
+# define boxed_opts xlockmore_opts
+# define DEFAULTS "*delay: 20000 \n" \
+ "*showFPS: False \n" \
+ "*speed: 0.5 \n" \
+
+# include "xlockmore.h" /* from the xscreensaver distribution */
#else /* !STANDALONE */
-# include "xlock.h" /* from the xlockmore distribution */
+# include "xlock.h" /* from the xlockmore distribution */
#endif /* !STANDALONE */
#ifdef USE_GL
#undef rnd
#define rnd() (frand(1.0))
-/* #define DEF_PLANETARY "False"
+GLfloat speed; /* jwz -- overall speed factor applied to all motion */
-static int planetary;
static XrmOptionDescRec opts[] = {
- {"-planetary", ".gears.planetary", XrmoptionNoArg, (caddr_t) "true" },
- {"+planetary", ".gears.planetary", XrmoptionNoArg, (caddr_t) "false" },
+ {"-speed", ".boxed.speed", XrmoptionSepArg, 0},
};
static argtype vars[] = {
- {&planetary, "planetary", "Planetary", DEF_PLANETARY, t_Bool},
+ {&speed, "speed", "Speed", "1.0", t_Float},
};
-*/
-
-/* ModeSpecOpts boxed_opts = {countof(opts), opts, countof(vars), vars, NULL}; */
-ModeSpecOpt boxed_opts = {0, NULL, 0, NULL, NULL};
+ModeSpecOpt boxed_opts = {countof(opts), opts, countof(vars), vars, NULL};
#ifdef USE_MODULES
/* rendering defines */
+
/* box size */
#define BOX_SIZE 20.0f
#define CAMDISTANCE_SPEED 1.5
/* rendering the sphere */
-#define MESH_SIZE 5
+#define MESH_SIZE 10
#define SPHERE_VERTICES (2+MESH_SIZE*MESH_SIZE*2)
#define SPHERE_INDICES ((MESH_SIZE*4 + MESH_SIZE*4*(MESH_SIZE-1))*3)
* create fresh ball
*/
-void createball(ball *newball) {
+void createball(ball *newball)
+{
float r=0.0f,g=0.0f,b=0.0f;
newball->loc.x = 5-10*rnd();
newball->loc.y = 35+20*rnd();
newball->loc.z = 5-10*rnd();
- newball->dir.x = 0.5f-rnd();
+ newball->dir.x = (0.5f-rnd()) * speed;
newball->dir.y = 0.0;
- newball->dir.z = 0.5-rnd();
+ newball->dir.z = (0.5-rnd()) * speed;
newball->offside = 0;
newball->bounced = FALSE;
newball->radius = BALLSIZE;
/* Update position of each ball */
-void updateballs(ballman *bman) {
+void updateballs(ballman *bman)
+{
register int b,j;
vectorf dvect,richting,relspeed,influence;
GLfloat squaredist;
for (b=0;b<bman->num_balls;b++) {
+ GLfloat gravity = 0.15f * speed;
+
/* apply gravity */
- bman->balls[b].dir.y -= 0.15f;
+ bman->balls[b].dir.y -= gravity;
/* apply movement */
addvectors(&bman->balls[b].loc,&bman->balls[b].loc,&bman->balls[b].dir);
/* boundary check */
* explode ball into triangles
*/
-void createtrisfromball(triman* tman, vectorf *spherev, GLint *spherei, int ind_num, ball *b) {
+void createtrisfromball(triman* tman, vectorf *spherev, GLint *spherei, int ind_num, ball *b)
+{
int pos;
float explosion;
float scale;
/* bereken nieuwe richting */
scalevector(&tman->tris[i].dir,&avgdir,explosion);
- dvect.x = 0.1f - 0.2f*rnd();
- dvect.y = 0.15f - 0.3f*rnd();
- dvect.z = 0.1f - 0.2f*rnd();
+ dvect.x = (0.1f - 0.2f*rnd());
+ dvect.y = (0.15f - 0.3f*rnd());
+ dvect.z = (0.1f - 0.2f*rnd());
addvectors(&tman->tris[i].dir,&tman->tris[i].dir,&dvect);
}
}
* update position of each tri
*/
-void updatetris(triman *t) {
+void updatetris(triman *t)
+{
int b;
GLfloat xd,zd;
for (b=0;b<t->num_tri;b++) {
/* apply gravity */
- t->tris[b].dir.y -= 0.1f;
+ t->tris[b].dir.y -= (0.1f * speed);
/* apply movement */
addvectors(&t->tris[b].loc,&t->tris[b].loc,&t->tris[b].dir);
/* boundary check */
/*
* free memory allocated by a tri manager
*/
-void freetris(triman *t) {
+void freetris(triman *t)
+{
if (!t) return;
if (t->tris) free(t->tris);
if (t->vertices) free(t->vertices);
/*
*load defaults in config structure
*/
-void setdefaultconfig(boxed_config *config) {
+void setdefaultconfig(boxed_config *config)
+{
config->numballs = NUMBALLS;
config->textures = TRUE;
config->transparent = FALSE;
gp->tic += 0.01f;
/* rotate camera around (0,0,0), looking at (0,0,0), up is (0,1,0) */
- dcam = CAMDISTANCE_MIN + (CAMDISTANCE_MAX - CAMDISTANCE_MIN) + (CAMDISTANCE_MAX - CAMDISTANCE_MIN)*cos(gp->tic/CAMDISTANCE_SPEED);
- v1.x = dcam * sin(gp->tic/gp->cam_x_speed);
- v1.z = dcam * cos(gp->tic/gp->cam_z_speed);
- v1.y = CAM_HEIGHT * sin(gp->tic/gp->cam_y_speed) + 1.02 * CAM_HEIGHT;
+ dcam = CAMDISTANCE_MIN + (CAMDISTANCE_MAX - CAMDISTANCE_MIN) + (CAMDISTANCE_MAX - CAMDISTANCE_MIN)*cos((gp->tic/CAMDISTANCE_SPEED) * speed);
+ v1.x = dcam * sin((gp->tic/gp->cam_x_speed) * speed);
+ v1.z = dcam * cos((gp->tic/gp->cam_z_speed) * speed);
+ v1.y = CAM_HEIGHT * sin((gp->tic/gp->cam_y_speed) * speed) + 1.02 * CAM_HEIGHT;
gluLookAt(v1.x,v1.y,v1.z,0.0,0.0,0.0,0.0,1.0,0.0);
glLightfv(GL_LIGHT0, GL_AMBIENT, l0_ambient);
#include <GL/glu.h>
/* Static configuration. */
-#define GLB_SLOW_GL 1 /* Set this if you have a slow GL
+#define GLB_SLOW_GL 0 /* Set this if you have a slow GL
* implementation. If you have an accelerated
* graphics card, set this to 0.
*/
Draw on the root window.
.TP 8
.B \-delay \fInumber\fP
-Per-frame delay, in microseconds. Default: 10000 (0.01 seconds.).
+Per-frame delay, in microseconds. Default: 15000 (0.015 seconds.).
.TP 8
.B \-fps | \-no-fps
Whether to show a frames-per-second display at the bottom of the screen.
* In real OpenGL, PseudoColor DO NOT support texture map (as far as I know).
*/
-#ifdef VMS
-/*-
- * due to a Bug/feature in VMS X11/Intrinsic.h has to be placed before xlock.
- * otherwise caddr_t is not defined correctly
- */
-#include <X11/Intrinsic.h>
-#endif
-
#ifdef STANDALONE
# define MODE_cage
# define PROGCLASS "Cage"
{"-parts", ".circuit.parts", XrmoptionSepArg, "10" },
{"-font", ".circuit.font", XrmoptionSepArg, "fixed" },
{"-rotate-speed", ".circuit.rotatespeed", XrmoptionSepArg, "1" },
- {"+spin", ".circuit.spin", XrmoptionNoArg, (caddr_t) "false" },
- {"-spin", ".circuit.spin", XrmoptionNoArg, (caddr_t) "true" },
- {"+light", ".circuit.light", XrmoptionNoArg, (caddr_t) "false" },
- {"-light", ".circuit.light", XrmoptionNoArg, (caddr_t) "true" },
- {"+seven", ".circuit.seven", XrmoptionNoArg, (caddr_t) "false" },
- {"-seven", ".circuit.seven", XrmoptionNoArg, (caddr_t) "true" },
- {"+rotate", ".circuit.rotate", XrmoptionNoArg, (caddr_t) "false" },
- {"-rotate", ".circuit.rotate", XrmoptionNoArg, (caddr_t) "true" },
+ {"+spin", ".circuit.spin", XrmoptionNoArg, "false" },
+ {"-spin", ".circuit.spin", XrmoptionNoArg, "true" },
+ {"+light", ".circuit.light", XrmoptionNoArg, "false" },
+ {"-light", ".circuit.light", XrmoptionNoArg, "true" },
+ {"+seven", ".circuit.seven", XrmoptionNoArg, "false" },
+ {"-seven", ".circuit.seven", XrmoptionNoArg, "true" },
+ {"+rotate", ".circuit.rotate", XrmoptionNoArg, "false" },
+ {"-rotate", ".circuit.rotate", XrmoptionNoArg, "true" },
};
static argtype vars[] = {
#define MAX_COMPONENTS 30
-#define MOVE_MULT 0.05
+#define MOVE_MULT 0.02
static float f_rand(void) {
return ((float)RAND(10000)/(float)10000);
c->rotx = f_rand();
c->roty = f_rand();
c->rotz = f_rand();
- c->drot = f_rand() * 7;
+ c->drot = f_rand() * 3;
c->rdeg = 0;
c->dz = f_rand()*2 - 1;
c->norm = 0;
#define DEF_WAVE_SPEED "80"
#define DEF_WAVE_RADIUS "512"
-#define DEFAULTS "*delay: 30000 \n" \
+#define DEFAULTS "*delay: 20000 \n" \
"*count: 5 \n" \
"*showFPS: False \n" \
"*wireframe: False \n" \
{ "+spin", ".spin", XrmoptionNoArg, "" },
{ "-wander", ".wander", XrmoptionNoArg, "True" },
{ "+wander", ".wander", XrmoptionNoArg, "False" },
- {"-texture", ".texture", XrmoptionNoArg, (caddr_t) "true" },
- {"+texture", ".texture", XrmoptionNoArg, (caddr_t) "false" },
+ {"-texture", ".texture", XrmoptionNoArg, "true" },
+ {"+texture", ".texture", XrmoptionNoArg, "false" },
{"-waves", ".waves", XrmoptionSepArg, 0 },
{"-wave-speed", ".waveSpeed", XrmoptionSepArg, 0 },
{"-wave-radius", ".waveRadius", XrmoptionSepArg, 0 },
{
double spin_speed = 10.0;
- double wander_speed = 0.15;
+ double wander_speed = 0.12;
double spin_accel = 2.0;
bp->rot = make_rotator (do_spin ? spin_speed : 0,
#define countof(x) (sizeof((x))/sizeof((*x)))
static XrmOptionDescRec opts[] = {
- {"+rotate", ".chess.rotate", XrmoptionNoArg, (caddr_t) "false" },
- {"-rotate", ".chess.rotate", XrmoptionNoArg, (caddr_t) "true" },
- {"+reflections", ".chess.reflections", XrmoptionNoArg, (caddr_t) "false" },
- {"-reflections", ".chess.reflections", XrmoptionNoArg, (caddr_t) "true" },
- {"+shadows", ".chess.shadows", XrmoptionNoArg, (caddr_t) "false" },
- {"-shadows", ".chess.shadows", XrmoptionNoArg, (caddr_t) "true" },
- {"+smooth", ".chess.smooth", XrmoptionNoArg, (caddr_t) "false" },
- {"-smooth", ".chess.smooth", XrmoptionNoArg, (caddr_t) "true" },
+ {"+rotate", ".chess.rotate", XrmoptionNoArg, "false" },
+ {"-rotate", ".chess.rotate", XrmoptionNoArg, "true" },
+ {"+reflections", ".chess.reflections", XrmoptionNoArg, "false" },
+ {"-reflections", ".chess.reflections", XrmoptionNoArg, "true" },
+ {"+shadows", ".chess.shadows", XrmoptionNoArg, "false" },
+ {"-shadows", ".chess.shadows", XrmoptionNoArg, "true" },
+ {"+smooth", ".chess.smooth", XrmoptionNoArg, "false" },
+ {"-smooth", ".chess.smooth", XrmoptionNoArg, "true" },
};
int rotate, reflections, smooth, shadows;
#define DEF_SPIN "True"
#define DEF_WANDER "True"
-#define DEFAULTS "*delay: 10000 \n" \
+#define DEFAULTS "*delay: 30000 \n" \
"*showFPS: False \n" \
"*move: True \n" \
"*spin: True \n" \
static XrmOptionDescRec opts[] = {
{"-engine", ".engine.engine", XrmoptionSepArg, DEF_ENGINE },
- {"-move", ".engine.move", XrmoptionNoArg, (caddr_t) "True" },
- {"+move", ".engine.move", XrmoptionNoArg, (caddr_t) "False" },
- {"-spin", ".engine.spin", XrmoptionNoArg, (caddr_t) "True" },
- {"+spin", ".engine.spin", XrmoptionNoArg, (caddr_t) "False" },
- { "-titles", ".engine.titles", XrmoptionNoArg, (caddr_t) "True" },
- { "+titles", ".engine.titles", XrmoptionNoArg, (caddr_t) "False" },
+ {"-move", ".engine.move", XrmoptionNoArg, "True" },
+ {"+move", ".engine.move", XrmoptionNoArg, "False" },
+ {"-spin", ".engine.spin", XrmoptionNoArg, "True" },
+ {"+spin", ".engine.spin", XrmoptionNoArg, "False" },
+ { "-titles", ".engine.titles", XrmoptionNoArg, "True" },
+ { "+titles", ".engine.titles", XrmoptionNoArg, "False" },
};
static argtype vars[] = {
}
{
- double spin_speed = 1.0;
- double wander_speed = 0.03;
+ double spin_speed = 0.5;
+ double wander_speed = 0.01;
e->rot = make_rotator (spin ? spin_speed : 0,
spin ? spin_speed : 0,
* which can be obtained from http://www.linas.org/gle/index.html
*/
-/*-
- * due to a Bug/feature in VMS X11/Intrinsic.h has to be placed before xlock.
- * otherwise caddr_t is not defined correctly
- */
-
-#include <X11/Intrinsic.h>
-
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
static char *which_image;
static XrmOptionDescRec opts[] = {
- {"-light", ".extrusion.light", XrmoptionNoArg, (caddr_t) "true" },
- {"+light", ".extrusion.light", XrmoptionNoArg, (caddr_t) "false" },
- {"-wire", ".extrusion.wire", XrmoptionNoArg, (caddr_t) "true" },
- {"+wire", ".extrusion.wire", XrmoptionNoArg, (caddr_t) "false" },
- {"-texture", ".extrusion.texture", XrmoptionNoArg, (caddr_t) "true" },
- {"+texture", ".extrusion.texture", XrmoptionNoArg, (caddr_t) "false" },
- {"-texture", ".extrusion.texture", XrmoptionNoArg, (caddr_t) "true" },
- {"+texture_quality", ".extrusion.texture", XrmoptionNoArg, (caddr_t) "false" },
- {"-texture_quality", ".extrusion.texture", XrmoptionNoArg, (caddr_t) "true" },
- {"+mipmap", ".extrusion.mipmap", XrmoptionNoArg, (caddr_t) "false" },
- {"-mipmap", ".extrusion.mipmap", XrmoptionNoArg, (caddr_t) "true" },
- {"-name", ".extrusion.name", XrmoptionSepArg, (caddr_t) NULL },
- {"-image", ".extrusion.image", XrmoptionSepArg, (caddr_t) NULL },
+ {"-light", ".extrusion.light", XrmoptionNoArg, "true" },
+ {"+light", ".extrusion.light", XrmoptionNoArg, "false" },
+ {"-wire", ".extrusion.wire", XrmoptionNoArg, "true" },
+ {"+wire", ".extrusion.wire", XrmoptionNoArg, "false" },
+ {"-texture", ".extrusion.texture", XrmoptionNoArg, "true" },
+ {"+texture", ".extrusion.texture", XrmoptionNoArg, "false" },
+ {"-texture", ".extrusion.texture", XrmoptionNoArg, "true" },
+ {"+texture_quality", ".extrusion.texture", XrmoptionNoArg, "false" },
+ {"-texture_quality", ".extrusion.texture", XrmoptionNoArg, "true" },
+ {"+mipmap", ".extrusion.mipmap", XrmoptionNoArg, "false" },
+ {"-mipmap", ".extrusion.mipmap", XrmoptionNoArg, "true" },
+ {"-name", ".extrusion.name", XrmoptionSepArg, 0 },
+ {"-image", ".extrusion.image", XrmoptionSepArg, 0 },
};
glClearColor(0,0,0,0);
/* glCullFace(GL_BACK); */
/* glEnable(GL_CULL_FACE); */
- glLightModeli (GL_LIGHT_MODEL_TWO_SIDE, TRUE);
+ glLightModeli (GL_LIGHT_MODEL_TWO_SIDE, True);
glShadeModel(GL_SMOOTH);
if (do_light)
#define countof(x) (sizeof((x))/sizeof((*x)))
static XrmOptionDescRec opts[] = {
- {"+rotate", ".flipflop.rotate", XrmoptionNoArg, (caddr_t) "false" },
- {"-rotate", ".flipflop.rotate", XrmoptionNoArg, (caddr_t) "true" },
+ {"+rotate", ".flipflop.rotate", XrmoptionNoArg, "false" },
+ {"-rotate", ".flipflop.rotate", XrmoptionNoArg, "true" },
};
static int rotate, wire, clearbits;
static argtype vars[] = {
- {(caddr_t *) &rotate, "rotate", "Rotate", "True", t_Bool},
+ { &rotate, "rotate", "Rotate", "True", t_Bool},
};
ModeSpecOpt flipflop_opts = {countof(opts), opts, countof(vars), vars, NULL};
static XrmOptionDescRec opts[] = {
- {"+rotate", ".screenflip.rotate", XrmoptionNoArg, (caddr_t) "false" },
- {"-rotate", ".screenflip.rotate", XrmoptionNoArg, (caddr_t) "true" },
+ {"+rotate", ".screenflip.rotate", XrmoptionNoArg, "false" },
+ {"-rotate", ".screenflip.rotate", XrmoptionNoArg, "true" },
};
static const char sccsid[] = "@(#)flurry.c 4.07 97/11/24 xlockmore";
#endif
-/*-
- * due to a Bug/feature in VMS X11/Intrinsic.h has to be placed before xlock.
- * otherwise caddr_t is not defined correctly
- */
-
#define DEF_PRESET "classic"
#define DEF_BRIGHTNESS "8"
{ "-speed", ".speed", XrmoptionSepArg, 0 },
{ "-ntoasters", ".ntoasters", XrmoptionSepArg, 0 },
{ "-nslices", ".nslices", XrmoptionSepArg, 0 },
- {"-texture", ".texture", XrmoptionNoArg, (caddr_t) "True" },
- {"+texture", ".texture", XrmoptionNoArg, (caddr_t) "False" },
+ {"-texture", ".texture", XrmoptionNoArg, "True" },
+ {"+texture", ".texture", XrmoptionNoArg, "False" },
};
static argtype vars[] = {
* been fixed in MesaGL 2.2 and later releases.
*/
-/*-
- * due to a Bug/feature in VMS X11/Intrinsic.h has to be placed before xlock.
- * otherwise caddr_t is not defined correctly
- */
-
-#include <X11/Intrinsic.h>
-
#ifdef STANDALONE
# define PROGCLASS "Gears"
# define HACK_INIT init_gears
static int planetary;
static XrmOptionDescRec opts[] = {
- {"-planetary", ".gears.planetary", XrmoptionNoArg, (caddr_t) "true" },
- {"+planetary", ".gears.planetary", XrmoptionNoArg, (caddr_t) "false" },
+ {"-planetary", ".gears.planetary", XrmoptionNoArg, "true" },
+ {"+planetary", ".gears.planetary", XrmoptionNoArg, "false" },
};
static argtype vars[] = {
*/
-/*-
- * due to a Bug/feature in VMS X11/Intrinsic.h has to be placed before xlock.
- * otherwise caddr_t is not defined correctly
- */
-
-#include <X11/Intrinsic.h>
-
-
#ifdef STANDALONE
# define PROGCLASS "gflux"
# define HACK_INIT init_gflux
#define HEIGHT 240
static XrmOptionDescRec opts[] = {
- {"-squares", ".gflux.squares", XrmoptionSepArg, (caddr_t) NULL},
- {"-resolution", ".gflux.resolution", XrmoptionSepArg, (caddr_t) NULL},
-/* {"-draw", ".gflux.draw", XrmoptionSepArg, (caddr_t) NULL},*/
- {"-mode", ".gflux.mode", XrmoptionSepArg, (caddr_t) NULL},
- {"-flat", ".gflux.flat", XrmoptionSepArg, (caddr_t) NULL},
- {"-speed", ".gflux.speed", XrmoptionSepArg, (caddr_t) NULL},
- {"-rotationx", ".gflux.rotationx", XrmoptionSepArg, (caddr_t) NULL},
- {"-rotationy", ".gflux.rotationy", XrmoptionSepArg, (caddr_t) NULL},
- {"-rotationz", ".gflux.rotationz", XrmoptionSepArg, (caddr_t) NULL},
- {"-waves", ".gflux.waves", XrmoptionSepArg, (caddr_t) NULL},
- {"-waveChange", ".gflux.waveChange", XrmoptionSepArg, (caddr_t) NULL},
- {"-waveHeight", ".gflux.waveHeight", XrmoptionSepArg, (caddr_t) NULL},
- {"-waveFreq", ".gflux.waveFreq", XrmoptionSepArg, (caddr_t) NULL},
- {"-zoom", ".gflux.zoom", XrmoptionSepArg, (caddr_t) NULL},
+ {"-squares", ".gflux.squares", XrmoptionSepArg, 0},
+ {"-resolution", ".gflux.resolution", XrmoptionSepArg, 0},
+/* {"-draw", ".gflux.draw", XrmoptionSepArg, 0},*/
+ {"-mode", ".gflux.mode", XrmoptionSepArg, 0},
+ {"-flat", ".gflux.flat", XrmoptionSepArg, 0},
+ {"-speed", ".gflux.speed", XrmoptionSepArg, 0},
+ {"-rotationx", ".gflux.rotationx", XrmoptionSepArg, 0},
+ {"-rotationy", ".gflux.rotationy", XrmoptionSepArg, 0},
+ {"-rotationz", ".gflux.rotationz", XrmoptionSepArg, 0},
+ {"-waves", ".gflux.waves", XrmoptionSepArg, 0},
+ {"-waveChange", ".gflux.waveChange", XrmoptionSepArg, 0},
+ {"-waveHeight", ".gflux.waveHeight", XrmoptionSepArg, 0},
+ {"-waveFreq", ".gflux.waveFreq", XrmoptionSepArg, 0},
+ {"-zoom", ".gflux.zoom", XrmoptionSepArg, 0},
};
static XrmOptionDescRec opts[] =
{
#ifdef GRAB
- {"-grab", (char *) ".gleidescope.grab", XrmoptionNoArg, "true"},
+ {"-grab", ".gleidescope.grab", XrmoptionNoArg, "true"},
#endif
- {"-move", (char *) ".gleidescope.move", XrmoptionNoArg, "true"},
- {"-no-move", (char *) ".gleidescope.nomove", XrmoptionNoArg, "true"},
- {"-rotate", (char *) ".gleidescope.rotate", XrmoptionNoArg, "true"},
- {"-no-rotate", (char *) ".gleidescope.norotate", XrmoptionNoArg, "true"},
- /*{"-size", (char *) ".gleidescope.size", XrmoptionNoArg, "-1"},*/
- {"-zoom", (char *) ".gleidescope.zoom", XrmoptionNoArg, "true"},
- {"-no-zoom", (char *) ".gleidescope.nozoom", XrmoptionNoArg, "true"},
- {"-image", (char *) ".gleidescope.image", XrmoptionSepArg, "DEFAULT"},
- {"-duration", (char *) ".gleidescope.duration", XrmoptionSepArg, "30"},
+ {"-move", ".gleidescope.move", XrmoptionNoArg, "true"},
+ {"-no-move", ".gleidescope.nomove", XrmoptionNoArg, "true"},
+ {"-rotate", ".gleidescope.rotate", XrmoptionNoArg, "true"},
+ {"-no-rotate", ".gleidescope.norotate", XrmoptionNoArg, "true"},
+ /*{"-size", ".gleidescope.size", XrmoptionNoArg, "-1"},*/
+ {"-zoom", ".gleidescope.zoom", XrmoptionNoArg, "true"},
+ {"-no-zoom", ".gleidescope.nozoom", XrmoptionNoArg, "true"},
+ {"-image", ".gleidescope.image", XrmoptionSepArg, "DEFAULT"},
+ {"-duration", ".gleidescope.duration", XrmoptionSepArg, "30"},
};
static argtype vars[] = {
#ifdef GRAB
- {(caddr_t *) &grab, "grab", "Grab", "False", t_Bool},
+ {&grab, "grab", "Grab", "False", t_Bool},
#endif
- {(caddr_t *) &move, "move", "Move", "False", t_Bool},
- {(caddr_t *) &nomove, "nomove", "noMove", "False", t_Bool},
- {(caddr_t *) &rotate, "rotate", "Rotate", "False", t_Bool},
- {(caddr_t *) &norotate, "norotate", "noRotate", "False", t_Bool},
- /*{(caddr_t *) &size, "size", "Size", "-1", t_Int},*/
- {(caddr_t *) &zoom, "zoom", "Zoom", "False", t_Bool},
- {(caddr_t *) &nozoom, "nozoom", "noZoom", "False", t_Bool},
- {(caddr_t *) &image, "image", "Image", "DEFAULT", t_String},
- {(caddr_t *) &duration, "duration", "Duration", "30", t_Int},
+ {&move, "move", "Move", "False", t_Bool},
+ {&nomove, "nomove", "noMove", "False", t_Bool},
+ {&rotate, "rotate", "Rotate", "False", t_Bool},
+ {&norotate, "norotate", "noRotate", "False", t_Bool},
+ /*{&size, "size", "Size", "-1", t_Int},*/
+ {&zoom, "zoom", "Zoom", "False", t_Bool},
+ {&nozoom, "nozoom", "noZoom", "False", t_Bool},
+ {&image, "image", "Image", "DEFAULT", t_String},
+ {&duration, "duration", "Duration", "30", t_Int},
};
static OptionStruct desc[] = {
* of Mesa (Mesa-3.2/3Dfx/demos/). This mode is the result of the merge of
* two of the David's demos (fire and rain).
*
- * Eric Lassauge (October-10-2000) <lassauge@mail.dotcom.fr>
+ * Eric Lassauge (October-10-2000) <lassauge@users.sourceforge.net>
* http://lassauge.free.fr/linux.html
*
* REVISION HISTORY:
static XFontStruct *mode_font = None;
static XrmOptionDescRec opts[] = {
- {(char *) "-texture", (char *) ".fire.texture", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+texture", (char *) ".fire.texture", XrmoptionNoArg, (caddr_t) "off"},
- {(char *) "-fog", (char *) ".fire.fog", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+fog", (char *) ".fire.fog", XrmoptionNoArg, (caddr_t) "off"},
- {(char *) "-shadows", (char *) ".fire.shadows", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+shadows", (char *) ".fire.shadows", XrmoptionNoArg, (caddr_t) "off"},
- {(char *) "-trackmouse", (char *) ".fire.trackmouse", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+trackmouse", (char *) ".fire.trackmouse", XrmoptionNoArg, (caddr_t) "off"},
- {(char *) "-wander", (char *) ".fire.wander", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+wander", (char *) ".fire.wander", XrmoptionNoArg, (caddr_t) "off"},
- {(char *) "-trees", (char *) ".fire.trees", XrmoptionSepArg, (caddr_t) NULL},
- {(char *) "-rain", (char *) ".fire.count", XrmoptionNoArg, (caddr_t) "0"},
+ {"-texture", ".fire.texture", XrmoptionNoArg, "on"},
+ {"+texture", ".fire.texture", XrmoptionNoArg, "off"},
+ {"-fog", ".fire.fog", XrmoptionNoArg, "on"},
+ {"+fog", ".fire.fog", XrmoptionNoArg, "off"},
+ {"-shadows", ".fire.shadows", XrmoptionNoArg, "on"},
+ {"+shadows", ".fire.shadows", XrmoptionNoArg, "off"},
+ {"-trackmouse", ".fire.trackmouse", XrmoptionNoArg, "on"},
+ {"+trackmouse", ".fire.trackmouse", XrmoptionNoArg, "off"},
+ {"-wander", ".fire.wander", XrmoptionNoArg, "on"},
+ {"+wander", ".fire.wander", XrmoptionNoArg, "off"},
+ {"-trees", ".fire.trees", XrmoptionSepArg, 0},
+ {"-rain", ".fire.count", XrmoptionNoArg, "0"},
};
};
static OptionStruct desc[] = {
- {(char *) "-/+texture", (char *) "turn on/off texturing"},
- {(char *) "-/+fog", (char *) "turn on/off fog"},
- {(char *) "-/+shadows", (char *) "turn on/off shadows"},
- {(char *) "-/+trackmouse", (char *) "turn on/off the tracking of the mouse"},
- {(char *) "-/+wander", (char *) "turn on/off wandering"},
- {(char *) "-trees num", (char *) "number of trees (0 disables)"},
+ {"-/+texture", "turn on/off texturing"},
+ {"-/+fog", "turn on/off fog"},
+ {"-/+shadows", "turn on/off shadows"},
+ {"-/+trackmouse", "turn on/off the tracking of the mouse"},
+ {"-/+wander", "turn on/off wandering"},
+ {"-trees num", "number of trees (0 disables)"},
};
ModeSpecOpt fire_opts =
*/
-/*-
- * due to a Bug/feature in VMS X11/Intrinsic.h has to be placed before xlock.
- * otherwise caddr_t is not defined correctly
- */
-
-#include <X11/Intrinsic.h>
-
#ifdef STANDALONE
# define PROGCLASS "Planet"
# define HACK_INIT init_planet
# define HACK_HANDLE_EVENT planet_handle_event
# define EVENT_MASK PointerMotionMask
# define planet_opts xlockmore_opts
-#define DEFAULTS "*delay: 15000 \n" \
+#define DEFAULTS "*delay: 20000 \n" \
"*showFPS: False \n" \
"*rotate: True \n" \
"*roll: True \n" \
#define DEF_TEXTURE "True"
#define DEF_STARS "True"
#define DEF_LIGHT "True"
-#define DEF_RESOLUTION "64"
+#define DEF_RESOLUTION "128"
#define DEF_IMAGE "BUILTIN"
#undef countof
static int resolution;
static XrmOptionDescRec opts[] = {
- {"-rotate", ".glplanet.rotate", XrmoptionNoArg, (caddr_t) "true" },
- {"+rotate", ".glplanet.rotate", XrmoptionNoArg, (caddr_t) "false" },
- {"-roll", ".glplanet.roll", XrmoptionNoArg, (caddr_t) "true" },
- {"+roll", ".glplanet.roll", XrmoptionNoArg, (caddr_t) "false" },
- {"-wander", ".glplanet.wander", XrmoptionNoArg, (caddr_t) "true" },
- {"+wander", ".glplanet.wander", XrmoptionNoArg, (caddr_t) "false" },
- {"-texture", ".glplanet.texture", XrmoptionNoArg, (caddr_t) "true" },
- {"+texture", ".glplanet.texture", XrmoptionNoArg, (caddr_t) "false" },
- {"-stars", ".glplanet.stars", XrmoptionNoArg, (caddr_t) "true" },
- {"+stars", ".glplanet.stars", XrmoptionNoArg, (caddr_t) "false" },
- {"-light", ".glplanet.light", XrmoptionNoArg, (caddr_t) "true" },
- {"+light", ".glplanet.light", XrmoptionNoArg, (caddr_t) "false" },
- {"-image", ".glplanet.image", XrmoptionSepArg, (caddr_t) 0 },
- {"-resolution", ".glplanet.resolution", XrmoptionSepArg, (caddr_t) 0 },
+ {"-rotate", ".glplanet.rotate", XrmoptionNoArg, "true" },
+ {"+rotate", ".glplanet.rotate", XrmoptionNoArg, "false" },
+ {"-roll", ".glplanet.roll", XrmoptionNoArg, "true" },
+ {"+roll", ".glplanet.roll", XrmoptionNoArg, "false" },
+ {"-wander", ".glplanet.wander", XrmoptionNoArg, "true" },
+ {"+wander", ".glplanet.wander", XrmoptionNoArg, "false" },
+ {"-texture", ".glplanet.texture", XrmoptionNoArg, "true" },
+ {"+texture", ".glplanet.texture", XrmoptionNoArg, "false" },
+ {"-stars", ".glplanet.stars", XrmoptionNoArg, "true" },
+ {"+stars", ".glplanet.stars", XrmoptionNoArg, "false" },
+ {"-light", ".glplanet.light", XrmoptionNoArg, "true" },
+ {"+light", ".glplanet.light", XrmoptionNoArg, "false" },
+ {"-image", ".glplanet.image", XrmoptionSepArg, 0 },
+ {"-resolution", ".glplanet.resolution", XrmoptionSepArg, 0 },
};
static argtype vars[] = {
}
{
- double spin_speed = 1.0;
- double wander_speed = 0.05;
+ double spin_speed = 0.5;
+ double wander_speed = 0.02;
gp->rot = make_rotator (do_roll ? spin_speed : 0,
do_roll ? spin_speed : 0,
0, 1,
glRotatef (gp->z * 360, 0.0, 0.0, 1.0);
if (do_rotate && !gp->button_down_p)
{
- gp->z -= 0.01; /* the sun sets in the west */
+ gp->z -= 0.005; /* the sun sets in the west */
if (gp->z < 0) gp->z += 1;
}
* software for any purpose. It is provided "as is" without express or
* implied warranty.
*
+ * TODO:
+ *
+ * - Resizing the window makes everything go black forevermore. No idea why.
+ *
+ *
+ * - When a new image is loaded, there is a glitch: animation pauses during
+ * the period when we're loading the image-to-fade-in. On fast (2GHz)
+ * machines, this stutter is short but noticable (usually less than half a
+ * second.) On slower machines, it can be much more pronounced.
+ *
+ * In xscreensaver 4.17, I added the new functions fork_load_random_image()
+ * and fork_screen_to_ximage() to make it possible to do image loading in
+ * the background, in an attempt to solve this (the idea being to only swap
+ * in the new image once it has been loaded.) Using those routines, we
+ * continue animating while the file system is being searched for an image
+ * file; while that image data is read, parsed, and decompressed; while that
+ * data is placed on a Pixmap in the X server.
+ *
+ * However, two things still happen in the "parent" (glslideshow) process:
+ * converting that server-side Pixmap to a client-side XImage (XGetImage);
+ * and converting that XImage to an OpenGL texture (gluBuild2DMipmaps).
+ * It's possible that some new code would allow us to do the Pixmap-to-XImage
+ * conversion in the forked process (feed it back upstream through a pipe or
+ * SHM segment or something); however, it turns out that significant
+ * parent-process image-loading time is being spent in gluBuild2DMipmaps().
+ *
+ * So, the next step would be to figure out some way to create a texture on
+ * the other end of the fork that would be usable by the parent process. Is
+ * that even possible? Is it possible to use a single GLX context in a
+ * multithreaded way like that? (Or use a second GLX context, but allow the
+ * two contexts to share data?)
+ *
+ * Another question remains: is the stalling happening in the GL/GLX
+ * libraries, or are we actually seeing a stall on the graphics pipeline?
+ * If the latter, then no amount of threading would help, because the
+ * bottleneck is pushing the bits from system memory to the graphics card.
+ *
+ * How does Apple do this with their MacOSX slideshow screen saver? Perhaps
+ * it's easier for them because their OpenGL libraries have thread support
+ * at a lower level?
+ *
+ *
+ * - Even if the glitch was solved, there's still a bug in the background
+ * loading of images: as soon as the image comes in, we slap it into place
+ * in the target quad. This can lead to an image being changed while it is
+ * still being drawn, if that quad happens to be visible already. Instead,
+ * when the callback goes off, we should make sure to load it into the
+ * invisible quad, or if both are visible, we should wait until one goes
+ * invisible and then load it there (in other words, wait for the next
+ * fade-out to end.)
*/
#include <X11/Intrinsic.h>
Bool low_fps_p; /* Whether we have compensated for a low
frame rate. */
+ Bool fork_p; /* threaded image loading; #### still buggy */
+
XFontStruct *xfont;
GLuint font_dlist;
ModeSpecOpt slideshow_opts = {countof(opts), opts, countof(vars), vars, NULL};
+static const char *
+blurb (void)
+{
+ static char buf[255];
+ time_t now = time ((time_t *) 0);
+ char *ct = (char *) ctime (&now);
+ int n = strlen(progname);
+ if (n > 100) n = 99;
+ strncpy(buf, progname, n);
+ buf[n++] = ':';
+ buf[n++] = ' ';
+ strncpy(buf+n, ct+11, 8);
+ strcpy(buf+n+9, ": ");
+ return buf;
+}
+
+
/* Returns the current time in seconds as a double.
*/
static double
if (debug_p)
fprintf (stderr, "%s: debug: shrinking image %dx%d -> %dx%d\n",
- progname, ximage->width, ximage->height, w2, h2);
+ blurb(), ximage->width, ximage->height, w2, h2);
ximage2 = XCreateImage (MI_DISPLAY (mi), mi->xgwa.visual,
32, ZPixmap, 0, 0,
if (!ximage2->data)
{
fprintf (stderr, "%s: out of memory (scaling %dx%d image to %dx%d)\n",
- progname, ximage->width, ximage->height, w2, h2);
+ blurb(), ximage->width, ximage->height, w2, h2);
exit (1);
}
for (y = 0; y < h2; y++)
/* Load a new image into a texture for the given quad.
*/
static void
-load_quad (ModeInfo *mi, gls_quad *q)
+load_quad_1 (ModeInfo *mi, gls_quad *q, XImage *ximage,
+ const char *filename, double start_time, double cvt_time)
{
slideshow_state *ss = &sss[MI_SCREEN(mi)];
- XImage *ximage;
int status;
int max_reduction = 7;
int err_count = 0;
int wire = MI_IS_WIREFRAME(mi);
+ double load_time=0, mipmap_time=0; /* for debugging messages */
- if (q->state != DEAD) abort();
+ /* if (q->state != DEAD) abort(); */
/* Figure out which texid is currently in use, and pick the other one.
*/
ss->current_texid = tid;
}
- if (debug_p)
- fprintf (stderr, "%s: debug: loading image %d (%dx%d)\n",
- progname, q->texid, mi->xgwa.width, mi->xgwa.height);
-
if (wire)
goto DONE;
if (q->title) free (q->title);
- q->title = 0;
- ximage = screen_to_ximage (mi->xgwa.screen, mi->window, &q->title);
+ q->title = (filename ? strdup (filename) : 0);
if (q->title) /* strip filename to part after last /. */
{
}
if (debug_p)
- fprintf (stderr, "%s: debug: loaded image %d (%s)\n",
- progname, q->texid, (q->title ? q->title : "(null)"));
+ {
+ fprintf (stderr, "%s: debug: loaded image %d: \"%s\"\n",
+ blurb(), q->texid, (q->title ? q->title : "(null)"));
+ load_time = double_time();
+ }
glBindTexture (GL_TEXTURE_2D, q->texid);
glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
"%s: GLU said: \"%s\".\n"
"%s: probably this means "
"\"your video card is worthless and weak\"?\n\n",
- progname, MI_WIDTH(mi), MI_HEIGHT(mi),
+ blurb(), MI_WIDTH(mi), MI_HEIGHT(mi),
ximage->width, ximage->height,
- progname, s,
- progname);
+ blurb(), s,
+ blurb());
exit (1);
}
else
{
if (debug_p)
fprintf (stderr, "%s: debug: mipmap error (%dx%d): %s\n",
- progname, ximage->width, ximage->height, s);
+ blurb(), ximage->width, ximage->height, s);
shrink_image (mi, ximage);
goto AGAIN;
}
ximage->data = 0;
XDestroyImage(ximage);
+ if (debug_p)
+ {
+ fprintf (stderr, "%s: debug: mipmapped image %d: %dx%d\n",
+ blurb(), q->texid, mi->xgwa.width, mi->xgwa.height);
+ mipmap_time = double_time();
+ }
+
+ if (cvt_time == 0)
+ cvt_time = load_time;
+ if (debug_p)
+ fprintf (stderr,
+ "%s: debug: load time elapsed: %.2f + %.2f + %.2f = %.2f sec\n",
+ blurb(),
+ cvt_time - start_time,
+ load_time - cvt_time,
+ mipmap_time - load_time,
+ mipmap_time - start_time);
+
DONE:
/* Re-set "now" so that time spent loading the image file does not count
}
+static void slideshow_load_cb (Screen *, Window, XImage *,
+ const char *filename, void *closure,
+ double cvt_time);
+
+typedef struct {
+ ModeInfo *mi;
+ gls_quad *q;
+ double start_time;
+} img_load_closure;
+
+
+/* Load a new image into a texture for the given quad.
+ */
+static void
+load_quad (ModeInfo *mi, gls_quad *q)
+{
+ slideshow_state *ss = &sss[MI_SCREEN(mi)];
+ img_load_closure *data;
+
+ if (debug_p)
+ fprintf (stderr, "%s: debug: loading image %d: %dx%d\n",
+ blurb(), q->texid, mi->xgwa.width, mi->xgwa.height);
+
+ if (q->state != DEAD) abort();
+ if (q->title) free (q->title);
+ q->title = 0;
+
+ if (MI_IS_WIREFRAME(mi))
+ return;
+
+ data = (img_load_closure *) calloc (1, sizeof(*data));
+ data->mi = mi;
+ data->q = q;
+ data->start_time = double_time();
+
+ if (ss->fork_p)
+ {
+ fork_screen_to_ximage (mi->xgwa.screen, mi->window,
+ slideshow_load_cb, data);
+ }
+ else
+ {
+ char *title = 0;
+ XImage *ximage = screen_to_ximage (mi->xgwa.screen, mi->window, &title);
+ slideshow_load_cb (mi->xgwa.screen, mi->window, ximage, title, data, 0);
+ }
+}
+
+
+static void
+slideshow_load_cb (Screen *screen, Window window, XImage *ximage,
+ const char *filename, void *closure, double cvt_time)
+{
+ img_load_closure *data = (img_load_closure *) closure;
+ load_quad_1 (data->mi, data->q, ximage, filename,
+ data->start_time, cvt_time);
+ memset (data, 0, sizeof (*data));
+ free (data);
+}
+
+
void
reshape_slideshow (ModeInfo *mi, int width, int height)
{
event->xany.type == VisibilityNotify)
{
if (debug_p)
- fprintf (stderr, "%s: debug: exposure\n", progname);
+ fprintf (stderr, "%s: debug: exposure\n", blurb());
ss->redisplay_needed_p = True;
return True;
}
}
+/* Kludge to add "-v" to invocation of "xscreensaver-getimage" in -debug mode
+ */
+static void
+hack_resources (void)
+{
+#if 0
+ char *res = "desktopGrabber";
+ char *val = get_string_resource (res, "DesktopGrabber");
+ char buf1[255];
+ char buf2[255];
+ XrmValue value;
+ sprintf (buf1, "%.100s.%.100s", progclass, res);
+ sprintf (buf2, "%.200s -v", val);
+ value.addr = buf2;
+ value.size = strlen(buf2);
+ XrmPutResource (&db, buf1, "String", &value);
+#endif
+}
+
+
void
init_slideshow (ModeInfo *mi)
{
MI_CLEARWINDOW(mi);
}
+ if (debug_p)
+ fprintf (stderr, "%s: debug: pan: %d; fade: %d; img: %d; zoom: %d%%\n",
+ blurb(), pan_seconds, fade_seconds, image_seconds, zoom);
+
sanity_check(mi);
if (debug_p)
fprintf (stderr, "%s: debug: pan: %d; fade: %d; img: %d; zoom: %d%%\n",
- progname, pan_seconds, fade_seconds, image_seconds, zoom);
+ blurb(), pan_seconds, fade_seconds, image_seconds, zoom);
if (! wire)
{
q->state = DEAD;
}
+ if (debug_p)
+ hack_resources();
+
load_quad (mi, &ss->quads[0]);
ss->quads[0].state = IN;
ss->redisplay_needed_p = True;
+
+ ss->fork_p = 0; /* #### buggy */
+
}
if (debug_p)
fprintf (stderr, "%s: debug: %s %3d frames %2d sec %4.1f fps\n",
- progname, which, frames, secs, fps);
+ blurb(), which, frames, secs, fps);
if (fps < fps_cutoff && !ss->low_fps_p) /* oops, this computer sucks! */
int i;
fprintf (stderr,
- "%s: frame rate is only %.1f! "
- "Turning off pan/fade to compensate...\n",
- progname, fps);
+ "%s: only %.1f fps! Turning off pan/fade to compensate...\n",
+ blurb(), fps);
zoom = 100;
fade_seconds = 0;
ss->low_fps_p = True;
if (!ss->redisplay_needed_p)
return;
else if (debug_p && zoom == 100)
- fprintf (stderr, "%s: debug: drawing (%d)\n", progname,
+ fprintf (stderr, "%s: debug: drawing (%d)\n", blurb(),
(int) (ss->now - ss->dawn_of_time));
draw_quads (mi);
{ "-statictime", ".statictime", XrmoptionSepArg, DEF_STATICTIME },
{ "-yangvel", ".yangvel", XrmoptionSepArg, DEF_YANGVEL },
{ "-zangvel", ".zangvel", XrmoptionSepArg, DEF_ZANGVEL },
- { "-altcolour", ".altcolour", XrmoptionNoArg, (caddr_t) "True" },
- { "-no-altcolour", ".altcolour", XrmoptionNoArg, (caddr_t) "False" },
- { "-titles", ".titles", XrmoptionNoArg, (caddr_t) "True" },
- { "-no-titles", ".titles", XrmoptionNoArg, (caddr_t) "False" },
+ { "-altcolour", ".altcolour", XrmoptionNoArg, "True" },
+ { "-no-altcolour", ".altcolour", XrmoptionNoArg, "False" },
+ { "-titles", ".titles", XrmoptionNoArg, "True" },
+ { "-no-titles", ".titles", XrmoptionNoArg, "False" },
{ "-zoom", ".zoom", XrmoptionSepArg, DEF_ZOOM },
- { "-wireframe", ".wireframe", XrmoptionNoArg, (caddr_t) "true" },
- { "-no-wireframe", ".wireframe", XrmoptionNoArg, (caddr_t) "false" },
+ { "-wireframe", ".wireframe", XrmoptionNoArg, "true" },
+ { "-no-wireframe", ".wireframe", XrmoptionNoArg, "false" },
};
static argtype vars[] = {
#define DEF_SPIN "XYZ"
#define DEF_WANDER "True"
-#define DEFAULTS "*delay: 10000 \n" \
+#define DEFAULTS "*delay: 20000 \n" \
"*showFPS: False \n" \
"*wireframe: False \n" \
"*spin: " DEF_SPIN "\n" \
{
Bool spinx=False, spiny=False, spinz=False;
- double spin_speed = 1.0;
- double wander_speed = 0.05;
- double spin_accel = 1.0;
+ double spin_speed = 0.5;
+ double wander_speed = 0.02;
+ double spin_accel = 0.5;
char *s = do_spin;
while (*s)
#else /* for xscreensaver */
# include "config.h"
# include <GL/gl.h>
+# undef APIENTRY
# define APIENTRY /**/
#endif
#else /* for xscreensaver */
# include "config.h"
# include <GL/gl.h>
+# undef APIENTRY
# define APIENTRY /**/
#endif
#include <stdlib.h>
#include <stdio.h>
+#include <string.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <GL/gl.h> /* only for GLfloat */
extern char *progname;
#include <X11/Xutil.h>
+#include <sys/time.h>
#undef MAX
#define MAX(a,b) ((a)>(b)?(a):(b))
}
-/* Returns an XImage structure containing an image of the desktop.
- (As a side-effect, that image *may* be painted onto the given Window.)
- This XImage will be 32 bits per pixel, 8 each per R, G, and B, with the
- extra byte set to 0xFF.
- */
-XImage *
-screen_to_ximage (Screen *screen, Window window, char **filename_return)
+static XImage *
+screen_to_ximage_1 (Screen *screen, Window window, Pixmap pixmap)
{
Display *dpy = DisplayOfScreen (screen);
- Pixmap pixmap = 0;
XWindowAttributes xgwa;
int win_width, win_height;
int tex_width, tex_height;
win_width = xgwa.width;
win_height = xgwa.height;
- pixmap = XCreatePixmap(dpy, window, xgwa.width, xgwa.height, xgwa.depth);
- load_random_image (screen, window, pixmap, filename_return);
-
/* GL texture sizes must be powers of two. */
tex_width = to_pow2(win_width);
tex_height = to_pow2(win_height);
return ximage2;
}
}
+
+
+/* Returns an XImage structure containing an image of the desktop.
+ (As a side-effect, that image *may* be painted onto the given Window.)
+ This XImage will be 32 bits per pixel, 8 each per R, G, and B, with the
+ extra byte set to 0xFF.
+ */
+XImage *
+screen_to_ximage (Screen *screen, Window window, char **filename_return)
+{
+ Display *dpy = DisplayOfScreen (screen);
+ Pixmap pixmap = 0;
+ XWindowAttributes xgwa;
+
+ XGetWindowAttributes (dpy, window, &xgwa);
+ pixmap = XCreatePixmap (dpy, window, xgwa.width, xgwa.height, xgwa.depth);
+ load_random_image (screen, window, pixmap, filename_return);
+
+ return screen_to_ximage_1 (screen, window, pixmap);
+}
+
+
+typedef struct {
+ void (*callback) (Screen *, Window, XImage *,
+ const char *name, void *closure, double cvt_time);
+ void *closure;
+ Pixmap pixmap;
+} img_closure;
+
+
+/* Returns the current time in seconds as a double.
+ */
+static double
+double_time (void)
+{
+ struct timeval now;
+# ifdef GETTIMEOFDAY_TWO_ARGS
+ struct timezone tzp;
+ gettimeofday(&now, &tzp);
+# else
+ gettimeofday(&now);
+# endif
+
+ return (now.tv_sec + ((double) now.tv_usec * 0.000001));
+}
+
+
+static void
+img_cb (Screen *screen, Window window, Drawable drawable,
+ const char *name, void *closure)
+{
+ XImage *ximage;
+ double cvt_time = double_time();
+ img_closure *data = (img_closure *) closure;
+ /* copy closure data to stack and free the original before running cb */
+ img_closure dd = *data;
+ memset (data, 0, sizeof (*data));
+ free (data);
+ data = 0;
+ ximage = screen_to_ximage_1 (screen, window, dd.pixmap);
+ dd.callback (screen, window, ximage, name, dd.closure, cvt_time);
+}
+
+
+/* Like the above, but loads the image in the background and runs the
+ given callback once it has been loaded.
+ */
+#include <X11/Intrinsic.h>
+extern XtAppContext app;
+
+void
+fork_screen_to_ximage (Screen *screen, Window window,
+ void (*callback) (Screen *, Window, XImage *,
+ const char *name,
+ void *closure,
+ double cvt_time),
+ void *closure)
+{
+ Display *dpy = DisplayOfScreen (screen);
+ XWindowAttributes xgwa;
+ img_closure *data = (img_closure *) calloc (1, sizeof(*data));
+ data->callback = callback;
+ data->closure = closure;
+
+ XGetWindowAttributes (dpy, window, &xgwa);
+ data->pixmap = XCreatePixmap (dpy, window, xgwa.width, xgwa.height,
+ xgwa.depth);
+ fork_load_random_image (screen, window, data->pixmap, img_cb, data);
+}
/* grab-ximage.c --- grab the screen to an XImage for use with OpenGL.
- * xscreensaver, Copyright (c) 2001, 2003 Jamie Zawinski <jwz@jwz.org>
+ * xscreensaver, Copyright (c) 2001, 2003, 2004 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
XImage * screen_to_ximage (Screen *screen, Window window,
char **filename_return);
+/* Like the above, but loads the image in the background and runs the
+ given callback once it has been loaded.
+ */
+void fork_screen_to_ximage (Screen *screen, Window window,
+ void (*callback) (Screen *, Window, XImage *,
+ const char *filename,
+ void *closure,
+ double cvt_time),
+ void *closure);
+
#endif /* __GRAB_XIMAGE_H__ */
static XrmOptionDescRec opts[] =
{
{"-mesh", ".hypertorus.displayMode", XrmoptionNoArg,
- (caddr_t)DISP_WIREFRAME_STR },
+ DISP_WIREFRAME_STR },
{"-surface", ".hypertorus.displayMode", XrmoptionNoArg,
- (caddr_t)DISP_SURFACE_STR },
+ DISP_SURFACE_STR },
{"-transparent", ".hypertorus.displayMode", XrmoptionNoArg,
- (caddr_t)DISP_TRANSPARENT_STR },
+ DISP_TRANSPARENT_STR },
{"-solid", ".hypertorus.appearance", XrmoptionNoArg,
- (caddr_t)APPEARANCE_SOLID_STR },
+ APPEARANCE_SOLID_STR },
{"-bands", ".hypertorus.appearance", XrmoptionNoArg,
- (caddr_t)APPEARANCE_BANDS_STR },
+ APPEARANCE_BANDS_STR },
{"-twosided", ".hypertorus.colors", XrmoptionNoArg,
- (caddr_t)COLORS_TWOSIDED_STR },
+ COLORS_TWOSIDED_STR },
{"-colorwheel", ".hypertorus.colors", XrmoptionNoArg,
- (caddr_t)COLORS_COLORWHEEL_STR },
+ COLORS_COLORWHEEL_STR },
{"-perspective-3d", ".hypertorus.projection3d", XrmoptionNoArg,
- (caddr_t)DISP_3D_PERSPECTIVE_STR },
+ DISP_3D_PERSPECTIVE_STR },
{"-orthographic-3d", ".hypertorus.projection3d", XrmoptionNoArg,
- (caddr_t)DISP_3D_ORTHOGRAPHIC_STR },
+ DISP_3D_ORTHOGRAPHIC_STR },
{"-perspective-4d", ".hypertorus.projection4d", XrmoptionNoArg,
- (caddr_t)DISP_4D_PERSPECTIVE_STR },
+ DISP_4D_PERSPECTIVE_STR },
{"-orthographic-4d", ".hypertorus.projection4d", XrmoptionNoArg,
- (caddr_t)DISP_4D_ORTHOGRAPHIC_STR },
- {"-speed-wx", ".hypertorus.speedwx", XrmoptionSepArg,
- (caddr_t)NULL },
- {"-speed-wy", ".hypertorus.speedwy", XrmoptionSepArg,
- (caddr_t)NULL },
- {"-speed-wz", ".hypertorus.speedwz", XrmoptionSepArg,
- (caddr_t)NULL },
- {"-speed-xy", ".hypertorus.speedxy", XrmoptionSepArg,
- (caddr_t)NULL },
- {"-speed-xz", ".hypertorus.speedxz", XrmoptionSepArg,
- (caddr_t)NULL },
- {"-speed-yz", ".hypertorus.speedyz", XrmoptionSepArg,
- (caddr_t)NULL }
+ DISP_4D_ORTHOGRAPHIC_STR },
+ {"-speed-wx", ".hypertorus.speedwx", XrmoptionSepArg, 0 },
+ {"-speed-wy", ".hypertorus.speedwy", XrmoptionSepArg, 0 },
+ {"-speed-wz", ".hypertorus.speedwz", XrmoptionSepArg, 0 },
+ {"-speed-xy", ".hypertorus.speedxy", XrmoptionSepArg, 0 },
+ {"-speed-xz", ".hypertorus.speedxz", XrmoptionSepArg, 0 },
+ {"-speed-yz", ".hypertorus.speedyz", XrmoptionSepArg, 0 }
};
static argtype vars[] =
static jigglystruct *jss = NULL;
static XrmOptionDescRec opts[] = {
- {"-random", ".Jigglypuff.random", XrmoptionNoArg, (caddr_t)"true"},
- {"+random", ".Jigglypuff.random", XrmoptionNoArg, (caddr_t)"false"},
- {"-tetra", ".Jigglypuff.tetra", XrmoptionNoArg, (caddr_t)"true"},
- {"+tetra", ".Jigglypuff.tetra", XrmoptionNoArg, (caddr_t)"false"},
- {"-spooky", ".Jigglypuff.spooky", XrmoptionSepArg, (caddr_t)"0"},
- {"-color", ".Jigglypuff.color", XrmoptionSepArg, (caddr_t)DEF_COLOR},
- {"-shininess", ".Jigglypuff.shininess", XrmoptionSepArg, (caddr_t)DEF_SHININESS},
- {"-complexity", ".Jigglypuff.complexity", XrmoptionSepArg, (caddr_t)DEF_COMPLEXITY},
- {"-speed", ".Jigglypuff.speed", XrmoptionSepArg, (caddr_t)DEF_SPEED},
- {"-spherism", ".Jigglypuff.spherism", XrmoptionSepArg, (caddr_t)DEF_SPHERISM},
- {"-hold", ".Jigglypuff.hold", XrmoptionSepArg, (caddr_t)DEF_HOLD},
- {"-distance", "Jigglypuff.distance", XrmoptionSepArg, (caddr_t)DEF_DISTANCE},
- {"-damping", "Jigglypuff.damping", XrmoptionSepArg, (caddr_t)DEF_DAMPING}
+ {"-random", ".Jigglypuff.random", XrmoptionNoArg, "true"},
+ {"+random", ".Jigglypuff.random", XrmoptionNoArg, "false"},
+ {"-tetra", ".Jigglypuff.tetra", XrmoptionNoArg, "true"},
+ {"+tetra", ".Jigglypuff.tetra", XrmoptionNoArg, "false"},
+ {"-spooky", ".Jigglypuff.spooky", XrmoptionSepArg, "0"},
+ {"-color", ".Jigglypuff.color", XrmoptionSepArg, DEF_COLOR},
+ {"-shininess", ".Jigglypuff.shininess", XrmoptionSepArg, DEF_SHININESS},
+ {"-complexity", ".Jigglypuff.complexity", XrmoptionSepArg, DEF_COMPLEXITY},
+ {"-speed", ".Jigglypuff.speed", XrmoptionSepArg, DEF_SPEED},
+ {"-spherism", ".Jigglypuff.spherism", XrmoptionSepArg, DEF_SPHERISM},
+ {"-hold", ".Jigglypuff.hold", XrmoptionSepArg, DEF_HOLD},
+ {"-distance", "Jigglypuff.distance", XrmoptionSepArg, DEF_DISTANCE},
+ {"-damping", "Jigglypuff.damping", XrmoptionSepArg, DEF_DAMPING}
};
static argtype vars[] = {
*
*/
-/*-
- * due to a Bug/feature in VMS X11/Intrinsic.h has to be placed before xlock.
- * otherwise caddr_t is not defined correctly
- */
-
-#include <X11/Intrinsic.h>
-
#ifdef STANDALONE
# define PROGCLASS "Klein"
# define HACK_INIT init_klein
static Bool do_wander;
static XrmOptionDescRec opts[] = {
- {"-speed", ".speed", XrmoptionSepArg, (caddr_t) 0 },
+ {"-speed", ".speed", XrmoptionSepArg, 0 },
{ "-spin", ".spin", XrmoptionNoArg, "True" },
{ "+spin", ".spin", XrmoptionNoArg, "False" },
{ "-wander", ".wander", XrmoptionNoArg, "True" },
#define HACK_HANDLE_EVENT lament_handle_event
#define EVENT_MASK PointerMotionMask
#define lament_opts xlockmore_opts
-#define DEFAULTS "*delay: 10000 \n" \
+#define DEFAULTS "*delay: 20000 \n" \
"*showFPS: False \n" \
"*wireframe: False \n" \
"*texture: True \n"
static int do_texture;
static XrmOptionDescRec opts[] = {
- {"-texture", ".lament.texture", XrmoptionNoArg, (caddr_t) "true" },
- {"+texture", ".lament.texture", XrmoptionNoArg, (caddr_t) "false" },
+ {"-texture", ".lament.texture", XrmoptionNoArg, "true" },
+ {"+texture", ".lament.texture", XrmoptionNoArg, "false" },
};
static argtype vars[] = {
Only draw outlines.
.TP 8
.B \-delay \fImicroseconds\fP
-How long to pause between frames. Default is 10000, or 0.01 second.
+How long to pause between frames. Default is 20000, or 0.02 second.
.TP 8
.B \-fps
Display a running tally of how many frames per second are being rendered.
#define DEF_BTEX "(none)"
#define DEF_TTEX "(none)"
-#define DEFAULTS "*delay: 10000 \n" \
+#define DEFAULTS "*delay: 30000 \n" \
"*showFPS: False \n" \
"*wireframe: False \n" \
- "*geometry: 640x640 \n" \
+ "*geometry: 600x900 \n" \
"*count: " DEF_COUNT " \n" \
"*style: " DEF_STYLE " \n" \
"*speed: " DEF_SPEED " \n" \
"*spin: " DEF_SPIN "\n" \
"*wander: " DEF_WANDER "\n" \
"*resolution: " DEF_RESOLUTION "\n" \
- "*smooth: " DEF_SMOOTH "\n" \
+ "*smooth: " DEF_SMOOTH "\n" \
"*impatient: " DEF_IMPATIENT " \n" \
- "*geometry: 600x900\n" \
"*lavaColor: " DEF_LCOLOR "\n" \
"*fluidColor: " DEF_FCOLOR "\n" \
"*baseColor: " DEF_BCOLOR "\n" \
the base. Default: 0.003.
.TP 8
.B \-delay \fIusecs\fP
-The delay between steps of the animation; default is 40000 (1/25th second.)
+The delay between steps of the animation; default is 30000 (0.03 second.)
.TP 8
.B \-resolution \fIinteger\fP
The size of the grid from which the mesh is created that is used
{ "-speed", ".speed", XrmoptionSepArg, 0 },
{ "-optimize", ".optimize", XrmoptionNoArg, "True" },
{ "+optimize", ".optimize", XrmoptionNoArg, "False" },
- {"-depth", ".maxDepth", XrmoptionSepArg, (caddr_t) 0 },
+ {"-depth", ".maxDepth", XrmoptionSepArg, 0 },
};
static argtype vars[] = {
#include <stdlib.h>
#include <sys/time.h>
-/*-
- * due to a Bug/feature in VMS X11/Intrinsic.h has to be placed before xlock.
- * otherwise caddr_t is not defined correctly
- */
-
-#include <X11/Intrinsic.h>
-
#ifdef STANDALONE
# define PROGCLASS "Screensaver"
# define HACK_INIT init_screensaver
static XrmOptionDescRec opts[] =
{
- {(char *) "-solidmoebius", (char *) ".moebius.solidmoebius", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+solidmoebius", (char *) ".moebius.solidmoebius", XrmoptionNoArg, (caddr_t) "off"},
- {(char *) "-noants", (char *) ".moebius.noants", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+noants", (char *) ".moebius.noants", XrmoptionNoArg, (caddr_t) "off"}
+ {"-solidmoebius", ".moebius.solidmoebius", XrmoptionNoArg, "on"},
+ {"+solidmoebius", ".moebius.solidmoebius", XrmoptionNoArg, "off"},
+ {"-noants", ".moebius.noants", XrmoptionNoArg, "on"},
+ {"+noants", ".moebius.noants", XrmoptionNoArg, "off"}
};
static argtype vars[] =
{
};
static OptionStruct desc[] =
{
- {(char *) "-/+solidmoebius", (char *) "select between a SOLID or a NET Moebius Strip"},
- {(char *) "-/+noants", (char *) "turn on/off walking ants"}
+ {"-/+solidmoebius", "select between a SOLID or a NET Moebius Strip"},
+ {"-/+noants", "turn on/off walking ants"}
};
ModeSpecOpt moebius_opts =
#include <sys/time.h>
#include <GL/glu.h>
-#define SPHERE_SLICES 16 /* how densely to render spheres */
-#define SPHERE_STACKS 10
+#define SPHERE_SLICES 24 /* how densely to render spheres */
+#define SPHERE_STACKS 12
#define SMOOTH_TUBE /* whether to have smooth or faceted tubes */
int nmolecules;
molecule *molecules;
+ int mode; /* 0 = normal, 1 = out, 2 = in */
+ int mode_tick;
+
GLuint molecule_dlist;
XFontStruct *xfont1, *xfont2;
{
Bool spinx=False, spiny=False, spinz=False;
- double spin_speed = 2.0;
- double wander_speed = 0.03;
+ double spin_speed = 0.5;
+ double spin_accel = 0.3;
+ double wander_speed = 0.01;
char *s = do_spin;
while (*s)
mc->rot = make_rotator (spinx ? spin_speed : 0,
spiny ? spin_speed : 0,
spinz ? spin_speed : 0,
- 1.0,
+ spin_accel,
do_wander ? wander_speed : 0,
(spinx && spiny && spinz));
mc->trackball = gltrackball_init ();
"NoLabelThreshold");
mc->wireframe_threshold = get_float_resource ("wireframeThreshold",
"WireframeThreshold");
+ mc->mode = 0;
if (wire)
do_bonds = 1;
}
+static void
+pick_new_molecule (ModeInfo *mi, time_t last)
+{
+ molecule_configuration *mc = &mcs[MI_SCREEN(mi)];
+
+ if (mc->nmolecules == 1)
+ {
+ if (last != 0) return;
+ mc->which = 0;
+ }
+ else if (last == 0)
+ {
+ mc->which = random() % mc->nmolecules;
+ }
+ else
+ {
+ int n = mc->which;
+ while (n == mc->which)
+ n = random() % mc->nmolecules;
+ mc->which = n;
+ }
+
+ glNewList (mc->molecule_dlist, GL_COMPILE);
+ ensure_bounding_box_visible (mi);
+
+ do_labels = orig_do_labels;
+ do_bonds = orig_do_bonds;
+ MI_IS_WIREFRAME(mi) = orig_wire;
+
+ if (mc->molecule_size > mc->no_label_threshold)
+ do_labels = 0;
+ if (mc->molecule_size > mc->wireframe_threshold)
+ MI_IS_WIREFRAME(mi) = 1;
+
+ if (MI_IS_WIREFRAME(mi))
+ do_bonds = 1;
+
+ build_molecule (mi);
+ glEndList();
+}
+
+
void
draw_molecule (ModeInfo *mi)
{
static time_t last = 0;
time_t now = time ((time_t *) 0);
+ GLfloat speed = 4.0; /* speed at which the zoom out/in happens */
molecule_configuration *mc = &mcs[MI_SCREEN(mi)];
Display *dpy = MI_DISPLAY(mi);
if (!mc->glx_context)
return;
- if (last + timeout <= now && /* randomize molecules every -timeout seconds */
- !mc->button_down_p)
+ if (last == 0)
{
- if (mc->nmolecules == 1)
- {
- if (last != 0) goto SKIP;
- mc->which = 0;
- }
- else if (last == 0)
+ pick_new_molecule (mi, last);
+ last = now;
+ }
+ else if (mc->mode == 0)
+ {
+ static int tick = 0;
+ if (tick++ > 10)
{
- mc->which = random() % mc->nmolecules;
+ time_t now = time((time_t *) 0);
+ if (last == 0) last = now;
+ tick = 0;
+
+ if (!mc->button_down_p &&
+ mc->nmolecules > 1 &&
+ last + timeout <= now)
+ {
+ /* randomize molecules every -timeout seconds */
+ mc->mode = 1; /* go out */
+ mc->mode_tick = 10 * speed;
+ last = now;
+ }
}
- else
+ }
+ else if (mc->mode == 1) /* out */
+ {
+ if (--mc->mode_tick <= 0)
{
- int n = mc->which;
- while (n == mc->which)
- n = random() % mc->nmolecules;
- mc->which = n;
+ mc->mode_tick = 10 * speed;
+ mc->mode = 2; /* go in */
+ pick_new_molecule (mi, last);
+ last = now;
}
-
- last = now;
-
-
- glNewList (mc->molecule_dlist, GL_COMPILE);
- ensure_bounding_box_visible (mi);
-
- do_labels = orig_do_labels;
- do_bonds = orig_do_bonds;
- MI_IS_WIREFRAME(mi) = orig_wire;
-
- if (mc->molecule_size > mc->no_label_threshold)
- do_labels = 0;
- if (mc->molecule_size > mc->wireframe_threshold)
- MI_IS_WIREFRAME(mi) = 1;
-
- if (MI_IS_WIREFRAME(mi))
- do_bonds = 1;
-
- build_molecule (mi);
- glEndList();
}
- SKIP:
+ else if (mc->mode == 2) /* in */
+ {
+ if (--mc->mode_tick <= 0)
+ mc->mode = 0; /* normal */
+ }
+ else
+ abort();
glPushMatrix ();
glScalef(1.1, 1.1, 1.1);
}
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ if (mc->mode != 0)
+ {
+ GLfloat s = (mc->mode == 1
+ ? mc->mode_tick / (10 * speed)
+ : ((10 * speed) - mc->mode_tick + 1) / (10 * speed));
+ glScalef (s, s, s);
+ }
+
glCallList (mc->molecule_dlist);
- draw_labels (mi);
+
+ if (mc->mode == 0)
+ draw_labels (mi);
glPopMatrix ();
*
*/
-#ifdef VMS
-/*-
- * due to a Bug/feature in VMS X11/Intrinsic.h has to be placed before xlock.
- * otherwise caddr_t is not defined correctly
- */
-
-#include <X11/Intrinsic.h>
-#endif
-
#ifdef STANDALONE
# define MODE_moebius
# define PROGCLASS "Morph3d"
* 29-Apr-97: Efficiency speed-ups by Marcelo F. Vianna
*/
-/*-
- * due to a Bug/feature in VMS X11/Intrinsic.h has to be placed before xlock.
- * otherwise caddr_t is not defined correctly
- */
-
-#include <X11/Intrinsic.h>
-
#ifdef STANDALONE
# define PROGCLASS "Pipes"
# define HACK_INIT init_pipes
static XrmOptionDescRec opts[] =
{
- {"-factory", ".pipes.factory", XrmoptionSepArg, (caddr_t) NULL},
- {"-fisheye", ".pipes.fisheye", XrmoptionNoArg, (caddr_t) "on"},
- {"+fisheye", ".pipes.fisheye", XrmoptionNoArg, (caddr_t) "off"},
- {"-tightturns", ".pipes.tightturns", XrmoptionNoArg, (caddr_t) "on"},
- {"+tightturns", ".pipes.tightturns", XrmoptionNoArg, (caddr_t) "off"},
- {"-rotatepipes", ".pipes.rotatepipes", XrmoptionNoArg, (caddr_t) "on"},
- {"+rotatepipes", ".pipes.rotatepipes", XrmoptionNoArg, (caddr_t) "off"},
- {"-db", ".pipes.doubleBuffer", XrmoptionNoArg, (caddr_t) "on"},
- {"+db", ".pipes.doubleBuffer", XrmoptionNoArg, (caddr_t) "off"},
+ {"-factory", ".pipes.factory", XrmoptionSepArg, 0},
+ {"-fisheye", ".pipes.fisheye", XrmoptionNoArg, "on"},
+ {"+fisheye", ".pipes.fisheye", XrmoptionNoArg, "off"},
+ {"-tightturns", ".pipes.tightturns", XrmoptionNoArg, "on"},
+ {"+tightturns", ".pipes.tightturns", XrmoptionNoArg, "off"},
+ {"-rotatepipes", ".pipes.rotatepipes", XrmoptionNoArg, "on"},
+ {"+rotatepipes", ".pipes.rotatepipes", XrmoptionNoArg, "off"},
+ {"-db", ".pipes.doubleBuffer", XrmoptionNoArg, "on"},
+ {"+db", ".pipes.doubleBuffer", XrmoptionNoArg, "off"},
};
static argtype vars[] =
{
*
* This file contains the OpenGL side; computation of the polyhedra themselves
* is in "polyhedra.c".
- *
- * KNOWN BUG:
- *
- * The normals are wrong (inverted) on some faces of some of the duals
- * (e.g., "Rhombicosacron".) I can't figure out how to tell when the
- * normal should be pointing the other way.
*/
#include <X11/Intrinsic.h>
#define countof(x) (sizeof((x))/sizeof((*x)))
#include "xlockmore.h"
+#include <GL/glu.h>
+
#include "polyhedra.h"
#include "colors.h"
#include "rotator.h"
}
+/* Calculate the normals at each vertex of a face, and use the sum to
+ decide which normal to assign to the entire face. This also solves
+ problems caused by nonconvex faces, in most (but not all) cases.
+ */
static void
-do_normal(GLfloat x1, GLfloat y1, GLfloat z1,
- GLfloat x2, GLfloat y2, GLfloat z2,
- GLfloat x3, GLfloat y3, GLfloat z3)
+kludge_normal (int n, const int *indices, const point *points)
{
- XYZ p1, p2, p3, p;
- p1.x = x1; p1.y = y1; p1.z = z1;
- p2.x = x2; p2.y = y2; p2.z = z2;
- p3.x = x3; p3.y = y3; p3.z = z3;
+ XYZ normal = { 0, 0, 0 };
+ XYZ p;
+ int i;
- p = calc_normal (p1, p2, p3);
+ for (i = 0; i < n; ++i) {
+ int i1 = indices[i];
+ int i2 = indices[(i + 1) % n];
+ int i3 = indices[(i + 2) % n];
+ XYZ p1, p2, p3;
- glNormal3f (p.x, p.y, p.z);
+ p1.x = points[i1].x; p1.y = points[i1].y; p1.z = points[i1].z;
+ p2.x = points[i2].x; p2.y = points[i2].y; p2.z = points[i2].z;
+ p3.x = points[i3].x; p3.y = points[i3].y; p3.z = points[i3].z;
-#ifdef DEBUG
- /* Draw a line in the direction of this face's normal. */
- {
- glPushMatrix();
- glTranslatef ((x1 + x2 + x3) / 3,
- (y1 + y2 + y3) / 3,
- (z1 + z2 + z3) / 3);
- glScalef (0.5, 0.5, 0.5);
- glBegin(GL_LINE_LOOP);
- glVertex3f(0, 0, 0);
- glVertex3f(p.x, p.y, p.z);
- glEnd();
- glPopMatrix();
+ p = calc_normal (p1, p2, p3);
+ normal.x += p.x;
+ normal.y += p.y;
+ normal.z += p.z;
+ }
+
+ normalize(&normal);
+ if (normal.x == 0 && normal.y == 0 && normal.z == 0) {
+ glNormal3f (p.x, p.y, p.z);
+ } else {
+ glNormal3f (normal.x, normal.y, normal.z);
}
-#endif /* DEBUG */
}
static void
}
+static void
+tess_error (GLenum errorCode)
+{
+ fprintf (stderr, "%s: tesselation error: %s\n",
+ progname, gluErrorString(errorCode));
+ exit (0);
+}
+
static void
new_polyhedron (ModeInfo *mi)
{
static GLfloat bcolor[4] = {0.0, 0.0, 0.0, 1.0};
int i;
+ /* Use the GLU polygon tesselator so that nonconvex faces are displayed
+ correctly (e.g., for the "pentagrammic concave deltohedron").
+ */
+ GLUtesselator *tobj = gluNewTess();
+ gluTessCallback (tobj, GLU_TESS_BEGIN, (_GLUfuncptr) &glBegin);
+ gluTessCallback (tobj, GLU_TESS_END, (_GLUfuncptr) &glEnd);
+ gluTessCallback (tobj, GLU_TESS_VERTEX, (_GLUfuncptr) &glVertex3dv);
+ gluTessCallback (tobj, GLU_TESS_ERROR, (_GLUfuncptr) &tess_error);
+
mi->polygon_count = 0;
bp->ncolors = 128;
glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, bcolor);
}
- do_normal (p->points[f->points[0]].x,
- p->points[f->points[0]].y,
- p->points[f->points[0]].z,
- p->points[f->points[1]].x,
- p->points[f->points[1]].y,
- p->points[f->points[1]].z,
- p->points[f->points[2]].x,
- p->points[f->points[2]].y,
- p->points[f->points[2]].z);
-
- glBegin (wire ? GL_LINE_LOOP :
- f->npoints == 3 ? GL_TRIANGLES :
- f->npoints == 4 ? GL_QUADS :
- GL_POLYGON);
+ kludge_normal (f->npoints, f->points, p->points);
+
+ gluTessBeginPolygon (tobj, 0);
+ gluTessBeginContour (tobj);
for (j = 0; j < f->npoints; j++)
{
point *pp = &p->points[f->points[j]];
- glVertex3f (pp->x, pp->y, pp->z);
+ gluTessVertex (tobj, &pp->x, &pp->x);
}
- glEnd();
+ gluTessEndContour (tobj);
+ gluTessEndPolygon (tobj);
}
glEndList ();
mi->polygon_count += p->nfaces;
+ gluDeleteTess (tobj);
}
glEnable(GL_DEPTH_TEST);
/* glEnable(GL_CULL_FACE); */
+ /* We need two-sided lighting for polyhedra where both sides of
+ a face are simultaneously visible (e.g., the "X-hemi-Y-hedrons".)
+ */
+ glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
+
glLightfv(GL_LIGHT0, GL_POSITION, pos);
glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
int j;
for (j = 0; j < P->M; j++) {
int i0, J;
- int pap;/* papillon edge type */
+ int pap=0;/* papillon edge type */
if (P->incid[j][i] != -1)
continue;
P->incid[j][i] = newF;
char *name, char *dual, char *class, char *star,
double azimuth, double elevation, double freeze)
{
- int i, j, k, l, ll, ii, *hit, facelets;
+ int i, j, k=0, l, ll, ii, *hit=0, facelets;
polyhedron *result;
Vector *temp;
static XrmOptionDescRec opts[] =
{
{"-mesh", ".polytopes.displayMode", XrmoptionNoArg,
- (caddr_t)DISP_WIREFRAME_STR },
+ DISP_WIREFRAME_STR },
{"-surface", ".polytopes.displayMode", XrmoptionNoArg,
- (caddr_t)DISP_SURFACE_STR },
+ DISP_SURFACE_STR },
{"-transparent", ".polytopes.displayMode", XrmoptionNoArg,
- (caddr_t)DISP_TRANSPARENT_STR },
+ DISP_TRANSPARENT_STR },
{"-random", ".polytopes.polytope", XrmoptionNoArg,
- (caddr_t)POLYTOPE_RANDOM_STR },
+ POLYTOPE_RANDOM_STR },
{"-5-cell", ".polytopes.polytope", XrmoptionNoArg,
- (caddr_t)POLYTOPE_5_CELL_STR },
+ POLYTOPE_5_CELL_STR },
{"-8-cell", ".polytopes.polytope", XrmoptionNoArg,
- (caddr_t)POLYTOPE_8_CELL_STR },
+ POLYTOPE_8_CELL_STR },
{"-16-cell", ".polytopes.polytope", XrmoptionNoArg,
- (caddr_t)POLYTOPE_16_CELL_STR },
+ POLYTOPE_16_CELL_STR },
{"-24-cell", ".polytopes.polytope", XrmoptionNoArg,
- (caddr_t)POLYTOPE_24_CELL_STR },
+ POLYTOPE_24_CELL_STR },
{"-120-cell", ".polytopes.polytope", XrmoptionNoArg,
- (caddr_t)POLYTOPE_120_CELL_STR },
+ POLYTOPE_120_CELL_STR },
{"-600-cell", ".polytopes.polytope", XrmoptionNoArg,
- (caddr_t)POLYTOPE_600_CELL_STR },
+ POLYTOPE_600_CELL_STR },
{"-single-color", ".polytopes.colors", XrmoptionNoArg,
- (caddr_t)COLORS_SINGLE_STR },
+ COLORS_SINGLE_STR },
{"-depth-colors", ".polytopes.colors", XrmoptionNoArg,
- (caddr_t)COLORS_DEPTH_STR },
+ COLORS_DEPTH_STR },
{"-perspective-3d", ".polytopes.projection3d", XrmoptionNoArg,
- (caddr_t)DISP_3D_PERSPECTIVE_STR },
+ DISP_3D_PERSPECTIVE_STR },
{"-orthographic-3d", ".polytopes.projection3d", XrmoptionNoArg,
- (caddr_t)DISP_3D_ORTHOGRAPHIC_STR },
+ DISP_3D_ORTHOGRAPHIC_STR },
{"-perspective-4d", ".polytopes.projection4d", XrmoptionNoArg,
- (caddr_t)DISP_4D_PERSPECTIVE_STR },
+ DISP_4D_PERSPECTIVE_STR },
{"-orthographic-4d", ".polytopes.projection4d", XrmoptionNoArg,
- (caddr_t)DISP_4D_ORTHOGRAPHIC_STR },
- {"-speed-wx", ".polytopes.speedwx", XrmoptionSepArg,
- (caddr_t)NULL },
- {"-speed-wy", ".polytopes.speedwy", XrmoptionSepArg,
- (caddr_t)NULL },
- {"-speed-wz", ".polytopes.speedwz", XrmoptionSepArg,
- (caddr_t)NULL },
- {"-speed-xy", ".polytopes.speedxy", XrmoptionSepArg,
- (caddr_t)NULL },
- {"-speed-xz", ".polytopes.speedxz", XrmoptionSepArg,
- (caddr_t)NULL },
- {"-speed-yz", ".polytopes.speedyz", XrmoptionSepArg,
- (caddr_t)NULL }
+ DISP_4D_ORTHOGRAPHIC_STR },
+ {"-speed-wx", ".polytopes.speedwx", XrmoptionSepArg, 0 },
+ {"-speed-wy", ".polytopes.speedwy", XrmoptionSepArg, 0 },
+ {"-speed-wz", ".polytopes.speedwz", XrmoptionSepArg, 0 },
+ {"-speed-xy", ".polytopes.speedxy", XrmoptionSepArg, 0 },
+ {"-speed-xz", ".polytopes.speedxz", XrmoptionSepArg, 0 },
+ {"-speed-yz", ".polytopes.speedyz", XrmoptionSepArg, 0 }
};
static argtype vars[] =
{
- { (caddr_t *) &display_mode, "displayMode", "DisplayMode",
- DEF_DISPLAY_MODE, t_Int },
- { (caddr_t *) &polytope, "polytope", "Polytope",
- DEF_POLYTOPE, t_Int },
- { (caddr_t *) &color_mode, "colors", "Colors",
- DEF_COLORS, t_Int },
- { (caddr_t *) &projection_3d, "projection3d", "Projection3d",
- DEF_3D_PROJECTION, t_Int },
- { (caddr_t *) &projection_4d, "projection4d", "Projection4d",
- DEF_4D_PROJECTION, t_Int },
- { (caddr_t *) &speed_wx, "speedwx", "Speedwx",
- DEF_DALPHA, t_Float},
- { (caddr_t *) &speed_wy, "speedwy", "Speedwy",
- DEF_DBETA, t_Float},
- { (caddr_t *) &speed_wz, "speedwz", "Speedwz",
- DEF_DDELTA, t_Float},
- { (caddr_t *) &speed_xy, "speedxy", "Speedxy",
- DEF_DZETA, t_Float},
- { (caddr_t *) &speed_xz, "speedxz", "Speedxz",
- DEF_DETA, t_Float},
- { (caddr_t *) &speed_yz, "speedyz", "Speedyz",
- DEF_DTHETA, t_Float}
+ { &display_mode, "displayMode", "DisplayMode", DEF_DISPLAY_MODE, t_Int },
+ { &polytope, "polytope", "Polytope", DEF_POLYTOPE, t_Int },
+ { &color_mode, "colors", "Colors", DEF_COLORS, t_Int },
+ { &projection_3d, "projection3d", "Projection3d",DEF_3D_PROJECTION, t_Int },
+ { &projection_4d, "projection4d", "Projection4d",DEF_4D_PROJECTION, t_Int },
+ { &speed_wx, "speedwx", "Speedwx", DEF_DALPHA, t_Float},
+ { &speed_wy, "speedwy", "Speedwy", DEF_DBETA, t_Float},
+ { &speed_wz, "speedwz", "Speedwz", DEF_DDELTA, t_Float},
+ { &speed_xy, "speedxy", "Speedxy", DEF_DZETA, t_Float},
+ { &speed_xz, "speedxz", "Speedxz", DEF_DETA, t_Float},
+ { &speed_yz, "speedyz", "Speedyz", DEF_DTHETA, t_Float}
};
static OptionStruct desc[] =
static int eye;
static XrmOptionDescRec opts[] = {
- {(char *) "-eye",
- (char *) ".providence.eye", XrmoptionNoArg, (caddr_t) "on"},
-
- {(char *) "+eye",
- (char *) ".providence.eye", XrmoptionNoArg, (caddr_t) "off"}
+ {"-eye", ".providence.eye", XrmoptionNoArg, "on"},
+ {"+eye", ".providence.eye", XrmoptionNoArg, "off"}
};
static argtype vars[] = {
- {(caddr_t *) &eye,
- (char *) "eye", (char *) "Eye", (char *) DEF_EYE, t_Bool}
+ {&eye, "eye", "Eye", DEF_EYE, t_Bool}
};
static OptionStruct desc[] = {
- {(char *) "-/+eye",
- (char *) "turn on/off eye of providence"}
+ {"-/+eye", "turn on/off eye of providence"}
};
ModeSpecOpt providence_opts = {
#include <stdio.h>
#include <stdlib.h>
-/*-
- * due to a Bug/feature in VMS X11/Intrinsic.h has to be placed before xlock.
- * otherwise caddr_t is not defined correctly
- */
-
-#include <X11/Intrinsic.h>
-
#ifdef STANDALONE
# define PROGCLASS "Screensaver"
# define HACK_INIT init_screensaver
static XrmOptionDescRec opts[] = {
- {"-quads", ".pulsar.quads", XrmoptionSepArg, (caddr_t) NULL },
- {"-light", ".pulsar.light", XrmoptionNoArg, (caddr_t) "true" },
- {"+light", ".pulsar.light", XrmoptionNoArg, (caddr_t) "false" },
- {"-wire", ".pulsar.wire", XrmoptionNoArg, (caddr_t) "true" },
- {"+wire", ".pulsar.wire", XrmoptionNoArg, (caddr_t) "false" },
- {"-blend", ".pulsar.blend", XrmoptionNoArg, (caddr_t) "true" },
- {"+blend", ".pulsar.blend", XrmoptionNoArg, (caddr_t) "false" },
- {"-fog", ".pulsar.fog", XrmoptionNoArg, (caddr_t) "true" },
- {"+fog", ".pulsar.fog", XrmoptionNoArg, (caddr_t) "false" },
- {"-antialias", ".pulsar.antialias", XrmoptionNoArg, (caddr_t) "true" },
- {"+antialias", ".pulsar.antialias", XrmoptionNoArg, (caddr_t) "false" },
- {"-texture", ".pulsar.texture", XrmoptionNoArg, (caddr_t) "true" },
- {"+texture", ".pulsar.texture", XrmoptionNoArg, (caddr_t) "false" },
- {"-texture_quality", ".pulsar.texture_quality", XrmoptionNoArg, (caddr_t) "true" },
- {"+texture_quality", ".pulsar.texture_quality", XrmoptionNoArg, (caddr_t) "false" },
- {"-mipmap", ".pulsar.mipmap", XrmoptionNoArg, (caddr_t) "true" },
- {"+mipmap", ".pulsar.mipmap", XrmoptionNoArg, (caddr_t) "false" },
- {"-do_depth", ".pulsar.doDepth", XrmoptionNoArg, (caddr_t) "true" },
- {"+do_depth", ".pulsar.doDepth", XrmoptionNoArg, (caddr_t) "false" },
- {"-image", ".pulsar.image", XrmoptionSepArg, (caddr_t) NULL },
+ {"-quads", ".pulsar.quads", XrmoptionSepArg, 0 },
+ {"-light", ".pulsar.light", XrmoptionNoArg, "true" },
+ {"+light", ".pulsar.light", XrmoptionNoArg, "false" },
+ {"-wire", ".pulsar.wire", XrmoptionNoArg, "true" },
+ {"+wire", ".pulsar.wire", XrmoptionNoArg, "false" },
+ {"-blend", ".pulsar.blend", XrmoptionNoArg, "true" },
+ {"+blend", ".pulsar.blend", XrmoptionNoArg, "false" },
+ {"-fog", ".pulsar.fog", XrmoptionNoArg, "true" },
+ {"+fog", ".pulsar.fog", XrmoptionNoArg, "false" },
+ {"-antialias", ".pulsar.antialias", XrmoptionNoArg, "true" },
+ {"+antialias", ".pulsar.antialias", XrmoptionNoArg, "false" },
+ {"-texture", ".pulsar.texture", XrmoptionNoArg, "true" },
+ {"+texture", ".pulsar.texture", XrmoptionNoArg, "false" },
+ {"-texture_quality", ".pulsar.texture_quality", XrmoptionNoArg, "true" },
+ {"+texture_quality", ".pulsar.texture_quality", XrmoptionNoArg, "false" },
+ {"-mipmap", ".pulsar.mipmap", XrmoptionNoArg, "true" },
+ {"+mipmap", ".pulsar.mipmap", XrmoptionNoArg, "false" },
+ {"-do_depth", ".pulsar.doDepth", XrmoptionNoArg, "true" },
+ {"+do_depth", ".pulsar.doDepth", XrmoptionNoArg, "false" },
+ {"-image", ".pulsar.image", XrmoptionSepArg, 0 },
};
#define countof(x) (sizeof((x))/sizeof((*x)))
static XrmOptionDescRec opts[] = {
- {"+rotate", ".queens.rotate", XrmoptionNoArg, (caddr_t) "false" },
- {"-rotate", ".queens.rotate", XrmoptionNoArg, (caddr_t) "true" },
- {"+flat", ".queens.flat", XrmoptionNoArg, (caddr_t) "false" },
- {"-flat", ".queens.flat", XrmoptionNoArg, (caddr_t) "true" },
+ {"+rotate", ".queens.rotate", XrmoptionNoArg, "false" },
+ {"-rotate", ".queens.rotate", XrmoptionNoArg, "true" },
+ {"+flat", ".queens.flat", XrmoptionNoArg, "false" },
+ {"-flat", ".queens.flat", XrmoptionNoArg, "true" },
};
int rotate, wire, clearbits, flat;
* BOTTOM => X, Z
*/
-#ifdef VMS
-/*-
- * due to a Bug/feature in VMS X11/Intrinsic.h has to be placed before xlock.
- * otherwise caddr_t is not defined correctly
- */
-#include <X11/Intrinsic.h>
-#endif
-
#ifdef STANDALONE
# define MODE_rubik
# define PROGCLASS "Rubik"
static XrmOptionDescRec opts[] =
{
- {(char *) "-sizex", (char *) ".rubik.sizex", XrmoptionSepArg, (caddr_t) NULL},
- {(char *) "-sizey", (char *) ".rubik.sizey", XrmoptionSepArg, (caddr_t) NULL},
- {(char *) "-sizez", (char *) ".rubik.sizez", XrmoptionSepArg, (caddr_t) NULL},
- {(char *) "-hideshuffling", (char *) ".rubik.hideshuffling", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+hideshuffling", (char *) ".rubik.hideshuffling", XrmoptionNoArg, (caddr_t) "off"}
+ {"-sizex", ".rubik.sizex", XrmoptionSepArg, 0},
+ {"-sizey", ".rubik.sizey", XrmoptionSepArg, 0},
+ {"-sizez", ".rubik.sizez", XrmoptionSepArg, 0},
+ {"-hideshuffling", ".rubik.hideshuffling", XrmoptionNoArg, "on"},
+ {"+hideshuffling", ".rubik.hideshuffling", XrmoptionNoArg, "off"}
};
static argtype vars[] =
static OptionStruct desc[] =
{
- {(char *) "-sizex num", (char *) "number of cubies along x axis (overrides size)"},
- {(char *) "-sizey num", (char *) "number of cubies along y axis (overrides size)"},
- {(char *) "-sizez num", (char *) "number of cubies along z axis (overrides size)"},
- {(char *) "-/+hideshuffling", (char *) "turn on/off hidden shuffle phase"}
+ {"-sizex num", "number of cubies along x axis (overrides size)"},
+ {"-sizey num", "number of cubies along y axis (overrides size)"},
+ {"-sizez num", "number of cubies along z axis (overrides size)"},
+ {"-/+hideshuffling", "turn on/off hidden shuffle phase"}
};
ModeSpecOpt rubik_opts =
* Mustata Bogdan (LoneRunner) <lonerunner@planetquake.com>
* and can be found at http://www.cfxweb.net/lonerunner/
*
- * Eric Lassauge (November-07-2000) <lassauge@mail.dotcom.fr>
+ * Eric Lassauge (November-07-2000) <lassauge@users.sourceforge.net>
* http://lassauge.free.fr/linux.html
*
* REVISION HISTORY:
#define HACK_DRAW draw_sballs
#define HACK_RESHAPE reshape_sballs
#define sballs_opts xlockmore_opts
-#define DEFAULTS "*delay: 10000 \n" \
+#define DEFAULTS "*delay: 30000 \n" \
"*size: 0 \n" \
- "*cycles: 10 \n" \
+ "*cycles: 4 \n" \
"*object: 0 \n" \
"*trackmouse: False \n" \
"*showFPS: False \n" \
/* Manage option vars */
#define DEF_TEXTURE "True"
#define DEF_TRACKMOUSE "False"
-#define DEF_OBJECT "2"
-#define DEF_OBJECT_INDX 2
+#define DEF_OBJECT "0"
static Bool do_texture;
static Bool do_trackmouse;
static int object;
static int spheres;
static XrmOptionDescRec opts[] = {
- {(char *) "-texture", (char *) ".sballs.texture", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+texture", (char *) ".sballs.texture", XrmoptionNoArg, (caddr_t) "off"},
- {(char *) "-trackmouse", (char *) ".sballs.trackmouse", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+trackmouse", (char *) ".sballs.trackmouse", XrmoptionNoArg, (caddr_t) "off"},
- {(char *) "-object", (char *) ".sballs.object", XrmoptionSepArg, (caddr_t) NULL},
+ {"-texture", ".sballs.texture", XrmoptionNoArg, "on"},
+ {"+texture", ".sballs.texture", XrmoptionNoArg, "off"},
+ {"-trackmouse", ".sballs.trackmouse", XrmoptionNoArg, "on"},
+ {"+trackmouse", ".sballs.trackmouse", XrmoptionNoArg, "off"},
+ {"-object", ".sballs.object", XrmoptionSepArg, 0},
};
};
static OptionStruct desc[] = {
- /*{(char *) "-count spheres", (char *) "set number of spheres"},*/
- /*{(char *) "-cycles speed", (char *) "set ball speed value"},*/
- {(char *) "-/+texture", (char *) "turn on/off texturing"},
- {(char *) "-/+trackmouse", (char *) "turn on/off the tracking of the mouse"},
- {(char *) "-object num", (char *) "number of the 3D object (0 means random)"},
+ /*{"-count spheres", "set number of spheres"},*/
+ /*{"-cycles speed", "set ball speed value"},*/
+ {"-/+texture", "turn on/off texturing"},
+ {"-/+trackmouse", "turn on/off the tracking of the mouse"},
+ {"-object num", "number of the 3D object (0 means random)"},
};
ModeSpecOpt sballs_opts =
float x = polygons[object].v[sphere_num][0];
float y = polygons[object].v[sphere_num][1];
float z = polygons[object].v[sphere_num][2];
- int numMajor = 10;
- int numMinor = 10;
+ int numMajor = 15;
+ int numMinor = 30;
float radius = sb->radius[sphere_num];
double majorStep = (M_PI / numMajor);
double minorStep = (2.0 * M_PI / numMinor);
glNormal3f((x * r1) / radius, (y * r1) / radius, z1 / radius);
glTexCoord2f(j / (GLfloat) numMinor, (i + 1) / (GLfloat) numMajor);
glVertex3f(x * r1, y * r1, z1);
+
+ mi->polygon_count++;
}
glEnd();
}
sballsstruct *sb = &sballs[MI_SCREEN(mi)];
int sphere;
+ mi->polygon_count = 0;
+
if (do_trackmouse && !MI_IS_ICONIC(mi))
trackmouse(mi);
glNormal3f(0, 0, 1); glTexCoord2f(1,0); glVertex3f(-8, 4.1, -4);
glNormal3f(0, 0, 1); glTexCoord2f(1,1); glVertex3f(-8, -4.1, -4);
glEnd();
+ mi->polygon_count++;
/* rotate the mouse */
glRotatef(sb->rot[0], 1.0f, 0.0f, 0.0f);
sb->speed = MI_CYCLES(mi);
/* initialise object number */
- if (object == 0)
- object = NRAND(MAX_OBJ);
if ((object == 0) || (object > MAX_OBJ))
- object = DEF_OBJECT_INDX;
+ object = NRAND(MAX_OBJ-1)+1;
object--;
/* initialise sphere number */
return;
/* initialise object number */
- if (object == 0)
- object = NRAND(MAX_OBJ);
if ((object == 0) || (object > MAX_OBJ))
- object = DEF_OBJECT_INDX;
+ object = NRAND(MAX_OBJ-1)+1;
object--;
/* correct sphere number */
.SH AUTHOR
Mustata Bogdan (LoneRunner) <lonerunner@planetquake.com>
-Eric Lassauge <lassauge@mail.dotcom.fr>
+Eric Lassauge <lassauge@users.sourceforge.net>
* Thanks goes also to Brian Paul for making it possible and inexpensive
* to use OpenGL at home.
*
- * My e-mail address is lassauge@sagem.fr
+ * My e-mail address is lassauge@users.sourceforge.net
*
* Eric Lassauge (May-13-1998)
*
* random scattering of points.
*/
-/*-
- * due to a Bug/feature in VMS X11/Intrinsic.h has to be placed before xlock.
- * otherwise caddr_t is not defined correctly
- */
-
-#include <X11/Intrinsic.h>
-
#ifdef STANDALONE
# define PROGCLASS "Sierpinski3D"
# define HACK_INIT init_gasket
static Bool do_wander;
static XrmOptionDescRec opts[] = {
- {"-depth", ".sierpinski3d.maxDepth", XrmoptionSepArg, (caddr_t) 0 },
- {"-speed", ".sierpinski3d.speed", XrmoptionSepArg, (caddr_t) 0 },
+ {"-depth", ".sierpinski3d.maxDepth", XrmoptionSepArg, 0 },
+ {"-speed", ".sierpinski3d.speed", XrmoptionSepArg, 0 },
{ "-spin", ".spin", XrmoptionNoArg, "True" },
{ "+spin", ".spin", XrmoptionNoArg, "False" },
{ "-wander", ".wander", XrmoptionNoArg, "True" },
static int alignment;
static XrmOptionDescRec opts[] = {
- {"-program", ".starwars.program", XrmoptionSepArg, (caddr_t) 0 },
- {"-lines", ".starwars.lines", XrmoptionSepArg, (caddr_t) 0 },
- {"-steps", ".starwars.steps", XrmoptionSepArg, (caddr_t) 0 },
- {"-spin", ".starwars.spin", XrmoptionSepArg, (caddr_t) 0 },
- {"-size", ".starwars.fontSize", XrmoptionSepArg, (caddr_t) 0 },
- {"-columns", ".starwars.columns", XrmoptionSepArg, (caddr_t) 0 },
- {"-smooth", ".starwars.smooth", XrmoptionNoArg, (caddr_t) "True" },
- {"-no-smooth", ".starwars.smooth", XrmoptionNoArg, (caddr_t) "False" },
- {"-thick", ".starwars.thick", XrmoptionNoArg, (caddr_t) "True" },
- {"-no-thick", ".starwars.thick", XrmoptionNoArg, (caddr_t) "False" },
- {"-fade", ".starwars.fade", XrmoptionNoArg, (caddr_t) "True" },
- {"-no-fade", ".starwars.fade", XrmoptionNoArg, (caddr_t) "False" },
- {"-wrap", ".starwars.lineWrap", XrmoptionNoArg, (caddr_t) "True" },
- {"-no-wrap", ".starwars.lineWrap", XrmoptionNoArg, (caddr_t) "False" },
- {"-nowrap", ".starwars.lineWrap", XrmoptionNoArg, (caddr_t) "False" },
- {"-left", ".starwars.alignment",XrmoptionNoArg, (caddr_t) "Left" },
- {"-right", ".starwars.alignment",XrmoptionNoArg, (caddr_t) "Right" },
- {"-center", ".starwars.alignment",XrmoptionNoArg, (caddr_t) "Center" },
+ {"-program", ".starwars.program", XrmoptionSepArg, 0 },
+ {"-lines", ".starwars.lines", XrmoptionSepArg, 0 },
+ {"-steps", ".starwars.steps", XrmoptionSepArg, 0 },
+ {"-spin", ".starwars.spin", XrmoptionSepArg, 0 },
+ {"-size", ".starwars.fontSize", XrmoptionSepArg, 0 },
+ {"-columns", ".starwars.columns", XrmoptionSepArg, 0 },
+ {"-smooth", ".starwars.smooth", XrmoptionNoArg, "True" },
+ {"-no-smooth", ".starwars.smooth", XrmoptionNoArg, "False" },
+ {"-thick", ".starwars.thick", XrmoptionNoArg, "True" },
+ {"-no-thick", ".starwars.thick", XrmoptionNoArg, "False" },
+ {"-fade", ".starwars.fade", XrmoptionNoArg, "True" },
+ {"-no-fade", ".starwars.fade", XrmoptionNoArg, "False" },
+ {"-wrap", ".starwars.lineWrap", XrmoptionNoArg, "True" },
+ {"-no-wrap", ".starwars.lineWrap", XrmoptionNoArg, "False" },
+ {"-nowrap", ".starwars.lineWrap", XrmoptionNoArg, "False" },
+ {"-left", ".starwars.alignment",XrmoptionNoArg, "Left" },
+ {"-right", ".starwars.alignment",XrmoptionNoArg, "Right" },
+ {"-center", ".starwars.alignment",XrmoptionNoArg, "Center" },
};
static argtype vars[] = {
* Ed Mackey
*/
-/*-
- * due to a Bug/feature in VMS X11/Intrinsic.h has to be placed before xlock.
- * otherwise caddr_t is not defined correctly
- */
-
-#include <X11/Intrinsic.h>
-
#ifdef STANDALONE
# define PROGCLASS "Superquadrics"
# define HACK_INIT init_superquadrics
static XrmOptionDescRec opts[] =
{
- {"-spinspeed", ".superquadrics.spinspeed", XrmoptionSepArg, (caddr_t) NULL}
+ {"-spinspeed", ".superquadrics.spinspeed", XrmoptionSepArg, 0}
};
static argtype vars[] =
{
* Thanks goes also to Brian Paul for making it possible and inexpensive
* to use OpenGL at home.
*
- * My e-mail address is lassauge@sagem.fr
+ * My e-mail address is lassauge@users.sourceforge.net
*
* Eric Lassauge (May-13-1998)
*
/* atunnels --- OpenGL Advanced Tunnel Demo */
#if 0
-static const char sccsid[] = "@(#)tunnel_draw.c 5.02 2002/03/16 xlockmore";
+static const char sccsid[] = "@(#)tunnel_draw.c 5.13 2004/05/25 xlockmore";
#endif
-/* Copyright (c) E. Lassauge, 2002. */
+/* Copyright (c) E. Lassauge, 2002-2004. */
/*
* Permission to use, copy, modify, and distribute this software and its
* Email: romka@ut.ee
* WEB: http://romka.demonews.com
*
- * Eric Lassauge (March-16-2002) <lassauge@mail.dotcom.fr>
+ * Eric Lassauge (May-25-2004) <lassauge@users.sourceforge.net>
* http://lassauge.free.fr/linux.html
*
* REVISION HISTORY:
+ * E.Lassauge - 25-May-2004:
+ * - added more texture
+ * - random texture init
*
*/
#include "tunnel_draw.h"
+#ifdef STANDALONE /* For NRAND() */
+#include "xlockmoreI.h" /* in xscreensaver distribution */
+#else /* STANDALONE */
+#include "xlock.h" /* in xlockmore distribution */
+#endif /* STANDALONE */
+
typedef struct
{
float x, y, z; /* Point coordinates */
void InitTunnel(void)
{
LoadPath();
- current_texture = 0;
+ current_texture = NRAND(MAX_TEXTURE);
}
void DrawTunnel(int do_texture, int do_light, GLuint *textures)
tFlag = 0;
ModeXFlag = 1;
current_texture++;
- if (current_texture > 2) current_texture = 0;
+ if (current_texture >= MAX_TEXTURE) current_texture = 0;
}
/* Now we want to draw splash screen */
glLoadIdentity();
+#define MAX_TEXTURE 10
extern void DrawTunnel(int do_texture, int do_light, GLuint *textures);
extern void SplashScreen(int do_wire, int do_texture, int do_light);
extern void InitTunnel(void);
* Thanks goes also to Brian Paul for making it possible and inexpensive
* to use OpenGL at home.
*
- * My e-mail address is lassauge@sagem.fr
+ * My e-mail address is lassauge@users.sourceforge.net
*
* Eric Lassauge (May-13-1998)
*
* software for any purpose. It is provided "as is" without express or
* implied warranty.
*
- * Alpha channel support by Eric Lassauge <lassauge@mail.dotcom.fr>.
+ * Alpha channel support by Eric Lassauge <lassauge@users.sourceforge.net>
*/
#ifdef HAVE_CONFIG_H
static XrmOptionDescRec opts[] =
{
- {(char *) "-decay", (char *) ".grav.decay", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+decay", (char *) ".grav.decay", XrmoptionNoArg, (caddr_t) "off"},
- {(char *) "-trail", (char *) ".grav.trail", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+trail", (char *) ".grav.trail", XrmoptionNoArg, (caddr_t) "off"}
+ {"-decay", ".grav.decay", XrmoptionNoArg, "on"},
+ {"+decay", ".grav.decay", XrmoptionNoArg, "off"},
+ {"-trail", ".grav.trail", XrmoptionNoArg, "on"},
+ {"+trail", ".grav.trail", XrmoptionNoArg, "off"}
};
static argtype vars[] =
{
};
static OptionStruct desc[] =
{
- {(char *) "-/+decay", (char *) "turn on/off decaying orbits"},
- {(char *) "-/+trail", (char *) "turn on/off trail dots"}
+ {"-/+decay", "turn on/off decaying orbits"},
+ {"-/+trail", "turn on/off trail dots"}
};
ModeSpecOpt grav_opts =
static XrmOptionDescRec opts[] =
{
- {(char *) "-martin", (char *) ".hop.martin", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+martin", (char *) ".hop.martin", XrmoptionNoArg, (caddr_t) "off"},
- {(char *) "-popcorn", (char *) ".hop.popcorn", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+popcorn", (char *) ".hop.popcorn", XrmoptionNoArg, (caddr_t) "off"},
- {(char *) "-ejk1", (char *) ".hop.ejk1", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+ejk1", (char *) ".hop.ejk1", XrmoptionNoArg, (caddr_t) "off"},
- {(char *) "-ejk2", (char *) ".hop.ejk2", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+ejk2", (char *) ".hop.ejk2", XrmoptionNoArg, (caddr_t) "off"},
- {(char *) "-ejk3", (char *) ".hop.ejk3", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+ejk3", (char *) ".hop.ejk3", XrmoptionNoArg, (caddr_t) "off"},
- {(char *) "-ejk4", (char *) ".hop.ejk4", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+ejk4", (char *) ".hop.ejk4", XrmoptionNoArg, (caddr_t) "off"},
- {(char *) "-ejk5", (char *) ".hop.ejk5", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+ejk5", (char *) ".hop.ejk5", XrmoptionNoArg, (caddr_t) "off"},
- {(char *) "-ejk6", (char *) ".hop.ejk6", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+ejk6", (char *) ".hop.ejk6", XrmoptionNoArg, (caddr_t) "off"},
- {(char *) "-rr", (char *) ".hop.rr", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+rr", (char *) ".hop.rr", XrmoptionNoArg, (caddr_t) "off"},
- {(char *) "-jong", (char *) ".hop.jong", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+jong", (char *) ".hop.jong", XrmoptionNoArg, (caddr_t) "off"},
- {(char *) "-sine", (char *) ".hop.sine", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+sine", (char *) ".hop.sine", XrmoptionNoArg, (caddr_t) "off"}
+ {"-martin", ".hop.martin", XrmoptionNoArg, "on"},
+ {"+martin", ".hop.martin", XrmoptionNoArg, "off"},
+ {"-popcorn", ".hop.popcorn", XrmoptionNoArg, "on"},
+ {"+popcorn", ".hop.popcorn", XrmoptionNoArg, "off"},
+ {"-ejk1", ".hop.ejk1", XrmoptionNoArg, "on"},
+ {"+ejk1", ".hop.ejk1", XrmoptionNoArg, "off"},
+ {"-ejk2", ".hop.ejk2", XrmoptionNoArg, "on"},
+ {"+ejk2", ".hop.ejk2", XrmoptionNoArg, "off"},
+ {"-ejk3", ".hop.ejk3", XrmoptionNoArg, "on"},
+ {"+ejk3", ".hop.ejk3", XrmoptionNoArg, "off"},
+ {"-ejk4", ".hop.ejk4", XrmoptionNoArg, "on"},
+ {"+ejk4", ".hop.ejk4", XrmoptionNoArg, "off"},
+ {"-ejk5", ".hop.ejk5", XrmoptionNoArg, "on"},
+ {"+ejk5", ".hop.ejk5", XrmoptionNoArg, "off"},
+ {"-ejk6", ".hop.ejk6", XrmoptionNoArg, "on"},
+ {"+ejk6", ".hop.ejk6", XrmoptionNoArg, "off"},
+ {"-rr", ".hop.rr", XrmoptionNoArg, "on"},
+ {"+rr", ".hop.rr", XrmoptionNoArg, "off"},
+ {"-jong", ".hop.jong", XrmoptionNoArg, "on"},
+ {"+jong", ".hop.jong", XrmoptionNoArg, "off"},
+ {"-sine", ".hop.sine", XrmoptionNoArg, "on"},
+ {"+sine", ".hop.sine", XrmoptionNoArg, "off"}
};
static argtype vars[] =
{
};
static OptionStruct desc[] =
{
- {(char *) "-/+martin", (char *) "turn on/off sqrt format"},
- {(char *) "-/+popcorn", (char *) "turn on/off Clifford A. Pickover's popcorn format"},
- {(char *) "-/+ejk1", (char *) "turn on/off ejk1 format"},
- {(char *) "-/+ejk2", (char *) "turn on/off ejk2 format"},
- {(char *) "-/+ejk3", (char *) "turn on/off ejk3 format"},
- {(char *) "-/+ejk4", (char *) "turn on/off ejk4 format"},
- {(char *) "-/+ejk5", (char *) "turn on/off ejk5 format"},
- {(char *) "-/+ejk6", (char *) "turn on/off ejk6 format"},
- {(char *) "-/+rr", (char *) "turn on/off rr format"},
- {(char *) "-/+jong", (char *) "turn on/off jong format"},
- {(char *) "-/+sine", (char *) "turn on/off sine format"}
+ {"-/+martin", "turn on/off sqrt format"},
+ {"-/+popcorn", "turn on/off Clifford A. Pickover's popcorn format"},
+ {"-/+ejk1", "turn on/off ejk1 format"},
+ {"-/+ejk2", "turn on/off ejk2 format"},
+ {"-/+ejk3", "turn on/off ejk3 format"},
+ {"-/+ejk4", "turn on/off ejk4 format"},
+ {"-/+ejk5", "turn on/off ejk5 format"},
+ {"-/+ejk6", "turn on/off ejk6 format"},
+ {"-/+rr", "turn on/off rr format"},
+ {"-/+jong", "turn on/off jong format"},
+ {"-/+sine", "turn on/off sine format"}
};
ModeSpecOpt hop_opts =
--- /dev/null
+/* XPM */
+static char * ghost_d1_xpm[] = {
+"64 64 5 1",
+" c None",
+". c #FF0000",
+"+ c #DEDEDE",
+"# c #2121DE",
+"@ c #000000",
+" .................. ",
+" .................. ",
+" .................. ",
+" .................. ",
+" .................. ",
+" .................................... ",
+" .................................... ",
+" .................................... ",
+" .................................... ",
+" .............................................. ",
+" .............................................. ",
+" .............................................. ",
+" .............................................. ",
+" .............................................. ",
+" ...................................................... ",
+" ...................................................... ",
+" ...................................................... ",
+" ...................................................... ",
+" .........+++++++++..................+++++++++......... ",
+" .........+++++++++..................+++++++++......... ",
+" .........+++++++++..................+++++++++......... ",
+" .........+++++++++..................+++++++++......... ",
+" .........+++++++++..................+++++++++......... ",
+" ....++++++++++++++++++..........++++++++++++++++++.... ",
+" ....++++++++++++++++++..........++++++++++++++++++.... ",
+" ....++++++++++++++++++..........++++++++++++++++++.... ",
+" ....++++++++++++++++++..........++++++++++++++++++.... ",
+".........++++++++++++++++++..........++++++++++++++++++.........",
+".........++++++++++++++++++..........++++++++++++++++++.........",
+".........++++++++++++++++++..........++++++++++++++++++.........",
+".........++++++++++++++++++..........++++++++++++++++++.........",
+".........++++++++++++++++++..........++++++++++++++++++.........",
+".........+++++#########++++..........++++#########+++++.........",
+".........+++++#########++++..........++++#########+++++.........",
+".........+++++#########++++..........++++#########+++++.........",
+".........+++++#########++++..........++++#########+++++.........",
+".........+++++#########++++..........++++#########+++++.........",
+"..............#########..................#########..............",
+"..............#########..................#########..............",
+"..............#########..................#########..............",
+"..............#########..................#########..............",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"..................@@@@@..................@@@@@..................",
+"..................@@@@@..................@@@@@..................",
+"..................@@@@@..................@@@@@..................",
+"..................@@@@@..................@@@@@..................",
+"@@@@@.........@@@@@@@@@@@@@..........@@@@@@@@@@@@@.........@@@@@",
+"@@@@@.........@@@@@@@@@@@@@..........@@@@@@@@@@@@@.........@@@@@",
+"@@@@@.........@@@@@@@@@@@@@..........@@@@@@@@@@@@@.........@@@@@",
+"@@@@@.........@@@@@@@@@@@@@..........@@@@@@@@@@@@@.........@@@@@",
+"@@@@@.........@@@@@@@@@@@@@..........@@@@@@@@@@@@@.........@@@@@"};
--- /dev/null
+/* XPM */
+static char * ghost_d2_xpm[] = {
+"64 64 5 1",
+" c None",
+". c #FF0000",
+"+ c #DEDEDE",
+"# c #2121DE",
+"@ c #000000",
+" .................. ",
+" .................. ",
+" .................. ",
+" .................. ",
+" .................. ",
+" .................................... ",
+" .................................... ",
+" .................................... ",
+" .................................... ",
+" .............................................. ",
+" .............................................. ",
+" .............................................. ",
+" .............................................. ",
+" .............................................. ",
+" ...................................................... ",
+" ...................................................... ",
+" ...................................................... ",
+" ...................................................... ",
+" .........+++++++++..................+++++++++......... ",
+" .........+++++++++..................+++++++++......... ",
+" .........+++++++++..................+++++++++......... ",
+" .........+++++++++..................+++++++++......... ",
+" .........+++++++++..................+++++++++......... ",
+" ....++++++++++++++++++..........++++++++++++++++++.... ",
+" ....++++++++++++++++++..........++++++++++++++++++.... ",
+" ....++++++++++++++++++..........++++++++++++++++++.... ",
+" ....++++++++++++++++++..........++++++++++++++++++.... ",
+".........++++++++++++++++++..........++++++++++++++++++.........",
+".........++++++++++++++++++..........++++++++++++++++++.........",
+".........++++++++++++++++++..........++++++++++++++++++.........",
+".........++++++++++++++++++..........++++++++++++++++++.........",
+".........++++++++++++++++++..........++++++++++++++++++.........",
+".........+++++#########++++..........++++#########+++++.........",
+".........+++++#########++++..........++++#########+++++.........",
+".........+++++#########++++..........++++#########+++++.........",
+".........+++++#########++++..........++++#########+++++.........",
+".........+++++#########++++..........++++#########+++++.........",
+"..............#########..................#########..............",
+"..............#########..................#########..............",
+"..............#########..................#########..............",
+"..............#########..................#########..............",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+".........@@@@@.............@@@@@@@@@@.............@@@@@.........",
+".........@@@@@.............@@@@@@@@@@.............@@@@@.........",
+".........@@@@@.............@@@@@@@@@@.............@@@@@.........",
+".........@@@@@.............@@@@@@@@@@.............@@@@@.........",
+".....@@@@@@@@@@@@@.........@@@@@@@@@@.........@@@@@@@@@@@@@.....",
+".....@@@@@@@@@@@@@.........@@@@@@@@@@.........@@@@@@@@@@@@@.....",
+".....@@@@@@@@@@@@@.........@@@@@@@@@@.........@@@@@@@@@@@@@.....",
+".....@@@@@@@@@@@@@.........@@@@@@@@@@.........@@@@@@@@@@@@@.....",
+".....@@@@@@@@@@@@@.........@@@@@@@@@@.........@@@@@@@@@@@@@....."};
--- /dev/null
+/* XPM */
+static char * ghost_l1_xpm[] = {
+"64 64 5 1",
+" c None",
+". c #FF0000",
+"@ c #DEDEDE",
+"# c #2121DE",
+"+ c #000000",
+" .................. ",
+" .................. ",
+" .................. ",
+" .................. ",
+" .................. ",
+" .................................... ",
+" .................................... ",
+" .................................... ",
+" .................................... ",
+" .............................................. ",
+" .............................................. ",
+" .............................................. ",
+" .............................................. ",
+" .............................................. ",
+" ....@@@@@@@@@...................@@@@@@@@@............. ",
+" ....@@@@@@@@@...................@@@@@@@@@............. ",
+" ....@@@@@@@@@...................@@@@@@@@@............. ",
+" ....@@@@@@@@@...................@@@@@@@@@............. ",
+" @@@@@@@@@@@@@@@@@@.........@@@@@@@@@@@@@@@@@@......... ",
+" @@@@@@@@@@@@@@@@@@.........@@@@@@@@@@@@@@@@@@......... ",
+" @@@@@@@@@@@@@@@@@@.........@@@@@@@@@@@@@@@@@@......... ",
+" @@@@@@@@@@@@@@@@@@.........@@@@@@@@@@@@@@@@@@......... ",
+" @@@@@@@@@@@@@@@@@@.........@@@@@@@@@@@@@@@@@@......... ",
+" #########@@@@@@@@@.........#########@@@@@@@@@......... ",
+" #########@@@@@@@@@.........#########@@@@@@@@@......... ",
+" #########@@@@@@@@@.........#########@@@@@@@@@......... ",
+" #########@@@@@@@@@.........#########@@@@@@@@@......... ",
+".....#########@@@@@@@@@.........#########@@@@@@@@@..............",
+".....#########@@@@@@@@@.........#########@@@@@@@@@..............",
+".....#########@@@@@@@@@.........#########@@@@@@@@@..............",
+".....#########@@@@@@@@@.........#########@@@@@@@@@..............",
+".....#########@@@@@@@@@.........#########@@@@@@@@@..............",
+".........@@@@@@@@@...................@@@@@@@@@..................",
+".........@@@@@@@@@...................@@@@@@@@@..................",
+".........@@@@@@@@@...................@@@@@@@@@..................",
+".........@@@@@@@@@...................@@@@@@@@@..................",
+".........@@@@@@@@@...................@@@@@@@@@..................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"..................+++++..................+++++..................",
+"..................+++++..................+++++..................",
+"..................+++++..................+++++..................",
+"..................+++++..................+++++..................",
+"+++++.........+++++++++++++..........+++++++++++++.........+++++",
+"+++++.........+++++++++++++..........+++++++++++++.........+++++",
+"+++++.........+++++++++++++..........+++++++++++++.........+++++",
+"+++++.........+++++++++++++..........+++++++++++++.........+++++",
+"+++++.........+++++++++++++..........+++++++++++++.........+++++"};
--- /dev/null
+/* XPM */
+static char * ghost_l2_xpm[] = {
+"64 64 5 1",
+" c None",
+". c #FF0000",
+"@ c #DEDEDE",
+"# c #2121DE",
+"+ c #000000",
+" .................. ",
+" .................. ",
+" .................. ",
+" .................. ",
+" .................. ",
+" .................................... ",
+" .................................... ",
+" .................................... ",
+" .................................... ",
+" .............................................. ",
+" .............................................. ",
+" .............................................. ",
+" .............................................. ",
+" .............................................. ",
+" ....@@@@@@@@@...................@@@@@@@@@............. ",
+" ....@@@@@@@@@...................@@@@@@@@@............. ",
+" ....@@@@@@@@@...................@@@@@@@@@............. ",
+" ....@@@@@@@@@...................@@@@@@@@@............. ",
+" @@@@@@@@@@@@@@@@@@.........@@@@@@@@@@@@@@@@@@......... ",
+" @@@@@@@@@@@@@@@@@@.........@@@@@@@@@@@@@@@@@@......... ",
+" @@@@@@@@@@@@@@@@@@.........@@@@@@@@@@@@@@@@@@......... ",
+" @@@@@@@@@@@@@@@@@@.........@@@@@@@@@@@@@@@@@@......... ",
+" @@@@@@@@@@@@@@@@@@.........@@@@@@@@@@@@@@@@@@......... ",
+" #########@@@@@@@@@.........#########@@@@@@@@@......... ",
+" #########@@@@@@@@@.........#########@@@@@@@@@......... ",
+" #########@@@@@@@@@.........#########@@@@@@@@@......... ",
+" #########@@@@@@@@@.........#########@@@@@@@@@......... ",
+".....#########@@@@@@@@@.........#########@@@@@@@@@..............",
+".....#########@@@@@@@@@.........#########@@@@@@@@@..............",
+".....#########@@@@@@@@@.........#########@@@@@@@@@..............",
+".....#########@@@@@@@@@.........#########@@@@@@@@@..............",
+".....#########@@@@@@@@@.........#########@@@@@@@@@..............",
+".........@@@@@@@@@...................@@@@@@@@@..................",
+".........@@@@@@@@@...................@@@@@@@@@..................",
+".........@@@@@@@@@...................@@@@@@@@@..................",
+".........@@@@@@@@@...................@@@@@@@@@..................",
+".........@@@@@@@@@...................@@@@@@@@@..................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+".........+++++.............++++++++++.............+++++.........",
+".........+++++.............++++++++++.............+++++.........",
+".........+++++.............++++++++++.............+++++.........",
+".........+++++.............++++++++++.............+++++.........",
+".....+++++++++++++.........++++++++++.........+++++++++++++.....",
+".....+++++++++++++.........++++++++++.........+++++++++++++.....",
+".....+++++++++++++.........++++++++++.........+++++++++++++.....",
+".....+++++++++++++.........++++++++++.........+++++++++++++.....",
+".....+++++++++++++.........++++++++++.........+++++++++++++....."};
+
--- /dev/null
+/* XPM */
+static char * ghost_mask_xpm[] = {
+"64 64 2 1",
+" c None",
+". c #000000",
+" .................. ",
+" .................. ",
+" .................. ",
+" .................. ",
+" .................. ",
+" .................................... ",
+" .................................... ",
+" .................................... ",
+" .................................... ",
+" .............................................. ",
+" .............................................. ",
+" .............................................. ",
+" .............................................. ",
+" .............................................. ",
+" ...................................................... ",
+" ...................................................... ",
+" ...................................................... ",
+" ...................................................... ",
+" ...................................................... ",
+" ...................................................... ",
+" ...................................................... ",
+" ...................................................... ",
+" ...................................................... ",
+" ...................................................... ",
+" ...................................................... ",
+" ...................................................... ",
+" ...................................................... ",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................"};
--- /dev/null
+/* XPM */
+static char * ghost_r1_xpm[] = {
+"64 64 5 1",
+" c None",
+". c #FF0000",
+"@ c #DEDEDE",
+"# c #2121DE",
+"+ c #000000",
+" .................. ",
+" .................. ",
+" .................. ",
+" .................. ",
+" .................. ",
+" .................................... ",
+" .................................... ",
+" .................................... ",
+" .................................... ",
+" .............................................. ",
+" .............................................. ",
+" .............................................. ",
+" .............................................. ",
+" .............................................. ",
+" .............@@@@@@@@@...................@@@@@@@@@.... ",
+" .............@@@@@@@@@...................@@@@@@@@@.... ",
+" .............@@@@@@@@@...................@@@@@@@@@.... ",
+" .............@@@@@@@@@...................@@@@@@@@@.... ",
+" .........@@@@@@@@@@@@@@@@@@.........@@@@@@@@@@@@@@@@@@ ",
+" .........@@@@@@@@@@@@@@@@@@.........@@@@@@@@@@@@@@@@@@ ",
+" .........@@@@@@@@@@@@@@@@@@.........@@@@@@@@@@@@@@@@@@ ",
+" .........@@@@@@@@@@@@@@@@@@.........@@@@@@@@@@@@@@@@@@ ",
+" .........@@@@@@@@@@@@@@@@@@.........@@@@@@@@@@@@@@@@@@ ",
+" .........@@@@@@@@@#########.........@@@@@@@@@######### ",
+" .........@@@@@@@@@#########.........@@@@@@@@@######### ",
+" .........@@@@@@@@@#########.........@@@@@@@@@######### ",
+" .........@@@@@@@@@#########.........@@@@@@@@@######### ",
+"..............@@@@@@@@@#########.........@@@@@@@@@#########.....",
+"..............@@@@@@@@@#########.........@@@@@@@@@#########.....",
+"..............@@@@@@@@@#########.........@@@@@@@@@#########.....",
+"..............@@@@@@@@@#########.........@@@@@@@@@#########.....",
+"..............@@@@@@@@@#########.........@@@@@@@@@#########.....",
+"..................@@@@@@@@@...................@@@@@@@@@.........",
+"..................@@@@@@@@@...................@@@@@@@@@.........",
+"..................@@@@@@@@@...................@@@@@@@@@.........",
+"..................@@@@@@@@@...................@@@@@@@@@.........",
+"..................@@@@@@@@@...................@@@@@@@@@.........",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"..................+++++..................+++++..................",
+"..................+++++..................+++++..................",
+"..................+++++..................+++++..................",
+"..................+++++..................+++++..................",
+"+++++.........+++++++++++++..........+++++++++++++.........+++++",
+"+++++.........+++++++++++++..........+++++++++++++.........+++++",
+"+++++.........+++++++++++++..........+++++++++++++.........+++++",
+"+++++.........+++++++++++++..........+++++++++++++.........+++++",
+"+++++.........+++++++++++++..........+++++++++++++.........+++++"};
--- /dev/null
+/* XPM */
+static char * ghost_r2_xpm[] = {
+"64 64 5 1",
+" c None",
+". c #FF0000",
+"@ c #DEDEDE",
+"# c #2121DE",
+"+ c #000000",
+" .................. ",
+" .................. ",
+" .................. ",
+" .................. ",
+" .................. ",
+" .................................... ",
+" .................................... ",
+" .................................... ",
+" .................................... ",
+" .............................................. ",
+" .............................................. ",
+" .............................................. ",
+" .............................................. ",
+" .............................................. ",
+" .............@@@@@@@@@...................@@@@@@@@@.... ",
+" .............@@@@@@@@@...................@@@@@@@@@.... ",
+" .............@@@@@@@@@...................@@@@@@@@@.... ",
+" .............@@@@@@@@@...................@@@@@@@@@.... ",
+" .........@@@@@@@@@@@@@@@@@@.........@@@@@@@@@@@@@@@@@@ ",
+" .........@@@@@@@@@@@@@@@@@@.........@@@@@@@@@@@@@@@@@@ ",
+" .........@@@@@@@@@@@@@@@@@@.........@@@@@@@@@@@@@@@@@@ ",
+" .........@@@@@@@@@@@@@@@@@@.........@@@@@@@@@@@@@@@@@@ ",
+" .........@@@@@@@@@@@@@@@@@@.........@@@@@@@@@@@@@@@@@@ ",
+" .........@@@@@@@@@#########.........@@@@@@@@@######### ",
+" .........@@@@@@@@@#########.........@@@@@@@@@######### ",
+" .........@@@@@@@@@#########.........@@@@@@@@@######### ",
+" .........@@@@@@@@@#########.........@@@@@@@@@######### ",
+"..............@@@@@@@@@#########.........@@@@@@@@@#########.....",
+"..............@@@@@@@@@#########.........@@@@@@@@@#########.....",
+"..............@@@@@@@@@#########.........@@@@@@@@@#########.....",
+"..............@@@@@@@@@#########.........@@@@@@@@@#########.....",
+"..............@@@@@@@@@#########.........@@@@@@@@@#########.....",
+"..................@@@@@@@@@...................@@@@@@@@@.........",
+"..................@@@@@@@@@...................@@@@@@@@@.........",
+"..................@@@@@@@@@...................@@@@@@@@@.........",
+"..................@@@@@@@@@...................@@@@@@@@@.........",
+"..................@@@@@@@@@...................@@@@@@@@@.........",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+".........+++++.............++++++++++.............+++++.........",
+".........+++++.............++++++++++.............+++++.........",
+".........+++++.............++++++++++.............+++++.........",
+".........+++++.............++++++++++.............+++++.........",
+".....+++++++++++++.........++++++++++.........+++++++++++++.....",
+".....+++++++++++++.........++++++++++.........+++++++++++++.....",
+".....+++++++++++++.........++++++++++.........+++++++++++++.....",
+".....+++++++++++++.........++++++++++.........+++++++++++++.....",
+".....+++++++++++++.........++++++++++.........+++++++++++++....."};
--- /dev/null
+/* XPM */
+static char * ghost_u1_xpm[] = {
+"64 64 5 1",
+" c None",
+". c #FF0000",
+"@ c #DEDEDE",
+"# c #2121DE",
+"+ c #000000",
+" .................. ",
+" .................. ",
+" .................. ",
+" .................. ",
+" .................. ",
+" #########..................######### ",
+" #########..................######### ",
+" #########..................######### ",
+" #########..................######### ",
+" @@@@@#########@@@@..........@@@@#########@@@@@ ",
+" @@@@@#########@@@@..........@@@@#########@@@@@ ",
+" @@@@@#########@@@@..........@@@@#########@@@@@ ",
+" @@@@@#########@@@@..........@@@@#########@@@@@ ",
+" @@@@@#########@@@@..........@@@@#########@@@@@ ",
+" ....@@@@@@@@@@@@@@@@@@..........@@@@@@@@@@@@@@@@@@.... ",
+" ....@@@@@@@@@@@@@@@@@@..........@@@@@@@@@@@@@@@@@@.... ",
+" ....@@@@@@@@@@@@@@@@@@..........@@@@@@@@@@@@@@@@@@.... ",
+" ....@@@@@@@@@@@@@@@@@@..........@@@@@@@@@@@@@@@@@@.... ",
+" ....@@@@@@@@@@@@@@@@@@..........@@@@@@@@@@@@@@@@@@.... ",
+" ....@@@@@@@@@@@@@@@@@@..........@@@@@@@@@@@@@@@@@@.... ",
+" ....@@@@@@@@@@@@@@@@@@..........@@@@@@@@@@@@@@@@@@.... ",
+" ....@@@@@@@@@@@@@@@@@@..........@@@@@@@@@@@@@@@@@@.... ",
+" ....@@@@@@@@@@@@@@@@@@..........@@@@@@@@@@@@@@@@@@.... ",
+" .........@@@@@@@@@..................@@@@@@@@@......... ",
+" .........@@@@@@@@@..................@@@@@@@@@......... ",
+" .........@@@@@@@@@..................@@@@@@@@@......... ",
+" .........@@@@@@@@@..................@@@@@@@@@......... ",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"..................+++++..................+++++..................",
+"..................+++++..................+++++..................",
+"..................+++++..................+++++..................",
+"..................+++++..................+++++..................",
+"+++++.........+++++++++++++..........+++++++++++++.........+++++",
+"+++++.........+++++++++++++..........+++++++++++++.........+++++",
+"+++++.........+++++++++++++..........+++++++++++++.........+++++",
+"+++++.........+++++++++++++..........+++++++++++++.........+++++",
+"+++++.........+++++++++++++..........+++++++++++++.........+++++"};
--- /dev/null
+/* XPM */
+static char * ghost_u2_xpm[] = {
+"64 64 5 1",
+" c None",
+". c #FF0000",
+"@ c #DEDEDE",
+"# c #2121DE",
+"+ c #000000",
+" .................. ",
+" .................. ",
+" .................. ",
+" .................. ",
+" .................. ",
+" #########..................######### ",
+" #########..................######### ",
+" #########..................######### ",
+" #########..................######### ",
+" @@@@@#########@@@@..........@@@@#########@@@@@ ",
+" @@@@@#########@@@@..........@@@@#########@@@@@ ",
+" @@@@@#########@@@@..........@@@@#########@@@@@ ",
+" @@@@@#########@@@@..........@@@@#########@@@@@ ",
+" @@@@@#########@@@@..........@@@@#########@@@@@ ",
+" ....@@@@@@@@@@@@@@@@@@..........@@@@@@@@@@@@@@@@@@.... ",
+" ....@@@@@@@@@@@@@@@@@@..........@@@@@@@@@@@@@@@@@@.... ",
+" ....@@@@@@@@@@@@@@@@@@..........@@@@@@@@@@@@@@@@@@.... ",
+" ....@@@@@@@@@@@@@@@@@@..........@@@@@@@@@@@@@@@@@@.... ",
+" ....@@@@@@@@@@@@@@@@@@..........@@@@@@@@@@@@@@@@@@.... ",
+" ....@@@@@@@@@@@@@@@@@@..........@@@@@@@@@@@@@@@@@@.... ",
+" ....@@@@@@@@@@@@@@@@@@..........@@@@@@@@@@@@@@@@@@.... ",
+" ....@@@@@@@@@@@@@@@@@@..........@@@@@@@@@@@@@@@@@@.... ",
+" ....@@@@@@@@@@@@@@@@@@..........@@@@@@@@@@@@@@@@@@.... ",
+" .........@@@@@@@@@..................@@@@@@@@@......... ",
+" .........@@@@@@@@@..................@@@@@@@@@......... ",
+" .........@@@@@@@@@..................@@@@@@@@@......... ",
+" .........@@@@@@@@@..................@@@@@@@@@......... ",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+"................................................................",
+".........+++++.............++++++++++.............+++++.........",
+".........+++++.............++++++++++.............+++++.........",
+".........+++++.............++++++++++.............+++++.........",
+".........+++++.............++++++++++.............+++++.........",
+".....+++++++++++++.........++++++++++.........+++++++++++++.....",
+".....+++++++++++++.........++++++++++.........+++++++++++++.....",
+".....+++++++++++++.........++++++++++.........+++++++++++++.....",
+".....+++++++++++++.........++++++++++.........+++++++++++++.....",
+".....+++++++++++++.........++++++++++.........+++++++++++++....."};
--- /dev/null
+/* XPM */
+static char *texture3[] = {
+/* columns rows colors chars-per-pixel */
+"128 128 16 1",
+" c #8C7D6A",
+". c #8F806D",
+"X c #91826E",
+"o c #9A8B77",
+"O c #9F907C",
+"+ c #A1927E",
+"@ c #9F9280",
+"# c #A89A87",
+"$ c #AEA18E",
+"% c #AFA291",
+"& c #B0A28F",
+"* c #B6AA98",
+"= c #BCB09F",
+"- c #BCAFA0",
+"; c #BDB1A1",
+": c #C0B4A4",
+/* pixels */
+"&$$$####+$$$$$##$#$$#$$#++###%**%**;--=*%%%$**-*---=*=****;==&#$##&#$$##@###+#+++######&######&&#&###@#&$$&$#$$#$$#$$+@O$#$*****",
+"$$$$$###+$$$$$$##$#$$$$##$###=::;-;;;;;;-%#$%***************=&##$##&&&####$##+##+#####&&#####&&&#&$##@#&&&&$$+$##$$$$@$$@$%==:==",
+"%$$#$#%#+$$%%$$$$$#$$#$$$$$##*==---*-----$#%#%&&&&&*****=**==&$$$#&##$&#$%$######&###&&&&&&##&&&$$#&&@##*&&&$$$$$$##$$#$%#$====*",
+"&&%#$$$+#%%***$&$$#$$+$*$$$$#===***------$#####&#$#&#&*****-*&$&&&&##&&&#%#######&###&*&&&&#@&&&##&&#@$&&**&$&$$$$@$%%$$$$$=*=**",
+"$#####$+o#######$++$$$&&%$#$$*==--=*=---*###@+#&&#####&&&**-*&+#+##$#&&&$$$#+####&##&&&&&&#######@#&#O@##$+###++@$$#$$$#$#*;;;==",
+"%##&%**$ooO+##XoO+++$++$$$##$=::;---:===*######&#####%###&&&&+++O######$###$#+##&&&&*&+######&&#&&***@ O+##OX+++###$$$$$#%%;;;==",
+"***=====%**==*@####$++$$$##$%=::-*-:=--**$$##########&%#&#++#++#+##+##$$$#$#####&&&##+ +@ #@&***:-=-:****==&####$+@+#$$##$*;;-**",
+"***====;======###++$$$$+#$##%=;==--:*-==*%$#########%%&#+#&&#########$#$##########+++#+ @#&@#**--*--=:*-;==&###+O$$$$+$$##*;;--;",
+"*===-******-*=$#$++$####$$##$====:---*=**&&#+&&+#####&#+#$&###&#+&++###$%##$######+### +O####-*----&****:--*##++######%$##%:=;;=",
+"***=--*****-=*$#&+$+###$$$$$$*:=:::**-***&##&++##$$#&&###$##+&&#++&$##$$$$#$#$########+OO@#@#-***--******--%$$$##+####$#$%*;;::;",
+"*%*=*****=--*=$@$+++#####$$$$=:::==--***=&&&+++&#$+#&&+++&#+++##++++$+#&$$#############O+@#@@*&*:****-*=-***####+#+$##%%#$%::;;;",
+"*****%**==-**=@oOOooOoOoOOo++=:=----==***&#&&++++++##$+++++++++o++OOoOoOOO@O@@###&####&&###o@****-%%&==--*-$OooooOOOOOOO@@%::==;",
+"=**==%%*=***=*%%$$++%%%$$$$@#*:=-:--==-**&#&*&#&&&&&##$$#+#####&&$$&%##%&##$&*&&##&&&#&&&&&o@:***:*%*******%%$%#+$%$%#$%#@%;:==;",
+"**===*%**=*****-==::;;===:*#$*=:-=::;--**#+#+##*=:==****=;***=-:====::;:;&&****&++++##&&&#& @-**==**&-:**-**==;===::;;:;#%%-;;;;",
+"*%==*%****;;=*====::=*=;::*$**===:::-*-**+o+++#&*=*&&***====**========;=;*&*=*=*ooO##@#&&#@ @*&*=*%%*-**:-=*========;;;=%***;;=;",
+"*****&*===;;;==*=:::===:==*%**:=-;:::-***@O+++#*&****=*==;;===-=====*=;==*&****&+o+#@#&*&&o @-********---:-=*==;:==*-;==%**-;;;;",
+"%********===**=====*%=*===*%**;:--;;;;=%%#O#+##*%*******--=**-*-==***----*%**%**#+####&=*&+X#*&&*******===*======**=====%**=;:;=",
+":**==*==*=*=*%*****=*===:;****;:====-==%%#OO#++==*-=*--=-**&*=***==*-*-;-****=**$$%$#&#*-*#o$:-*==*====***%*****=*=*=;;=***=:;-=",
+"=;*=**=====**=*==*======:=****:=*=====*####O+##***-**=;-=**==*-*====--;;*****-==***=*-%**&##&::-==**=====**=*=*=========*=*;:;*=",
+"%=*=*#%**==*==**========-*%%%$%**&*%$&%%##$####$#*-%$%*-*=*==**-=====-;-*%%$%%*=**%%%%%##&&*&%*-==$$%==***=**==========%#%#%%%%*",
+"*=**%$##%*=**=**=****=*=**#$%*%*=*%%%$$$##%&##$&%**####%*-*--&*-***=*=***#%**%*=*%*%%%%#&&&&%&****$##$%==*==********===%#%*%****",
+"==%*$##O#*=**=**=*****===*%%****==%%%%%$#%&&&####**###@$*-**-**-****==*=%#%****=*%%%%%%#####%-:**%$##@%*=*=**=*=%****=*%%*****=*",
+"=***%$$#%%%*******%**=****%*****-=***%*$#%%&#####$*####&&********%***;=********;;*%**%&####@%:-**%$##$*%*******%***===********==",
+"==*%%$@@%====*******=*=*********-****%%%##%&%#####*&###*----*******;*****%*****=****&%%#@##@$::**%$$@#**==********=**********==*",
+"==****%#%====*==========*==**===-**%*%%*%#%%$#####***$#*::-**---;=======*=*=====**%*%*%#####$--***=%%#=;=*****=======*=***====-*",
+"=%%%%**%$%$%$#%%***=*=********=*-*%***%*%%*%%$$###&***$$&&##$&&**=*************=*%***%*%%###$:*$%%***$%$$$$$%**=**=********=***%",
+"=*%%%%*%$$$$##%$$$%%***********=*%%**%*%%%***%%###%%%*$##&##$&&&%%*%*******=*==*%$****%%%%##$**%%$%%%%%$$##$%%%%*%*%***=****--*%",
+"****%**$$$$###$#$$$$$$$$%=*==*==*%$%-%***%&**&%###%%**#%&&&##$##%$%$$%%***=*=-**%#**%***%##@$--**%%*%#%$$#####$$$$$%%****===-*%%",
+"=*%*%**%$*$##$##+#$$##$$$$%***=*%*%******%**%%%$##****$%&&####@#$$$##$$$*%**==*$*******%%%$@&--%$***%#%%####@###$#$#%%%%%*=**%%*",
+"*%@%%#%%$%$##+#++$$####$$$#$****%**%***%%#%%*#####$##%#$&&#@#+###$######$$%****%*%%*%**$#$###-&##$#$%$%%$####@#$#######$%%******",
+"%$@##%%%%%%%#####$######$##$##$#$%%****%%$$%########%%$$&*######$$####$$#$$@##%$****%%%##$$##&%#+##%$$%*%######$#####%##%###%%%%",
+"#$@@@o@#$**$%###+#$#@##$%$#####@#*;;;==*-=-**#@##@o@o#$%*&&&###@$##+@$$$$@@$@##%*----**-***%@@&#OOOo#$%*%$$##########%%%#@##@@%;",
+"o@@OooO$$%**%$$@##++##$&&&++#&&##*====-=*-=*=#Xo#@ooo@$%*%*%$###$+#+##$&#+##%##&*=-=====**-*+o++Oooo##***%%###+#@###$$$++$$&##&=",
+".ooXo+$$$***%$@$#####$#&&++&&&#+#*====**-*=**#oXooX@##$$***&#####+$#$#&&###$####**=-*=*==-=&+ooOXoO#$$$**%%$########$$$O+$$#+#&*",
+"OOo.o+O$***&$$$$$+$$###&&#+#$+#+#&==*==*==;=*#OOoX o+#$*%*&$&$##+&&###&&#+####+$*==-=*=*===*+++O.X+O#%***%$$##@#$$##$$$O+$$$+#$*",
+"@@@oooo@%*&$O$$++++#+#$&$#++###+#*=*==*==*=**#O@O#oooo#***#####++##+#&&##++#####**=*===**-**++++OoOoO$%*%##$##+#$#+$$$$$+$++#+&*",
+"#@OOOOoO$$$$O$$$O#$+#+#++#+#OO#++&*====*=**=*#O#++O#oo#%%%#+#$$O$##++#++++#OO#O#**--==*=**-&##++OOOOo+%%%#@$##O#++++$O+@++O+++&*",
+"##@OOOoO$$$*$&$$&$$$+oXoooX XXo&*=*===*==**#$$##OO#O#$$%&$%&&&&&&+XooOoX XXo+&---=;=*===&+&&+OOOOO$$%%%$%%%%$&$ooooOo XoX#&",
+"$$$#+O+$$$$&$$$$$$+$$$+#&#OXo#OOo#====**=*==*##$%##OO#&&$%*$%$$%#$&&+##$#oXO+OoO**===**====&+&&&#++++$$$*%#$$$$#$$$@@$$+oo+++o+*",
+"%*%%$$$$$$$$$$$$+$$$$$%%&####&&#+&=*=**=*===&@$&%&#####&$%&$%%##$+#&*&&&####%&##%*==**=*-*=&+*&&$$$##$%$%%$$$#$#@$$&*%$+##&&&##*",
+"$%%$$%$$$$&&&$$$%&##$$**%$$##&&$$***===*=*=*%O%%*&%%&##%*%&%$$$%&##$%**%&##$&&$#**=*=**===*&+&&&$$$$#$%%%%$$%$%$##%%*&%$##&&&#&=",
+"$$$$$$@$$$$&**&%%%$#%%%**$$#&&#%+%*********=%O#$#####$%&&%%**%%%&##&*%**%$$&$$%#***=*--**=*&+#&&$##$#%%%%%**%%%%##*****%##&%%##*",
+"@@@$O@@$$&&&$***&$#@$*****%$&&#&$&*********%%+#########%*%%%%**$####*****##%$$$$%=*******&&&++++$@O#@%%%%%%%**%#@#&*****#&&#$&$*",
+"%**-***-====*%%=**%%*****%&%%&$*$$$##O##$#$$$$%*%*****====**#*=**&$*****&&&%%%&####+#######+#***=***-;;-=**%****%%*****%&&&&&&##",
+"$*;;;-;;;;;;-*$*****=**%%%*$##&*#OOOoXoXoooOO###*;:;-:::==;=*&**=*-***&&&%##$&&#@oooXXXoo Oo+#&::;;;;;;;=;=%%****-***%%%%$#$*&#+",
+"$$-=---**----*$%%$***%*%#&%###%&$OO@+###++OooOOo#=-=*-**===;&%*$%***$*%#&*%##&&##o#O####+####+&-===*=*-====$%%%%**%%*$%%$###&%##",
+"$%==****--;-;*%*%$$%%***$$#$#+#&###O$O#+%$@ooOO##*-****=;;:;%&*%#%%%***%######$##O##+O##&#&++#&*==****=;=:=$**%%%%***%%#####$#+#",
+"$*------;;---%%*%*$#%%%%$$###$&&@O#O+++$+O@OOO+##-;---=;;;;*%&*%*##%%&*%##@#%&##+#O+####+#+++#&*======:;==*$*%%*$#%%%*%#@##$&#O#",
+"$&:::;==;==**&&*&&$$&&%*&&$##&&##O#+########O+###*::==::-=**$%*%%&&*&%*&$##$%%############+###&=:;;;;;;--**$*&%%%%%%&*&###$&$#+#",
+"$*::;;*;=-;==*#&%$$&%*****$&&**&$#+#########+OO##;:==*:*-;-=$#%%#%%*%*=*%%%**%%#++#######&#&##&;:;;*;;*--**##%%%%*&**=*#&*&*&$#+",
+"#*====;;=-;;=*&*-:*::::-==&$&&&&%#+#+$########+#&===---=--==%**--=::;-=;-%#$%%%###+#+########+&:;;*;;;=-;-*$*==;=:;;--:*$$$&&%##",
+"+*==;;;;*-=**&-:::::----==&oo+ooO###$++#+#+#####*==::--*=****;;;::;-;;-;=#oo@@o#+####++##+#####-;;;;--*;=***:;;;;==;--;-OXo+oo#+",
+"#%;;;:;;*-*****-:::::::-::&Xoo+++#++++########@#*;;:::-*****%-;;-:--;::::# o@+##+@+##++#####&+#*;;::;-*****%=;;-:=;;;::=+Xo+#+#+",
+"#=;;;;;;*-**-**---**-:::::&oo++##+#++##+O##+#$##*::;---==*****;--*-::::;:#oO@@###+#+++######&+&-;;;;-==***=*=;-=-=::::;=+oo+####",
+"#$;;;=;=-*--***:--*:=::::=*+++###+#####+###O@$##*;:----=*--**-;;-=*:;:;;-&@++#@#######+#+# &&##*;;;;-==--***-;;---=;;;;;#+O+##+#",
+"#$;;==;=;-*****-:-===:--==*++++##+++#+#+@###$$##*::-==----**%*--:---=;;;:&@++@#@o++##+####&&###*;;;;=----**%*;----;;;;;;&+OOO#Oo",
+"O#=;;;:::=****&**--*-;;;--*@+++++o O#+###$$&%$##*---;;::;-*-***-----:----$@#++@+X ooOo++#$$&#O+*;:;;===*=****=*---;;:---#++#+#o ",
+"#######+#&&&*&**---:--;---*#$$#####@$&$&&&&$%*$$*---;;:;-*****--------*--&#####&##+@#@+##$$&&###@$##$$$$$&*%**---;-:--*-&#######",
+"OoooXooooo+++&&----**---==*&$#$$&###&&%*&#%$####%--:;:;;;***%*-----*-----*&$&##&&##+@#+#####&#oooooXooXo@+#%==---=*--*-**&$#$&&#",
+"@@#@####Ooo+++&--:-***--=**&$$$%&&###%&&&$$$#%##%;::;;;;;-*%%*---***---**&$$&&#&#####+++++##&#+#@##$#+ooOOO#*---***----*&$$$$&&#",
+"+##++###+ o+#+&;-:--*-*-***$#%$##&#$#&&&&&#%&&%#*;;=-=;--*%#*-;-;;---*--=*#$&&$$&&###+##++##&#+#+++&$+OoO++#-;;;----**-*&#$%$$$#",
+"+O+####+#+O##+&:-:--*-:-==-#$*%$$$##$&%&&****&##&;=-*-*-*-%@%-;;;;-*--**=*$&&&#$###++++oX+#&*&++##+++++OO###-;-;;**-----&%&&$#$$",
+"#########+++#+&&****%*%%%%&%%%%#$####**&&%&*&####%*%**%%%*%##%%%%%%%%*&%#%%&$$$###++++oooo+#&&++$+####++O+##%****%*%&***%%&$$$##",
+"#########++++#&---**-****%#%%&%$$$#$***=-******%%%$%%%#%%%$%%%%%$####@####&&&$$$&###+++++OOo#*###$##$#+#OO##*=;;*-****%##&&$$$$#",
+"++$++$$$+$#++#%==;=**=*=**O$$$$$$$$$&%****%*%$$%%$%%*%#**&**=*=*******%#&&%%$$$$$$$#O@O++O++&&+&+&#####+#+#%*;;;=-*=*=*##%$$$$$$",
+"$$+$++++#+###$*=======*==*+$$$$$$$$$&$$$**%**$$$$$@#$#%==**===*=***=******$$$$#$$$OOOOOOooO++&&+++#++#+&###&====-*=*=*=$#%$$#$#$",
+"+++++$$+###$+$*===*==**==*$$$+$#O$$$**&$$#*%*%$$@@##$#$=***=*==**********%$##%##$#O@#OOO+o++&&++##++++&####%*===*-*===*$@$#$$###",
+"$+$++++#$+$$+$*====*====**+##$+$$@@$*&&%#$%%*&#$@$#%%#$=****==***********$######@$OOOOOO+O+#&*+++++&#&#+$##*=-*=-**====$########",
+"+$$++$+#+O#$#$%=*====*==**##$+$#@$+$&&$$%%*%*%%$$$%%##%**%*******&&&%%$%*#########OoOooOooo+&$++##+++#++%#$%**==-=*==**%#+######",
+"++++++$+$$$#+#%*===**=**=*#+$+++O++OOOO####$#%%%$$$#%%%*$$%******%%%%#######@@oO#OOoOO@@++O+&$+++#+#&##&%@@***==-*;*==*$+###@@@@",
+"Xo+$#$$$%$$$#$**===**=*=**#+++OoO#$+####$##$$$***=*==**%%%$$%&&*%$$%#$#####+@o.o$*-***;;=:*$&+o+##+$&&&&$#%$***==*=**=*$#+@@oo@#",
+"+$$$$*$&&$%$$$%**==*=*===*#+$+oXo&**%**=*=*&*=;;;;;;;*%%#%###%&$$$########+##o o=;;;;;;;;;=**&+&&&*&&&&&$#%%*===*=*====####@XX#=",
+"$$$$&&$$$$####**=*=*==*==*++$OXXo*=;;=;:-;;;*%--===*=;###+##$$$$$$#$$###$##++o o*==*=**----*%*#%&$&&#&%####%*=*=*==**=*$O#OO.X#;",
+"$+$$&*$$$$$$$@%**=*=*****&+++oXXo*======---;-$*=**&&**+O$+####$$$#$###+###+##XXo%==****;;-;-$%##&&*&$%$#&&##**=**=***=*#+OOo.X$=",
+"$$$$%&&&$$$$$#$*-*****=**$++$++OO*==****--;;-$%*&&%$%%##$O#$###$###$$##$$#####++*-;-;*-;;-=*$$#$&&&&%&%%%$##%***=***=**####OOo$=",
+"$+$%%%**%**$#@$$####%#$$$$$$$+$O+*==*===;;;;=#$$&&%$$###$+++#####$$#$#$####$+++#-;;;--;;--=*###%&&&*%**%%$##$#####$#$#%##$##$O$=",
+"+$$***%$%**$$#######@@##+$+$+&++@-;;;==---=**#&&$$#$###$$O$$######$###$##&#&$#+&;;;--;;=-=-*$#@$***%%*%*%%##%###$#@####+$$+$O+$=",
+"$&*=*==****$%%$$$%*%%$%%$$$$+&+$$;:;;=-;==-**$$&$$$#%$#$$$++####&&#&$####&#++#+&;;--=;;*--=*##%**********%%%%&%*%$#$*%#$$$++$O&:",
+"$$&&****$*$$%*$##$*$$#$%&$+$&+++#=;-=---====*#$#$++$$$+O+OOO@@@#######+######++&;;;;---*=**%#$%%%%******#%%%##$%%$#$&&#$$@@$++&:",
+"$$&$$&&*$**$$$$#@$$####$$$$$&&$+#*;-----*=***#&&+$&&**#XO@@#@ooOO#####$#&#&&##+&;;;;;;=***=*#$$**#%**%%**%#%###$$####$##$$$O$$*;",
+"$$*&&$#%%%&&$#@#+$$$O###$#$#$+$+#=;;;;;;==***#***=;;*;=%**=;*@#####+##&$#%#$####==:==:******#%#%*%%#%%%**%###@$%$$+$$$$$$$$+$+*=",
+"O%&*%%%%*%**$#@$$&$#+$#$#$$#$+$+#*:=;;;;=****%*****;;;;=*=;;*##$+######$###%#$#$=::=-------%#%#***%#%*%%%%#@##%%#+$+$+$+$++$$+*=",
+"@$%$%%%%%*%%%%$$$$$$$+$#$$$$+$$+#=::=;;;*==**%**===;**=***==*#$##+#####$%######$*::=-----***$%@%%%%%%%%**%%$%%%##$+$$$$$$##$$$$=",
+"%%%*%*%%%****%$##$#$$####$$#$$$$#*:;;;;;-=***%***;*****%*==**#$$#######$#%#%#$#$=:==-:::--**$*%%%%%*%%%****%#$#$$#+$+$$$$+$$$$&=",
+"***==*=*====*=####@@##$#$$#$$$$O#%;;=;:::==*=%%***=****====**##########$$$#####$=;=-:::--***#***--***=*==***@##@+#$$+$$$&+$$+$$=",
+"*%*=*%%*===**=#ooooo@OO@oOOOOOO##*;;;;;;;*=**#%*****%%*===*=*@oooXo+OOo+OO++O+##*;;;:-:-***%#*&*-**%**===*=%@o@ooOOOOoOOOOo+++$*",
+"=***=%%**=****$$$$##%%%#$&$#$$&%$%;;=;;;;=***#***===***=*****$$$##$&$$$$$#$#$&%%*::;-:----*%#-*=-**%*==**=*%%%%#+$&$$$$$+&$&&&$*",
+"**===***=***=**=;;==;;;-*;*$*&**%*;:;;;;;=-*%#*-**=**%*==*=***====*:=:=::%&**=*%-::*-----*###-**=-**%*=**=***;;-===:====$*****&*",
+"=%==*%***=====*==-;;;--=;;*$*=*;**=:======*%%#**%==*%**==;==*-*=::----;;;%%***-**:=---*-**###***=**%**==:=**=*=;;--=;;;-$&*=*=**",
+"*%******=*=====*;;;;==--;-***=%**=::=*====-#@@%********====---*:::-*--;;;*%**%%$###&%$#$$####**%**%***==;:====;;;-*=;;;-&******=",
+"%%*******===**==---****-;--%*%*%*%%%%%*$%%*%#@%*%*******=-=%==*-*=****---*%%$#####$#########O#*&*******-=**=**==-***-;;-&*&***&%",
+";=*;=**==*==%%=******---;;*******$#$%%$#%*%#@$%*=*==**=--*=%******=*--;:-=%#%$##$$#**%$$##@##*:*==*==*--**%**=*--*=*-;;-*=*****#",
+";;==**====*==*===--=--*-;-*****=;***=*****%$#$%=;-=**--===***===:------;=*%##OO###%%%##$####+&:*=;**=;;=***=---*-;-=-;;-*=*=*==*",
+"%=*=*#%*===*==*%*--=----;-$%%%%*==%*%*%%$$$%%*%=****$%*=*-*==**=-*------*##O#@######%#$#%####$=***%%%==*=*;=**----=-;--%#%#%**=*",
+"*=**%$$#$%=**=***--***---*$#%*%*==%*%%$$###%%%*=**%$$$$$*-*==**-=****--**#%##@######%####&###&=***%##$%==*=-**-*****--*%#*%*&*=*",
+"=***$$#@#*=*==**-******==%$$*****=%%%%%$$#$$%%%==*%$$@@$***==********--*&#%###@######%%###$##&:**%#$@@%*=**********--**$$*****=*",
+"=***%#$#%*%*******%***==***%=***--*%**&%#####&*-***####%&*******%***--***%%#########$$######$%****###$*%*******%***==*******=---",
+"==*%%%#@%===********=******%****--***$%%#####%*-***%&##**--********==******#########$$$$$$#$#*;**%%$@#**==*********=****%*****-*",
+"==*%**%#%===***===*==;=;=*===*--;**%*%%*######*-*****$#*:--***-*-=--===*=**####@#######$####O&==***%#$;;==*%======;==*==**==---*",
+"**$%%**%$$$$$$$&&*=**=*******=-*-*%****%%#####***%#***$%&&#$$$&**=*=**=*****&$%%##%%%$%$##O#$*=%%%**%$%%%##$$%***=*==****=**=-*%",
+"=*%%%%*%$$$$#$&%&&$&*****=*****=*%%%*%***%%#$$****&%%*%$&$##$&&&&*&**********===%%*****%&$$#$*=%%%%%*$#%$@$$%%$$%************=*$",
+"=***%**$$&$#####$$$$$%$$****====*%$%**%***###%****%&*%##&&###$##%$$$%*%*=**===*%#%%*%**%&$$O$=***%**%$%%$##$$#$$$$%%%****==*-*%$",
+"=%%%%%*$$%$###@###$$$$#$$%%*****%*%***%*&%%%$%**%%***=%%*########$####$&*%**=**&%**-*%*%$$$O$=*&%*%=%$%%$####O#$$$###%%%***=;%%*",
+"*%#$%#$$$%%###$O@$$####$$$$$****%*******#####$%%$#%##%##&&#@##+##$##$##$##&**=*&**%****#@$$#$=&$#%#$$$%*####O#$######$#$$$***%**",
+"%#@##$%$#%*$#####$$#O$+$##$$++$$#*%**%$%######$&####&&#&*&$#####&$###########$#%%***&&%##$$#O&$+@#$%&#&&&$+####%##+##$####$+$$&*",
+"#$OO@o+$%*%%$###$####+$$%$$++$++#*=;;;==--=*&+++#+OO@@$&*&&#$##@###+##$%$#######--:;-=--*=*$OO%+@+Oo#$***$$##########$$$##O$++&=",
+"o#@OoX@#$****$$++#+#+#$+%$OO+$&$#*--;==*=**=*#OO@@ooo#$&*&*&########$##&#+O$$##$*-----*==*=*OXO#Oooo$#&**&$######O##$$&$O@$%+$$=",
+"XooXo##$%**%&$$#+###$#$$%$O$$$$+$%==;=*=-*==*+ooooXo@$&&***&$########$%&#+$$####*---**=**==&OooOXXO#$&%***$$#+###$##$$&+#$$#$+$=",
+"OoXXo@+$****$$$#$#$$$$+$*+++$$++#%==-=*==*;-*++ooo @@+&***&&&$#@######%%+O#$$O++*----*-====*+++o.XO@@****$$$#@+#$####%#+O$$$+$$*",
+"@@OooOo#&%*%##$+OO$@+$$&$$+++$++$*=***=**--**$++@OoOOO#&*&#####@######&#$O##@$+$*-*--**===**++++@oooO$&&%#####O###+#$$##O$++++&=",
+"#+OOOOo+$%$#+##$OO+$+++++++++O++@%*---*====**+++#@O+Oo#$&$#@#&#@###+###+#OOOO#@$%*==*===**=&+$++OO@Oo$$$$#O$$#O##++#+#++O+OO$+$*",
+"$##OOOO+$#$%$%%%*$$$+oooO+X..XoXo$**--==**=-*#$##@O@OO###*&$%&%&&&&OXXoOo....X.O%**-==**=*=&#&$+@O@OO$$$&&$*$&&$&$ooooOo...XXX+&",
+"&&&++++#%$%&$$$$$###%$@$$@OXOOOOO&====*=*===*+&$&$+++#$$$&%$$$$$##&&#@###ooo##oo&===***====&#&&&##O+#&%$%&#%&&%##&$+#### o@#Oo@*",
+"&*&&#$##%%&*$$$$$$##$%%*%$@@$$$$+&*==*=*=*=**#$&&&&#$+$$&*%&$$#$###&%%*%#####%##**===*==*=*&+**&&####$$&*&&&&####$$*%&*####%%##*",
+"$&&&$&$#$%&&$$$$$%##$$%*&$$$$$$$#&*=*=*=*=*=&+&**&$&&#$&&%%&$$$%%##$***%###%&&##**==*;***==#+&&*%&*$##%&&&&$#%%%##$***%###$%%#$*",
+"$$#&#$$#%%$&&%%%&%$@$****%$#$$$$#&*==**=****&+#&&#$#&#$&&$&%*%%%$##&%****##%%$&#***==**=***&+#&&$####$&%$*%*&**##$&&***&#$%#$#$*",
+"++$$+#+$$&$$$%**&$#O$*****$$$$$$&&*=***-=*=*&+#++$++#+#$*$$&*%*$###%*%***##&$#&$&**=*==;***&+#++##+###*&&%%%*&##+#&*****#$&$$%%*",
+"&&******====*%%-**%%*****$$$$$%&&+#+++#+#$++++$&&*=***====**%*=**%%%*=**&%%%&&*#&#++++#&###+#*&*=*&&*-====%%**-*%%****%%$$%&%%##",
+"$*::;=======-*%****=***%$$*$$$%*&++OooooooX+++++*=::;;;;;;==*%****==**%%&&$#$&*#++Oo o ooo++&*=::;;--:-:-=%***=*=***%%%%##&*&#+",
+"#*==========-*%%%%***$*$$%&$@#$%&++++++#+$+++&++*=====*=====%$$$%**%%*%#*%###%%#+++#++#+++++#+#=--==-*----=*&%%&**&*%%%*%$##&$#+",
+"#&==****=--;;*%**$$$*&**%$$$@@$$#+++#++#$$##%%##*==****--;;=$%*$#%%*%=*%####@$$#++#++##&##$+##$*=*****-;::-%%*#$%%%**%%%####$##+",
+"$*======-----*%*%&$#$%$*%$@@#$$$###+#@++O@#$%$$#*=-*--*---;=$****#$%%%%$$#@#$&$O+#+##++##+#O##%*:-----;;--*$%**&#%%%&*%####$&###",
+"$&;::-=-;---*$$*%%$%%%&*%%$$$&&$#+######$@#$$$$$*:::-*::-=-*#%*%%%$%%**%$$#$$$$O#+#+##########*=:::--;;;-**%*%%$%%%%**%###&&$#+#",
+"$*::=-*=-*==**@%%%$%***==%$%&*&$#++#####$$$$$$*$*:::--;--;**$#$%#%*%**=*$$$%*$$$#+#########$#O%=::-*-;-;-**##%&%%**%***%&&*&&##+",
+"#*;;--;;==;==%%==;;;:;====&&$&&&&##+##+#$#$$$%%%;;;;-;;----*%*---;;;;;;==&$$$$&&@###+#########$;;--;;;----*%**---:;-==-*$&&&&&##",
+"#*;;=;=-*-=***=;;;;;====:=&XoO+O++#######$$$#%%%-;;;---=-****;;;;;;;;;;;=+XoOOo#+######+#######=;;;;--*-*-**:::;:;;;:--*OXO+OO#+",
+"#%;;;:;;*=*%***;;;;;:==:::&Xo+O++##++++#+#####%#*;;::;-*-**-%-;;;;;;;=;;=$XoOO+++++++#+##+###@#=;;;;;-**&***-:-;;;;;-;:=OXo++++#",
+"#&:;;;=;=*=*=**-;--==:::=:&ooO+###+++##+#####$##*;;;;;-*******;;-;;;:;;==$ooO+$$##+#++#+###$##$-;;;;;--**=***----;:::::=#Xo+###+"
+};
--- /dev/null
+/* XPM */
+static char *texture4[] = {
+/* columns rows colors chars-per-pixel */
+"64 64 64 1",
+" c #201C02",
+". c #2C2703",
+"X c #332B06",
+"o c #352C17",
+"O c #393311",
+"+ c #3D3626",
+"@ c #1D1B00",
+"# c #453917",
+"$ c #443C0A",
+"% c #453B24",
+"& c #4F4516",
+"* c #4D4328",
+"= c #574927",
+"- c #585033",
+"; c #645630",
+": c #72623A",
+"> c #57544F",
+", c #645B53",
+"< c #6A645D",
+"1 c #70684F",
+"2 c #6B6867",
+"3 c #746C68",
+"4 c #7A736D",
+"5 c #7A7876",
+"6 c #6F6F70",
+"7 c #7F7F80",
+"8 c #7F807E",
+"9 c #7F8081",
+"0 c #857A6A",
+"q c #847C78",
+"w c #82775A",
+"e c #817F80",
+"r c #89827C",
+"t c #93867B",
+"y c #958E72",
+"u c #A1927D",
+"i c #92805F",
+"p c #8B8886",
+"a c #948D88",
+"s c #98928D",
+"d c #9A9796",
+"f c #908F90",
+"g c #9F9EA0",
+"h c #A3958C",
+"j c #A39C98",
+"k c #AD968D",
+"l c #A19FA0",
+"z c #A7A29D",
+"x c #B3A59C",
+"c c #A4A085",
+"v c #AAA7A5",
+"b c #B3ACA8",
+"n c #B7B2AD",
+"m c #B9B7B4",
+"M c #B0B0B1",
+"N c #C3BCB7",
+"B c #C3B5AC",
+"V c #C1A799",
+"C c #C6C1BD",
+"Z c #C9C7C5",
+"A c #D2CBC7",
+"S c #D7D5D2",
+"D c #E2E0DF",
+"F c #E2DBD8",
+/* pixels */
+"M6a5ClMCg9<*=B4bfdzBm0>adbtxzsl5krtd4sr4hv8AznbqkjNhZdqjzvge4fZf",
+"6bvCg,855mf*&Cbarldr3sCNmjvvz6sndjt4jkbzflvszrhxtpshfdMpbbpMlNpv",
+"mav4>gCZDz4*-cyrxa4mavd5rrja6fbvCadxCmtr8sal0hztbajqfvMfd7gpggvd",
+"vbddMS9d96s*-jzzzCnbssddajppvvzvdraavpppvaNdxmdNqdjjvvpvvdgvmvpf",
+"pddjpp9vpd,-&rbadjfbaBbjhxprppp83jpavvvZfMpfdzsrebm7fasldtvmppvm",
+"vMjvfdga7gS1&bjhxaarsjjs3azNavmmvCnndpmrglgvvdsrzd45jbMjMvMfpdMm",
+"dfdplrvfdv3.&nsstBxtsta3zk6alsssr2mjfdddldMdjpqxzvvvdpplfpglvvvp",
+"gvp6mMvdpfC+*absa0qh2tqbnkCzrbxzsdvdzzazdffvrjjsseadfljevnMpdv6f",
+"mvMZvvvaffp+#xxqrNNBFhmMq4apBvt2vvfpddfafCjpshCz4rvaajCjv6szz<5m",
+"dfffvd8dsfbo#anvAab45hdqjSANpjbSddmAbmplMdzzmvapNCdjnzpr5hdmaMSv",
+"ddMsjdCdfds+-aldps5jNzdNC,qerqv6pmM45gdva6ds<pvsdaBpjCstvfbdpgpd",
+"9CgddfpvNvd*#qldjjMvv2pqqqpabSdzMg52MsvbrxbpbndnvdrrartCd<dsMfdM",
+"MM9MMvgfeef*&aszj4vzvpm5Ajsmj2dveemZffv5BmnCzsdab44dhanarbZm5pmd",
+"vggM5f2vMSv*:<dppvvb6m2dn2pbvjzrdMCdMmfCmrfsasbbadvaanktxf0vvvg9",
+"fdmgMgAvM65&&sbMMbZfs4mp2aAb3BzjMM8vl9mf2aZdpdrzdzpddsxbhdbpszCl",
+"mm8f6fdjpZa.=mvavj4afMvAZbarBrssvpdldCvvNM26d5g6prarzathbppNx5r2",
+"f2zlNnnlmd5o&4azrbMpvZM6<yvbsrzzzvrvfddpfd5vjxhbNvxChmp4xANsaBxm",
+"dsjrmvmp7jM+=Cdavpfdgfpbnmmtsn25v6np5pa6d2ml5dCN2sBaea0ld<qqhezs",
+"nxrdgffvmv3o;kdgMzgvM8ld5brzmzvdgngvvmxvmzepfja3Nj30qpjfdAfbxdnk",
+"zzffvdvMfsjo=cnppgglZvfvCdrd<sbdmfggvbzd4mpjdzpz2pspxjtnfejbjjas",
+"8fdNdgddjvjo%4lmggg628d9fdMnCzdffgfdvdaMdazsqMmmbS7ddlmaMqhhxvah",
+"mjrsjdmvbpfo=dMdfpllmm8gvadpdpgMMsvmgpvdvmpsMpprf5dvv54apMxekphz",
+"fdgfrfdfdbdo=N5dmMMl9fdjzjnv8ffgdvmlafpxz0bMfgvfvf757CMmjs4aabxd",
+"fcNmvvdfvdpo:bgf9fdMfdmlbj3slnlfggffpMgamdp8mdMMdpgmCgfZdaqNbfjN",
+"tbr2smzqMss#:s6gMgMfZMddfdCCfpvlMdfgZd6zz5mdpMdgppMb2pa5sbs45Mj4",
+"CndNbraZpnf%-jvddgdp9ff8MjtpljMvfggfdvZzbepdv59d7vp5lnlfqsqMAzbh",
+"r354rxN00bpo*ffMd8pmCMvZrtzzdzvdgdgMllrdpfZfpMvvMvvZflvnBdnnqnje",
+"4skCmvpnzs<o=MMfdCvdrpvfvszvvzlgdgMfMpldvm5dMp7fd2g6ggdvhpbxsa4C",
+"NcAstqassj5o;fffM8vvvnpZdbSrvdgMgddzdsbdMdMvfdbxdgvNldMMvjzhmsal",
+"qNt33shjsa5o#vfCf666gpjfvg<sgfMfdlvfvlfdzdpqZnplddMpdgpveqha5eNj",
+"s4jbCxs3pnj.-nZf8nfCrmlnzajfjNfMfgdzvfdzjtvd44MjvM576gZaqjxnjmMs",
+"hsxk4qjCjbj%#n5,8fdaCsd8dmvgMdggvm8NrdjjjjmdjNjnx>zjnAgvjZjsejfj",
+"hakbnv1aaspo*6cnajBznffsnvvgpMvfldc5vvbbpfa6mddrpAbjdd8sC5tshpdZ",
+"pNajjkvdvm2O=dg8Cnjzfvbs5dddvffszfvmmp6rjMd6f5dvd<zssvazfaj4Nzvj",
+"Szqkhxrrnr8+&<8CvdgmlsjCbmdvMgZazzff6vmNmadM8gbbrdz55zavpntjddfp",
+",jvjj5aBtj,X-lMvpM8rdzd8rr5gfMdbvlavMprd86d5gjzaqb6zCas4jqtj0pqn",
+"ma2eanjmsplo&888d5Zv4svfnzdamjvsvzgcspjzvgdAnbvbszlp4MzssjxhAdj5",
+"jsZBdsvaza5o-DcgvAxhxvcspsndMlpjvgmMazCvvfzrsdfsvvazlssNtBrr3szm",
+"ajqj4sh>se>o;1-8,1411-8;o--+-pu18:-;111;-<1-ky10tiyy4iu8xitqic,s",
+"o O%.X$#@@.&&XX.X$.&.$XO&&OO$XX#$X&$&&O&$$&&$X&#OXOOXXX.X$X.OXX&",
+"y0hhyyuyyuu&&>yy11y&yy11101==000&i-1:*1=;*w11:wi1ywtxdzyt<yytsy3",
+"jAAvnSFCmZSO&dNnzfCCCACbbnNANBnbZMvZzCCmAZNtBmbbNdnCZZsvmzCCAMCb",
+"jjabv5s5zd8,&cpgz8crsdcflbhsNsVvdjzpfmmmp23sfffsaba446dNhzhx4pxc",
+"aaxjffMmz>5*;vfdfg9smzzsjqxhexj2v88vCg>6fvsrdzjvdarbzmvrjdzpvZap",
+"MdvvpMgr6naO=Cdzdplz2dvCemjaxseNzcMfsamgdCpnjdma4sbNazbdgM9ZmNml",
+"g8NrfvvMmfd+=spddMMNl8azlqqpzzhvvdxsdM>>mdvdrvsjbnqqbfpfb<Mrgv<6",
+"gMfMfgf8p4pO;ytag4marffpbCbvljCjpjbpabCzrvfrCqsjjpsx42gNdpbp5d6Z",
+"98dpgldldNz#;bbC8z3fbzznbqbvvvegpMzlSvpbMsbj5bbqskNbmvmp4gagZgZp",
+"dvMMggsvzdb1=arpbMNCeabsqN,2NefepAdddsneqbehaq4ZsZC3ajjMvseekvdv",
+"MMd86vmbjzpo=Cnn0qz0vhqjbq5MbzvmMdmZeke<jaVxsbZzja3jsdBpfbsNNzMe",
+"Zg9gMg<rnb5O:ap0jnzqjxzjavZfBevvdvdpejaNhakhflznbddptj3snhnhqfeM",
+"828d46CApan1ObZaNfeNB3znAadvedjhddjfbCksjVxjea>p3NvNn>jaqqjuzjl5",
+"mmCvdvb2snaO;jrajmbhxzjqebseqCjMevxvjfenxkualBbZbjbBrvdAjNbajjbb",
+"dglpsnrxvf5O&0pjvqpjjbpVnxjeNvdeMgfseqqjq3VNa<qpxjp3qaxpdN,0jveg",
+"Md9vzzamszz-&4bnabz0vetx0<zMgq>mgdqvCeCsaBq3afsgpqqNZCxsspbvdfvl",
+"gdvdscCszz5*&xd5jdpbpqtavSNvvMlefmvvexeqBeejvlMvdbBpq2akebsddqfg",
+"fqdzbadhxp5O=0asddjpq5j0jvpgvjvvvfrejpsNhpZxbvd4qsaMeCm0pknqpvln",
+"fmdvfadbtjr-&vjsrdmppmdCnqpZdfdasjMnjjvk3NalepjzAhspCvjbjj4NAMvb",
+"Mdrvsamdzbl%;sqjBmq0z0vqfvNdpfevjppfss5dAaapfnbdefNm3qeqnddddjjs",
+"pfbvjnvpjsq*&rjnvbhmjtjvnjfpq5zqbmMkkvMpabedvjqzlmbe4jabkbMvdgjn",
+"bNjxad65M5q>=jd>atsqjChhtzff5lhjjhdaBdfbaqhf5lMdsvd6d6vbe5ajMdev",
+"a5x5zMgSsjN*$0sSaaAjz6pmnjavM,3bjkqBj0ssdCZsmv7ll55Mjjh3jmemfjja",
+"dAv5p>vd5v<o;jd15z<jhlnsajhjjsNdqja,3jsjjvpavaddvdnnpvvgbafflnhl",
+"gdvmpmv5nsM*#pZjFzxszzjbdfNbeMzqnjfzAxmjvvqdpsdvse<0fZMpdgevmdss"
+};
--- /dev/null
+/* XPM */
+static char *texture5[] = {
+/* columns rows colors chars-per-pixel */
+"64 64 64 1",
+" c #1D1A1B",
+". c #221D1E",
+"X c #2D231F",
+"o c #2B2628",
+"O c #332C2D",
+"+ c #342D32",
+"@ c #34312D",
+"# c #3B3537",
+"$ c #2E2D30",
+"% c #3C3A42",
+"& c #433A3B",
+"* c #453D43",
+"= c #48413E",
+"- c #51423D",
+"; c #4A4547",
+": c #4D4A52",
+"> c #544B4B",
+", c #564D53",
+"< c #58514D",
+"1 c #5B5557",
+"2 c #4F5053",
+"3 c #5C5A63",
+"4 c #5E615D",
+"5 c #5F6469",
+"6 c #635A5B",
+"7 c #61534C",
+"8 c #665D63",
+"9 c #715D68",
+"0 c #69625D",
+"q c #70635E",
+"w c #6B6567",
+"e c #6E6A72",
+"r c #6E7073",
+"t c #74696A",
+"y c #756C74",
+"u c #79726E",
+"i c #7A7477",
+"p c #6E706E",
+"a c #7D7982",
+"s c #7E8183",
+"d c #816E77",
+"f c #82756C",
+"g c #84797A",
+"h c #907F73",
+"j c #857C84",
+"k c #947F8A",
+"l c #8A827D",
+"z c #94877B",
+"x c #8A8488",
+"c c #8C8892",
+"v c #948989",
+"b c #958C94",
+"n c #9B938B",
+"m c #9B9497",
+"M c #8E908D",
+"N c #9D99A1",
+"B c #A3948B",
+"V c #A49898",
+"C c #A59397",
+"Z c #A49AA4",
+"A c #ABA099",
+"S c #A9A3A9",
+"D c #ABA8B2",
+"F c #B5ABB0",
+/* pixels */
+"o4iiy38j9yt6dd6tkNZkZZk93*j,;1ewyccwecccaw:t98e88e8,3a,9939e#+&*",
+";2raaa,3*9ddd9qjkZZZDkka9:39eiaiacci%2jcj98yyiaeeya8339999ey**;*",
+";:1ayad7dgdt66dvNZZZZDk999jadgxxjcbcg,:aj1,dyiiaaaaa33:a3339:*:;",
+"*,*;yjkjd96,,9jxbkbZZkkjt*k9wikcmmNbbj91d7@iiair9aaaaaaa53*9:*,%",
+"%:&*9gt>,9969yjvcbCZbcbdj,kjggcbmZZCbkt9tto;iiitaaaaaaaaa8,8,***",
+"%*O:89,>,yjytdkbbbbCvkkdk*ivkbCCZNCmct7t666+2irr5aaajjcaaa93,#**",
+"#*o*8w9,9gjagxcvbmCbvkjik7dxvbmNZZZmx99gy369#>traaaakkkkjae8,+**",
+"%*.*9ee69jkjjcvvvcbvxjigd99kxCmCZZZmc<9giw96w@,t9a3aajakaae9,o*%",
+"**X1yy7>6gvjxcvxxkcvvhgu<68icbbcbZmbc<9glji88tO:eyyeaajsaaa93o**",
+"&&o6ykh7=;1,1wiaddjkhkg7666>6jvvvckkj<wvbvxi196X,yye5eaia33,9o*+",
+"&XO69kvvttut6w68,&6figg>kt9dq,uvcgigl=tMmbcxe69<.;:*+$oo +o+9*+&",
+"**&,dvgu6tt66wtdf6;&&&66j67fgd<0gjhxl;wmmmbMgt7w7>7<01<;%+%*6,+*",
+"*,**i8886yyttygdgtittq1199qtfhhq1wgjx<6cmbmbxx66f8ugj1w113,893+*",
+"&&*o8:39yglgghggguuyfut9wt97666tutwug61xcbmbccaet1ycj80w399y99+o",
+"....*,tggvvxxxvxgljgutd87gufuuqqulgtg6,xscbbcvjg8;imce192:*,76*o",
+"&,69&6dvxnCnvvvvxxxjjii>tgihlutwttugg6<faaccxccy8;4pye;;>*76696*",
+"+&,:@6dnmVmCmbbbxxxxxlw>glMnvluttwtflw=uuivbkcjey1,8ww66686<>*#O",
+"+;1;O6jbmmmmCbvvvxlxlg,<iuMmmMiyttwwuu#tixccxi8tt6uiyt9w6<-;;#+$",
+"*8w1$0vmmmBmmbvhvxlxxl11liMmmvitttwett;>gxcji86,>;ww6>6;*&;,:1>*",
+"7tlw@8bZVVmbmbvgfigxlgq7uxnbmbittpttft8&gxcy96;7<6tt1=;O#*,1w911",
+"wyyw*0xZZbvggq6#&>&>6fp=2116ugguuitwlli&iMawp<<68tpt8<;O$;1we9w8",
+"yew,#1ei3*&&--qq&utwtfuttfgw,>,660pulxx>wx8uw068euew83>+#:5eeeey",
+"ie8>,*><769ufhvz&fbgt0wt99tdgtyut7<><0u9@wwu6w1qyyyw1::&@>88eeaa",
+"ye9*gdfghguytigv<6mgutut69yijgthzguqwwtg6tgu<0<wgiy032::;%38etee",
+"1#@1ay8816ugglxxu>VliigiuxxlMvxxxgt686,66th977<uuip141:;;o<8ewee",
+"o$8xxyw818ixxbvvx>nxxjxxgxccmmMbvi8,,;&+>ff<w76giiw0w6,-:##15w,#",
+">;8iijjjw8xbVZbxb6gmMglirxmmmmmvxw;,8,*&6dy;67qgiiteww>;;1##<,;:",
+"6w83bmCvjavVASmMcu0mmxggxbmMZmbgt<1<,,>7ww67q7quuuuiyw:;;2,=>w66",
+"<q1>bmVbvcbZSSmmvj>vVnxvMbmmmbkt<60<111,68,w60quuiliuw<:;>,,69w<",
+"+o*&jmbbmmVDFSSmbk>gnbmbxbmmCcg6<10<,t6116:tqq6ppsaiw<>,>1<w1,1#",
+">@&;yvxbVNZDFSmbbbt,bbbMxccbjdt;<761<ww11,<616606ppw1;>;6;4r38:+",
+"2:&:yacjmNZSDVxxxji:vmMbcxbj;t,><166tep661<<><2->1<<>&****ware;#",
+",;+:jiccbSVZZbggddv66vxxcay*6l;#>>60pyyw101rt0<&&&&>;**#:,eaae:%",
+">;::aucZmZmbbbgggnnv-tlgiw#7hzu#;<<4www10<1wwtutq>&&;<;;6eaaaa;$",
+",;3#uimNbNvbcxxvfvvvf1gii%>dggx1#<1<1e1:1;wt8,6wuutqw6&wisxaaa:%",
+";+32ibmbixdtivVv6Czvv66u6@1wgxgl-=<<1w1,1=0rp1,68ty6i23iaccser%%",
+";#e;weyt888dlfhg,ncgjj>t;@3rlsllg#<<6113<<wlly6wte1;t;wesxccaa%;",
+":;i:&#&6tfzgut1j&&6ghnf>;10gxlMxx1&<1121<0pxxjaity:11:upscccsa%:",
+">;yiaduyuuq0dz7gxfkvvzvtfu6gMMNMjj2&<<1:6uxxxxiarw;6;1iagxxcci#:",
+"1;8<66680w41gv,vhBvffgzhvl1uxMANcjv&;11;wgxxxsxjtwo+;#;8eiaiww*1",
+"w1;*>wwwtaglg;ukCCnlfggvng;wiMSNNxjt<11>ygxcxcxxii0=601>;<<;;=2w",
+"52,pwtiixbmb<gvxCACnnhtunl#0imSSZbggt61>pgxvxxxgiuu06weewwqwp22w",
+"=16618xcbNZwuvfzBnVvggt6zl=0lMSSZcxigt1;wgixMxxgi<12;618ewww,71=",
+"160wjivcNmb7guvvBvnguiigxz;1gMNSDNcipuw;wi1uxxui6<44133wttpu,**6",
+"=118jgbjmmi6yuVnbnvillxmzl14xMNDDZcjayt=8i6qlluu>0wpe513wpiu8;#&",
+"<61eNicxmVuttzBvvnVhxvmnzz4<lMADSDNciew1<wttlur28prrr33wtuuu61;:",
+"<4<1ZugmVVww6BVlvBnvznzzzz01iMNDDSNcgw66=0uwiuw;eaire358uuiuw1,>",
+"<12emtcmCB6u6BVgMVBnzzzffu0<usNSDSNckyw661<1wu;4rssaee91tyiie1,:",
+"24>1xwcNmx7gwAABVBBBvnzzhzt>ixmSDSNmxiewww1##;;pacsaeww2eeiar311",
+"40<;xycNmtwdqAABAABnzzzzhlf<icmSNNbmMxrwetup<$4isscaewe:weiarw41",
+"101<a1bmm6gyfBBBAAAzzzzzzlu1iMmZNNbmMxip3yii4=eyxsaaree:wtuir041",
+"1p1;a8bmx6ntqBBBAAAzzBVmnvu<gxMNNNMcbxgr51ww#1rccxaieee:twyip053",
+"3ey2gewb19kqhBBBAABzBmVVVng<ulMVNmccxsur3,1>@5ajccxirra2wtiut0w1",
+"4expij>,>gB9BCBkzAAABnnVVvi<qMccbbbMxsi3:>,O;raxcxcsaaj18tutpw53",
+"3pcyyxi669kdBzBzznAAAVVBVniw<ilxccbMxiw,19&&4rsccscsxsxwweppeep4",
+"5ecx6xxj>tdfBBBBzzMVNASVmnlgt>plxxbxje9t97@>wscaccccaiiw6tyryye5",
+"55ac<tjd&6y1>nBnBnzzVAAZVbgggw>wxcMxt60ut#;4acsacbcxxaje8eutpp55",
+"00pw&8jjugvx&-fzBBBzznAZVMffq6u&1xaetijgw#1racaaxjjcbaxy<wwpww10",
+"1ww;#pikvkzgd7&&6znBnMnVVnu<6tVi%4ribZVV:.1easaas5ecxrji6pww1:$<",
+"333,%rjjgt7dxvhq2-1wpljhnnu=->bmiwixVmcx8$.,raaeaayjgijj1044:$23",
+"5311:jcd,,vCCCBiakj818,;66;;;<vCgiibbxw<81+.*:8eyaaayeyj61;>$#33",
+"2323ead>tvkjyyj6imNZZNx16w6<*gnnijmca2;ij9,9:%%%+$*%+*3181;#o#::",
+"$2raae,9vt9yy6#,vCCZCCbtw*6gkxjcccbi*,accy,yaae93:,,,;;::1we%#;$",
+" 3sia89dud91du>6vbbbZmv98,mvge9yxcceejccc9,y88ee8e83:;,89ett@#%%"
+};
static XrmOptionDescRec opts[] =
{
- {(char* ) "-pattern", (char *) ".juggle.pattern",
- XrmoptionSepArg, (caddr_t) NULL},
- {(char* ) "-trail", (char *) ".juggle.trail",
- XrmoptionSepArg, (caddr_t) NULL},
+ {(char* ) "-pattern", ".juggle.pattern", XrmoptionSepArg, NULL},
+ {(char* ) "-trail", ".juggle.trail", XrmoptionSepArg, NULL},
#ifdef UNI
- {(char *) "-uni", (char *) ".juggle.uni", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+uni", (char *) ".juggle.uni", XrmoptionNoArg, (caddr_t) "off"},
+ {"-uni", ".juggle.uni", XrmoptionNoArg, "on"},
+ {"+uni", ".juggle.uni", XrmoptionNoArg, "off"},
#endif
- {(char *) "-solid", (char *) ".juggle.solid", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+solid", (char *) ".juggle.solid", XrmoptionNoArg, (caddr_t) "off"}
+ {"-solid", ".juggle.solid", XrmoptionNoArg, "on"},
+ {"+solid", ".juggle.solid", XrmoptionNoArg, "off"}
};
static argtype vars[] =
{
{&pattern, "pattern",
- (char *) "Pattern", (char *) DEF_PATTERN, t_String},
+ "Pattern", (char *) DEF_PATTERN, t_String},
{&trail, "trail", "Trail", DEF_TRAIL, t_Int},
#ifdef UNI
{&uni, "uni", "Uni", DEF_UNI, t_Bool},
};
static OptionStruct desc[] =
{
- {(char *) "-pattern string", (char *) "Cambridge Juggling Pattern"},
- {(char *) "-trail num", (char *) "Trace Juggling Patterns"},
+ {"-pattern string", "Cambridge Juggling Pattern"},
+ {"-trail num", "Trace Juggling Patterns"},
#ifdef UNI
- {(char *) "-/+uni", (char *) "Unicycle"},
+ {"-/+uni", "Unicycle"},
#endif
- {(char *) "-/+solid", (char *) "solid color (else its a 4 panel look (half white))"}
+ {"-/+solid", "solid color (else its a 4 panel look (half white))"}
};
ModeSpecOpt juggle_opts =
/* List of popular patterns, in any order */
static patternstruct portfolio[] = {
- {(char *) "[+2 1]", (char *) "+3 1, Typical 2 ball juggler"},
- {(char *) "[2 0]", (char *) "4 0, 2 balls 1 hand"},
- {(char *) "[2 0 1]", (char *) "5 0 1"},
- {(char *) "[+2 0 +2 0 0]", (char *) "+5 0 +5 0 0"},
- {(char *) "[3]", (char *) "3, cascade"},
- {(char *) "[+3]", (char *) "+3, reverse cascade"},
- {(char *) "[=3]", (char *) "=3, cascade under arm"},
- {(char *) "[&3]", (char *) "&3, cascade catching under arm"},
- {(char *) "[_3]", (char *) "_3, bouncing cascade"},
- {(char *) "[+3 x3 =3]", (char *) "+3 x3 =3, Mill's mess"},
- {(char *) "[3 2 1]", (char *) "5 3 1"},
- {(char *) "[3 3 1]", (char *) "4 4 1"},
- {(char *) "[3 1 2]", (char *) "6 1 2, See-saw"},
- {(char *) "[=3 3 1 2]", (char *) "=4 5 1 2"},
- {(char *) "[=3 2 2 3 1 2]", (char *) "=6 2 2 5 1 2, =4 5 1 2 stretched"},
- {(char *) "[+3 3 1 3]", (char *) "+4 4 1 3, anemic shower box"},
- {(char *) "[3 3 1]", (char *) "4 4 1"},
- {(char *) "[+3 2 3]", (char *) "+4 2 3"},
- {(char *) "[+3 1]", (char *) "+5 1, 3 shower"},
- {(char *) "[_3 1]", (char *) "_5 1, bouncing 3 shower"},
- {(char *) "[3 0 3 0 3]", (char *) "5 0 5 0 5, shake 3 out of 5"},
- {(char *) "[3 3 3 0 0]", (char *) "5 5 5 0 0, flash 3 out of 5"},
- {(char *) "[3 3 0]", (char *) "4 5 0, complete waste of a 5 ball juggler"},
- {(char *) "[3 3 3 0 0 0 0]", (char *) "7 7 7 0 0 0 0, 3 flash"},
- {(char *) "[+3 0 +3 0 +3 0 0]", (char *) "+7 0 +7 0 +7 0 0"},
- {(char *) "[4]", (char *) "4, 4 cascade"},
- {(char *) "[+4 3]", (char *) "+5 3, 4 ball half shower"},
- {(char *) "[4 4 2]", (char *) "5 5 2"},
- {(char *) "[+4 4 4 +4]", (char *) "+4 4 4 +4, 4 columns"},
- {(char *) "[4 3 +4]", (char *) "5 3 +4"},
- {(char *) "[+4 1]", (char *) "+7 1, 4 shower"},
- {(char *) "[4 4 4 4 0]", (char *) "5 5 5 5 0, learning 5"},
- {(char *) "[5]", (char *) "5, 5 cascade"},
- {(char *) "[_5 _5 _5 _5 _5 5 5 5 5 5]", (char *) "_5 _5 _5 _5 _5 5 5 5 5 5, jump rope"},
- {(char *) "[+5 x5 =5]", (char *) "+5 x5 =5, Mill's mess for 5"},
- {(char *) "[6]", (char *) "6, 6 cascade"},
- {(char *) "[7]", (char *) "7, 7 cascade"},
- {(char *) "[_7]", (char *) "_7, bouncing 7 cascade"},
+ {"[+2 1]", "+3 1, Typical 2 ball juggler"},
+ {"[2 0]", "4 0, 2 balls 1 hand"},
+ {"[2 0 1]", "5 0 1"},
+ {"[+2 0 +2 0 0]", "+5 0 +5 0 0"},
+ {"[3]", "3, cascade"},
+ {"[+3]", "+3, reverse cascade"},
+ {"[=3]", "=3, cascade under arm"},
+ {"[&3]", "&3, cascade catching under arm"},
+ {"[_3]", "_3, bouncing cascade"},
+ {"[+3 x3 =3]", "+3 x3 =3, Mill's mess"},
+ {"[3 2 1]", "5 3 1"},
+ {"[3 3 1]", "4 4 1"},
+ {"[3 1 2]", "6 1 2, See-saw"},
+ {"[=3 3 1 2]", "=4 5 1 2"},
+ {"[=3 2 2 3 1 2]", "=6 2 2 5 1 2, =4 5 1 2 stretched"},
+ {"[+3 3 1 3]", "+4 4 1 3, anemic shower box"},
+ {"[3 3 1]", "4 4 1"},
+ {"[+3 2 3]", "+4 2 3"},
+ {"[+3 1]", "+5 1, 3 shower"},
+ {"[_3 1]", "_5 1, bouncing 3 shower"},
+ {"[3 0 3 0 3]", "5 0 5 0 5, shake 3 out of 5"},
+ {"[3 3 3 0 0]", "5 5 5 0 0, flash 3 out of 5"},
+ {"[3 3 0]", "4 5 0, complete waste of a 5 ball juggler"},
+ {"[3 3 3 0 0 0 0]", "7 7 7 0 0 0 0, 3 flash"},
+ {"[+3 0 +3 0 +3 0 0]", "+7 0 +7 0 +7 0 0"},
+ {"[4]", "4, 4 cascade"},
+ {"[+4 3]", "+5 3, 4 ball half shower"},
+ {"[4 4 2]", "5 5 2"},
+ {"[+4 4 4 +4]", "+4 4 4 +4, 4 columns"},
+ {"[4 3 +4]", "5 3 +4"},
+ {"[+4 1]", "+7 1, 4 shower"},
+ {"[4 4 4 4 0]", "5 5 5 5 0, learning 5"},
+ {"[5]", "5, 5 cascade"},
+ {"[_5 _5 _5 _5 _5 5 5 5 5 5]", "_5 _5 _5 _5 _5 5 5 5 5 5, jump rope"},
+ {"[+5 x5 =5]", "+5 x5 =5, Mill's mess for 5"},
+ {"[6]", "6, 6 cascade"},
+ {"[7]", "7, 7 cascade"},
+ {"[_7]", "_7, bouncing 7 cascade"},
};
/* Private Functions */
static XrmOptionDescRec opts[] =
{
- {"-mouse", ".julia.mouse", XrmoptionNoArg, (caddr_t) "on"},
- {"+mouse", ".julia.mouse", XrmoptionNoArg, (caddr_t) "off"},
+ {"-mouse", ".julia.mouse", XrmoptionNoArg, "on"},
+ {"+mouse", ".julia.mouse", XrmoptionNoArg, "off"},
};
static argtype vars[] =
{
static XrmOptionDescRec opts[] =
{
- {(char *) "-additive", (char *) ".lisa.additive", XrmoptionNoArg, (caddr_t) "True"},
- {(char *) "+additive", (char *) ".lisa.additive", XrmoptionNoArg, (caddr_t) "False"}
+ {"-additive", ".lisa.additive", XrmoptionNoArg, "True"},
+ {"+additive", ".lisa.additive", XrmoptionNoArg, "False"}
};
static argtype vars[] =
static OptionStruct desc[] =
{
- {(char *) "-/+additive", (char *) "turn on/off additive functions mode"}
+ {"-/+additive", "turn on/off additive functions mode"}
};
ModeSpecOpt lisa_opts =
static XrmOptionDescRec opts[] =
{
- {(char *) "-neighbors", (char *) ".loop.neighbors", XrmoptionSepArg, (caddr_t) NULL}
+ {"-neighbors", ".loop.neighbors", XrmoptionSepArg, 0}
};
static argtype vars[] =
static OptionStruct desc[] =
{
- {(char *) "-neighbors num", (char *) "squares 4 or hexagons 6"}
+ {"-neighbors num", "squares 4 or hexagons 6"}
};
ModeSpecOpt loop_opts =
}
}
+static void *stop_warning_about_triangleUnit_already;
+
+
void
init_loop(ModeInfo * mi)
{
loopstruct *lp;
XGCValues gcv;
+ stop_warning_about_triangleUnit_already = (void *) &triangleUnit;
+
if (loops == NULL) {
if ((loops = (loopstruct *) calloc(MI_NUM_SCREENS(mi),
sizeof (loopstruct))) == NULL)
--- /dev/null
+/* xscreensaver, Copyright (c) 2002, 2004 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
+ * 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.
+ *
+ * Memscroller -- scrolls a dump of its own RAM across the screen.
+ */
+
+#include "screenhack.h"
+#include <stdio.h>
+#include <X11/Xutil.h>
+
+#ifdef HAVE_XSHM_EXTENSION
+#include "xshm.h"
+#endif
+
+typedef struct {
+ int which;
+ XRectangle rect;
+ XImage *image;
+ int rez;
+ int speed;
+ int scroll_tick;
+ unsigned char *data;
+ int count_zero;
+} scroller;
+
+typedef struct {
+ Display *dpy;
+ Window window;
+ XWindowAttributes xgwa;
+ GC draw_gc, erase_gc, text_gc;
+ XFontStruct *font;
+ int border;
+
+ enum { SEED_RAM, SEED_RANDOM } seed_mode;
+ enum { DRAW_COLOR, DRAW_MONO } draw_mode;
+
+ int nscrollers;
+ scroller *scrollers;
+
+# ifdef HAVE_XSHM_EXTENSION
+ Bool shm_p;
+ XShmSegmentInfo shm_info;
+# endif
+
+} state;
+
+
+state *
+init_memscroller (Display *dpy, Window window)
+{
+ int i;
+ XGCValues gcv;
+ state *st = (state *) calloc (1, sizeof (*st));
+ char *s;
+ st->dpy = dpy;
+ st->window = window;
+ XGetWindowAttributes (st->dpy, st->window, &st->xgwa);
+ XSelectInput(st->dpy, st->window, ExposureMask);
+
+ /* Fill up the colormap with random colors.
+ We don't actually use these explicitly, but in 8-bit mode,
+ they will be used implicitly by the random image bits. */
+ {
+ int ncolors = 255;
+ XColor colors[256];
+ make_random_colormap (st->dpy, st->xgwa.visual, st->xgwa.colormap,
+ colors, &ncolors, True, True, 0, False);
+ }
+
+ st->border = get_integer_resource ("borderSize", "BorderSize");
+
+ {
+ char *fontname = get_string_resource ("font", "Font");
+ st->font = XLoadQueryFont (dpy, fontname);
+
+ if (!st->font)
+ {
+ static const char *fonts[] = {
+ "-*-courier-medium-r-*-*-*-1400-*-*-p-*-*-*",
+ "-*-courier-medium-r-*-*-*-600-*-*-p-*-*-*",
+ "-*-utopia-*-r-*-*-*-1400-*-*-p-*-*-*",
+ "-*-utopia-*-r-*-*-*-600-*-*-p-*-*-*",
+ "-*-utopia-*-r-*-*-*-240-*-*-p-*-*-*",
+ "-*-helvetica-*-r-*-*-*-240-*-*-p-*-*-*",
+ "-*-*-*-r-*-*-*-240-*-*-m-*-*-*",
+ "fixed", 0 };
+ i = 0;
+ while (fonts[i])
+ {
+ st->font = XLoadQueryFont (dpy, fonts[i]);
+ if (st->font) break;
+ i++;
+ }
+ if (st->font)
+ fprintf (stderr, "%s: couldn't load font \"%s\", using \"%s\"\n",
+ progname, fontname, fonts[i]);
+ else
+ {
+ fprintf(stderr, "%s: couldn't load any font\n", progname);
+ exit(-1);
+ }
+ }
+ }
+
+ gcv.line_width = st->border;
+
+ gcv.background = get_pixel_resource("background", "Background",
+ st->dpy, st->xgwa.colormap);
+ gcv.foreground = get_pixel_resource("textColor", "Foreground",
+ st->dpy, st->xgwa.colormap);
+ gcv.font = st->font->fid;
+ st->text_gc = XCreateGC (st->dpy, st->window,
+ GCForeground|GCBackground|GCFont, &gcv);
+
+ gcv.foreground = get_pixel_resource("foreground", "Foreground",
+ st->dpy, st->xgwa.colormap);
+ st->draw_gc = XCreateGC (st->dpy, st->window,
+ GCForeground|GCBackground|GCLineWidth,
+ &gcv);
+ gcv.foreground = gcv.background;
+ st->erase_gc = XCreateGC (st->dpy, st->window,
+ GCForeground|GCBackground, &gcv);
+
+
+ s = get_string_resource ("drawMode", "DrawMode");
+ if (!s || !*s || !strcasecmp (s, "color"))
+ st->draw_mode = DRAW_COLOR;
+ else if (!strcasecmp (s, "mono"))
+ st->draw_mode = DRAW_MONO;
+ else
+ {
+ fprintf (stderr, "%s: drawMode must be 'mono' or 'color', not '%s'\n",
+ progname, s);
+ exit (1);
+ }
+ if (s) free (s);
+
+
+ s = get_string_resource ("seedMode", "SeedMode");
+ if (!s || !*s ||
+ !strcasecmp (s, "ram") ||
+ !strcasecmp (s, "mem") ||
+ !strcasecmp (s, "memory"))
+ st->seed_mode = SEED_RAM;
+ else if (!strcasecmp (s, "rand") ||
+ !strcasecmp (s, "random"))
+ st->seed_mode = SEED_RANDOM;
+ else
+ {
+ fprintf (stderr, "%s: seedMode must be 'RAM' or 'random', not '%s'\n",
+ progname, s);
+ exit (1);
+ }
+ if (s) free (s);
+ s = 0;
+
+
+ st->nscrollers = 3;
+ st->scrollers = (scroller *) calloc (st->nscrollers, sizeof(scroller));
+
+ for (i = 0; i < st->nscrollers; i++)
+ {
+ scroller *sc = &st->scrollers[i];
+ int max_height = 4096;
+
+ sc->which = i;
+ sc->speed = i+1;
+
+ sc->image = 0;
+# ifdef HAVE_XSHM_EXTENSION
+ st->shm_p = get_boolean_resource ("useSHM", "Boolean");
+ if (st->shm_p)
+ {
+ sc->image = create_xshm_image (st->dpy, st->xgwa.visual,
+ st->xgwa.depth,
+ ZPixmap, 0, &st->shm_info,
+ 1, max_height);
+ if (! sc->image)
+ st->shm_p = False;
+ }
+# endif /* HAVE_XSHM_EXTENSION */
+
+ if (!sc->image)
+ sc->image = XCreateImage (st->dpy, st->xgwa.visual, st->xgwa.depth,
+ ZPixmap, 0, 0, 1, max_height, 8, 0);
+
+ if (sc->image && !sc->image->data)
+ sc->image->data = (char *)
+ malloc (sc->image->bytes_per_line * sc->image->height + 1);
+
+ if (!sc->image || !sc->image->data)
+ {
+ fprintf (stderr, "%s: out of memory (allocating 1x%d image)\n",
+ progname, sc->image->height);
+ exit (1);
+ }
+ }
+
+ return st;
+}
+
+
+static void
+reshape_memscroller (state *st)
+{
+ int i;
+
+ XGetWindowAttributes (st->dpy, st->window, &st->xgwa);
+
+ for (i = 0; i < st->nscrollers; i++)
+ {
+ scroller *sc = &st->scrollers[i];
+
+ if (i == 0)
+ {
+ sc->rez = 6; /* #### */
+
+ sc->rect.width = (((int) (st->xgwa.width * 0.8)
+ / sc->rez) * sc->rez);
+ sc->rect.height = (((int) (st->xgwa.height * 0.3)
+ / sc->rez) * sc->rez);
+
+ sc->rect.x = (st->xgwa.width - sc->rect.width) / 2;
+ sc->rect.y = (st->xgwa.height - sc->rect.height) / 2;
+ }
+ else
+ {
+ scroller *sc0 = &st->scrollers[i-1];
+ sc->rez = sc0->rez * 1.8;
+
+ sc->rect.x = sc0->rect.x;
+ sc->rect.y = (sc0->rect.y + sc0->rect.height + st->border
+ + (st->border + 2) * 7);
+ sc->rect.width = sc0->rect.width;
+ sc->rect.height = (((int) (st->xgwa.height * 0.1)
+ / sc->rez) * sc->rez);
+ }
+
+ XDrawRectangle (st->dpy, st->window, st->draw_gc,
+ sc->rect.x - st->border*2,
+ sc->rect.y - st->border*2,
+ sc->rect.width + st->border*4,
+ sc->rect.height + st->border*4);
+ }
+}
+
+
+
+static unsigned int
+more_bits (state *st, scroller *sc)
+{
+ static unsigned char *lomem = 0;
+ static unsigned char *himem = 0;
+ unsigned char r, g, b;
+ unsigned int v;
+
+ /* Pack bytes as RGBR so that we don't have to worry about actually
+ figuring out the color channel order.
+ */
+# undef PACK
+# define PACK(r,g,b) ((r) | ((g) << 8) | ((b) << 16) | ((r) << 24))
+
+ switch (st->seed_mode)
+ {
+ case SEED_RAM:
+ if (himem == 0)
+ {
+ lomem = (unsigned char *) progname; /* not first malloc, but early */
+ himem = (unsigned char *) /* not last malloc, but late */
+ st->scrollers[st->nscrollers-1].image->data;
+ }
+
+ if (sc->data < lomem)
+ sc->data = lomem;
+
+# ifdef HAVE_SBRK /* re-get it each time through */
+ himem = ((unsigned char *) sbrk(0)) - (2 * sizeof(void *));
+# endif
+
+ if (lomem >= himem) abort();
+
+ RETRY:
+ if (sc->data >= himem)
+ sc->data = lomem;
+
+ switch (st->draw_mode)
+ {
+ case DRAW_COLOR:
+ r = *sc->data++;
+ g = *sc->data++;
+ b = *sc->data++;
+ break;
+ case DRAW_MONO:
+ r = 0;
+ g = *sc->data++;
+ b = 0;
+ break;
+ default:
+ abort();
+ }
+
+ v = PACK(r,g,b);
+
+ /* avoid having many seconds of blackness: truncate zeros at 24K.
+ */
+ if (v == 0)
+ sc->count_zero++;
+ else
+ sc->count_zero = 0;
+ if (sc->count_zero > 1024 * (st->draw_mode == DRAW_COLOR ? 24 : 8))
+ goto RETRY;
+
+ break;
+
+ case SEED_RANDOM:
+ v = random();
+ switch (st->draw_mode)
+ {
+ case DRAW_COLOR:
+ r = (v >> 16) & 0xFF;
+ g = (v >> 8) & 0xFF;
+ b = (v ) & 0xFF;
+ break;
+ case DRAW_MONO:
+ r = 0;
+ g = v & 0xFF;
+ b = 0;
+ break;
+ default:
+ abort();
+ }
+ v = PACK(r,g,b);
+ break;
+
+ default:
+ abort();
+ }
+
+# undef PACK
+ return v;
+}
+
+
+static void
+draw_string (state *st, unsigned int n)
+{
+ char buf[40];
+ int direction, ascent, descent;
+ XCharStruct overall;
+ int x, y, w, h;
+ int bot = st->scrollers[0].rect.y;
+ const char *fmt = "%08X";
+
+ sprintf (buf, fmt, 0);
+ XTextExtents (st->font, buf, strlen(buf),
+ &direction, &ascent, &descent, &overall);
+ sprintf (buf, "%08X", n);
+
+ w = overall.width;
+ h = st->font->ascent + st->font->descent + 1;
+ x = (st->xgwa.width - w) / 2;
+ y = (bot - h) / 2;
+
+ if (y + h + 10 > bot) return;
+
+ XFillRectangle (st->dpy, st->window, st->erase_gc,
+ x-w, y, w*3, h);
+ XDrawString (st->dpy, st->window, st->text_gc,
+ x, y + st->font->ascent, buf, strlen(buf));
+}
+
+
+static void
+draw_memscroller (state *st)
+{
+ int i;
+
+ draw_string (st, *((unsigned int *) st->scrollers[0].image->data));
+
+ for (i = 0; i < st->nscrollers; i++)
+ {
+ scroller *sc = &st->scrollers[i];
+ int j;
+
+ XCopyArea (st->dpy, st->window, st->window, st->draw_gc,
+ sc->rect.x + sc->speed, sc->rect.y,
+ sc->rect.width - sc->speed, sc->rect.height,
+ sc->rect.x, sc->rect.y);
+
+ if (sc->scroll_tick == 0)
+ {
+ int top = ((sc->image->bytes_per_line * sc->rect.height) /
+ (4 * sc->rez));
+ unsigned int *out = (unsigned int *) sc->image->data;
+ for (j = 0; j < top; j++)
+ {
+ unsigned int v = more_bits(st, sc);
+ int k;
+ for (k = 0; k < sc->rez; k++)
+ *out++ = v;
+ }
+ }
+
+ sc->scroll_tick++;
+ if (sc->scroll_tick * sc->speed >= sc->rez)
+ sc->scroll_tick = 0;
+
+ for (j = 0; j < sc->speed; j++)
+ {
+# ifdef HAVE_XSHM_EXTENSION
+ if (st->shm_p)
+ XShmPutImage (st->dpy, st->window, st->draw_gc, sc->image,
+ 0, 0,
+ sc->rect.x + sc->rect.width - sc->image->width - j,
+ sc->rect.y,
+ sc->rect.width, sc->rect.height,
+ False);
+ else
+# endif /* HAVE_XSHM_EXTENSION */
+ XPutImage (st->dpy, st->window, st->draw_gc, sc->image,
+ 0, 0,
+ sc->rect.x + sc->rect.width - sc->image->width - j,
+ sc->rect.y,
+ sc->rect.width, sc->rect.height);
+ }
+ }
+}
+
+static void
+handle_events (state *st)
+{
+ XSync (st->dpy, False);
+ while (XPending (st->dpy))
+ {
+ XEvent event;
+ XNextEvent (st->dpy, &event);
+ if (event.xany.type == ConfigureNotify ||
+ event.xany.type == Expose)
+ {
+ XClearWindow (st->dpy, st->window);
+ reshape_memscroller (st);
+ }
+
+ screenhack_handle_event (st->dpy, &event);
+ }
+}
+
+
+\f
+char *progclass = "MemScroller";
+
+char *defaults [] = {
+ ".background: black",
+ "*drawMode: color",
+ "*seedMode: ram",
+ ".textColor: #00FF00",
+ ".foreground: #00FF00",
+ "*borderSize: 2",
+ ".font: -*-courier-medium-r-*-*-*-1400-*-*-m-*-*-*",
+ "*delay: 10000",
+ "*offset: 0",
+ 0
+};
+
+XrmOptionDescRec options [] = {
+ { "-delay", ".delay", XrmoptionSepArg, 0 },
+ { "-font", ".font", XrmoptionSepArg, 0 },
+ { "-color", ".drawMode", XrmoptionNoArg, "color" },
+ { "-mono", ".drawMode", XrmoptionNoArg, "mono" },
+ { "-ram", ".seedMode", XrmoptionNoArg, "ram" },
+ { "-random", ".seedMode", XrmoptionNoArg, "random" },
+ { 0, 0, 0, 0 }
+};
+
+
+void
+screenhack (Display *dpy, Window window)
+{
+ state *st = init_memscroller (dpy, window);
+ int delay = get_integer_resource ("delay", "Integer");
+ reshape_memscroller (st);
+ while (1)
+ {
+ draw_memscroller (st);
+ XSync (dpy, False);
+ handle_events (st);
+ if (delay) usleep (delay);
+ }
+}
--- /dev/null
+.TH XScreenSaver 1 "14-Aug-2004" "X Version 11"
+.SH NAME
+memscroller - scrolls a dump of its own RAM across the screen
+.SH SYNOPSIS
+.B memscroller
+[\-display \fIhost:display.screen\fP]
+[\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP]
+[\-font \fIfont\fP]
+[\-delay \fIint\fP]
+[\-mono | -color]
+[\-ram | -random]
+.SH DESCRIPTION
+The \fImemscroller\fP program scrolls a dump of its own process memory
+across the screen in three windows at three different rates.
+.SH OPTIONS
+.I memscroller
+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
+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 \-color
+Render each three bytes of memory as R, G, B. This is the default.
+.TP 8
+.B \-mono
+Render each byte of memory in shades of green.
+.TP 8
+.B \-ram
+Read from the process's address space. This is the default.
+.TP 8
+.B \-random
+Instead of reading from memory, generate random numbers.
+.TP 8
+.B \-delay \fImicroseconds\fP
+How much of a delay should be introduced between steps of the animation.
+Default 100000, or about 1/10th second.
+.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 2004 by Jamie Zawinski. 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
+Jamie Zawinski <jwz@jwz.org>, 14-Aug-2004.
* other special, indirect and consequential damages.
*
* Revision History:
+ * 11-Aug-2004: Added support for pixmap ghost. jenglish@myself.com
* 13-May-2002: Added -trackmouse feature thanks to code from 'maze.c'.
* splitted up code into several files. Retouched AI code, cleaned
* up code.
/* TODO:
1. add "bonus" dots
- 2. make better ghost sprites (eyes, waving dress)
- 3. make a bit better pacman sprite (mouth should be larger)
- 4. think of a better level generation algorithm
+ 2. make a bit better pacman sprite (mouth should be larger)
+ 3. think of a better level generation algorithm
*/
+#define DEF_TRACKMOUSE "False"
+
#ifdef STANDALONE
# define MODE_pacman
# define PROGCLASS "Pacman"
# define DEFAULTS "*delay: 10000 \n" \
"*size: 0 \n" \
"*ncolors: 6 \n" \
- "*trackmouse: False \n"
+ "*trackmouse: " DEF_TRACKMOUSE "\n"
# define UNIFORM_COLORS
# define BRIGHT_COLORS
+
# include "xlockmore.h" /* in xscreensaver distribution */
#else /* STANDALONE */
# include "xlock.h" /* in xlockmore distribution */
#include "pacman_ai.h"
#include "pacman_level.h"
+#if defined(HAVE_GDK_PIXBUF) || defined(HAVE_XPM)
+#define USE_PIXMAP
+#include "xpm-pixmap.h"
+#else
+#if defined(USE_PIXMAP)
+#undef USE_PIXMAP
+#endif
+#endif
+
+#if defined(USE_PIXMAP)
+# include "images/pacman/ghost-u1.xpm"
+# include "images/pacman/ghost-u2.xpm"
+# include "images/pacman/ghost-r1.xpm"
+# include "images/pacman/ghost-r2.xpm"
+# include "images/pacman/ghost-l1.xpm"
+# include "images/pacman/ghost-l2.xpm"
+# include "images/pacman/ghost-d1.xpm"
+# include "images/pacman/ghost-d2.xpm"
+# include "images/pacman/ghost-mask.xpm" /* Used to clean up the dust left by wag. */
+#endif
+
+static const struct { int dx, dy; } dirvecs[DIRVECS] =
+ { {-1, 0}, {0, 1}, {1, 0}, {0, -1}};
+
#ifdef DISABLE_INTERACTIVE
ModeSpecOpt pacman_opts = {
0,
#else
static XrmOptionDescRec opts[] =
{
- {(char *) "-trackmouse", (char *) ".pacman.trackmouse", XrmoptionNoArg,
- (caddr_t) "on"},
- {(char *) "+trackmouse", (char *) ".pacman.trackmouse", XrmoptionNoArg,
- (caddr_t) "off"}
+ {"-trackmouse", ".pacman.trackmouse", XrmoptionNoArg, "on"},
+ {"+trackmouse", ".pacman.trackmouse", XrmoptionNoArg, "off"}
};
static argtype vars[] =
{
- {(caddr_t *) & trackmouse, (char *) "trackmouse", (char *) "TrackMouse",
- (char *) DEF_TRACKMOUSE, t_Bool}
+ {&trackmouse, "trackmouse", "TrackMouse", DEF_TRACKMOUSE, t_Bool}
};
static OptionStruct desc[] =
{
- {(char *) "-/+trackmouse", (char *) "turn on/off the tracking of the "
- "mouse"}
+ {"-/+trackmouse", "turn on/off the tracking of the mouse"}
};
ModeSpecOpt pacman_opts =
};
#endif
+
+Bool trackmouse;
+pacmangamestruct *pacmangames = (pacmangamestruct *) NULL;
+
+
+static void repopulate(ModeInfo * mi);
+static void drawlevel(ModeInfo * mi);
+
+
static void
free_pacman(Display *display, pacmangamestruct *pp)
{
- int dir, mouth;
+ int dir, mouth, i, j, k;
if (pp->ghosts != NULL) {
free(pp->ghosts);
pp->ghosts = (ghoststruct *) NULL;
}
if (pp->stippledGC != None) {
- XFreeGC(display, pp->stippledGC);
+ XFreeGC(display, pp->stippledGC);
pp->stippledGC = None;
}
- if (pp->ghostPixmap != None) {
- XFreePixmap(display, pp->ghostPixmap);
- pp->ghostPixmap = None;
+ for (i = 0; i < 4; i++){
+ for (j = 0; j < MAXGDIR; j++){
+ for (k = 0; k < MAXGWAG; k++){
+ if (pp->ghostPixmap[i][j][k] != None) {
+ XFreePixmap(display, pp->ghostPixmap[i][j][k]);
+ pp->ghostPixmap[i][j][k] = None;
+ }
+ }
+ }
}
for (dir = 0; dir < 4; dir++)
for (mouth = 0; mouth < MAXMOUTH; mouth++)
}
}
+
/* Checks for death of any ghosts/pacman and updates. It also makes a new
level if all ghosts are dead or all dots are eaten. */
static void
pp->pacman.oldrf = pp->pacman.rf;
}
+#if defined(USE_PIXMAP)
+static void
+draw_ghost_sprite(ModeInfo * mi, const unsigned ghost){
+ Display *display = MI_DISPLAY(mi);
+ Window window = MI_WINDOW(mi);
+ pacmangamestruct *pp = &pacmangames[MI_SCREEN(mi)];
+ static int wag = 0;
+#define MAX_WAG_COUNT 50
+ static int wag_count = 0;
+ unsigned int dir = 0;
+
+ dir = (ABS(pp->ghosts[ghost].cfactor) * (2 - pp->ghosts[ghost].cfactor) +
+ ABS(pp->ghosts[ghost].rfactor) * (1 + pp->ghosts[ghost].rfactor)) % 4;
+
+ pp->ghosts[ghost].cf =
+ pp->ghosts[ghost].col * pp->xs + pp->ghosts[ghost].delta.x *
+ pp->ghosts[ghost].cfactor + pp->xb + pp->spritedx;
+ pp->ghosts[ghost].rf =
+ pp->ghosts[ghost].row * pp->ys + pp->ghosts[ghost].delta.y *
+ pp->ghosts[ghost].rfactor + pp->yb + pp->spritedy;
+ XSetForeground(display,
+ pp->stippledGC,
+ MI_BLACK_PIXEL(mi));
+
+ XSetClipMask(display, pp->stippledGC, pp->ghostMask);
+ XSetClipOrigin(display, pp->stippledGC,
+ pp->ghosts[ghost].oldcf, pp->ghosts[ghost].oldrf);
+ XFillRectangle(display,
+ window,
+ pp->stippledGC,
+ pp->ghosts[ghost].oldcf,
+ pp->ghosts[ghost].oldrf,
+ pp->spritexs, pp->spriteys);
+ XSetClipOrigin(display, pp->stippledGC,
+ pp->ghosts[ghost].cf, pp->ghosts[ghost].rf);
+ XCopyArea(display, pp->ghostPixmap[ghost][dir][wag], window,
+ pp->stippledGC,0,0,pp->spritexs,pp->spriteys,
+ pp->ghosts[ghost].cf, pp->ghosts[ghost].rf);
+ XSetClipMask(display, pp->stippledGC, None);
+ drawlevelblock(mi, pp,
+ (unsigned int)pp->ghosts[ghost].col,
+ (unsigned int)pp->ghosts[ghost].row);
+ pp->ghosts[ghost].oldcf = pp->ghosts[ghost].cf;
+ pp->ghosts[ghost].oldrf = pp->ghosts[ghost].rf;
+ if (wag_count++ == MAX_WAG_COUNT){
+ wag = !wag;
+ wag_count = 0;
+ }
+}
+
+#else
+
/* Draws a ghost sprite, removing the previous sprite and restores the level. */
static void
draw_ghost_sprite(ModeInfo * mi, const unsigned ghost) {
XSetForeground(display,
pp->stippledGC,
MI_BLACK_PIXEL(mi));
+ XFillRectangle(display,
+ window,
+ pp->stippledGC,
+ pp->ghosts[ghost].cf,
+ pp->ghosts[ghost].rf,
+ pp->spritexs, pp->spriteys);
if (pp->ghosts[ghost].oldcf != NOWHERE ||
pp->ghosts[ghost].oldrf != NOWHERE) {
MI_WHITE_PIXEL(mi));
XSetStipple(display, pp->stippledGC,
- pp->ghostPixmap);
+ pp->ghostPixmap[0][0][0]);
#ifdef FLASH
XSetFillStyle(display,
pp->ghosts[ghost].oldcf = pp->ghosts[ghost].cf;
pp->ghosts[ghost].oldrf = pp->ghosts[ghost].rf;
}
+#endif
/* Does all drawing of moving sprites in the level. */
static void
(void)XFlush(display);
}
+#if defined(USE_PIXMAP)
+/* Grabbed the scaling routine off of usenet.
+ * Changed it so that the information specific
+ * to the source pixmap does not have to be a parameter.
+ *
+ * There is probable a better way to scale pixmaps.
+ * From: Chris Fiddyment (cxf@itd.dsto.gov.au)
+ * Subject: Scaling Pixmap Algorithm.
+ * Newsgroups: comp.graphics.algorithms
+ * Date: 1994-07-06 18:51:38 PST
+ * -jeremy
+ */
+
+static Pixmap
+scale_pixmap( Display **dpy, GC gc, Pixmap source, int dwidth, int dheight)
+{
+ Pixmap temp,dest;
+ int j,end;
+ float i;
+ float xscale, yscale;
+ unsigned int swidth, sheight;
+ Window window;
+ int x, y;
+ unsigned border_width_return, depth;
+ XGetGeometry(*dpy, source, &window, &x, &y, &swidth, &sheight, &border_width_return, &depth);
+
+ xscale = (float) swidth / (float) dwidth; /* Scaling factors */
+ yscale = (float) sheight / (float) dheight;
+
+ dest = XCreatePixmap(*dpy,window,dwidth,dheight,depth);
+ if (!dest){
+ fprintf(stderr, "%s Could not scale image", progname);
+ }
+ temp = XCreatePixmap(*dpy,window,dwidth,sheight,depth);
+ if (!temp){
+ fprintf(stderr, "%s Could not scale image", progname);
+ }
+
+ j = 0;
+ end = dwidth*xscale;
+ /* Scale width of source into temp pixmap */
+ for(i=0;i<end;i+=xscale)
+ XCopyArea(*dpy,source,temp,gc,i,0,1,sheight,j++,0);
+
+ j = 0;
+ end = dheight*yscale;
+ /* Scale height of temp into dest pixmap */
+ for(i=0;i<end;i+=yscale)
+ XCopyArea(*dpy,temp,dest,gc,0,i,dwidth,1,0,j++);
+
+ XFreePixmap( *dpy, temp );
+ return (Pixmap) dest;
+}
+
+/* Load any needed pixmaps and their mask. */
+static void
+load_pixmaps(Display **dpy, Window window, pacmangamestruct **ps)
+{
+ pacmangamestruct *pp = *ps;
+ Display *display = *dpy;
+ static char *colors[]= {
+ ". c #FF0000", /*Red*/
+ ". c #00FFDE", /*Blue*/
+ ". c #FFB847", /*Orange*/
+ ". c #FFB8DE", /*Pink*/
+ };
+
+ static char **bits[] = {
+ ghost_u1_xpm, ghost_u2_xpm, ghost_r1_xpm, ghost_r2_xpm,
+ ghost_d1_xpm, ghost_d2_xpm, ghost_l1_xpm, ghost_l2_xpm
+ };
+ int i, j, k, m;
+ int w = pp->spritexs;
+ int h = pp->spriteys;
+ GC gc = 0;
+ Pixmap temp;
+
+ for (i = 0; i < 4; i++){
+ m = 0;
+ for ( j = 0; j < MAXGDIR; j++){
+ for ( k = 0; k < MAXGWAG; k++){
+ bits[m][2] = colors[i];
+ pp->ghostPixmap[i][j][k] = xpm_data_to_pixmap (display, window, bits[m],
+ &w, &h, &pp->ghostMask);
+ if (!pp->ghostPixmap[i][j][k])
+ {
+ fprintf (stderr, "%s: Can't load ghost images\n", progname);
+ exit(1);
+ }
+
+ pp->ghostPixmap[i][j][k] = scale_pixmap(&display, pp->stippledGC,
+ pp->ghostPixmap[i][j][k], pp->spritexs, pp->spriteys);
+ if (!pp->ghostPixmap[i][j][k])
+ {
+ fprintf (stderr, "%s: Can't load ghost images\n", progname);
+ exit(1);
+ }
+
+ m++;
+ }
+ }
+ }
+ /* We really only need a single mask. This saves the headache of getting the bottom of the ghost
+ * to clip just right. What we'll do is mask the top portion of the ghost, but the bottom of the
+ * the ghost will be solid. I did this by setting the pixels between the fringe of their sheets
+ * to black instead of none. -jeremy
+ */
+ temp = xpm_data_to_pixmap (display, window, ghost_mask_xpm,
+ &w, &h, &pp->ghostMask);
+ if (!temp)
+ {
+ fprintf (stderr, "%s: Can't load ghost images\n", progname);
+ exit(1);
+ }
+
+ temp = scale_pixmap(&display, pp->stippledGC,
+ temp, pp->spritexs, pp->spriteys);
+ if (!temp)
+ {
+ fprintf (stderr, "%s: Can't load ghost images\n", progname);
+ exit(1);
+ }
+ gc = XCreateGC(display, pp->ghostMask, 0, 0);
+ pp->ghostMask = scale_pixmap(&display, gc, pp->ghostMask,
+ pp->spritexs, pp->spriteys);
+ XFreePixmap(display, temp);
+}
+#endif
+
/* Hook function, sets state to initial position. */
void
init_pacman(ModeInfo * mi)
int size = MI_SIZE(mi);
pacmangamestruct *pp;
XGCValues gcv;
- int dir, mouth;
+ int dir, mouth, i, j, k;
GC fg_gc, bg_gc;
- XPoint points[9];
+/* XPoint points[9]; */
if (pacmangames == NULL) {
if ((pacmangames = (pacmangamestruct *)
pp = &pacmangames[MI_SCREEN(mi)];
pp->width = (unsigned short)MI_WIDTH(mi);
- pp->height = (unsigned short)MI_HEIGHT(mi);
- if (pp->ghostPixmap != None) {
- XFreePixmap(display, pp->ghostPixmap);
- pp->ghostPixmap = None;
- pp->graphics_format = 0 /*IS_NONE*/;
+ pp->height = (unsigned short)MI_HEIGHT(mi);
+ for (i = 0; i < 4; i++){
+ for (j = 0; j < MAXGDIR; j++){
+ for (k = 0; k < MAXGWAG; k++){
+ if (pp->ghostPixmap[i][j][k] != None) {
+ XFreePixmap(display, pp->ghostPixmap[i][j][k]);
+ pp->ghostPixmap[i][j][k] = None;
+ pp->graphics_format = 0 /*IS_NONE*/;
+ }
+ }
+ }
}
-
if (size == 0 ||
MINGRIDSIZE * size > (int)pp->width ||
MINGRIDSIZE * size > (int)pp->height) {
pp->spritedx = (pp->xs - pp->spritexs) >> 1;
pp->spritedy = (pp->ys - pp->spriteys) >> 1;
- if ((pp->ghostPixmap = XCreatePixmap(display, window,
+ if (!pp->stippledGC) {
+ gcv.foreground = MI_BLACK_PIXEL(mi);
+ gcv.background = MI_BLACK_PIXEL(mi);
+ if ((pp->stippledGC = XCreateGC(display, window,
+ GCForeground | GCBackground, &gcv)) == None) {
+ free_pacman(display, pp);
+ return;
+ }
+ }
+
+#if defined(USE_PIXMAP)
+ load_pixmaps(&display,window,&pp);
+#else
+ if ((pp->ghostPixmap[0][0][0] = XCreatePixmap(display, window,
pp->spritexs, pp->spriteys, 1)) == None) {
free_pacman(display, pp);
return;
gcv.foreground = 0;
gcv.background = 1;
- if ((bg_gc = XCreateGC(display, pp->ghostPixmap,
+ if ((bg_gc = XCreateGC(display, pp->ghostPixmap[0][0][0],
GCForeground | GCBackground, &gcv)) == None) {
free_pacman(display, pp);
return;
gcv.foreground = 1;
gcv.background = 0;
- if ((fg_gc = XCreateGC(display, pp->ghostPixmap,
+ if ((fg_gc = XCreateGC(display, pp->ghostPixmap[0][0][0],
GCForeground | GCBackground, &gcv)) == None) {
XFreeGC(display, bg_gc);
free_pacman(display, pp);
SETPOINT(points[7], pp->spritexs, pp->spriteys / 2);
SETPOINT(points[8], 1, pp->spriteys / 2);
- XFillRectangle(display, pp->ghostPixmap, bg_gc,
+ XFillRectangle(display, pp->ghostPixmap[0][0][0], bg_gc,
0, 0, pp->spritexs, pp->spriteys);
- XFillArc(display, pp->ghostPixmap, fg_gc,
+ XFillArc(display, pp->ghostPixmap[0][0][0], fg_gc,
0, 0, pp->spritexs, pp->spriteys, 0, 11520);
- XFillPolygon(display, pp->ghostPixmap, fg_gc,
+ XFillPolygon(display, pp->ghostPixmap[0][0][0], fg_gc,
points, 9, Nonconvex, CoordModeOrigin);
XFreeGC(display, bg_gc);
XFreeGC(display, fg_gc);
+#endif
+
- if (!pp->stippledGC) {
- gcv.foreground = MI_BLACK_PIXEL(mi);
- gcv.background = MI_BLACK_PIXEL(mi);
- if ((pp->stippledGC = XCreateGC(display, window,
- GCForeground | GCBackground, &gcv)) == None) {
- free_pacman(display, pp);
- return;
- }
- }
if (pp->pacmanPixmap[0][0] != None)
for (dir = 0; dir < 4; dir++)
for (mouth = 0; mouth < MAXMOUTH; mouth++)
*
*/
+#ifndef __PACMAN_H__
+#define __PACMAN_H__
+
+#include "config.h"
+#include "xlockmoreI.h"
+
#define LEVHEIGHT 32U
#define LEVWIDTH 40U
#define GHOSTS 4U
#define MAXMOUTH 11
#define MAXGPOS 2
+#define MAXGDIR 4
+#define MAXGWAG 2
#define MINGRIDSIZE 4
#define MINSIZE 3
#define NOWHERE 16383
#define SIGN(x) GETFACTOR((x), 0)
#define TRACEVECS 40
-#define DEF_TRACKMOUSE "False"
-static Bool trackmouse;
-
typedef struct { int vx, vy; } tracevec_struct;
typedef enum { inbox = 0, goingout, randdir, chasing, hiding } GhostState;
unsigned int nghosts;
Pixmap pacmanPixmap[4][MAXMOUTH];
/* Pixmap ghostPixmap[4][MAXGPOS];*/
- Pixmap ghostPixmap;
+/* Pixmap ghostPixmap; */
+ Pixmap ghostPixmap[4][MAXGDIR][MAXGWAG];
+/* Pixmap ghostMask[4][MAXGDIR][MAXGWAG]; */
+ Pixmap ghostMask;
char level[LEVHEIGHT * LEVWIDTH];
unsigned int wallwidth;
unsigned int dotsleft;
} pacmangamestruct;
#define DIRVECS 4
-static const struct { int dx, dy; } dirvecs[DIRVECS] =
- { {-1, 0}, {0, 1}, {1, 0}, {0, -1}};
-static pacmangamestruct *pacmangames = (pacmangamestruct *) NULL;
+extern pacmangamestruct *pacmangames;
+extern Bool trackmouse;
typedef char lev_t[LEVHEIGHT][LEVWIDTH + 1];
-/* function type definitions */
-
- /* level generation */
-static int creatlevelblock(lev_t *level, const unsigned x,
- const unsigned y);
-static void setblockto(lev_t *level, const unsigned x, const unsigned y,
- const char c);
-static int checkset(lev_t *level, const unsigned x, const unsigned y);
-static int checksetout(lev_t *level, const unsigned x, const unsigned y);
-static int checkunsetdef(lev_t *level, const unsigned x, const unsigned y);
-static void clearlevel(lev_t *level);
-static void copylevel(char *dest, lev_t *level);
-static void createjail(lev_t *level, const unsigned width,
- const unsigned height);
-static void finishjail(lev_t *level, const unsigned width,
- const unsigned height);
-static int tryset(lev_t *level, const unsigned xpos, const unsigned ypos,
- const char *block);
-static int creatlevelblock(lev_t *level, const unsigned x,
- const unsigned y);
-static void filllevel(lev_t *level);
-static void frmtlevel(lev_t *level);
-static unsigned countdots(ModeInfo * mi);
-static int createnewlevel(ModeInfo * mi);
-static int check_pos(pacmangamestruct *pp, int y, int x, int ghostpass);
-static int check_dot(pacmangamestruct *pp, unsigned int x, unsigned int y);
-
- /* graphics rendering */
-static void drawlevel(ModeInfo * mi);
-
- /* AI */
-static int ghost_get_posdirs(pacmangamestruct *pp, int *posdirs,
- ghoststruct *g);
-static void ghost_random(pacmangamestruct *pp, ghoststruct *g);
-static void ghost_chasing(pacmangamestruct *pp, ghoststruct *g);
-static void ghost_hiding(pacmangamestruct *pp, ghoststruct *g);
-static void ghost_update(pacmangamestruct *pp, ghoststruct *g);
-
-static void pac_dot_vec(pacmangamestruct *pp, pacmanstruct *p,
- long *vx, long *vy);
-static int pac_ghost_prox_and_vector(pacmangamestruct *pp,
- pacmanstruct *p, int *vx, int *vy);
-static int pac_get_posdirs(pacmangamestruct *pp, pacmanstruct *p,
- int *posdirs);
-static void pac_clear_trace(pacmanstruct *p);
-static void pac_save_trace(pacmanstruct *p, const int vx, const int vy);
-static int pac_check_trace(const pacmanstruct *p, const int vx,
- const int vy);
-static void pac_eating(pacmangamestruct *pp, pacmanstruct *p);
-#if 0
-static void pac_chasing(pacmangamestruct *pp, pacmanstruct *p);
-#endif
-static void pac_random(pacmangamestruct *pp, pacmanstruct *p);
-static int pac_get_vector_screen(pacmangamestruct *pp, pacmanstruct *p,
- const int x, const int y, int *vx, int *vy);
-static int pac_trackmouse(ModeInfo * mi, pacmangamestruct *pp,
- pacmanstruct *p);
-static void pac_update(ModeInfo * mi, pacmangamestruct *pp,
- pacmanstruct *p);
-
- /* generic functions */
-static void repopulate(ModeInfo * mi);
+#endif /* __PACMAN_H__ */
--- /dev/null
+/*-
+ * Copyright (c) 2002 by Edwin de Jong <mauddib@gmx.net>.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ */
+
+/* this file handles the AI of the ghosts and the pacman. */
+
+#include "pacman.h"
+#include "pacman_ai.h"
+#include "pacman_level.h"
+
+#define MI_DISPLAY(MI) ((MI)->dpy)
+#define MI_WINDOW(MI) ((MI)->window)
+#define MI_WIDTH(MI) ((MI)->xgwa.width)
+#define MI_HEIGHT(MI) ((MI)->xgwa.height)
+
+#define DIRVECS 4
+static const struct { int dx, dy; } dirvecs[DIRVECS] =
+ { {-1, 0}, {0, 1}, {1, 0}, {0, -1}};
+
+
+/* fills array of DIRVECS size with possible directions, returns number of
+ directions. 'posdirs' points to a possibly undefined array of four
+ integers. The vector will contain booleans wether the direction is
+ a possible direction or not. Reverse directions are deleted. */
+static int
+ghost_get_posdirs(pacmangamestruct *pp, int *posdirs, ghoststruct *g)
+{
+ unsigned int i, nrdirs = 0;
+
+ /* bit of black magic here */
+ for (i = 0; i < DIRVECS; i++) {
+ /* remove opposite */
+ if (g->lastbox != NOWHERE && i == (g->lastbox + 2) % DIRVECS
+ && g->aistate != goingout) {
+ posdirs[i] = 0;
+ continue;
+ }
+ if (g->aistate == goingout && i == 1) {
+ posdirs[i] = 0;
+ continue;
+ }
+ /* check if possible direction */
+ if ((posdirs[i] =
+ check_pos(pp, g->row + dirvecs[i].dy,
+ g->col + dirvecs[i].dx,
+ g->aistate == goingout ? True : False)) ==
+ True) {
+ nrdirs++;
+ }
+ }
+
+ return nrdirs;
+}
+
+/* Directs ghost to a random direction, exluding opposite (except in the
+ impossible situation that there is only one valid direction). */
+static void
+ghost_random(pacmangamestruct *pp, ghoststruct *g)
+{
+ int posdirs[DIRVECS], nrdirs = 0, i, dir = 0;
+
+ nrdirs = ghost_get_posdirs(pp, posdirs, g);
+ for (i = 0; i < DIRVECS; i++)
+ if (posdirs[i] == True) dir = i;
+
+ if (nrdirs == 0) dir = (g->lastbox + 2) % DIRVECS;
+ else if (nrdirs > 1)
+ for (i = 0; i < DIRVECS; i++) {
+ if (posdirs[i] == True && NRAND(nrdirs) == 0) {
+ dir = i;
+ break;
+ }
+ }
+
+ g->nextrow = g->row + dirvecs[dir].dy;
+ g->nextcol = g->col + dirvecs[dir].dx;
+ g->lastbox = dir;
+}
+
+/* Determines best direction to chase the pacman and goes that direction. */
+static void
+ghost_chasing(pacmangamestruct *pp, ghoststruct *g)
+{
+ int posdirs[DIRVECS], nrdirs = 0, i, dir = 0, highest = -100000,
+ thisvecx, thisvecy, thisvec;
+
+ nrdirs = ghost_get_posdirs(pp, posdirs, g);
+ for (i = 0; i < DIRVECS; i++)
+ if (posdirs[i] == True) dir = i;
+
+ if (nrdirs == 0) dir = (g->lastbox + 2) % DIRVECS;
+ else if (nrdirs > 1)
+ for (i = 0; i < DIRVECS; i++) {
+ if (posdirs[i] == False) continue;
+ thisvecx = (pp->pacman.col - g->col) * dirvecs[i].dx;
+ thisvecy = (pp->pacman.row - g->row) * dirvecs[i].dy;
+ thisvec = thisvecx + thisvecy;
+ if (thisvec >= highest) {
+ dir = i;
+ highest = thisvec;
+ }
+ }
+
+ g->nextrow = g->row + dirvecs[dir].dy;
+ g->nextcol = g->col + dirvecs[dir].dx;
+ g->lastbox = dir;
+}
+
+/* Determines the best direction to go away from the pacman, and goes that
+ direction. */
+static void
+ghost_hiding(pacmangamestruct *pp, ghoststruct *g)
+{
+ int posdirs[DIRVECS], nrdirs = 0, i, dir = 0, highest = -100000,
+ thisvecx, thisvecy, thisvec;
+
+ nrdirs = ghost_get_posdirs(pp, posdirs, g);
+ for (i = 0; i < DIRVECS; i++)
+ if (posdirs[i] == True) dir = i;
+
+ if (nrdirs == 0) dir = (g->lastbox + 2) % DIRVECS;
+ else if (nrdirs > 1)
+ for (i = 0; i < DIRVECS; i++) {
+ if (posdirs[i] == False) continue;
+ thisvecx = (g->col - pp->pacman.col) * dirvecs[i].dx;
+ thisvecy = (g->row - pp->pacman.row) * dirvecs[i].dy;
+ thisvec = thisvecx + thisvecy;
+ if (thisvec >= highest)
+ dir = i;
+ }
+
+ g->nextrow = g->row + dirvecs[dir].dy;
+ g->nextcol = g->col + dirvecs[dir].dx;
+ g->lastbox = dir;
+}
+
+/* Determines a vector from the pacman position, towards all dots. The vector
+ is inversely proportional to the square of the distance of each dot.
+ (so, close dots attract more than far away dots). */
+static void
+pac_dot_vec(pacmangamestruct *pp, pacmanstruct *p, long *vx, long *vy)
+{
+ int x, y, bx = 0, by = 0, ex = LEVWIDTH, ey = LEVHEIGHT;
+ long dx, dy, dist, top = 0;
+
+#if 0
+ int rnr = NRAND(50);
+ /* determine begin and end vectors */
+
+ switch (rnr) {
+ case 0: ex = LEVHEIGHT/2; break;
+ case 1: bx = LEVHEIGHT/2; break;
+ case 2: ey = LEVHEIGHT/2; break;
+ case 3: by = LEVHEIGHT/2; break;
+ }
+#endif
+ *vx = *vy = 0;
+
+ for (y = by; y < ey; y++)
+ for (x = bx; x < ex; x++)
+ if (check_dot(pp, x, y) == 1) {
+ dx = (long)x - (long)(p->col);
+ dy = (long)y - (long)(p->row);
+ dist = dx * dx + dy * dy;
+ if (dist > top)
+ top = dist;
+ *vx += (dx * ((long)LEVWIDTH * (long)LEVHEIGHT))
+ / dist;
+ *vy += (dy * ((long)LEVWIDTH * (long)LEVHEIGHT))
+ / dist;
+ }
+}
+
+/* Determine a vector towards the closest ghost (in one loop, so we spare a
+ couple of cycles which we can spoil somewhere else just as fast). */
+static int
+pac_ghost_prox_and_vector(pacmangamestruct *pp, pacmanstruct *p,
+ int *vx, int *vy)
+{
+ int dx, dy, dist, closest = 100000;
+ unsigned int g;
+
+ if (vx != NULL)
+ *vx = *vy = 0;
+
+ for (g = 0; g < pp->nghosts; g++) {
+ if (pp->ghosts[g].dead == True ||
+ pp->ghosts[g].aistate == inbox ||
+ pp->ghosts[g].aistate == goingout)
+ continue;
+ dx = pp->ghosts[g].col + /*dirvecs[pp->ghosts[g].lastbox].dx*/ -
+ p->col;
+ dy = pp->ghosts[g].row + /*dirvecs[pp->ghosts[g].lastbox].dy*/ -
+ p->row;
+ dist = dx * dx + dy * dy;
+ if (dist < closest) {
+ closest = dist;
+ if (vx != NULL) {
+ *vx = dx; *vy = dy;
+ }
+ }
+ }
+ return closest;
+}
+
+/* fills array of DIRVECS size with possible directions, returns number of
+ directions. posdirs should point to an array of 4 integers. */
+static int
+pac_get_posdirs(pacmangamestruct *pp, pacmanstruct *p, int *posdirs)
+{
+ int nrdirs = 0;
+ unsigned int i;
+
+ for (i = 0; i < DIRVECS; i++) {
+ /* if we just ate, or we are in a statechange, it is allowed
+ to go the opposite direction */
+ if (p->justate == 0 &&
+ p->state_change == 0 &&
+ p->lastbox != NOWHERE &&
+ i == (p->lastbox + 2) % DIRVECS) {
+ posdirs[i] = 0;
+ } else if ((posdirs[i] =
+ check_pos(pp, p->row + dirvecs[i].dy,
+ p->col + dirvecs[i].dx, 0)) == 1)
+ nrdirs++;
+ }
+ p->state_change = 0;
+
+ return nrdirs;
+}
+
+/* Clears the trace of vectors. */
+void
+pac_clear_trace(pacmanstruct *p)
+{
+ int i;
+
+ for(i = 0; i < TRACEVECS; i++) {
+ p->trace[i].vx = NOWHERE; p->trace[i].vy = NOWHERE;
+ }
+ p->cur_trace = 0;
+}
+
+/* Adds a new vector to the trace. */
+static void
+pac_save_trace(pacmanstruct *p, const int vx, const int vy)
+{
+ if (!(vx == NOWHERE && vy == NOWHERE)) {
+ p->trace[p->cur_trace].vx = vx;
+ p->trace[p->cur_trace].vy = vy;
+ p->cur_trace = (p->cur_trace + 1) % TRACEVECS;
+ }
+}
+
+/* Check if a vector can be found in the trace. */
+static int
+pac_check_trace(const pacmanstruct *p, const int vx, const int vy)
+{
+ int i, curel;
+
+ for (i = 1; i < TRACEVECS; i++) {
+ curel = (p->cur_trace - i + TRACEVECS) % TRACEVECS;
+ if (p->trace[curel].vx == NOWHERE &&
+ p->trace[curel].vy == NOWHERE)
+ continue;
+ if (p->trace[curel].vx == vx &&
+ p->trace[curel].vy == vy)
+ return 1;
+ }
+
+
+ return 0;
+}
+
+/* AI mode "Eating" for pacman. Tries to eat as many dots as possible, goes
+ to "hiding" if too close to a ghost. If in state "hiding" the vectors
+ of the ghosts are also taken into account (thus not running towards them
+ is the general idea). */
+static void
+pac_eating(pacmangamestruct *pp, pacmanstruct *p)
+{
+ int posdirs[DIRVECS], nrdirs, i, highest = -(1 << 16),
+ score, dir = 0, dotfound = 0, prox, worst = 0;
+ int vx, vy;
+
+ if ((prox = pac_ghost_prox_and_vector(pp, p, &vx, &vy)) <
+ 4 * 4 && p->aistate == ps_eating) {
+ p->aistate = ps_hiding;
+ p->state_change = 1;
+ pac_clear_trace(p);
+ }
+
+ if (prox > 6 * 6 && p->aistate == ps_hiding) {
+ p->aistate = ps_eating;
+ if (p->justate == 0) p->state_change = 1;
+ pac_clear_trace(p);
+ }
+
+ if (prox < 3 * 3) p->state_change = 1;
+
+ nrdirs = pac_get_posdirs(pp, p, posdirs);
+
+ /* remove directions which lead to ghosts */
+ if (p->aistate == ps_hiding) {
+ for (i = 0; i < DIRVECS; i++) {
+ if (posdirs[i] == 0) continue;
+ score = vx * dirvecs[i].dx + vy * dirvecs[i].dy;
+ if (score > highest) {
+ worst = i;
+ highest = score;
+ }
+ dir = i;
+ }
+ nrdirs--;
+ posdirs[worst] = 0;
+ highest = -(1 << 16);
+ }
+
+ /* get last possible direction if all else fails */
+ for (i = 0; i < DIRVECS; i++)
+ if (posdirs[i] != 0) dir = i;
+
+ {
+ long lvx = vx;
+ long lvy = vy;
+ pac_dot_vec(pp, p, &lvx, &lvy);
+ vx = lvx;
+ vy = lvy;
+ }
+
+ if (vx != NOWHERE && vy != NOWHERE && pac_check_trace(p, vx, vy) > 0) {
+ p->roundscore++;
+ if (p->roundscore >= 12) {
+ p->roundscore = 0;
+ p->aistate = ps_random;
+ pac_clear_trace(p);
+ }
+ } else
+ p->roundscore = 0;
+
+ if (p->justate == 0) pac_save_trace(p, vx, vy);
+
+ for (i = 0; i < DIRVECS; i++) {
+ if (posdirs[i] == 0) continue;
+ score = dirvecs[i].dx * vx + dirvecs[i].dy * vy;
+ if (check_dot(pp, p->col + dirvecs[i].dx,
+ p->row + dirvecs[i].dy) == 1) {
+ if (dotfound == 0) {
+ highest = score;
+ dir = i;
+ dotfound = 1;
+ } else if (score > highest) {
+ highest = score;
+ dir = i;
+ }
+ } else if (score > highest && dotfound == 0) {
+ dir = i;
+ highest = score;
+ }
+ }
+
+ p->nextrow = p->row + dirvecs[dir].dy;
+ p->nextcol = p->col + dirvecs[dir].dx;
+ p->lastbox = dir;
+}
+
+#if 0
+/* Tries to catch the ghosts. */
+static void
+pac_chasing(pacmangamestruct *pp, pacmanstruct *p)
+{
+}
+#endif
+
+/* Goes completely random, but not in the opposite direction. Used when a
+ loop is detected. */
+static void
+pac_random(pacmangamestruct *pp, pacmanstruct *p)
+{
+ int posdirs[DIRVECS], nrdirs, i, dir = -1, lastdir = 0;
+
+ if (pac_ghost_prox_and_vector(pp, p, NULL, NULL) < 5 * 5) {
+ p->aistate = ps_hiding;
+ p->state_change = 1;
+ }
+ if (NRAND(20) == 0) {
+ p->aistate = ps_eating;
+ p->state_change = 1;
+ pac_clear_trace(p);
+ }
+
+ nrdirs = pac_get_posdirs(pp, p, posdirs);
+
+ for (i = 0; i < DIRVECS; i++) {
+ if (posdirs[i] == 0) continue;
+ lastdir = i;
+ if (check_dot(pp, p->col + dirvecs[i].dx,
+ p->row + dirvecs[i].dy) == 1) {
+ dir = i;
+ p->aistate = ps_eating;
+ p->state_change = 1;
+ pac_clear_trace(p);
+ break;
+ } else if (NRAND(nrdirs) == 0)
+ dir = i;
+ }
+
+ if (dir == -1) dir = lastdir;
+
+ p->nextrow = p->row + dirvecs[dir].dy;
+ p->nextcol = p->col + dirvecs[dir].dx;
+ p->lastbox = dir;
+}
+
+static int
+pac_get_vector_screen(pacmangamestruct *pp, pacmanstruct *p,
+ const int x, const int y, int *vx, int *vy)
+{
+ int lx, ly;
+
+ lx = (x - pp->xb) / pp->xs;
+ ly = (y - pp->yb) / pp->ys;
+
+ if (lx < 0) lx = 0;
+ else if ((unsigned int) lx > LEVWIDTH) lx = LEVWIDTH - 1;
+
+ if (ly < 0) ly = 0;
+ else if ((unsigned int) ly > LEVHEIGHT) ly = LEVHEIGHT - 1;
+
+ *vx = lx - p->col;
+ *vy = ly - p->row;
+
+ if (lx == p->oldlx && ly == p->oldly) return 0;
+ p->oldlx = lx; p->oldly = ly;
+ return 1;
+}
+
+static int
+pac_trackmouse(ModeInfo * mi, pacmangamestruct *pp, pacmanstruct *p)
+{
+ int dx, dy, cx, cy, vx, vy;
+ unsigned int m;
+ int posdirs[DIRVECS], i, dir = -1, highest = -(2 << 16), score;
+ Window r, c;
+
+ (void) XQueryPointer(MI_DISPLAY(mi), MI_WINDOW(mi),
+ &r, &c, &dx, &dy, &cx, &cy, &m);
+
+ if (cx <= 0 || cy <= 0 ||
+ cx >= MI_WIDTH(mi) - 1 ||
+ cy >= MI_HEIGHT(mi) - 1)
+ return 0;
+ /* get vector */
+ p->state_change = pac_get_vector_screen(pp, p, cx, cy, &vx, &vy);
+
+ (void) pac_get_posdirs(pp, p, posdirs);
+
+ for (i = 0; i < DIRVECS; i++) {
+ if (posdirs[i] == 0) continue;
+ score = dirvecs[i].dx * vx + dirvecs[i].dy * vy;
+ if (score > highest) {
+ highest = score;
+ dir = i;
+ }
+ }
+
+ p->nextrow = p->row + dirvecs[dir].dy;
+ p->nextcol = p->col + dirvecs[dir].dx;
+ p->lastbox = dir;
+ return 1;
+}
+
+/* Calls correct state function, and changes between states. */
+void
+ghost_update(pacmangamestruct *pp, ghoststruct *g)
+{
+
+ if (!(g->nextrow == NOWHERE && g->nextcol == NOWHERE)) {
+ g->row = g->nextrow;
+ g->col = g->nextcol;
+ }
+
+ /* update ghost */
+ if (g->dead == True) /* dead ghosts are dead,
+ so they don't run around */
+ return;
+
+ if ((g->aistate == randdir || g->aistate == chasing) &&
+ NRAND(10) == 0) {
+ switch (NRAND(3)) {
+ case 0:
+ g->aistate = randdir; break;
+ case 1:
+ g->aistate = chasing; break;
+ case 2:
+ g->aistate = chasing; break;
+ }
+
+ } else if (g->aistate == inbox) {
+ if (g->timeleft < 0)
+ g->aistate = goingout;
+ else
+ g->timeleft--;
+
+ } else if (g->aistate == goingout) {
+ if (g->col < LEVWIDTH/2 - JAILWIDTH/2 ||
+ g->col > LEVWIDTH/2 + JAILWIDTH/2 ||
+ g->row < LEVHEIGHT/2 - JAILHEIGHT/2 ||
+ g->row > LEVHEIGHT/2 + JAILHEIGHT/2 )
+ g->aistate = randdir;
+ }
+
+ switch (g->aistate) {
+ case inbox:
+ case goingout:
+ case randdir:
+ ghost_random(pp, g);
+ break;
+ case chasing:
+ ghost_chasing(pp, g);
+ break;
+ case hiding:
+ ghost_hiding(pp, g);
+ break;
+ }
+
+ g->cfactor = GETFACTOR(g->nextcol, g->col);
+ g->rfactor = GETFACTOR(g->nextrow, g->row);
+}
+
+/* Calls correct pacman state function. */
+void
+pac_update(ModeInfo *mi, pacmangamestruct *pp, pacmanstruct *p)
+{
+ if (!(p->nextrow == NOWHERE && p->nextcol == NOWHERE)) {
+ p->row = p->nextrow;
+ p->col = p->nextcol;
+ }
+
+ if (pp->level[p->row * LEVWIDTH + p->col] == '.') {
+ pp->level[p->row * LEVWIDTH + p->col] = ' ';
+ if (!trackmouse)
+ p->justate = 1;
+ pp->dotsleft--;
+ } else if (!trackmouse) {
+ p->justate = 0;
+ }
+
+ if (!(trackmouse && pac_trackmouse(mi, pp, p))) {
+ /* update pacman */
+ switch (p->aistate) {
+ case ps_eating:
+ pac_eating(pp, p);
+ break;
+ case ps_hiding:
+ pac_eating(pp, p);
+ break;
+ case ps_random:
+ pac_random(pp, p);
+ break;
+ case ps_chasing:
+#if 0
+ pac_chasing(pp, p);
+#endif
+ break;
+ }
+ }
+
+ p->cfactor = GETFACTOR(p->nextcol, p->col);
+ p->rfactor = GETFACTOR(p->nextrow, p->row);
+}
* trade secrets or any patents by this file or any part thereof. In no
* event will the author be liable for any lost revenue or profits or
* other special, indirect and consequential damages.
+ *
+ * Revision History:
+ * 3-May-2002: Added AI to pacman and ghosts, slowed down ghosts.
+ * 26-Nov-2001: Random level generator added
+ * 01-Nov-2000: Allocation checks
+ * 04-Jun-1997: Compatible with xscreensaver
+ *
*/
-/* this file is a part of pacman.c, and included via pacman.h. It handles the
- AI of the ghosts and the pacman. */
-
-
-/* fills array of DIRVECS size with possible directions, returns number of
- directions. 'posdirs' points to a possibly undefined array of four
- integers. The vector will contain booleans wether the direction is
- a possible direction or not. Reverse directions are deleted. */
-static int
-ghost_get_posdirs(pacmangamestruct *pp, int *posdirs, ghoststruct *g)
-{
- unsigned int i, nrdirs = 0;
-
- /* bit of black magic here */
- for (i = 0; i < DIRVECS; i++) {
- /* remove opposite */
- if (g->lastbox != NOWHERE && i == (g->lastbox + 2) % DIRVECS
- && g->aistate != goingout) {
- posdirs[i] = 0;
- continue;
- }
- if (g->aistate == goingout && i == 1) {
- posdirs[i] = 0;
- continue;
- }
- /* check if possible direction */
- if ((posdirs[i] =
- check_pos(pp, g->row + dirvecs[i].dy,
- g->col + dirvecs[i].dx,
- g->aistate == goingout ? True : False)) ==
- True) {
- nrdirs++;
- }
- }
-
- return nrdirs;
-}
-
-/* Directs ghost to a random direction, exluding opposite (except in the
- impossible situation that there is only one valid direction). */
-static void
-ghost_random(pacmangamestruct *pp, ghoststruct *g)
-{
- int posdirs[DIRVECS], nrdirs = 0, i, dir = 0;
-
- nrdirs = ghost_get_posdirs(pp, posdirs, g);
- for (i = 0; i < DIRVECS; i++)
- if (posdirs[i] == True) dir = i;
-
- if (nrdirs == 0) dir = (g->lastbox + 2) % DIRVECS;
- else if (nrdirs > 1)
- for (i = 0; i < DIRVECS; i++) {
- if (posdirs[i] == True && NRAND(nrdirs) == 0) {
- dir = i;
- break;
- }
- }
-
- g->nextrow = g->row + dirvecs[dir].dy;
- g->nextcol = g->col + dirvecs[dir].dx;
- g->lastbox = dir;
-}
-
-/* Determines best direction to chase the pacman and goes that direction. */
-static void
-ghost_chasing(pacmangamestruct *pp, ghoststruct *g)
-{
- int posdirs[DIRVECS], nrdirs = 0, i, dir = 0, highest = -100000,
- thisvecx, thisvecy, thisvec;
-
- nrdirs = ghost_get_posdirs(pp, posdirs, g);
- for (i = 0; i < DIRVECS; i++)
- if (posdirs[i] == True) dir = i;
-
- if (nrdirs == 0) dir = (g->lastbox + 2) % DIRVECS;
- else if (nrdirs > 1)
- for (i = 0; i < DIRVECS; i++) {
- if (posdirs[i] == False) continue;
- thisvecx = (pp->pacman.col - g->col) * dirvecs[i].dx;
- thisvecy = (pp->pacman.row - g->row) * dirvecs[i].dy;
- thisvec = thisvecx + thisvecy;
- if (thisvec >= highest) {
- dir = i;
- highest = thisvec;
- }
- }
-
- g->nextrow = g->row + dirvecs[dir].dy;
- g->nextcol = g->col + dirvecs[dir].dx;
- g->lastbox = dir;
-}
-
-/* Determines the best direction to go away from the pacman, and goes that
- direction. */
-static void
-ghost_hiding(pacmangamestruct *pp, ghoststruct *g)
-{
- int posdirs[DIRVECS], nrdirs = 0, i, dir = 0, highest = -100000,
- thisvecx, thisvecy, thisvec;
-
- nrdirs = ghost_get_posdirs(pp, posdirs, g);
- for (i = 0; i < DIRVECS; i++)
- if (posdirs[i] == True) dir = i;
-
- if (nrdirs == 0) dir = (g->lastbox + 2) % DIRVECS;
- else if (nrdirs > 1)
- for (i = 0; i < DIRVECS; i++) {
- if (posdirs[i] == False) continue;
- thisvecx = (g->col - pp->pacman.col) * dirvecs[i].dx;
- thisvecy = (g->row - pp->pacman.row) * dirvecs[i].dy;
- thisvec = thisvecx + thisvecy;
- if (thisvec >= highest)
- dir = i;
- }
-
- g->nextrow = g->row + dirvecs[dir].dy;
- g->nextcol = g->col + dirvecs[dir].dx;
- g->lastbox = dir;
-}
-
-/* Determines a vector from the pacman position, towards all dots. The vector
- is inversely proportional to the square of the distance of each dot.
- (so, close dots attract more than far away dots). */
-static void
-pac_dot_vec(pacmangamestruct *pp, pacmanstruct *p, long *vx, long *vy)
-{
- int x, y, bx = 0, by = 0, ex = LEVWIDTH, ey = LEVHEIGHT;
- long dx, dy, dist, top = 0;
-
-#if 0
- int rnr = NRAND(50);
- /* determine begin and end vectors */
-
- switch (rnr) {
- case 0: ex = LEVHEIGHT/2; break;
- case 1: bx = LEVHEIGHT/2; break;
- case 2: ey = LEVHEIGHT/2; break;
- case 3: by = LEVHEIGHT/2; break;
- }
-#endif
- *vx = *vy = 0;
-
- for (y = by; y < ey; y++)
- for (x = bx; x < ex; x++)
- if (check_dot(pp, x, y) == 1) {
- dx = (long)x - (long)(p->col);
- dy = (long)y - (long)(p->row);
- dist = dx * dx + dy * dy;
- if (dist > top)
- top = dist;
- *vx += (dx * ((long)LEVWIDTH * (long)LEVHEIGHT))
- / dist;
- *vy += (dy * ((long)LEVWIDTH * (long)LEVHEIGHT))
- / dist;
- }
-}
-
-/* Determine a vector towards the closest ghost (in one loop, so we spare a
- couple of cycles which we can spoil somewhere else just as fast). */
-static int
-pac_ghost_prox_and_vector(pacmangamestruct *pp, pacmanstruct *p,
- int *vx, int *vy)
-{
- int dx, dy, dist, closest = 100000;
- unsigned int g;
-
- if (vx != NULL)
- *vx = *vy = 0;
-
- for (g = 0; g < pp->nghosts; g++) {
- if (pp->ghosts[g].dead == True ||
- pp->ghosts[g].aistate == inbox ||
- pp->ghosts[g].aistate == goingout)
- continue;
- dx = pp->ghosts[g].col + /*dirvecs[pp->ghosts[g].lastbox].dx*/ -
- p->col;
- dy = pp->ghosts[g].row + /*dirvecs[pp->ghosts[g].lastbox].dy*/ -
- p->row;
- dist = dx * dx + dy * dy;
- if (dist < closest) {
- closest = dist;
- if (vx != NULL) {
- *vx = dx; *vy = dy;
- }
- }
- }
- return closest;
-}
-
-/* fills array of DIRVECS size with possible directions, returns number of
- directions. posdirs should point to an array of 4 integers. */
-static int
-pac_get_posdirs(pacmangamestruct *pp, pacmanstruct *p, int *posdirs)
-{
- int nrdirs = 0;
- unsigned int i;
-
- for (i = 0; i < DIRVECS; i++) {
- /* if we just ate, or we are in a statechange, it is allowed
- to go the opposite direction */
- if (p->justate == 0 &&
- p->state_change == 0 &&
- p->lastbox != NOWHERE &&
- i == (p->lastbox + 2) % DIRVECS) {
- posdirs[i] = 0;
- } else if ((posdirs[i] =
- check_pos(pp, p->row + dirvecs[i].dy,
- p->col + dirvecs[i].dx, 0)) == 1)
- nrdirs++;
- }
- p->state_change = 0;
-
- return nrdirs;
-}
-
-/* Clears the trace of vectors. */
-static void
-pac_clear_trace(pacmanstruct *p)
-{
- int i;
-
- for(i = 0; i < TRACEVECS; i++) {
- p->trace[i].vx = NOWHERE; p->trace[i].vy = NOWHERE;
- }
- p->cur_trace = 0;
-}
-
-/* Adds a new vector to the trace. */
-static void
-pac_save_trace(pacmanstruct *p, const int vx, const int vy)
-{
- if (!(vx == NOWHERE && vy == NOWHERE)) {
- p->trace[p->cur_trace].vx = vx;
- p->trace[p->cur_trace].vy = vy;
- p->cur_trace = (p->cur_trace + 1) % TRACEVECS;
- }
-}
-
-/* Check if a vector can be found in the trace. */
-static int
-pac_check_trace(const pacmanstruct *p, const int vx, const int vy)
-{
- int i, curel;
-
- for (i = 1; i < TRACEVECS; i++) {
- curel = (p->cur_trace - i + TRACEVECS) % TRACEVECS;
- if (p->trace[curel].vx == NOWHERE &&
- p->trace[curel].vy == NOWHERE)
- continue;
- if (p->trace[curel].vx == vx &&
- p->trace[curel].vy == vy)
- return 1;
- }
-
-
- return 0;
-}
-
-/* AI mode "Eating" for pacman. Tries to eat as many dots as possible, goes
- to "hiding" if too close to a ghost. If in state "hiding" the vectors
- of the ghosts are also taken into account (thus not running towards them
- is the general idea). */
-static void
-pac_eating(pacmangamestruct *pp, pacmanstruct *p)
-{
- int posdirs[DIRVECS], nrdirs, i, highest = -(1 << 16),
- score, dir = 0, dotfound = 0, prox, worst = 0;
- long vx, vy;
-
- if ((prox = pac_ghost_prox_and_vector(pp, p, (int *)&vx, (int *)&vy)) <
- 4 * 4 && p->aistate == ps_eating) {
- p->aistate = ps_hiding;
- p->state_change = 1;
- pac_clear_trace(p);
- }
-
- if (prox > 6 * 6 && p->aistate == ps_hiding) {
- p->aistate = ps_eating;
- if (p->justate == 0) p->state_change = 1;
- pac_clear_trace(p);
- }
-
- if (prox < 3 * 3) p->state_change = 1;
-
- nrdirs = pac_get_posdirs(pp, p, posdirs);
-
- /* remove directions which lead to ghosts */
- if (p->aistate == ps_hiding) {
- for (i = 0; i < DIRVECS; i++) {
- if (posdirs[i] == 0) continue;
- score = vx * dirvecs[i].dx + vy * dirvecs[i].dy;
- if (score > highest) {
- worst = i;
- highest = score;
- }
- dir = i;
- }
- nrdirs--;
- posdirs[worst] = 0;
- highest = -(1 << 16);
- }
-
- /* get last possible direction if all else fails */
- for (i = 0; i < DIRVECS; i++)
- if (posdirs[i] != 0) dir = i;
-
- pac_dot_vec(pp, p, &vx, &vy);
-
- if (vx != NOWHERE && vy != NOWHERE && pac_check_trace(p, vx, vy) > 0) {
- p->roundscore++;
- if (p->roundscore >= 12) {
- p->roundscore = 0;
- p->aistate = ps_random;
- pac_clear_trace(p);
- }
- } else
- p->roundscore = 0;
-
- if (p->justate == 0) pac_save_trace(p, vx, vy);
-
- for (i = 0; i < DIRVECS; i++) {
- if (posdirs[i] == 0) continue;
- score = dirvecs[i].dx * vx + dirvecs[i].dy * vy;
- if (check_dot(pp, p->col + dirvecs[i].dx,
- p->row + dirvecs[i].dy) == 1) {
- if (dotfound == 0) {
- highest = score;
- dir = i;
- dotfound = 1;
- } else if (score > highest) {
- highest = score;
- dir = i;
- }
- } else if (score > highest && dotfound == 0) {
- dir = i;
- highest = score;
- }
- }
-
- p->nextrow = p->row + dirvecs[dir].dy;
- p->nextcol = p->col + dirvecs[dir].dx;
- p->lastbox = dir;
-}
-
-#if 0
-/* Tries to catch the ghosts. */
-static void
-pac_chasing(pacmangamestruct *pp, pacmanstruct *p)
-{
-}
-#endif
-
-/* Goes completely random, but not in the opposite direction. Used when a
- loop is detected. */
-static void
-pac_random(pacmangamestruct *pp, pacmanstruct *p)
-{
- int posdirs[DIRVECS], nrdirs, i, dir = -1, lastdir = 0;
-
- if (pac_ghost_prox_and_vector(pp, p, NULL, NULL) < 5 * 5) {
- p->aistate = ps_hiding;
- p->state_change = 1;
- }
- if (NRAND(20) == 0) {
- p->aistate = ps_eating;
- p->state_change = 1;
- pac_clear_trace(p);
- }
-
- nrdirs = pac_get_posdirs(pp, p, posdirs);
-
- for (i = 0; i < DIRVECS; i++) {
- if (posdirs[i] == 0) continue;
- lastdir = i;
- if (check_dot(pp, p->col + dirvecs[i].dx,
- p->row + dirvecs[i].dy) == 1) {
- dir = i;
- p->aistate = ps_eating;
- p->state_change = 1;
- pac_clear_trace(p);
- break;
- } else if (NRAND(nrdirs) == 0)
- dir = i;
- }
-
- if (dir == -1) dir = lastdir;
-
- p->nextrow = p->row + dirvecs[dir].dy;
- p->nextcol = p->col + dirvecs[dir].dx;
- p->lastbox = dir;
-}
-
-static int
-pac_get_vector_screen(pacmangamestruct *pp, pacmanstruct *p,
- const int x, const int y, int *vx, int *vy)
-{
- int lx, ly;
-
- lx = (x - pp->xb) / pp->xs;
- ly = (y - pp->yb) / pp->ys;
-
- if (lx < 0) lx = 0;
- else if ((unsigned int) lx > LEVWIDTH) lx = LEVWIDTH - 1;
-
- if (ly < 0) ly = 0;
- else if ((unsigned int) ly > LEVHEIGHT) ly = LEVHEIGHT - 1;
-
- *vx = lx - p->col;
- *vy = ly - p->row;
-
- if (lx == p->oldlx && ly == p->oldly) return 0;
- p->oldlx = lx; p->oldly = ly;
- return 1;
-}
-
-static int
-pac_trackmouse(ModeInfo * mi, pacmangamestruct *pp, pacmanstruct *p)
-{
- int dx, dy, cx, cy, vx, vy;
- unsigned int m;
- int posdirs[DIRVECS], i, dir = -1, highest = -(2 << 16), score;
- Window r, c;
-
- (void) XQueryPointer(MI_DISPLAY(mi), MI_WINDOW(mi),
- &r, &c, &dx, &dy, &cx, &cy, &m);
-
- if (cx <= 0 || cy <= 0 ||
- cx >= MI_WIDTH(mi) - 1 ||
- cy >= MI_HEIGHT(mi) - 1)
- return 0;
- /* get vector */
- p->state_change = pac_get_vector_screen(pp, p, cx, cy, &vx, &vy);
-
- (void) pac_get_posdirs(pp, p, posdirs);
-
- for (i = 0; i < DIRVECS; i++) {
- if (posdirs[i] == 0) continue;
- score = dirvecs[i].dx * vx + dirvecs[i].dy * vy;
- if (score > highest) {
- highest = score;
- dir = i;
- }
- }
-
- p->nextrow = p->row + dirvecs[dir].dy;
- p->nextcol = p->col + dirvecs[dir].dx;
- p->lastbox = dir;
- return 1;
-}
-
-/* Calls correct state function, and changes between states. */
-static void
-ghost_update(pacmangamestruct *pp, ghoststruct *g)
-{
-
- if (!(g->nextrow == NOWHERE && g->nextcol == NOWHERE)) {
- g->row = g->nextrow;
- g->col = g->nextcol;
- }
-
- /* update ghost */
- if (g->dead == True) /* dead ghosts are dead,
- so they don't run around */
- return;
-
- if ((g->aistate == randdir || g->aistate == chasing) &&
- NRAND(10) == 0) {
- switch (NRAND(3)) {
- case 0:
- g->aistate = randdir; break;
- case 1:
- g->aistate = chasing; break;
- case 2:
- g->aistate = chasing; break;
- }
-
- } else if (g->aistate == inbox) {
- if (g->timeleft < 0)
- g->aistate = goingout;
- else
- g->timeleft--;
-
- } else if (g->aistate == goingout) {
- if (g->col < LEVWIDTH/2 - JAILWIDTH/2 ||
- g->col > LEVWIDTH/2 + JAILWIDTH/2 ||
- g->row < LEVHEIGHT/2 - JAILHEIGHT/2 ||
- g->row > LEVHEIGHT/2 + JAILHEIGHT/2 )
- g->aistate = randdir;
- }
-
- switch (g->aistate) {
- case inbox:
- case goingout:
- case randdir:
- ghost_random(pp, g);
- break;
- case chasing:
- ghost_chasing(pp, g);
- break;
- case hiding:
- ghost_hiding(pp, g);
- break;
- }
-
- g->cfactor = GETFACTOR(g->nextcol, g->col);
- g->rfactor = GETFACTOR(g->nextrow, g->row);
-}
-
-/* Calls correct pacman state function. */
-static void
-pac_update(ModeInfo *mi, pacmangamestruct *pp, pacmanstruct *p)
-{
- if (!(p->nextrow == NOWHERE && p->nextcol == NOWHERE)) {
- p->row = p->nextrow;
- p->col = p->nextcol;
- }
-
- if (pp->level[p->row * LEVWIDTH + p->col] == '.') {
- pp->level[p->row * LEVWIDTH + p->col] = ' ';
- if (!trackmouse)
- p->justate = 1;
- pp->dotsleft--;
- } else if (!trackmouse) {
- p->justate = 0;
- }
+#ifndef __PACMAN_AI_H__
+#define __PACMAN_AI_H__
- if (!(trackmouse && pac_trackmouse(mi, pp, p))) {
- /* update pacman */
- switch (p->aistate) {
- case ps_eating:
- pac_eating(pp, p);
- break;
- case ps_hiding:
- pac_eating(pp, p);
- break;
- case ps_random:
- pac_random(pp, p);
- break;
- case ps_chasing:
-#if 0
- pac_chasing(pp, p);
-#endif
- break;
- }
- }
+extern void ghost_update(pacmangamestruct *pp, ghoststruct *g);
+extern void pac_clear_trace(pacmanstruct *p);
+extern void pac_update(ModeInfo * mi, pacmangamestruct *pp,
+ pacmanstruct *p);
- p->cfactor = GETFACTOR(p->nextcol, p->col);
- p->rfactor = GETFACTOR(p->nextrow, p->row);
-}
+#endif /* __PACMAN_AI_H__ */
--- /dev/null
+/*-
+ * Copyright (c) 2002 by Edwin de Jong <mauddib@gmx.net>.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind. The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof. In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+ */
+
+#include "pacman.h"
+#include "pacman_level.h"
+
+#define MI_SCREEN(MI) (0)
+
+#define NONE 0x0000
+#define LT 0x1000
+#define RT 0x0001
+#define RB 0x0010
+#define LB 0x0100
+#define ALL 0x1111
+
+#define BLOCK_EMPTY ' '
+#define BLOCK_DOT_1 '`'
+#define BLOCK_DOT_2 '.'
+#define BLOCK_WALL '#'
+#define BLOCK_GHOST_ONLY '='
+#define BLOCK_WALL_TL '\''
+#define BLOCK_WALL_TR '`'
+#define BLOCK_WALL_BR ','
+#define BLOCK_WALL_BL '_'
+#define BLOCK_WALL_HO '-'
+#define BLOCK_WALL_VE '|'
+
+/* This is more or less the standard pacman level (without the left-right
+ tunnel. */
+static const lev_t stdlevel = {
+ "########################################",
+ "########################################",
+ "#######````````````##````````````#######",
+ "#######`####`#####`##`#####`####`#######",
+ "#######`####`#####`##`#####`####`#######",
+ "#######`####`#####`##`#####`####`#######",
+ "#######``````````````````````````#######",
+ "#######`####`##`########`##`####`#######",
+ "#######`####`##`########`##`####`#######",
+ "#######``````##````##````##``````#######",
+ "############`#####`##`#####`############",
+ "############`#####`##`#####`############",
+ "############`##``````````##`############",
+ "############`##`###==###`##`############",
+ "############`##`########`##`############",
+ "############````########````############",
+ "############`##`########`##`############",
+ "############`##`########`##`############",
+ "############`##``````````##`############",
+ "############`##`########`##`############",
+ "############`##`########`##`############",
+ "#######````````````##````````````#######",
+ "#######`####`#####`##`#####`####`#######",
+ "#######`####`#####`##`#####`####`#######",
+ "#######```##````````````````##```#######",
+ "#########`##`##`########`##`##`#########",
+ "#########`##`##`########`##`##`#########",
+ "#######``````##````##````##``````#######",
+ "#######`##########`##`##########`#######",
+ "#######`##########`##`##########`#######",
+ "#######``````````````````````````#######",
+ "########################################"};
+
+#define TILEWIDTH 5U
+#define TILEHEIGHT 5U
+#define TILES_COUNT 11U
+
+#define GO_UP 0x0001U
+#define GO_LEFT 0x0002U
+#define GO_RIGHT 0x0004U
+#define GO_DOWN 0x0008U
+
+/* This are tiles which can be places to create a level. */
+static struct {
+ char block[TILEWIDTH * TILEHEIGHT + 1];
+ unsigned dirvec[4];
+ unsigned ndirs;
+ unsigned simular_to;
+} tiles[TILES_COUNT] = {
+/*
+ * ' ' == dont care == BLOCK_EMPTY
+ * '#' == set wall, and not clear == BLOCK_WALL
+ * '`' == clear == BLOCK_DOT_1
+ * middle position is always set as cleardef
+ */
+ { " # "
+ " # "
+ " ``` "
+ " # "
+ " # ",
+ { GO_LEFT, GO_RIGHT, 0, 0 }, 2,
+ (unsigned) (1 << 0 | 1 << 6 | 1 << 8 | 1 << 10) },
+ { " "
+ " ` "
+ "##`##"
+ " ` "
+ " ",
+ { GO_UP, GO_DOWN, 0, 0 }, 2,
+ (unsigned) (1 << 1 | 1 << 7 | 1 << 9 | 1 << 10) },
+ { " ##"
+ "##`##"
+ "##`` "
+ "#### "
+ "#### ",
+ { GO_UP, GO_RIGHT, 0, 0 }, 2,
+ (unsigned) (1 << 2 | 1 << 6 | 1 << 7 | 1 << 10) },
+ { "#### "
+ "#### "
+ "##`` "
+ "##`##"
+ " ##",
+ { GO_RIGHT, GO_DOWN, 0, 0 }, 2,
+ (unsigned) (1 << 3 | 1 << 7 | 1 << 8 | 1 << 10) },
+ { " ###"
+ " ###"
+ " ``##"
+ "##` "
+ "## ",
+ { GO_LEFT, GO_DOWN, 0, 0 }, 2,
+ (unsigned) (1 << 4 | 1 << 8 | 1 << 9 | 1 << 10) },
+ { "## "
+ "##`##"
+ " ``##"
+ " ####"
+ " ####",
+ { GO_LEFT, GO_UP, 0, 0 }, 2,
+ (unsigned) (1 << 5 | 1 << 6 | 1 << 9 | 1 << 10) },
+ { "##`##"
+ "##`##"
+ "`````"
+ " ### "
+ " ### ",
+ { GO_LEFT, GO_UP, GO_RIGHT, 0 }, 3,
+ (unsigned) 1 << 6 },
+ { " `##"
+ "##`##"
+ "##```"
+ "##`##"
+ " `##",
+ { GO_UP, GO_RIGHT, GO_DOWN, 0}, 3,
+ (unsigned) (1 << 7) },
+ { " ### "
+ " ### "
+ "`````"
+ "##`##"
+ "##`##",
+ { GO_LEFT, GO_RIGHT, GO_DOWN, 0}, 3,
+ (unsigned) (1 << 8) },
+ { "##` "
+ "##`##"
+ "```##"
+ "##`##"
+ "##` ",
+ { GO_UP, GO_DOWN, GO_LEFT, 0 }, 3,
+ (unsigned) (1 << 9) },
+ { "##`##"
+ "##`##"
+ "`````"
+ "##`##"
+ "##`##",
+ { GO_UP, GO_DOWN, GO_LEFT, GO_RIGHT }, 4,
+ (unsigned) (1 << 10) }
+};
+
+/* probability array for each of the tiles */
+#define MAXTILEPROB 22
+static const unsigned tileprob[MAXTILEPROB] =
+ { 0, 0, 0, 1, 1, 2, 3, 4, 5, 6, 6, 6, 7, 7, 8, 8, 8, 9, 9, 10, 10, 10 };
+
+
+static int creatlevelblock(lev_t *level, const unsigned x,
+ const unsigned y);
+
+
+
+/* Sets a block in the level to a certain state. */
+static void
+setblockto(lev_t *level, const unsigned x, const unsigned y,
+ const char c)
+{
+ if (!(x < LEVWIDTH && y < LEVHEIGHT)) return;
+ (*level)[y][x] = c;
+}
+
+/* check if a block is set */
+static int
+checkset(lev_t *level, const unsigned x, const unsigned y)
+{
+ if (!(x < LEVWIDTH && y < LEVHEIGHT) ||
+ (*level)[y][x] == BLOCK_WALL ||
+ (*level)[y][x] == BLOCK_GHOST_ONLY)
+ return True;
+ return False;
+}
+
+/* Check if a block is not set */
+static int
+checksetout(lev_t *level, const unsigned x, const unsigned y)
+{
+ if (!(x < LEVWIDTH && y < LEVHEIGHT) ||
+ checkset(level, x, y) != 0)
+ return True;
+
+ return False;
+}
+
+/* Check if a block cannot be set */
+static int
+checkunsetdef(lev_t *level, const unsigned x, const unsigned y)
+{
+ if (!(x < LEVWIDTH && y < LEVHEIGHT))
+ return False;
+ if ((*level)[y][x] == BLOCK_DOT_1) return True;
+ return False;
+}
+
+/* Initializes a level to empty state. */
+static void
+clearlevel(lev_t *level)
+{
+ unsigned x, y;
+
+ for (y = 0; y < LEVHEIGHT ; y++)
+ for (x = 0 ; x < LEVWIDTH ; x++)
+ (*level)[y][x] = BLOCK_EMPTY;
+}
+
+/* Changes a level from the level creation structure ((array to array) to
+ array. */
+static void
+copylevel(char *dest, lev_t *level)
+{
+ unsigned x, y;
+
+ for (y = 0; y < LEVHEIGHT ; y++)
+ for (x = 0; x < LEVWIDTH ; x++)
+ dest[y * LEVWIDTH + x] = (*level)[y][x];
+}
+
+/* Creates a jail to work around, so we can finish it later. */
+static void
+createjail(lev_t *level, const unsigned width,
+ const unsigned height)
+{
+ unsigned x, y, xstart, xend, ystart, yend;
+
+ if (LEVWIDTH < width || LEVHEIGHT < height) return;
+
+ xstart = LEVWIDTH/2 - width/2;
+ xend = LEVWIDTH/2 + width/2;
+ ystart = LEVHEIGHT/2 - height/2;
+ yend = LEVHEIGHT/2 + height/2;
+
+ for (y = ystart - 1; y < yend + 1; y++)
+ for (x = xstart - 1; x < xend + 1; x++)
+ setblockto(level, x, y, BLOCK_DOT_1);
+
+ for (y = ystart; y < yend; y++)
+ for (x = xstart; x < xend; x++)
+ setblockto(level, x, y, BLOCK_WALL);
+}
+
+/* Finishes a jail so it is empty and the ghostpass is on top. */
+static void
+finishjail(lev_t *level, const unsigned width,
+ const unsigned height)
+{
+ unsigned x, y, xstart, xend, ystart, yend;
+
+ xstart = LEVWIDTH/2 - width/2;
+ xend = LEVWIDTH/2 + width/2;
+ ystart = LEVHEIGHT/2 - height/2;
+ yend = LEVHEIGHT/2 + height/2;
+
+ for (y = ystart + 1; y < yend - 1 ; y++)
+ for (x = xstart + 1; x < xend - 1; x++)
+ setblockto(level, x, y, BLOCK_EMPTY);
+
+ for (x = xstart - 1; x < xend + 1; x++) {
+ setblockto(level, x, ystart - 1, BLOCK_EMPTY);
+ setblockto(level, x, yend, BLOCK_EMPTY);
+ }
+
+ for (y = ystart - 1; y < yend + 1; y++) {
+ setblockto(level, xstart - 1, y, BLOCK_EMPTY);
+ setblockto(level, xend, y, BLOCK_EMPTY);
+ }
+
+ setblockto(level, xstart + width/2 - 1, ystart, BLOCK_GHOST_ONLY);
+ setblockto(level, xstart + width/2, ystart, BLOCK_GHOST_ONLY);
+}
+
+/* Tries to set a block at a certain position. Returns true if possible,
+ and leaves level in new state (plus block), or False if not possible,
+ and leaves level in unpredictable state. */
+static int
+tryset(lev_t *level, const unsigned xpos, const unsigned ypos,
+ const char *block)
+{
+ register unsigned x, y;
+ register char locchar;
+ int xstart, ystart;
+ unsigned xend, yend;
+
+ if ((*level)[ypos][xpos] == BLOCK_DOT_1) return False;
+
+ xstart = xpos - 2;
+ ystart = ypos - 2;
+
+ for (y = 0 ; y < TILEHEIGHT ; y++)
+ for (x = 0 ; x < TILEWIDTH ; x++) {
+ locchar = block[y * TILEWIDTH + x];
+ if (locchar == BLOCK_EMPTY)
+ continue;
+ if (locchar == BLOCK_DOT_1 &&
+ (xstart + x < 1 ||
+ xstart + x >= LEVWIDTH - 1 ||
+ ystart + y < 1 ||
+ ystart + y >= LEVHEIGHT - 1 ||
+ checkset(level, xstart + x, ystart + y) != 0))
+ return False;
+ else if (locchar == BLOCK_WALL &&
+ (xstart + x > 1 &&
+ xstart + x < LEVWIDTH &&
+ ystart + y > 1 &&
+ ystart + y < LEVHEIGHT - 1) &&
+ checkunsetdef(level,
+ (unsigned)(xstart + x),
+ (unsigned)(ystart + y)) != 0)
+ return False;
+ }
+
+ /* and set the block in place */
+
+ xend = (xstart + TILEWIDTH < LEVWIDTH - 1) ?
+ TILEWIDTH : LEVWIDTH - xstart - 2;
+ yend = (ystart + TILEHEIGHT < LEVHEIGHT - 1) ?
+ TILEHEIGHT : LEVHEIGHT - ystart - 2;
+
+ for (y = (ystart < 1) ? (unsigned)(1 - ystart) : 0U ;
+ y < yend ; y++)
+ for (x = (xstart < 1) ?
+ (unsigned)(1 - xstart) : 0U ;
+ x < xend ; x++) {
+ locchar = block[y * TILEWIDTH + x];
+ if ((locchar == BLOCK_WALL) &&
+ ((*level)[ystart + y][xstart + x] == BLOCK_EMPTY)) {
+ (*level)[ystart + y][xstart + x] = BLOCK_WALL;
+ (*level)[ystart + y]
+ [LEVWIDTH - (xstart + x + 1)] =
+ BLOCK_WALL;
+ }
+ }
+
+ (*level)[ypos][xpos] = BLOCK_DOT_1;
+ (*level)[ypos][LEVWIDTH-xpos-1] = BLOCK_DOT_1;
+
+ return True;
+}
+
+/* Tries certain combinations of blocks in the level recursively. */
+static unsigned
+nextstep(lev_t *level, const unsigned x, const unsigned y,
+ unsigned dirvec[], unsigned ndirs)
+{
+ unsigned dirpos, curdir, inc = 0;
+ int ret = 0;
+
+ while (ndirs > 0) {
+ ndirs--;
+ if (ndirs == 0) {
+ curdir = dirvec[0];
+ }
+ else {
+ dirpos = NRAND(ndirs);
+ curdir = dirvec[dirpos];
+ /* nope, no bufoverflow, but ndirs - 1 + 1 */
+ dirvec[dirpos] = dirvec[ndirs];
+ dirvec[ndirs] = curdir;
+ }
+
+ switch (curdir) {
+ case GO_UP:
+ if (y < 1 ||
+ (ret = creatlevelblock(level, x, y - 1))
+ == 0)
+ return 0;
+ break;
+ case GO_RIGHT:
+ if (x > LEVWIDTH - 2 ||
+ (ret = creatlevelblock(level, x + 1, y))
+ == 0)
+ return 0;
+ break;
+ case GO_DOWN:
+ if (y > LEVHEIGHT - 2 ||
+ (ret = creatlevelblock(level, x, y + 1))
+ == 0)
+ return 0;
+ break;
+ case GO_LEFT:
+ if (x < 1 ||
+ (ret = creatlevelblock(level, x - 1, y))
+ == 0)
+ return 0;
+ }
+ if (ret != -1)
+ inc += (unsigned)ret;
+ }
+ if (inc == 0) inc = 1;
+ return inc;
+}
+
+static int
+creatlevelblock(lev_t *level, const unsigned x, const unsigned y)
+{
+ unsigned tried = GETNB(TILES_COUNT);
+ unsigned tilenr;
+ unsigned ret;
+ lev_t savedlev;
+
+ if (!((x < LEVWIDTH) && (y < LEVHEIGHT)))
+ return 0;
+
+ if (checkunsetdef(level, x, y) != 0)
+ return -1;
+
+ if (x == 0)
+ tried &= ~(1<<0);
+ else if (x == 1)
+ tried &= ~(1<<4 | 1<<5 | 1<<6 | 1<<8 | 1<<9 | 1<<10);
+ else if (x == LEVWIDTH-1)
+ tried &= ~(1<<0);
+ else if (x == LEVWIDTH-2)
+ tried &= ~(1<<2 | 1<<3 | 1<<6 | 1<<7 | 1<<8 | 1<<10);
+
+ if (y == 1)
+ tried &= ~(1<<2 | 1<<5 | 1<<6 | 1<<7 | 1<<9 | 1<<10);
+ else if (y == 0)
+ tried &= ~(1<<1);
+ else if (y == LEVHEIGHT-1)
+ tried &= ~(1<<1);
+ else if (y == LEVHEIGHT-2)
+ tried &= ~(1<<3 | 1<<4 | 1<<7 | 1<<8 | 1<<9 | 1<<10);
+
+ /* make a copy of the current level, so we can go back on the stack */
+ (void) memcpy(&savedlev, level, sizeof(lev_t));
+
+ /* while there are still some blocks left to try */
+ while (tried != 0x00) {
+ tilenr = tileprob[NRAND(MAXTILEPROB)];
+
+ if (!TESTNB(tried, tilenr))
+ continue;
+
+ if (tryset(level, x, y, tiles[tilenr].block) != 0) {
+ if ((ret = nextstep(level, x, y, tiles[tilenr].dirvec,
+ tiles[tilenr].ndirs)) != 0) {
+ return ret + 1;
+ }
+ (void) memcpy(level, &savedlev, sizeof(lev_t));
+ }
+ tried &= ~(tiles[tilenr].simular_to);
+ }
+ return 0;
+}
+
+/* Fills up all empty space so there is wall everywhere. */
+static void
+filllevel(lev_t *level)
+{
+ unsigned x, y;
+
+ for (y = 0; y < LEVHEIGHT; y++)
+ for (x = 0; x < LEVWIDTH; x++)
+ if ((*level)[y][x] == BLOCK_EMPTY)
+ (*level)[y][x] = BLOCK_WALL;
+}
+
+/* Changes a level from a simple wall/nowall to a wall with rounded corners
+ and such. Stupid algorithm, could be done better! */
+static void
+frmtlevel(lev_t *level)
+{
+ lev_t frmtlev;
+ register unsigned x, y;
+ register unsigned poscond;
+ register unsigned poscond2;
+
+ clearlevel(&frmtlev);
+
+ for (y = 0; y < LEVHEIGHT; y++)
+ for (x = 0; x < LEVWIDTH; x++) {
+
+ if (checkset(level, x, y) == 0) {
+ frmtlev[y][x] = BLOCK_DOT_2;
+ continue;
+ }
+
+ if ((*level)[y][x] == BLOCK_GHOST_ONLY) {
+ frmtlev[y][x] = BLOCK_GHOST_ONLY;
+ continue;
+ }
+
+ poscond =
+ (checksetout(level, x - 1, y - 1) != 0 ?
+ 0x01U : 0U) |
+ (checksetout(level, x + 1, y - 1) != 0 ?
+ 0x02U : 0U) |
+ (checksetout(level, x + 1, y + 1) != 0 ?
+ 0x04U : 0U) |
+ (checksetout(level, x - 1, y + 1) != 0 ?
+ 0x08U : 0U);
+
+ poscond2 =
+ (checksetout(level, x - 1, y) != 0 ?
+ 0x01U : 0) |
+ (checksetout(level, x, y - 1) != 0 ?
+ 0x02U : 0) |
+ (checksetout(level, x + 1, y) != 0 ?
+ 0x04U : 0) |
+ (checksetout(level, x, y + 1) != 0 ?
+ 0x08U : 0);
+
+ switch (poscond) {
+ /* completely filled */
+ case 0x01U | 0x02U | 0x04U | 0x08U:
+ frmtlev[y][x] = BLOCK_EMPTY; continue;
+
+ /* left to top corner */
+ case 0x01U:
+ frmtlev[y][x] = BLOCK_WALL_TL; continue;
+ /* top to right corner */
+ case 0x02U:
+ frmtlev[y][x] = BLOCK_WALL_TR; continue;
+ /* right to bottom corner */
+ case 0x04U:
+ frmtlev[y][x] = BLOCK_WALL_BR; continue;
+ /* bottom to left corner */
+ case 0x08U:
+ frmtlev[y][x] = BLOCK_WALL_BL; continue;
+ }
+
+ switch (poscond2) {
+ case 0x01U | 0x04U:
+ case 0x01U | 0x04U | 0x08U:
+ case 0x01U | 0x04U | 0x02U:
+ frmtlev[y][x] = BLOCK_WALL_HO; continue;
+ case 0x02U | 0x08U:
+ case 0x02U | 0x08U | 0x01U:
+ case 0x02U | 0x08U | 0x04U:
+ frmtlev[y][x] = BLOCK_WALL_VE; continue;
+ case 0x01U | 0x02U:
+ frmtlev[y][x] = BLOCK_WALL_TL; continue;
+ case 0x02U | 0x04U:
+ frmtlev[y][x] = BLOCK_WALL_TR; continue;
+ case 0x04U | 0x08U:
+ frmtlev[y][x] = BLOCK_WALL_BR; continue;
+ case 0x08U | 0x01U:
+ frmtlev[y][x] = BLOCK_WALL_BL; continue;
+ }
+ switch (poscond) {
+ case 0x02U | 0x04U | 0x08U:
+ frmtlev[y][x] = BLOCK_WALL_TL; continue;
+ case 0x01U | 0x04U | 0x08U:
+ frmtlev[y][x] = BLOCK_WALL_TR; continue;
+ case 0x01U | 0x02U | 0x08U:
+ frmtlev[y][x] = BLOCK_WALL_BR; continue;
+ case 0x01U | 0x02U | 0x04U:
+ frmtlev[y][x] = BLOCK_WALL_BL; continue;
+ }
+ frmtlev[y][x] = BLOCK_EMPTY;
+ }
+ (void) memcpy((lev_t *)level, (lev_t *)&frmtlev, sizeof(lev_t));
+}
+
+/* Counts the number of dots in the level, and returns that number. */
+static unsigned
+countdots(ModeInfo * mi)
+{
+ pacmangamestruct *pp = &pacmangames[MI_SCREEN(mi)];
+ unsigned i, count = 0;
+
+ for (i = 0 ; i < LEVWIDTH*LEVHEIGHT ; i++)
+ if (pp->level[i] == BLOCK_DOT_2) count++;
+
+ return count;
+}
+
+/* Creates a new level, and places that in the pacmangamestruct. */
+int
+createnewlevel(ModeInfo * mi)
+{
+ pacmangamestruct *pp = &pacmangames[MI_SCREEN(mi)];
+ lev_t *level;
+ unsigned dirvec[1] = { GO_UP };
+ unsigned ret = 0, i = 0;
+
+ if ((level = (lev_t *)calloc(1, sizeof(lev_t))) == NULL)
+ return i;
+
+ if (NRAND(2) == 0) {
+
+ do {
+ clearlevel(level);
+ createjail(level, JAILWIDTH, JAILHEIGHT);
+ if ((ret = nextstep(level, LEVWIDTH/2 - 1,
+ LEVHEIGHT/2 - JAILHEIGHT/2 - 3,
+ dirvec, 1)) == 0) {
+ (void) free((void *) level);
+ return i;
+ }
+ } while (ret * 100 < (LEVWIDTH * LEVHEIGHT * MINDOTPERC));
+
+ filllevel(level);
+ frmtlevel(level);
+ finishjail(level, JAILWIDTH, JAILHEIGHT);
+ } else {
+ (void) memcpy(level, stdlevel, sizeof(lev_t));
+ frmtlevel(level);
+ i = 1;
+ }
+ copylevel(pp->level, level);
+ pp->dotsleft = countdots(mi);
+
+ (void) free((void *) level);
+ return i;
+}
+
+/* Checks if a position is allowable for ghosts/pacs to enter. */
+int
+check_pos(pacmangamestruct *pp, int y, int x, int ghostpass)
+{
+ if ((pp->level[y*LEVWIDTH + x] == BLOCK_DOT_2) ||
+ (pp->level[y*LEVWIDTH + x] == BLOCK_EMPTY) ||
+ ((pp->level[y*LEVWIDTH + x] == BLOCK_GHOST_ONLY) && ghostpass)) {
+ return 1;
+ }
+ return 0;
+}
+
+/* Checks if there is a dot on the specified position in the level. */
+int
+check_dot(pacmangamestruct *pp, unsigned int x, unsigned int y)
+{
+ if (x >= LEVWIDTH || y >= LEVHEIGHT) return 0;
+ if (pp->level[y * LEVWIDTH + x] == BLOCK_DOT_2) return 1;
+ return 0;
+}
* other special, indirect and consequential damages.
*/
-#define NONE 0x0000
-#define LT 0x1000
-#define RT 0x0001
-#define RB 0x0010
-#define LB 0x0100
-#define ALL 0x1111
+#ifndef __PACMAN_LEVEL_H__
+#define __PACMAN_LEVEL_H__
-#define BLOCK_EMPTY ' '
-#define BLOCK_DOT_1 '`'
-#define BLOCK_DOT_2 '.'
-#define BLOCK_WALL '#'
-#define BLOCK_GHOST_ONLY '='
-#define BLOCK_WALL_TL '\''
-#define BLOCK_WALL_TR '`'
-#define BLOCK_WALL_BR ','
-#define BLOCK_WALL_BL '_'
-#define BLOCK_WALL_HO '-'
-#define BLOCK_WALL_VE '|'
+extern int createnewlevel(ModeInfo * mi);
+extern int check_pos(pacmangamestruct *pp, int y, int x, int ghostpass);
+extern int check_dot(pacmangamestruct *pp, unsigned int x, unsigned int y);
-/* This is more or less the standard pacman level (without the left-right
- tunnel. */
-static const lev_t stdlevel = {
- "########################################",
- "########################################",
- "#######````````````##````````````#######",
- "#######`####`#####`##`#####`####`#######",
- "#######`####`#####`##`#####`####`#######",
- "#######`####`#####`##`#####`####`#######",
- "#######``````````````````````````#######",
- "#######`####`##`########`##`####`#######",
- "#######`####`##`########`##`####`#######",
- "#######``````##````##````##``````#######",
- "############`#####`##`#####`############",
- "############`#####`##`#####`############",
- "############`##``````````##`############",
- "############`##`###==###`##`############",
- "############`##`########`##`############",
- "############````########````############",
- "############`##`########`##`############",
- "############`##`########`##`############",
- "############`##``````````##`############",
- "############`##`########`##`############",
- "############`##`########`##`############",
- "#######````````````##````````````#######",
- "#######`####`#####`##`#####`####`#######",
- "#######`####`#####`##`#####`####`#######",
- "#######```##````````````````##```#######",
- "#########`##`##`########`##`##`#########",
- "#########`##`##`########`##`##`#########",
- "#######``````##````##````##``````#######",
- "#######`##########`##`##########`#######",
- "#######`##########`##`##########`#######",
- "#######``````````````````````````#######",
- "########################################"};
-
-#define TILEWIDTH 5U
-#define TILEHEIGHT 5U
-#define TILES_COUNT 11U
-
-#define GO_UP 0x0001U
-#define GO_LEFT 0x0002U
-#define GO_RIGHT 0x0004U
-#define GO_DOWN 0x0008U
-
-/* This are tiles which can be places to create a level. */
-static struct {
- char block[TILEWIDTH * TILEHEIGHT + 1];
- unsigned dirvec[4];
- unsigned ndirs;
- unsigned simular_to;
-} tiles[TILES_COUNT] = {
-/*
- * ' ' == dont care == BLOCK_EMPTY
- * '#' == set wall, and not clear == BLOCK_WALL
- * '`' == clear == BLOCK_DOT_1
- * middle position is always set as cleardef
- */
- { " # "
- " # "
- " ``` "
- " # "
- " # ",
- { GO_LEFT, GO_RIGHT, 0, 0 }, 2,
- (unsigned) (1 << 0 | 1 << 6 | 1 << 8 | 1 << 10) },
- { " "
- " ` "
- "##`##"
- " ` "
- " ",
- { GO_UP, GO_DOWN, 0, 0 }, 2,
- (unsigned) (1 << 1 | 1 << 7 | 1 << 9 | 1 << 10) },
- { " ##"
- "##`##"
- "##`` "
- "#### "
- "#### ",
- { GO_UP, GO_RIGHT, 0, 0 }, 2,
- (unsigned) (1 << 2 | 1 << 6 | 1 << 7 | 1 << 10) },
- { "#### "
- "#### "
- "##`` "
- "##`##"
- " ##",
- { GO_RIGHT, GO_DOWN, 0, 0 }, 2,
- (unsigned) (1 << 3 | 1 << 7 | 1 << 8 | 1 << 10) },
- { " ###"
- " ###"
- " ``##"
- "##` "
- "## ",
- { GO_LEFT, GO_DOWN, 0, 0 }, 2,
- (unsigned) (1 << 4 | 1 << 8 | 1 << 9 | 1 << 10) },
- { "## "
- "##`##"
- " ``##"
- " ####"
- " ####",
- { GO_LEFT, GO_UP, 0, 0 }, 2,
- (unsigned) (1 << 5 | 1 << 6 | 1 << 9 | 1 << 10) },
- { "##`##"
- "##`##"
- "`````"
- " ### "
- " ### ",
- { GO_LEFT, GO_UP, GO_RIGHT, 0 }, 3,
- (unsigned) 1 << 6 },
- { " `##"
- "##`##"
- "##```"
- "##`##"
- " `##",
- { GO_UP, GO_RIGHT, GO_DOWN, 0}, 3,
- (unsigned) (1 << 7) },
- { " ### "
- " ### "
- "`````"
- "##`##"
- "##`##",
- { GO_LEFT, GO_RIGHT, GO_DOWN, 0}, 3,
- (unsigned) (1 << 8) },
- { "##` "
- "##`##"
- "```##"
- "##`##"
- "##` ",
- { GO_UP, GO_DOWN, GO_LEFT, 0 }, 3,
- (unsigned) (1 << 9) },
- { "##`##"
- "##`##"
- "`````"
- "##`##"
- "##`##",
- { GO_UP, GO_DOWN, GO_LEFT, GO_RIGHT }, 4,
- (unsigned) (1 << 10) }
-};
-
-/* probability array for each of the tiles */
-#define MAXTILEPROB 22
-static const unsigned tileprob[MAXTILEPROB] =
- { 0, 0, 0, 1, 1, 2, 3, 4, 5, 6, 6, 6, 7, 7, 8, 8, 8, 9, 9, 10, 10, 10 };
-
-/* Sets a block in the level to a certain state. */
-static void
-setblockto(lev_t *level, const unsigned x, const unsigned y,
- const char c)
-{
- if (!(x < LEVWIDTH && y < LEVHEIGHT)) return;
- (*level)[y][x] = c;
-}
-
-/* check if a block is set */
-static int
-checkset(lev_t *level, const unsigned x, const unsigned y)
-{
- if (!(x < LEVWIDTH && y < LEVHEIGHT) ||
- (*level)[y][x] == BLOCK_WALL ||
- (*level)[y][x] == BLOCK_GHOST_ONLY)
- return True;
- return False;
-}
-
-/* Check if a block is not set */
-static int
-checksetout(lev_t *level, const unsigned x, const unsigned y)
-{
- if (!(x < LEVWIDTH && y < LEVHEIGHT) ||
- checkset(level, x, y) != 0)
- return True;
-
- return False;
-}
-
-/* Check if a block cannot be set */
-static int
-checkunsetdef(lev_t *level, const unsigned x, const unsigned y)
-{
- if (!(x < LEVWIDTH && y < LEVHEIGHT))
- return False;
- if ((*level)[y][x] == BLOCK_DOT_1) return True;
- return False;
-}
-
-/* Initializes a level to empty state. */
-static void
-clearlevel(lev_t *level)
-{
- unsigned x, y;
-
- for (y = 0; y < LEVHEIGHT ; y++)
- for (x = 0 ; x < LEVWIDTH ; x++)
- (*level)[y][x] = BLOCK_EMPTY;
-}
-
-/* Changes a level from the level creation structure ((array to array) to
- array. */
-static void
-copylevel(char *dest, lev_t *level)
-{
- unsigned x, y;
-
- for (y = 0; y < LEVHEIGHT ; y++)
- for (x = 0; x < LEVWIDTH ; x++)
- dest[y * LEVWIDTH + x] = (*level)[y][x];
-}
-
-/* Creates a jail to work around, so we can finish it later. */
-static void
-createjail(lev_t *level, const unsigned width,
- const unsigned height)
-{
- unsigned x, y, xstart, xend, ystart, yend;
-
- if (LEVWIDTH < width || LEVHEIGHT < height) return;
-
- xstart = LEVWIDTH/2 - width/2;
- xend = LEVWIDTH/2 + width/2;
- ystart = LEVHEIGHT/2 - height/2;
- yend = LEVHEIGHT/2 + height/2;
-
- for (y = ystart - 1; y < yend + 1; y++)
- for (x = xstart - 1; x < xend + 1; x++)
- setblockto(level, x, y, BLOCK_DOT_1);
-
- for (y = ystart; y < yend; y++)
- for (x = xstart; x < xend; x++)
- setblockto(level, x, y, BLOCK_WALL);
-}
-
-/* Finishes a jail so it is empty and the ghostpass is on top. */
-static void
-finishjail(lev_t *level, const unsigned width,
- const unsigned height)
-{
- unsigned x, y, xstart, xend, ystart, yend;
-
- xstart = LEVWIDTH/2 - width/2;
- xend = LEVWIDTH/2 + width/2;
- ystart = LEVHEIGHT/2 - height/2;
- yend = LEVHEIGHT/2 + height/2;
-
- for (y = ystart + 1; y < yend - 1 ; y++)
- for (x = xstart + 1; x < xend - 1; x++)
- setblockto(level, x, y, BLOCK_EMPTY);
-
- for (x = xstart - 1; x < xend + 1; x++) {
- setblockto(level, x, ystart - 1, BLOCK_EMPTY);
- setblockto(level, x, yend, BLOCK_EMPTY);
- }
-
- for (y = ystart - 1; y < yend + 1; y++) {
- setblockto(level, xstart - 1, y, BLOCK_EMPTY);
- setblockto(level, xend, y, BLOCK_EMPTY);
- }
-
- setblockto(level, xstart + width/2 - 1, ystart, BLOCK_GHOST_ONLY);
- setblockto(level, xstart + width/2, ystart, BLOCK_GHOST_ONLY);
-}
-
-/* Tries to set a block at a certain position. Returns true if possible,
- and leaves level in new state (plus block), or False if not possible,
- and leaves level in unpredictable state. */
-static int
-tryset(lev_t *level, const unsigned xpos, const unsigned ypos,
- const char *block)
-{
- register unsigned x, y;
- register char locchar;
- int xstart, ystart;
- unsigned xend, yend;
-
- if ((*level)[ypos][xpos] == BLOCK_DOT_1) return False;
-
- xstart = xpos - 2;
- ystart = ypos - 2;
-
- for (y = 0 ; y < TILEHEIGHT ; y++)
- for (x = 0 ; x < TILEWIDTH ; x++) {
- locchar = block[y * TILEWIDTH + x];
- if (locchar == BLOCK_EMPTY)
- continue;
- if (locchar == BLOCK_DOT_1 &&
- (xstart + x < 1 ||
- xstart + x >= LEVWIDTH - 1 ||
- ystart + y < 1 ||
- ystart + y >= LEVHEIGHT - 1 ||
- checkset(level, xstart + x, ystart + y) != 0))
- return False;
- else if (locchar == BLOCK_WALL &&
- (xstart + x > 1 &&
- xstart + x < LEVWIDTH &&
- ystart + y > 1 &&
- ystart + y < LEVHEIGHT - 1) &&
- checkunsetdef(level,
- (unsigned)(xstart + x),
- (unsigned)(ystart + y)) != 0)
- return False;
- }
-
- /* and set the block in place */
-
- xend = (xstart + TILEWIDTH < LEVWIDTH - 1) ?
- TILEWIDTH : LEVWIDTH - xstart - 2;
- yend = (ystart + TILEHEIGHT < LEVHEIGHT - 1) ?
- TILEHEIGHT : LEVHEIGHT - ystart - 2;
-
- for (y = (ystart < 1) ? (unsigned)(1 - ystart) : 0U ;
- y < yend ; y++)
- for (x = (xstart < 1) ?
- (unsigned)(1 - xstart) : 0U ;
- x < xend ; x++) {
- locchar = block[y * TILEWIDTH + x];
- if ((locchar == BLOCK_WALL) &&
- ((*level)[ystart + y][xstart + x] == BLOCK_EMPTY)) {
- (*level)[ystart + y][xstart + x] = BLOCK_WALL;
- (*level)[ystart + y]
- [LEVWIDTH - (xstart + x + 1)] =
- BLOCK_WALL;
- }
- }
-
- (*level)[ypos][xpos] = BLOCK_DOT_1;
- (*level)[ypos][LEVWIDTH-xpos-1] = BLOCK_DOT_1;
-
- return True;
-}
-
-/* Tries certain combinations of blocks in the level recursively. */
-static unsigned
-nextstep(lev_t *level, const unsigned x, const unsigned y,
- unsigned dirvec[], unsigned ndirs)
-{
- unsigned dirpos, curdir, inc = 0;
- int ret = 0;
-
- while (ndirs > 0) {
- ndirs--;
- if (ndirs == 0) {
- curdir = dirvec[0];
- }
- else {
- dirpos = NRAND(ndirs);
- curdir = dirvec[dirpos];
- /* nope, no bufoverflow, but ndirs - 1 + 1 */
- dirvec[dirpos] = dirvec[ndirs];
- dirvec[ndirs] = curdir;
- }
-
- switch (curdir) {
- case GO_UP:
- if (y < 1 ||
- (ret = creatlevelblock(level, x, y - 1))
- == 0)
- return 0;
- break;
- case GO_RIGHT:
- if (x > LEVWIDTH - 2 ||
- (ret = creatlevelblock(level, x + 1, y))
- == 0)
- return 0;
- break;
- case GO_DOWN:
- if (y > LEVHEIGHT - 2 ||
- (ret = creatlevelblock(level, x, y + 1))
- == 0)
- return 0;
- break;
- case GO_LEFT:
- if (x < 1 ||
- (ret = creatlevelblock(level, x - 1, y))
- == 0)
- return 0;
- }
- if (ret != -1)
- inc += (unsigned)ret;
- }
- if (inc == 0) inc = 1;
- return inc;
-}
-
-static int
-creatlevelblock(lev_t *level, const unsigned x, const unsigned y)
-{
- unsigned tried = GETNB(TILES_COUNT);
- unsigned tilenr;
- unsigned ret;
- lev_t savedlev;
-
- if (!((x < LEVWIDTH) && (y < LEVHEIGHT)))
- return 0;
-
- if (checkunsetdef(level, x, y) != 0)
- return -1;
-
- if (x == 0)
- tried &= ~(1<<0);
- else if (x == 1)
- tried &= ~(1<<4 | 1<<5 | 1<<6 | 1<<8 | 1<<9 | 1<<10);
- else if (x == LEVWIDTH-1)
- tried &= ~(1<<0);
- else if (x == LEVWIDTH-2)
- tried &= ~(1<<2 | 1<<3 | 1<<6 | 1<<7 | 1<<8 | 1<<10);
-
- if (y == 1)
- tried &= ~(1<<2 | 1<<5 | 1<<6 | 1<<7 | 1<<9 | 1<<10);
- else if (y == 0)
- tried &= ~(1<<1);
- else if (y == LEVHEIGHT-1)
- tried &= ~(1<<1);
- else if (y == LEVHEIGHT-2)
- tried &= ~(1<<3 | 1<<4 | 1<<7 | 1<<8 | 1<<9 | 1<<10);
-
- /* make a copy of the current level, so we can go back on the stack */
- (void) memcpy(&savedlev, level, sizeof(lev_t));
-
- /* while there are still some blocks left to try */
- while (tried != 0x00) {
- tilenr = tileprob[NRAND(MAXTILEPROB)];
-
- if (!TESTNB(tried, tilenr))
- continue;
-
- if (tryset(level, x, y, tiles[tilenr].block) != 0) {
- if ((ret = nextstep(level, x, y, tiles[tilenr].dirvec,
- tiles[tilenr].ndirs)) != 0) {
- return ret + 1;
- }
- (void) memcpy(level, &savedlev, sizeof(lev_t));
- }
- tried &= ~(tiles[tilenr].simular_to);
- }
- return 0;
-}
-
-/* Fills up all empty space so there is wall everywhere. */
-static void
-filllevel(lev_t *level)
-{
- unsigned x, y;
-
- for (y = 0; y < LEVHEIGHT; y++)
- for (x = 0; x < LEVWIDTH; x++)
- if ((*level)[y][x] == BLOCK_EMPTY)
- (*level)[y][x] = BLOCK_WALL;
-}
-
-/* Changes a level from a simple wall/nowall to a wall with rounded corners
- and such. Stupid algorithm, could be done better! */
-static void
-frmtlevel(lev_t *level)
-{
- lev_t frmtlev;
- register unsigned x, y;
- register unsigned poscond;
- register unsigned poscond2;
-
- clearlevel(&frmtlev);
-
- for (y = 0; y < LEVHEIGHT; y++)
- for (x = 0; x < LEVWIDTH; x++) {
-
- if (checkset(level, x, y) == 0) {
- frmtlev[y][x] = BLOCK_DOT_2;
- continue;
- }
-
- if ((*level)[y][x] == BLOCK_GHOST_ONLY) {
- frmtlev[y][x] = BLOCK_GHOST_ONLY;
- continue;
- }
-
- poscond =
- (checksetout(level, x - 1, y - 1) != 0 ?
- 0x01U : 0U) |
- (checksetout(level, x + 1, y - 1) != 0 ?
- 0x02U : 0U) |
- (checksetout(level, x + 1, y + 1) != 0 ?
- 0x04U : 0U) |
- (checksetout(level, x - 1, y + 1) != 0 ?
- 0x08U : 0U);
-
- poscond2 =
- (checksetout(level, x - 1, y) != 0 ?
- 0x01U : 0) |
- (checksetout(level, x, y - 1) != 0 ?
- 0x02U : 0) |
- (checksetout(level, x + 1, y) != 0 ?
- 0x04U : 0) |
- (checksetout(level, x, y + 1) != 0 ?
- 0x08U : 0);
-
- switch (poscond) {
- /* completely filled */
- case 0x01U | 0x02U | 0x04U | 0x08U:
- frmtlev[y][x] = BLOCK_EMPTY; continue;
-
- /* left to top corner */
- case 0x01U:
- frmtlev[y][x] = BLOCK_WALL_TL; continue;
- /* top to right corner */
- case 0x02U:
- frmtlev[y][x] = BLOCK_WALL_TR; continue;
- /* right to bottom corner */
- case 0x04U:
- frmtlev[y][x] = BLOCK_WALL_BR; continue;
- /* bottom to left corner */
- case 0x08U:
- frmtlev[y][x] = BLOCK_WALL_BL; continue;
- }
-
- switch (poscond2) {
- case 0x01U | 0x04U:
- case 0x01U | 0x04U | 0x08U:
- case 0x01U | 0x04U | 0x02U:
- frmtlev[y][x] = BLOCK_WALL_HO; continue;
- case 0x02U | 0x08U:
- case 0x02U | 0x08U | 0x01U:
- case 0x02U | 0x08U | 0x04U:
- frmtlev[y][x] = BLOCK_WALL_VE; continue;
- case 0x01U | 0x02U:
- frmtlev[y][x] = BLOCK_WALL_TL; continue;
- case 0x02U | 0x04U:
- frmtlev[y][x] = BLOCK_WALL_TR; continue;
- case 0x04U | 0x08U:
- frmtlev[y][x] = BLOCK_WALL_BR; continue;
- case 0x08U | 0x01U:
- frmtlev[y][x] = BLOCK_WALL_BL; continue;
- }
- switch (poscond) {
- case 0x02U | 0x04U | 0x08U:
- frmtlev[y][x] = BLOCK_WALL_TL; continue;
- case 0x01U | 0x04U | 0x08U:
- frmtlev[y][x] = BLOCK_WALL_TR; continue;
- case 0x01U | 0x02U | 0x08U:
- frmtlev[y][x] = BLOCK_WALL_BR; continue;
- case 0x01U | 0x02U | 0x04U:
- frmtlev[y][x] = BLOCK_WALL_BL; continue;
- }
- frmtlev[y][x] = BLOCK_EMPTY;
- }
- (void) memcpy((lev_t *)level, (lev_t *)&frmtlev, sizeof(lev_t));
-}
-
-/* Counts the number of dots in the level, and returns that number. */
-static unsigned
-countdots(ModeInfo * mi)
-{
- pacmangamestruct *pp = &pacmangames[MI_SCREEN(mi)];
- unsigned i, count = 0;
-
- for (i = 0 ; i < LEVWIDTH*LEVHEIGHT ; i++)
- if (pp->level[i] == BLOCK_DOT_2) count++;
-
- return count;
-}
-
-/* Creates a new level, and places that in the pacmangamestruct. */
-static int
-createnewlevel(ModeInfo * mi)
-{
- pacmangamestruct *pp = &pacmangames[MI_SCREEN(mi)];
- lev_t *level;
- unsigned dirvec[1] = { GO_UP };
- unsigned ret = 0, i = 0;
-
- if ((level = (lev_t *)calloc(1, sizeof(lev_t))) == NULL)
- return i;
-
- if (NRAND(2) == 0) {
-
- do {
- clearlevel(level);
- createjail(level, JAILWIDTH, JAILHEIGHT);
- if ((ret = nextstep(level, LEVWIDTH/2 - 1,
- LEVHEIGHT/2 - JAILHEIGHT/2 - 3,
- dirvec, 1)) == 0) {
- (void) free((void *) level);
- return i;
- }
- } while (ret * 100 < (LEVWIDTH * LEVHEIGHT * MINDOTPERC));
-
- filllevel(level);
- frmtlevel(level);
- finishjail(level, JAILWIDTH, JAILHEIGHT);
- } else {
- (void) memcpy(level, stdlevel, sizeof(lev_t));
- frmtlevel(level);
- i = 1;
- }
- copylevel(pp->level, level);
- pp->dotsleft = countdots(mi);
-
- (void) free((void *) level);
- return i;
-}
-
-/* Checks if a position is allowable for ghosts/pacs to enter. */
-static int
-check_pos(pacmangamestruct *pp, int y, int x, int ghostpass)
-{
- if ((pp->level[y*LEVWIDTH + x] == BLOCK_DOT_2) ||
- (pp->level[y*LEVWIDTH + x] == BLOCK_EMPTY) ||
- ((pp->level[y*LEVWIDTH + x] == BLOCK_GHOST_ONLY) && ghostpass)) {
- return 1;
- }
- return 0;
-}
-
-/* Checks if there is a dot on the specified position in the level. */
-static int
-check_dot(pacmangamestruct *pp, unsigned int x, unsigned int y)
-{
- if (x >= LEVWIDTH || y >= LEVHEIGHT) return 0;
- if (pp->level[y * LEVWIDTH + x] == BLOCK_DOT_2) return 1;
- return 0;
-}
+#endif /* __PACMAN_LEVEL_H__ */
static XrmOptionDescRec opts[] =
{
- {(char *) "-ammann", (char *) ".penrose.ammann", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+ammann", (char *) ".penrose.ammann", XrmoptionNoArg, (caddr_t) "off"}
+ {"-ammann", ".penrose.ammann", XrmoptionNoArg, "on"},
+ {"+ammann", ".penrose.ammann", XrmoptionNoArg, "off"}
};
static argtype vars[] =
{
};
static OptionStruct desc[] =
{
- {(char *) "-/+ammann", (char *) "turn on/off Ammann lines"}
+ {"-/+ammann", "turn on/off Ammann lines"}
};
ModeSpecOpt penrose_opts =
static XrmOptionDescRec opts[] =
{
- {(char *) "-identical", (char *) ".polyominoes.identical", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+identical", (char *) ".polyominoes.identical", XrmoptionNoArg, (caddr_t) "off"},
- {(char *) "-plain", (char *) ".polyominoes.plain", XrmoptionNoArg, (caddr_t) "on"},
- {(char *) "+plain", (char *) ".polyominoes.plain", XrmoptionNoArg, (caddr_t) "off"}
+ {"-identical", ".polyominoes.identical", XrmoptionNoArg, "on"},
+ {"+identical", ".polyominoes.identical", XrmoptionNoArg, "off"},
+ {"-plain", ".polyominoes.plain", XrmoptionNoArg, "on"},
+ {"+plain", ".polyominoes.plain", XrmoptionNoArg, "off"}
};
static argtype vars[] =
{
};
static OptionStruct desc[] =
{
- {(char *) "-/+identical", (char *) "turn on/off puzzles where the polyomino pieces are identical"},
- {(char *) "-/+plain", (char *) "turn on/off plain pieces"}
+ {"-/+identical", "turn on/off puzzles where the polyomino pieces are identical"},
+ {"-/+plain", "turn on/off plain pieces"}
};
ModeSpecOpt polyominoes_opts =
void
screenhack_handle_event (Display *dpy, XEvent *event)
{
+ if (XtAppPending (app) & (XtIMTimer|XtIMAlternateInput))
+ XtAppProcessEvent (app, XtIMTimer|XtIMAlternateInput);
+
switch (event->xany.type)
{
case KeyPress:
static int x, y, s; /* x & y coords of buffer (upper left corner) */
/* s is the width of the buffer */
+static int off = 0; /* random offset from currentTimeInMs(), so that
+ two concurrent copies of spotlight have different
+ behavior. */
+
static int oldx, oldy, max_x_speed, max_y_speed;
/* used to keep the new buffer position
over the old spotlight image to make sure
/* avoid remants */
max_x_speed = max_y_speed = radius;
+
+ off = random();
#ifdef DEBUG
/* create GC with white fg */
gcv.foreground = fg;
white_gc = XCreateGC(dpy, window, gcflags, &gcv);
#endif
-
- /* initialize x and y to avoid initial `jump' across screen */
- x = ((1 + sin(((float)currentTimeInMs()) / X_PERIOD * 2. * M_PI))/2.0)
- * (sizex - s/2) -s/4 + MINX;
- y = ((1 + sin(((float)currentTimeInMs()) / Y_PERIOD * 2. * M_PI))/2.0)
- * (sizey - s/2) -s/4 + MINY;
-
}
* perform one iteration
*/
static void
-onestep (Display *dpy, Window window)
+onestep (Display *dpy, Window window, Bool first_p)
{
long now;
s = radius *4 ; /* s = width of buffer */
- now = currentTimeInMs();
+ now = currentTimeInMs() + off;
/* find new x,y */
x = ((1 + sin(((float)now) / X_PERIOD * 2. * M_PI))/2.0)
y = ((1 + sin(((float)now) / Y_PERIOD * 2. * M_PI))/2.0)
* (sizey - s/2) -s/4 + MINY;
- /* limit change in x and y to buffer width */
- if ( x < (oldx - max_x_speed) ) x = oldx - max_x_speed;
- if ( x > (oldx + max_x_speed) ) x = oldx + max_x_speed;
- if ( y < (oldy - max_y_speed) ) y = oldy - max_y_speed;
- if ( y > (oldy + max_y_speed) ) y = oldy + max_y_speed;
+ if (!first_p)
+ {
+ /* limit change in x and y to buffer width */
+ if ( x < (oldx - max_x_speed) ) x = oldx - max_x_speed;
+ if ( x > (oldx + max_x_speed) ) x = oldx + max_x_speed;
+ if ( y < (oldy - max_y_speed) ) y = oldy - max_y_speed;
+ if ( y > (oldy + max_y_speed) ) y = oldy + max_y_speed;
+ }
/* copy area of screen image (pm) to buffer
Clip to a circle */
void
screenhack (Display *dpy, Window window)
{
+ Bool first_p = True;
init_hack (dpy, window);
while (1) {
- onestep(dpy, window);
+ onestep(dpy, window, first_p);
+ first_p = False;
XSync(dpy, False);
if (delay) usleep (delay);
screenhack_handle_events (dpy);
#!/usr/bin/perl -w
-# vidwhacker, for xscreensaver. Copyright (c) 1998-2003 Jamie Zawinski.
+# vidwhacker, for xscreensaver. Copyright (c) 1998-2004 Jamie Zawinski.
#
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
use strict;
my $progname = $0; $progname =~ s@.*/@@g;
-my $version = q{ $Revision: 1.24 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/;
+my $version = q{ $Revision: 1.25 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/;
my $verbose = 0;
my $use_stdin = 0;
my $screen_width = -1;
+my $displayer = "xscreensaver-getimage -root -file";
-# #### This list was lifted from driver/xscreensaver-getimage-file
-#
-# These are programs that can be used to put an image file on the root
-# window (including virtual root windows.) The first one of these programs
-# that exists on $PATH will be used (with the file name as the last arg.)
-#
-# If you add other programs to this list, please let me know!
-#
-my @displayer_programs = (
- "xscreensaver-getimage -root -file",
-# "xv -root -quit -viewonly -maxpect -noresetroot -quick24 -rmode 5" .
-# " -rfg black -rbg black",
-# "xli -quiet -fullscreen -onroot -center -border black",
-# "xloadimage -quiet -fullscreen -onroot -center -border black",
-# "chbg -once -xscreensaver -max_grow 4",
-
-# this lame program wasn't built with vroot.h:
-# "xsri -scale -keep-aspect -center-horizontal -center-vertical",
-);
-
# apparently some versions of netpbm call it "pamoil" instead of "pgmoil"...
#
my $pgmoil = (which("pamoil") ? "pamoil" : "pgmoil");
#
my @all_tmpfiles = ();
-sub signal_cleanup {
+sub exit_cleanup {
+ print STDERR "$progname: delete tmp files\n" if ($verbose);
unlink @all_tmpfiles;
}
+sub signal_cleanup {
+ my ($sig) = @_;
+ print STDERR "$progname: caught SIG$sig\n" if ($verbose);
+ exit 1;
+}
+
sub init_signals {
$SIG{HUP} = \&signal_cleanup;
$SIG{PIPE} = 'IGNORE';
}
-END { signal_cleanup(); }
-
+END { exit_cleanup(); }
-# #### Lifted from driver/xscreensaver-getimage-file
-#
-sub pick_displayer {
- my @names = ();
-
- foreach my $cmd (@displayer_programs) {
- $_ = $cmd;
- my ($name) = m/^([^ ]+)/;
- push @names, "\"$name\"";
- print STDERR "$progname: looking for $name...\n" if ($verbose > 2);
- foreach my $dir (split (/:/, $ENV{PATH})) {
- print STDERR "$progname: checking $dir/$name\n" if ($verbose > 3);
- return $cmd if (-x "$dir/$name");
- }
- }
-
- $names[$#names] = "or " . $names[$#names];
- printf STDERR "$progname: none of: " . join (", ", @names) .
- " were found on \$PATH.\n";
- exit 1;
-}
-
# returns the full path of the named program, or undef.
#
print $ppm;
} else {
- my $displayer = pick_displayer();
-
my $tmpdir = $ENV{TMPDIR};
$tmpdir = "/tmp" unless $tmpdir;
my $fn = sprintf ("%s/vidwhacker-%08x", $tmpdir, rand(0xFFFFFFFF));
if ($verbose);
system (@cmd);
+ my $exit_value = $? >> 8;
+ my $signal_num = $? & 127;
+ my $dumped_core = $? & 128;
+
unlink $fn;
+
+ error ("$cmd[0]: core dumped!") if ($dumped_core);
+ error ("$cmd[0]: signal $signal_num!") if ($signal_num);
+ error ("$cmd[0]: exited with $exit_value!") if ($exit_value);
}
}
print STDERR "VidWhacker, Copyright (c) 2001 Jamie Zawinski <jwz\@jwz.org>\n";
print STDERR " http://www.jwz.org/xscreensaver/";
print STDERR "\n";
- print STDERR "usage: $0 [-display dpy] [-verbose] [-root | -window]\n";
- print STDERR " [-stdin] [-stdout] [-delay secs]\n";
- print STDERR " [-directory image_directory]\n";
+ print STDERR "usage: $0 [-display dpy] [-verbose]\n";
+ print STDERR "\t\t[-root | -window | -window-id 0xXXXXX ]\n";
+ print STDERR "\t\t[-stdin] [-stdout] [-delay secs]\n";
+ print STDERR "\t\t[-directory image_directory]\n";
exit 1;
}
elsif (m/^--?delay$/) { $delay = shift @ARGV; }
elsif (m/^--?dir(ectory)?$/) { $imagedir = shift @ARGV; }
elsif (m/^--?root$/) { }
+ elsif (m/^--?window-id$/) {
+ my $id = shift @ARGV;
+ error ("unparsable window id: $id")
+ unless ($id =~ m/^\d+$|^0x[\da-f]+$/i);
+ $displayer =~ s/--?root\b/$id/ ||
+ error ("unable to munge displayer: $displayer");
+ }
elsif (m/^--?window$/) {
print STDERR "$progname: sorry, \"-window\" is unimplemented.\n";
print STDERR "$progname: use \"-stdout\" and pipe to a displayer.\n";
my $progname = $0; $progname =~ s@.*/@@g;
-my $version = q{ $Revision: 1.114 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/;
+my $version = q{ $Revision: 1.117 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/;
my $copyright = "WebCollage $version, Copyright (c) 1999-2004" .
" Jamie Zawinski <jwz\@jwz.org>\n" .
" http://www.jwz.org/webcollage/\n";
-my @search_methods = ( 72, "altavista", \&pick_from_alta_vista_random_link,
+my @search_methods = ( 71, "altavista", \&pick_from_alta_vista_random_link,
10, "livejournal", \&pick_from_livejournal_images,
- 10, "yahoorand", \&pick_from_yahoo_random_link,
- 8, "yahoonews", \&pick_from_yahoo_news_text,
+ 8, "yahoorand", \&pick_from_yahoo_random_link,
+ 6, "yahoonews", \&pick_from_yahoo_news_text,
+ 5, "ircimages", \&pick_from_ircimages,
# Alta Vista has a new "random link" URL now.
# They added it specifically to better support webcollage!
"www.nytimes.com" => 'NYT-S=18cHMIlJOn2Y1bu5xvEG3Ufuk6E1oJ.' .
'FMxWaQV0igaB5Yi/Q/guDnLeoL.pe7i1oakSb' .
'/VqfdUdb2Uo27Vzt1jmPn3cpYRlTw9',
+
+ "ircimages.com" => 'disclaimer=1',
);
my $user_agent = "$progname/$version";
if ($url =~ m@^http://www\.altavista\.com/@ ||
- $url =~ m@^http://random\.yahoo\.com/@) {
+ $url =~ m@^http://random\.yahoo\.com/@ ||
+ $url =~ m@^http://images\.google\.com/@) {
# block this, you turkeys.
$user_agent = "Mozilla/4.76 [en] (X11; U; Linux 2.2.16-22 i686; Nav)";
}
sub pick_from_alta_vista_images {
my ( $timeout ) = @_;
- my $words = random_words(0);
+ my $words = random_word();
my $page = (int(rand(9)) + 1);
my $search_url = $alta_vista_images_url . $words;
my @candidates = ();
foreach my $u (@subpages) {
- # avtext is encoding their URLs now.
- next unless ($u =~ m@^/r.*\&r=([^&]+).*@);
- $u = url_unquote($1);
+ # avimages is encoding their URLs now.
+ next unless ($u =~ s/^.*\*\*(http%3a.*$)/$1/gsi);
+ $u = url_unquote($u);
next unless ($u =~ m@^http://@i); # skip non-HTTP or relative URLs
next if ($u =~ m@[/.]altavista\.com\b@i); # skip altavista builtins
+ next if ($u =~ m@[/.]yahoo\.com\b@i); # yahoo and av in cahoots?
next if ($u =~ m@[/.]doubleclick\.net\b@i); # you cretins
next if ($u =~ m@[/.]clicktomarket\.com\b@i); # more cretins
if ($u =~ m@^/imgres\?imgurl=(.*?)\&imgrefurl=(.*?)\&@) {
my $ref = $2;
- my $img = "http://$1";
+ my $img = $1;
+ $img = "http://$img" unless ($img =~ m/^http:/i);
LOG ($verbose_filter, " candidate: $ref");
push @candidates, $img;
# onMouseOver to make it look like they're not! Well, it makes it
# easier for us to identify search results...
#
- next unless ($u =~ m@^/r.*\&r=([^&]+).*@);
- $u = url_unquote($1);
+ next unless ($u =~ s/^.*\*\*(http%3a.*$)/$1/gsi);
+ $u = url_unquote($u);
+
+ next unless ($u =~ m@^http://@i); # skip non-HTTP or relative URLs
+ next if ($u =~ m@[/.]altavista\.com\b@i); # skip altavista builtins
+ next if ($u =~ m@[/.]yahoo\.com\b@i); # yahoo and av in cahoots?
LOG ($verbose_filter, " candidate: $u");
push @candidates, $u;
foreach my $u (@subpages) {
# Hotbot plays redirection games too
- next unless ($u =~ m@/director.asp\?.*\btarget=([^&]+)@);
- $u = url_decode($1);
+ # (not any more?)
+# next unless ($u =~ m@/director.asp\?.*\btarget=([^&]+)@);
+# $u = url_decode($1);
+
+ next unless ($u =~ m@^http://@i); # skip non-HTTP or relative URLs
+ next if ($u =~ m@[/.]hotbot\.com\b@i); # skip hotbot builtins
+ next if ($u =~ m@[/.]lycos\.com\b@i); # skip hotbot builtins
+ next if ($u =~ m@[/.]inktomi\.com\b@i); # skip hotbot builtins
LOG ($verbose_filter, " candidate: $u");
push @candidates, $u;
foreach my $u (@subpages) {
# Lycos plays redirection games.
- next unless ($u =~ m@^http://click.lycos.com/director.asp
- .*
- \btarget=([^&]+)
- .*
- @x);
- $u = url_decode($1);
+ # (not any more?)
+# next unless ($u =~ m@^http://click.lycos.com/director.asp
+# .*
+# \btarget=([^&]+)
+# .*
+# @x);
+# $u = url_decode($1);
+
+ next unless ($u =~ m@^http://@i); # skip non-HTTP or relative URLs
+ next if ($u =~ m@[/.]hotbot\.com\b@i); # skip lycos builtins
+ next if ($u =~ m@[/.]lycos\.com\b@i); # skip lycos builtins
+ next if ($u =~ m@[/.]terralycos\.com\b@i); # skip lycos builtins
+ next if ($u =~ m@[/.]inktomi\.com\b@i); # skip lycos builtins
+
LOG ($verbose_filter, " candidate: $u");
push @candidates, $u;
return ($page, $img);
}
+\f
+############################################################################
+#
+# Pick images from ircimages.com (images that have been in the /topic of
+# various IRC channels.)
+#
+############################################################################
+
+my $ircimages_url = "http://ircimages.com/";
+
+# ircimages
+sub pick_from_ircimages {
+ my ( $timeout ) = @_;
+
+ $last_search = $ircimages_url; # for warnings
+
+ my $n = int(rand(2900));
+ my $search_url = $ircimages_url . "page-$n";
+
+ my ( $base, $body ) = get_document ($search_url, undef, $timeout);
+ return () unless $body;
+
+ my @candidates = ();
+
+ $body =~ s/\n/ /gs;
+ $body =~ s/(<A)\b/\n$1/gsi;
+
+ foreach (split (/\n/, $body)) {
+
+ my ($u) = m@<A\s.*\bHREF\s*=\s*([^>]+)>@i;
+ next unless $u;
+
+ if ($u =~ m/^\"([^\"]*)\"/) { $u = $1; } # quoted string
+ elsif ($u =~ m/^([^\s]*)\s/) { $u = $1; } # or token
+
+ next unless ($u =~ m/^http:/i);
+ next if ($u =~ m@^http://(searchirc\.com\|ircimages\.com)@i);
+ next unless ($u =~ m@[.](gif|jpg|jpeg|pjpg|pjpeg|png)$@i);
+
+ LOG ($verbose_http, " HREF: $u");
+ push @candidates, $u;
+ }
+
+ LOG ($verbose_filter, "" . $#candidates+1 . " links on $search_url");
+
+ return () if ($#candidates == -1);
+
+ my $i = int(rand($#candidates+1));
+ my $img = $candidates[$i];
+
+ LOG ($verbose_load, "picked image " .($i+1) . "/" . ($#candidates+1) .
+ ": $img");
+
+ $search_url = $img; # hmm...
+ return ($search_url, $img);
+}
+
\f
############################################################################
#
}
+sub exit_cleanup {
+ x_cleanup();
+ if (@pids_to_kill) {
+ print STDERR blurb() . "killing: " . join(' ', @pids_to_kill) . "\n";
+ kill ('TERM', @pids_to_kill);
+ }
+}
+
sub signal_cleanup {
my ($sig) = @_;
print STDERR blurb() . (defined($sig)
: "exiting.")
. "\n"
if ($verbose_exec);
-
- x_cleanup();
-
- if (@pids_to_kill) {
- print STDERR blurb() . "killing: " . join(' ', @pids_to_kill) . "\n";
- kill ('TERM', @pids_to_kill);
- }
-
exit 1;
}
+
+
##############################################################################
#
# Generating a list of urls only
sub x_or_pbm_output {
+ my ($window_id) = @_;
# Check for our helper program, to see whether we need to use PPM pipelines.
#
#
$ppm_to_root_window_cmd = pick_root_displayer();
+ if (defined ($window_id)) {
+ error ("-window-id only works if xscreensaver-getimage is installed")
+ unless ($ppm_to_root_window_cmd =~ m/^xscreensaver-getimage\b/);
+
+ error ("unparsable window id: $window_id")
+ unless ($window_id =~ m/^\d+$|^0x[\da-f]+$/i);
+ $ppm_to_root_window_cmd =~ s/--?root\b/$window_id/ ||
+ error ("unable to munge displayer: $ppm_to_root_window_cmd");
+ }
+
if (!$img_width || !$img_height) {
- $_ = "xdpyinfo";
- which ($_) || error "$_ not found on \$PATH.";
- $_ = `$_`;
- ($img_width, $img_height) = m/dimensions: *(\d+)x(\d+) /;
- if (!defined($img_height)) {
- error "xdpyinfo failed.";
+
+ if (!defined ($window_id) &&
+ defined ($ENV{XSCREENSAVER_WINDOW})) {
+ $window_id = $ENV{XSCREENSAVER_WINDOW};
+ }
+
+ if (!defined ($window_id)) {
+ $_ = "xdpyinfo";
+ which ($_) || error "$_ not found on \$PATH.";
+ $_ = `$_`;
+ ($img_width, $img_height) = m/dimensions: *(\d+)x(\d+) /;
+ if (!defined($img_height)) {
+ error "xdpyinfo failed.";
+ }
+ } else { # we have a window id
+ $_ = "xwininfo";
+ which ($_) || error "$_ not found on \$PATH.";
+ $_ .= " -id $window_id";
+ $_ = `$_`;
+ ($img_width, $img_height) = m/^\s*Width:\s*(\d+)\n\s*Height:\s*(\d+)\n/m;
+
+ if (!defined($img_height)) {
+ error "xwininfo failed.";
+ }
}
}
# Write the jpg to a tmp file
#
{
- #my $cmd = "cjpeg < $image_ppm > $imagemap_jpg_tmp";
- my $cmd = "cp -p $image_ppm $imagemap_jpg_tmp";
+ my $cmd;
+ if (defined ($webcollage_helper)) {
+ $cmd = "cp -p $image_ppm $imagemap_jpg_tmp";
+ } else {
+ $cmd = "cjpeg < $image_ppm > $imagemap_jpg_tmp";
+ }
my $rc = nontrapping_system ($cmd);
if ($rc != 0) {
error ("imagemap jpeg failed: \"$cmd\"\n");
$SIG{PIPE} = 'IGNORE';
}
-END { signal_cleanup(); }
+END { exit_cleanup(); }
sub main {
$load_method = "none";
my $root_p = 0;
+ my $window_id = undef;
# historical suckage: the environment variable name is lower case.
$http_proxy = $ENV{http_proxy} || $ENV{HTTP_PROXY};
$ENV{DISPLAY} = shift @ARGV;
} elsif ($_ eq "-root") {
$root_p = 1;
+ } elsif ($_ eq "-window-id" || $_ eq "--window-id") {
+ $window_id = shift @ARGV;
+ $root_p = 1;
} elsif ($_ eq "-no-output") {
$no_output_p = 1;
} elsif ($_ eq "-urls-only") {
spawn_driftnet ($driftnet_cmd) if ($driftnet_cmd);
if ($urls_only_p) {
- url_only_output;
+ url_only_output ();
} else {
- x_or_pbm_output;
+ x_or_pbm_output ($window_id);
}
}
perror (buf);
exit (1);
}
- fprintf (stderr, " %luK\n", (st.st_size + 1023) / 1024);
+ fprintf (stderr, " %luK\n", ((unsigned long) st.st_size + 1023) / 1024);
}
fclose (out);
/* xlockmore.c --- xscreensaver compatibility layer for xlockmore modules.
- * xscreensaver, Copyright (c) 1997, 1998, 2001, 2002
+ * xscreensaver, Copyright (c) 1997, 1998, 2001, 2002, 2004
* Jamie Zawinski <jwz@jwz.org>
*
* Permission to use, copy, modify, distribute, and sell this software and its
#include <sys/time.h>
#include "screenhack.h"
#include "xlockmoreI.h"
+#include <X11/Intrinsic.h>
#define countof(x) (sizeof((x))/sizeof(*(x)))
#define MAX_COLORS (1L<<13)
+extern XtAppContext app;
extern ModeSpecOpt xlockmore_opts[];
extern const char *app_defaults;
void (*reshape) (ModeInfo *, int, int),
Bool (*hook) (ModeInfo *, XEvent *))
{
+ if (XtAppPending (app) & (XtIMTimer|XtIMAlternateInput))
+ XtAppProcessEvent (app, XtIMTimer|XtIMAlternateInput);
+
while (XPending (mi->dpy))
{
XEvent event;
exec_prefix = @exec_prefix@
#datadir = $(prefix)/@DATADIRNAME@ -- not for xscreensaver
datadir = @PO_DATADIR@
-#localedir = $(datadir)/locale
-localedir = $(prefix)/share/locale
+localedir = $(datadir)/locale
+#localedir = $(prefix)/share/locale
#gnulocaledir = $(prefix)/share/locale -- not for xscreensaver
gnulocaledir = $(localedir)
#gettextsrcdir = $(prefix)/share/glib-2.0/gettext/po
-# Auto-generated: Wed Mar 3 13:46:35 RST 2004
+# Auto-generated: Tue May 25 12:15:03 RDT 2004
driver/demo-Gtk-conf.c
driver/demo-Gtk-support.c
driver/demo-Gtk-widgets.c
driver/xscreensaver-demo.glade2
hacks/config/anemone.xml
hacks/config/ant.xml
+hacks/config/antinspect.xml
hacks/config/antspotlight.xml
hacks/config/apollonian.xml
hacks/config/apple2.xml
hacks/config/flyingtoasters.xml
hacks/config/fontglide.xml
hacks/config/forest.xml
+hacks/config/fuzzyflakes.xml
hacks/config/galaxy.xml
hacks/config/gears.xml
hacks/config/gflux.xml
hacks/config/phosphor.xml
hacks/config/piecewise.xml
hacks/config/pipes.xml
+hacks/config/polyhedra.xml
hacks/config/polyominoes.xml
hacks/config/polytopes.xml
hacks/config/pong.xml
hacks/config/popsquares.xml
+hacks/config/providence.xml
hacks/config/pulsar.xml
hacks/config/pyro.xml
hacks/config/qix.xml
# xscreensaver fr.po
-# Copyright (C) 2002 Free Software Foundation, Inc.
-# Eric Lassauge <lassauge@free.fr>, 2004.
+# Copyright (C) 2004 Eric Lassauge <lassauge@users.sourceforge.net>
#
msgid ""
msgstr ""
-"Project-Id-Version: xscreensaver 4.15\n"
+"Project-Id-Version: xscreensaver 4.16\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-03-03 14:11+0100\n"
+"POT-Creation-Date: 2004-05-25 12:17+0200\n"
"PO-Revision-Date: 2002-07-28 01:03+0200\n"
-"Last-Translator: Eric Lassauge <lassauge@free.fr>\n"
+"Last-Translator: Eric Lassauge <lassauge@users.sourceforge.net>\n"
"Language-Team: GNOME French Team <gnomefr@traduc.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
-#: driver/demo-Gtk-conf.c:732
+#: driver/demo-Gtk-conf.c:818
msgid "Browse..."
msgstr "Parcourir... "
-#: driver/demo-Gtk-conf.c:1024
+#: driver/demo-Gtk-conf.c:1110
msgid "Select file."
msgstr "Sélectionnez un fichier."
#: driver/demo-Gtk-widgets.c:224 driver/xscreensaver-demo.glade.h:51
msgid "Lock the screen now (even if \"Lock Screen\" is unchecked.)"
-msgstr ""
-"Verrouille l'écran maintenant (même si \"Verrouiller l'écran\" n'est pas "
-"validé)."
+msgstr "Verrouille l'écran maintenant (même si \"Verrouiller l'écran\" n'est pas validé)."
#: driver/demo-Gtk-widgets.c:228 driver/xscreensaver-demo.glade.h:96
#: driver/xscreensaver-demo.glade2.h:78
msgid ""
"Exit the xscreensaver-demo program (but leave the XScreenSaver daemon "
"running in the background.)"
-msgstr ""
-"Sort du programme xscreensaver-demo (mais laisse le démon XScreenSaver actif "
-"en arrière-plan)."
+msgstr "Sort du programme xscreensaver-demo (mais laisse le démon XScreenSaver actif en arrière-plan)."
#: driver/demo-Gtk-widgets.c:276 driver/xscreensaver-demo.glade2.h:77
msgid "_Help"
msgid ""
"Demo the selected screen saver in full-screen mode (click the mouse to "
"return.)"
-msgstr ""
-"Démo de l'économiseur d'écran sélectionné en mode plein-écran (cliquer avec "
-"la souris pour en sortir.)"
+msgstr "Démo de l'économiseur d'écran sélectionné en mode plein-écran (cliquer avec la souris pour en sortir.)"
#: driver/demo-Gtk-widgets.c:492 driver/xscreensaver-demo.glade.h:65
msgid "Settings..."
msgid ""
"Run the next screen saver in the list in full-screen mode (click the mouse "
"to return.)"
-msgstr ""
-"Lance l'économiseur d'écran suivant dans la liste en mode plein-écran "
-"(cliquer la souris pour revenir.)"
+msgstr "Lance l'économiseur d'écran suivant dans la liste en mode plein-écran (cliquer la souris pour revenir.)"
#: driver/demo-Gtk-widgets.c:654
msgid "/\\"
msgid ""
"Run the previous screen saver in the list in full-screen mode (click the "
"mouse to return.)"
-msgstr ""
-"Lance l'économiseur d'écran précédent dans la liste en mode plein-écran "
-"(cliquer la souris pour revenir.)"
+msgstr "Lance l'économiseur d'écran précédent dans la liste en mode plein-écran (cliquer la souris pour revenir.)"
#: driver/demo-Gtk-widgets.c:664 driver/demo-Gtk-widgets.c:1607
#: driver/xscreensaver-demo.glade.h:22 driver/xscreensaver-demo.glade2.h:13
msgid ""
"Whether any error output of the display modes should be redirected to the "
"screen."
-msgstr ""
-"Les messages d'erreur des modes d'affichages doivent-ils être redirigés vers "
-"l'écran."
+msgstr "Les messages d'erreur des modes d'affichages doivent-ils être redirigés vers l'écran."
#: driver/demo-Gtk-widgets.c:770 driver/xscreensaver-demo.glade.h:29
msgid "Display Subprocess Errors"
msgid ""
"Whether the splash screen (with the version number and `Help' button) should "
"be momentarily displayed when the daemon first starts up."
-msgstr ""
-"L'écran de démarrage (avec le numéro de version et le bouton 'Aide') doit-il "
-"être affiché momentanément au premier démarrage du démon."
+msgstr "L'écran de démarrage (avec le numéro de version et le bouton 'Aide') doit-il être affiché momentanément au premier démarrage du démon."
#: driver/demo-Gtk-widgets.c:787 driver/xscreensaver-demo.glade.h:28
msgid "Display Splash Screen at Startup"
msgid ""
"Whether to install a private colormap when running in 8-bit mode on the "
"default Visual."
-msgstr ""
-"Faut-il installer une palette de couleurs privée en mode 8-bits pour le "
-"visuel par défaut"
+msgstr "Faut-il installer une palette de couleurs privée en mode 8-bits pour le visuel par défaut"
#: driver/demo-Gtk-widgets.c:842 driver/xscreensaver-demo.glade.h:48
msgid "Install Colormap"
msgid ""
"Whether the screen should slowly fade to black when the screen saver "
"activates."
-msgstr ""
-"L'écran doit-il fondre lentement au noir quand l'économiseur d'écran s'active"
+msgstr "L'écran doit-il fondre lentement au noir quand l'économiseur d'écran s'active"
#: driver/demo-Gtk-widgets.c:867 driver/xscreensaver-demo.glade.h:36
msgid "Fade To Black When Blanking"
msgid ""
"Whether the screen should slowly fade in from black when the screen saver "
"deactivates."
-msgstr ""
-"L'écran doit-il fondre lentement depuis le noir quand l'économiseur d'écran "
-"se désactive"
+msgstr "L'écran doit-il fondre lentement depuis le noir quand l'économiseur d'écran se désactive"
#: driver/demo-Gtk-widgets.c:884 driver/xscreensaver-demo.glade.h:35
msgid "Fade From Black When Unblanking"
msgid ""
"Whether the image-manipulating modes should be allowed to operate on an "
"image of your desktop."
-msgstr ""
-"Les modes qui manipulent des images sont-ils autorisé à utiliser une image "
-"de votre bureau."
+msgstr "Les modes qui manipulent des images sont-ils autorisé à utiliser une image de votre bureau."
#: driver/demo-Gtk-widgets.c:1169 driver/xscreensaver-demo.glade.h:39
msgid "Grab Desktop Images"
msgid ""
"Whether the image-manipulating modes should operate on images captured from "
"the system's video input (if there is one)."
-msgstr ""
-"Les modes qui manipulent des images sont-ils autorisé à utiliser des images "
-"capturées par l'entrée vidéo du système (si il y en a une)."
+msgstr "Les modes qui manipulent des images sont-ils autorisé à utiliser des images capturées par l'entrée vidéo du système (si il y en a une)."
#: driver/demo-Gtk-widgets.c:1186 driver/xscreensaver-demo.glade.h:40
msgid "Grab Video Frames"
msgid ""
"Whether the image-manipulating modes should operate on random images loaded "
"from disk."
-msgstr ""
-"Les modes qui manipulent des images sont-ils autorisé à utiliser des images "
-"chargées aléatoirement depuis le disque."
+msgstr "Les modes qui manipulent des images sont-ils autorisé à utiliser des images chargées aléatoirement depuis le disque."
#: driver/demo-Gtk-widgets.c:1203 driver/xscreensaver-demo.glade.h:12
msgid "Choose Random Image:"
#: driver/demo-Gtk.c:1533 driver/demo-Gtk.c:2856
#: driver/xscreensaver-demo.glade.h:5 driver/xscreensaver-demo.glade2.h:3
msgid "Any"
-msgstr "Tous"
+msgstr "N'importe"
#: driver/demo-Gtk-widgets.c:1551 driver/xscreensaver-demo.glade.h:7
#: driver/xscreensaver-demo.glade2.h:4
msgid ""
"The X visual type that this demo will require. If that visual is available "
"it will be used, otherwise, this demo will not be run."
-msgstr ""
-"Le visuel X11 nécessaire pour cette démo. S'il est disponible il sera "
-"utilisé, sinon cette démo ne fonctionnera pas."
+msgstr "Le visuel X11 nécessaire pour cette démo. S'il est disponible il sera utilisé, sinon cette démo ne fonctionnera pas."
#: driver/demo-Gtk-widgets.c:1575 driver/xscreensaver-demo.glade.h:16
msgid "Command Line:"
#: driver/demo-Gtk-widgets.c:1655 driver/xscreensaver-demo.glade.h:13
msgid "Click here to read the manual for this display mode, if it has one."
-msgstr ""
-"Cliquer ici pour lire le manuel de ce mode d'affichage, s'il en possède un."
+msgstr "Cliquer ici pour lire le manuel de ce mode d'affichage, s'il en possède un."
#: driver/demo-Gtk-widgets.c:1680 driver/xscreensaver-demo.glade.h:4
msgid "Advanced >>"
#: driver/demo-Gtk.c:644
msgid "For updates, check http://www.jwz.org/xscreensaver/"
-msgstr ""
-"Pour les mises à jour, voir «http://www.jwz.org/xscreensaver/»\n"
-"Traductions par Eric Lassauge «http://lassauge.free.fr/xscreensaver/»"
+msgstr "Traduction © 2004, Eric Lassauge http://lassauge.free.fr/xscreensaver/"
+"Pour les mises à jour, vérifier sur http://www.jwz.org/xscreensaver/"
#: driver/demo-Gtk.c:774
msgid ""
"\n"
"No Help URL has been specified.\n"
msgstr ""
-"Erreur :\n"
+"Erreur:\n"
"\n"
"Aucune URL d'aide spécifiée.\n"
"The xscreensaver daemon did not start up properly.\n"
"\n"
msgstr ""
-"Erreur :\n"
+"Erreur:\n"
"\n"
"Le démon xscreensaver ne démarre pas correctement.\n"
+"\n"
#: driver/demo-Gtk.c:872
msgid ""
"You shouldn't run X as root. Instead, you should log in as a\n"
"normal user, and `su' as necessary."
msgstr ""
-"Vous lancez ce programme en temps qu'administrateur. Ceci signifie\n"
-"que xscreensaver est incapable de contacter le serveur X car le\n"
-"contrôle d'accès est actif. Essayez de lancer cette commande :\n"
+"Vous fonctionnez en tant que «root». Ceci signifie généralement que\n"
+"xscreensaver ne peut pas contacter le serveur X car les contrôles\n"
+"d'accès sont actifs. Essayez de lancer la commande:\n"
"\n"
" xhost +localhost\n"
"\n"
-"puis sélectionnez 'Fichier / Relancer le démon'.\n"
-"\n"
-"Notez bien que inactiver le contrôle d'accès permettra à quiconque\n"
-"connecté à cette machine d'accéder à votre écran, ce qui peut être\n"
-"considéré comme un problème de sécurité. Lisez le manuel et la FAQ\n"
-"de xscreensaver pour plus d'information.\n"
+"puis sélectionnez «Fichier / Redémarrer le démon».\n"
"\n"
-"Vous ne devriez pas lancer X en tant qu'administrateur. En lieu et\n"
-"place il faut se connecter en tant qu'utilisateur normal et utiliser\n"
-"'su' si nécessaire."
+"Notez que inhiber les contrôles d'accès permettra à quiconque\n"
+"sur cette machine d'accéder à votre écran, ce qui peut être\n"
+"considéré comme un problème de sécurité. Lisez le manuel et la\n"
+"documentation de xscreensaver pour plus d'informations.\n"
+"Vous ne devriez pas lancer X en tant que «root». A la place il faut\n"
+"se connecter en tant qu'utilisateur normal et utiliser\n"
+"«su» si nécessaire."
#: driver/demo-Gtk.c:888
msgid "Please check your $PATH and permissions."
"\n"
"Couldn't determine init file name!\n"
msgstr ""
-"Erreur :\n"
+"Erreur:\n"
"\n"
"Impossible de déterminer le nom du fichier d'init !\n"
"\n"
"Couldn't write %s\n"
msgstr ""
-"Erreur :\n"
+"Erreur:\n"
"\n"
"Impossible d'écrire dans %s.\n"
"\n"
"no `manualCommand' resource set."
msgstr ""
-"Erreur :\n"
+"Erreur:\n"
"\n"
"La ressource «manualCommand» n'est pas renseignée."
"\n"
"Unparsable time format: \"%s\"\n"
msgstr ""
-"Erreur :\n"
+"Erreur:\n"
"\n"
"Le format «%s» pour l'heure n'est pas exploitable.\n"
"\n"
"Directory does not exist: \"%s\"\n"
msgstr ""
-"Erreur :\n"
+"Erreur:\n"
"\n"
"Répertoire «%s» inexistant.\n"
#: driver/demo-Gtk.c:2808
msgid "Blank Screen"
-msgstr "Verrouiller l'écran"
+msgstr "Économiser l'écran uniquement"
#: driver/demo-Gtk.c:2814
msgid "Screen Saver Disabled"
"\n"
"file \"%s\" has changed, reloading.\n"
msgstr ""
-"Attention :\n"
+"Attention:\n"
"\n"
-"Le fichier \"%s\" a changé, rechargement.\n"
+"le fichier «%s» a changé, rechargement.\n"
#: driver/demo-Gtk.c:3084
msgid "No Preview"
"The XScreenSaver daemon doesn't seem to be running\n"
"on display \"%s\". Launch it now?"
msgstr ""
-"Attention :\n"
+"Attention:\n"
"\n"
-"Le démon XScreenSaver n'est pas actif pour l'écran \"%s\". Le lancer "
+"Le démon XScreenSaver n'est pas actif pour l'écran «%s». Le lancer "
"maintenant ?"
+
#: driver/demo-Gtk.c:3821
#, c-format
msgid ""
"Restart the xscreensaver daemon now?\n"
msgstr ""
"Attention:\n"
-"%s est lancé par l'utilisateur \"%s\" sur la machine \"%s\".\n"
-"Mais le xscreensaver gérant l'écran \"%s\"\n"
-"est lancé par l'utilisateur \"%s\" sur la machine \"%s\".\n"
"\n"
-"Comme il s'agit d'utilisateurs différents, alors %s ne fonctionnera\n"
+"%s est lancé par l'utilisateur «%s» sur la machine «%s».\n"
+"Cependant le xscreensaver gérant l'écran «%s»\n"
+"est lancé par l'utilisateur «%s» sur la machine «%s».\n"
+"\n"
+"Comme ce sont des utilisateurs différents, ils ne vont pas lire/écrire\n"
+"le même fichier «~/.xscreensaver», donc %s ne fonctionnera\n"
"pas correctement.\n"
"\n"
-"Vous devez soit re-lancer %s en tant que \"%s\", ou re-lancer\n"
-"xscreensaver en tant que \"%s\".\n"
+"Vous devez soit relancer %s en tant que «%s», soit relancer\n"
+"xscreensaver en tant que «%s».\n"
"\n"
"Relancer le démon xscreensaver maintenant ?\n"
"Restart the daemon on \"%s\" as \"%s\" now?\n"
msgstr ""
"Attention:\n"
-"%s est lancé par l'utilisateur \"%s\" sur la machine \"%s\".\n"
-"Mais le xscreensaver gérant l'écran \"%s\"\n"
-"est lancé par l'utilisateur \"%s\" sur la machine \"%s\".\n"
"\n"
-"Si ces deux machines ne partagent pas le même système de fichier\n"
-"(c'est à dire pas le même fichier ~%s/.xscreensaver) alors\n"
-"%s ne fonctionnera pas correctement.\n"
+"%s est lancé par l'utilisateur «%s» sur la machine «%s».\n"
+"Cependant le xscreensaver gérant l'écran «%s»\n"
+"est lancé par l'utilisateur «%s» sur la machine «%s».\n"
+"\n"
+"Si ces deux machines ne partagent pas le système de fichier\n"
+"(c'est à dire qu'elles ne voient pas le même fichier «~/.xscreensaver»)\n"
+"alors %s ne fonctionnera pas correctement.\n"
"\n"
-"Relancer le démon sur \"%s\" en tant que \"%s\" maintenant ?\n"
+"Relancer le démon sur «%s» en tant que «%s» maintenant ?\n"
#: driver/demo-Gtk.c:3868
#, c-format
"Restart the xscreensaver daemon now?\n"
msgstr ""
"Attention:\n"
+"\n"
"Ceci est %s version %s.\n"
-"Mais le xscreensaver gérant l'écran \"%s\"\n"
-"est en version %s. Cela risque de causer des problèmes.\n"
+"Cependant le xscreensaver gérant l'écran «%s»\n"
+"est en version %s. Ceci peut causer des problèmes.\n"
"\n"
"Relancer le démon xscreensaver maintenant ?\n"
#: driver/demo-Gtk.c:4325
#, c-format
msgid "%s: unknown option: %s\n"
-msgstr "%s: option inconnue: «%s»\n"
+msgstr "%s: option inconnue : %s\n"
#: driver/demo-Gtk.c:4389
msgid "Screensaver Preferences"
#: driver/xscreensaver-demo.glade2.h:28
msgid "How long after the screen blanks until a password will be required."
-msgstr ""
-"Combien de temps avant qu'il soit nécessaire de donner un mot de passe."
+msgstr "Combien de temps avant qu'il soit nécessaire de donner un mot de passe."
#: driver/xscreensaver-demo.glade2.h:29
msgid "How long before the screensaver activates."
msgid ""
"How long each display mode should run before choosing a new one (in Random "
"mode.)"
-msgstr ""
-"Combien de temps avant l'activation d'un autre économiseur d'écran (en mode "
-"aléatoire)"
+msgstr "Combien de temps avant l'activation d'un autre économiseur d'écran (en mode aléatoire)"
#: driver/xscreensaver-demo.glade2.h:32
msgid "How long until the monitor goes completely black."
msgid ""
"Whether the image-manipulating modes should operate on images captured from "
"the system's video input (if there is one.)"
-msgstr ""
-"Les modes qui manipulent des images sont-ils autorisés à utiliser des images "
-"capturées par l'entrée vidéo du système (si il y en a une)."
+msgstr "Les modes qui manipulent des images sont-ils autorisés à utiliser des images capturées par l'entrée vidéo du système (si il y en a une)."
#: driver/xscreensaver-demo.glade2.h:67
msgid "_Advanced"
msgid "Anemone"
msgstr "Anémone"
-#: hacks/config/anemone.xml.h:2
+#: hacks/config/anemone.xml.h:2 hacks/config/fuzzyflakes.xml.h:1
msgid "Arms"
msgstr "Bras"
#: hacks/config/anemone.xml.h:3 hacks/config/ant.xml.h:6
-#: hacks/config/antspotlight.xml.h:3 hacks/config/apollonian.xml.h:5
-#: hacks/config/atlantis.xml.h:4 hacks/config/attraction.xml.h:8
-#: hacks/config/atunnel.xml.h:3 hacks/config/barcode.xml.h:4
-#: hacks/config/blaster.xml.h:3 hacks/config/blinkbox.xml.h:5
-#: hacks/config/blitspin.xml.h:4 hacks/config/blocktube.xml.h:4
-#: hacks/config/bouboule.xml.h:3 hacks/config/bouncingcow.xml.h:6
-#: hacks/config/boxed.xml.h:4 hacks/config/braid.xml.h:4
-#: hacks/config/bubble3d.xml.h:3 hacks/config/bubbles.xml.h:8
-#: hacks/config/bumps.xml.h:3 hacks/config/cage.xml.h:2
-#: hacks/config/circuit.xml.h:4 hacks/config/cloudlife.xml.h:3
-#: hacks/config/compass.xml.h:3 hacks/config/coral.xml.h:7
-#: hacks/config/critical.xml.h:3 hacks/config/crystal.xml.h:6
-#: hacks/config/cubenetic.xml.h:8 hacks/config/cubestorm.xml.h:4
-#: hacks/config/cynosure.xml.h:4 hacks/config/dangerball.xml.h:3
-#: hacks/config/decayscreen.xml.h:2 hacks/config/deluxe.xml.h:4
-#: hacks/config/demon.xml.h:4 hacks/config/discrete.xml.h:2
-#: hacks/config/distort.xml.h:4 hacks/config/drift.xml.h:3
-#: hacks/config/endgame.xml.h:3 hacks/config/engine.xml.h:8
-#: hacks/config/epicycle.xml.h:5 hacks/config/eruption.xml.h:5
-#: hacks/config/euler2d.xml.h:3 hacks/config/extrusion.xml.h:3
-#: hacks/config/fadeplot.xml.h:4 hacks/config/flag.xml.h:2
-#: hacks/config/flame.xml.h:6 hacks/config/flipflop.xml.h:1
-#: hacks/config/flipscreen3d.xml.h:1 hacks/config/flow.xml.h:4
-#: hacks/config/fluidballs.xml.h:5 hacks/config/flyingtoasters.xml.h:5
-#: hacks/config/fontglide.xml.h:4 hacks/config/forest.xml.h:1
+#: hacks/config/antinspect.xml.h:4 hacks/config/antspotlight.xml.h:3
+#: hacks/config/apollonian.xml.h:5 hacks/config/atlantis.xml.h:4
+#: hacks/config/attraction.xml.h:8 hacks/config/atunnel.xml.h:3
+#: hacks/config/barcode.xml.h:4 hacks/config/blaster.xml.h:3
+#: hacks/config/blinkbox.xml.h:5 hacks/config/blitspin.xml.h:4
+#: hacks/config/blocktube.xml.h:4 hacks/config/bouboule.xml.h:3
+#: hacks/config/bouncingcow.xml.h:6 hacks/config/boxed.xml.h:4
+#: hacks/config/braid.xml.h:4 hacks/config/bubble3d.xml.h:3
+#: hacks/config/bubbles.xml.h:8 hacks/config/bumps.xml.h:3
+#: hacks/config/cage.xml.h:2 hacks/config/circuit.xml.h:4
+#: hacks/config/cloudlife.xml.h:3 hacks/config/compass.xml.h:3
+#: hacks/config/coral.xml.h:7 hacks/config/critical.xml.h:3
+#: hacks/config/crystal.xml.h:6 hacks/config/cubenetic.xml.h:8
+#: hacks/config/cubestorm.xml.h:4 hacks/config/cynosure.xml.h:4
+#: hacks/config/dangerball.xml.h:3 hacks/config/decayscreen.xml.h:2
+#: hacks/config/deluxe.xml.h:4 hacks/config/demon.xml.h:4
+#: hacks/config/discrete.xml.h:2 hacks/config/distort.xml.h:4
+#: hacks/config/drift.xml.h:3 hacks/config/endgame.xml.h:3
+#: hacks/config/engine.xml.h:8 hacks/config/epicycle.xml.h:5
+#: hacks/config/eruption.xml.h:5 hacks/config/euler2d.xml.h:3
+#: hacks/config/extrusion.xml.h:3 hacks/config/fadeplot.xml.h:4
+#: hacks/config/flag.xml.h:2 hacks/config/flame.xml.h:6
+#: hacks/config/flipflop.xml.h:1 hacks/config/flipscreen3d.xml.h:1
+#: hacks/config/flow.xml.h:4 hacks/config/fluidballs.xml.h:5
+#: hacks/config/flyingtoasters.xml.h:5 hacks/config/fontglide.xml.h:4
+#: hacks/config/forest.xml.h:1 hacks/config/fuzzyflakes.xml.h:6
#: hacks/config/galaxy.xml.h:3 hacks/config/gears.xml.h:2
#: hacks/config/gflux.xml.h:6 hacks/config/glblur.xml.h:4
#: hacks/config/glforestfire.xml.h:4 hacks/config/glknots.xml.h:3
#: hacks/config/pacman.xml.h:1 hacks/config/penetrate.xml.h:3
#: hacks/config/penrose.xml.h:6 hacks/config/petri.xml.h:5
#: hacks/config/phosphor.xml.h:4 hacks/config/piecewise.xml.h:4
-#: hacks/config/pipes.xml.h:5 hacks/config/polyominoes.xml.h:2
-#: hacks/config/polytopes.xml.h:11 hacks/config/pong.xml.h:1
-#: hacks/config/popsquares.xml.h:3 hacks/config/pulsar.xml.h:11
+#: hacks/config/pipes.xml.h:5 hacks/config/polyhedra.xml.h:18
+#: hacks/config/polyominoes.xml.h:2 hacks/config/polytopes.xml.h:11
+#: hacks/config/pong.xml.h:1 hacks/config/popsquares.xml.h:3
+#: hacks/config/providence.xml.h:2 hacks/config/pulsar.xml.h:11
#: hacks/config/pyro.xml.h:4 hacks/config/qix.xml.h:7
#: hacks/config/queens.xml.h:1 hacks/config/rd-bomb.xml.h:9
#: hacks/config/ripples.xml.h:4 hacks/config/rocks.xml.h:4
#: hacks/config/worm.xml.h:3 hacks/config/wormhole.xml.h:2
#: hacks/config/xearth.xml.h:7 hacks/config/xfishtank.xml.h:3
#: hacks/config/xflame.xml.h:4 hacks/config/xjack.xml.h:1
-#: hacks/config/xmatrix.xml.h:5 hacks/config/xmountains.xml.h:1
+#: hacks/config/xmatrix.xml.h:5 hacks/config/xmountains.xml.h:13
#: hacks/config/xplanet.xml.h:8 hacks/config/xrayswarm.xml.h:2
#: hacks/config/zoom.xml.h:2
msgid "Fast"
#: hacks/config/bouboule.xml.h:4 hacks/config/coral.xml.h:8
#: hacks/config/cubenetic.xml.h:9 hacks/config/eruption.xml.h:6
#: hacks/config/euler2d.xml.h:4 hacks/config/flame.xml.h:7
-#: hacks/config/fluidballs.xml.h:6 hacks/config/kaleidescope.xml.h:3
-#: hacks/config/lisa.xml.h:3 hacks/config/pedal.xml.h:4
-#: hacks/config/petri.xml.h:7 hacks/config/qix.xml.h:8
-#: hacks/config/thornbird.xml.h:3 hacks/config/whirlwindwarp.xml.h:1
-#: hacks/config/wormhole.xml.h:3 hacks/config/xfishtank.xml.h:4
+#: hacks/config/fluidballs.xml.h:6 hacks/config/fuzzyflakes.xml.h:7
+#: hacks/config/kaleidescope.xml.h:3 hacks/config/lisa.xml.h:3
+#: hacks/config/pedal.xml.h:4 hacks/config/petri.xml.h:7
+#: hacks/config/qix.xml.h:8 hacks/config/thornbird.xml.h:3
+#: hacks/config/whirlwindwarp.xml.h:1 hacks/config/wormhole.xml.h:3
+#: hacks/config/xfishtank.xml.h:4
msgid "Few"
msgstr "Peu"
#: hacks/config/fadeplot.xml.h:6 hacks/config/flag.xml.h:5
#: hacks/config/flame.xml.h:11 hacks/config/flow.xml.h:8
#: hacks/config/fluidballs.xml.h:13 hacks/config/forest.xml.h:3
-#: hacks/config/galaxy.xml.h:6 hacks/config/grav.xml.h:4
-#: hacks/config/halo.xml.h:4 hacks/config/hopalong.xml.h:15
-#: hacks/config/ifs.xml.h:3 hacks/config/imsmap.xml.h:9
-#: hacks/config/interference.xml.h:14 hacks/config/julia.xml.h:6
-#: hacks/config/kaleidescope.xml.h:5 hacks/config/laser.xml.h:6
-#: hacks/config/lightning.xml.h:3 hacks/config/lisa.xml.h:5
-#: hacks/config/lissie.xml.h:6 hacks/config/loop.xml.h:4
-#: hacks/config/metaballs.xml.h:6 hacks/config/mismunch.xml.h:4
-#: hacks/config/moire.xml.h:5 hacks/config/moire2.xml.h:3
-#: hacks/config/mountain.xml.h:4 hacks/config/nerverot.xml.h:15
-#: hacks/config/pedal.xml.h:6 hacks/config/penrose.xml.h:7
-#: hacks/config/petri.xml.h:11 hacks/config/polyominoes.xml.h:5
-#: hacks/config/qix.xml.h:14 hacks/config/rd-bomb.xml.h:12
-#: hacks/config/ripples.xml.h:7 hacks/config/rocks.xml.h:5
-#: hacks/config/rotor.xml.h:6 hacks/config/shadebobs.xml.h:5
-#: hacks/config/sierpinski.xml.h:4 hacks/config/slip.xml.h:4
-#: hacks/config/sphere.xml.h:3 hacks/config/spiral.xml.h:6
-#: hacks/config/squiral.xml.h:9 hacks/config/starfish.xml.h:5
-#: hacks/config/strange.xml.h:2 hacks/config/swirl.xml.h:3
-#: hacks/config/thornbird.xml.h:4 hacks/config/triangle.xml.h:3
-#: hacks/config/vines.xml.h:2 hacks/config/whirlwindwarp.xml.h:4
-#: hacks/config/worm.xml.h:4 hacks/config/xearth.xml.h:12
-#: hacks/config/xfishtank.xml.h:8
+#: hacks/config/fuzzyflakes.xml.h:11 hacks/config/galaxy.xml.h:6
+#: hacks/config/grav.xml.h:4 hacks/config/halo.xml.h:4
+#: hacks/config/hopalong.xml.h:15 hacks/config/ifs.xml.h:3
+#: hacks/config/imsmap.xml.h:9 hacks/config/interference.xml.h:14
+#: hacks/config/julia.xml.h:6 hacks/config/kaleidescope.xml.h:5
+#: hacks/config/laser.xml.h:6 hacks/config/lightning.xml.h:3
+#: hacks/config/lisa.xml.h:5 hacks/config/lissie.xml.h:6
+#: hacks/config/loop.xml.h:4 hacks/config/metaballs.xml.h:6
+#: hacks/config/mismunch.xml.h:4 hacks/config/moire.xml.h:5
+#: hacks/config/moire2.xml.h:3 hacks/config/mountain.xml.h:4
+#: hacks/config/nerverot.xml.h:15 hacks/config/pedal.xml.h:6
+#: hacks/config/penrose.xml.h:7 hacks/config/petri.xml.h:11
+#: hacks/config/polyominoes.xml.h:5 hacks/config/qix.xml.h:14
+#: hacks/config/rd-bomb.xml.h:12 hacks/config/ripples.xml.h:7
+#: hacks/config/rocks.xml.h:5 hacks/config/rotor.xml.h:6
+#: hacks/config/shadebobs.xml.h:5 hacks/config/sierpinski.xml.h:4
+#: hacks/config/slip.xml.h:4 hacks/config/sphere.xml.h:3
+#: hacks/config/spiral.xml.h:6 hacks/config/squiral.xml.h:9
+#: hacks/config/starfish.xml.h:5 hacks/config/strange.xml.h:2
+#: hacks/config/swirl.xml.h:3 hacks/config/thornbird.xml.h:4
+#: hacks/config/triangle.xml.h:3 hacks/config/vines.xml.h:2
+#: hacks/config/whirlwindwarp.xml.h:4 hacks/config/worm.xml.h:4
+#: hacks/config/xearth.xml.h:12 hacks/config/xfishtank.xml.h:8
msgid "Many"
msgstr "Beaucoup"
msgstr "Rarement"
#: hacks/config/anemone.xml.h:9 hacks/config/ant.xml.h:15
-#: hacks/config/antspotlight.xml.h:5 hacks/config/apollonian.xml.h:11
-#: hacks/config/atlantis.xml.h:13 hacks/config/attraction.xml.h:26
-#: hacks/config/atunnel.xml.h:6 hacks/config/barcode.xml.h:6
-#: hacks/config/blaster.xml.h:8 hacks/config/blinkbox.xml.h:7
-#: hacks/config/blitspin.xml.h:7 hacks/config/blocktube.xml.h:9
-#: hacks/config/bouboule.xml.h:8 hacks/config/bouncingcow.xml.h:10
-#: hacks/config/boxed.xml.h:6 hacks/config/braid.xml.h:11
-#: hacks/config/bubble3d.xml.h:5 hacks/config/bubbles.xml.h:10
-#: hacks/config/bumps.xml.h:4 hacks/config/cage.xml.h:4
-#: hacks/config/circuit.xml.h:10 hacks/config/cloudlife.xml.h:11
-#: hacks/config/compass.xml.h:4 hacks/config/coral.xml.h:12
-#: hacks/config/critical.xml.h:6 hacks/config/crystal.xml.h:11
-#: hacks/config/cubenetic.xml.h:22 hacks/config/cubestorm.xml.h:8
-#: hacks/config/cynosure.xml.h:9 hacks/config/dangerball.xml.h:5
-#: hacks/config/decayscreen.xml.h:17 hacks/config/deluxe.xml.h:8
-#: hacks/config/demon.xml.h:8 hacks/config/discrete.xml.h:7
-#: hacks/config/distort.xml.h:11 hacks/config/drift.xml.h:12
-#: hacks/config/endgame.xml.h:5 hacks/config/engine.xml.h:15
-#: hacks/config/epicycle.xml.h:10 hacks/config/eruption.xml.h:19
-#: hacks/config/euler2d.xml.h:14 hacks/config/extrusion.xml.h:11
-#: hacks/config/fadeplot.xml.h:8 hacks/config/flag.xml.h:7
-#: hacks/config/flame.xml.h:14 hacks/config/flipflop.xml.h:5
-#: hacks/config/flipscreen3d.xml.h:6 hacks/config/flow.xml.h:13
-#: hacks/config/fluidballs.xml.h:18 hacks/config/flyingtoasters.xml.h:11
-#: hacks/config/fontglide.xml.h:13 hacks/config/forest.xml.h:5
+#: hacks/config/antinspect.xml.h:6 hacks/config/antspotlight.xml.h:5
+#: hacks/config/apollonian.xml.h:11 hacks/config/atlantis.xml.h:13
+#: hacks/config/attraction.xml.h:26 hacks/config/atunnel.xml.h:6
+#: hacks/config/barcode.xml.h:6 hacks/config/blaster.xml.h:8
+#: hacks/config/blinkbox.xml.h:7 hacks/config/blitspin.xml.h:7
+#: hacks/config/blocktube.xml.h:9 hacks/config/bouboule.xml.h:8
+#: hacks/config/bouncingcow.xml.h:10 hacks/config/boxed.xml.h:6
+#: hacks/config/braid.xml.h:11 hacks/config/bubble3d.xml.h:5
+#: hacks/config/bubbles.xml.h:10 hacks/config/bumps.xml.h:4
+#: hacks/config/cage.xml.h:4 hacks/config/circuit.xml.h:10
+#: hacks/config/cloudlife.xml.h:11 hacks/config/compass.xml.h:4
+#: hacks/config/coral.xml.h:12 hacks/config/critical.xml.h:6
+#: hacks/config/crystal.xml.h:11 hacks/config/cubenetic.xml.h:22
+#: hacks/config/cubestorm.xml.h:8 hacks/config/cynosure.xml.h:9
+#: hacks/config/dangerball.xml.h:5 hacks/config/decayscreen.xml.h:17
+#: hacks/config/deluxe.xml.h:8 hacks/config/demon.xml.h:8
+#: hacks/config/discrete.xml.h:7 hacks/config/distort.xml.h:11
+#: hacks/config/drift.xml.h:12 hacks/config/endgame.xml.h:5
+#: hacks/config/engine.xml.h:15 hacks/config/epicycle.xml.h:10
+#: hacks/config/eruption.xml.h:19 hacks/config/euler2d.xml.h:14
+#: hacks/config/extrusion.xml.h:11 hacks/config/fadeplot.xml.h:8
+#: hacks/config/flag.xml.h:7 hacks/config/flame.xml.h:14
+#: hacks/config/flipflop.xml.h:5 hacks/config/flipscreen3d.xml.h:6
+#: hacks/config/flow.xml.h:13 hacks/config/fluidballs.xml.h:18
+#: hacks/config/flyingtoasters.xml.h:11 hacks/config/fontglide.xml.h:13
+#: hacks/config/forest.xml.h:5 hacks/config/fuzzyflakes.xml.h:13
#: hacks/config/galaxy.xml.h:10 hacks/config/gears.xml.h:7
#: hacks/config/gflux.xml.h:12 hacks/config/glblur.xml.h:14
#: hacks/config/glforestfire.xml.h:14 hacks/config/glknots.xml.h:17
#: hacks/config/pacman.xml.h:5 hacks/config/penetrate.xml.h:6
#: hacks/config/penrose.xml.h:11 hacks/config/petri.xml.h:23
#: hacks/config/phosphor.xml.h:7 hacks/config/piecewise.xml.h:9
-#: hacks/config/pipes.xml.h:15 hacks/config/polyominoes.xml.h:10
-#: hacks/config/polytopes.xml.h:20 hacks/config/pong.xml.h:4
-#: hacks/config/popsquares.xml.h:5 hacks/config/pulsar.xml.h:15
+#: hacks/config/pipes.xml.h:15 hacks/config/polyhedra.xml.h:119
+#: hacks/config/polyominoes.xml.h:10 hacks/config/polytopes.xml.h:20
+#: hacks/config/pong.xml.h:4 hacks/config/popsquares.xml.h:5
+#: hacks/config/providence.xml.h:5 hacks/config/pulsar.xml.h:15
#: hacks/config/pyro.xml.h:13 hacks/config/qix.xml.h:19
#: hacks/config/queens.xml.h:4 hacks/config/rd-bomb.xml.h:17
#: hacks/config/ripples.xml.h:11 hacks/config/rocks.xml.h:9
#: hacks/config/worm.xml.h:7 hacks/config/wormhole.xml.h:5
#: hacks/config/xearth.xml.h:22 hacks/config/xfishtank.xml.h:10
#: hacks/config/xflame.xml.h:5 hacks/config/xjack.xml.h:2
-#: hacks/config/xmatrix.xml.h:15 hacks/config/xmountains.xml.h:4
-#: hacks/config/xplanet.xml.h:59 hacks/config/xrayswarm.xml.h:3
-#: hacks/config/zoom.xml.h:6
+#: hacks/config/xmatrix.xml.h:15 hacks/config/xplanet.xml.h:59
+#: hacks/config/xrayswarm.xml.h:3 hacks/config/zoom.xml.h:6
msgid "Slow"
msgstr "Lent(e)"
#: hacks/config/anemone.xml.h:10 hacks/config/ant.xml.h:17
-#: hacks/config/antspotlight.xml.h:6 hacks/config/apollonian.xml.h:12
-#: hacks/config/attraction.xml.h:28 hacks/config/atunnel.xml.h:7
-#: hacks/config/barcode.xml.h:7 hacks/config/blaster.xml.h:9
-#: hacks/config/blinkbox.xml.h:8 hacks/config/blocktube.xml.h:11
-#: hacks/config/bouboule.xml.h:9 hacks/config/braid.xml.h:12
-#: hacks/config/bubble3d.xml.h:6 hacks/config/bubbles.xml.h:11
-#: hacks/config/bumps.xml.h:5 hacks/config/cage.xml.h:6
-#: hacks/config/circuit.xml.h:11 hacks/config/cloudlife.xml.h:13
-#: hacks/config/compass.xml.h:5 hacks/config/coral.xml.h:14
-#: hacks/config/critical.xml.h:7 hacks/config/crystal.xml.h:12
-#: hacks/config/cubenetic.xml.h:24 hacks/config/cynosure.xml.h:10
-#: hacks/config/dangerball.xml.h:6 hacks/config/decayscreen.xml.h:18
-#: hacks/config/deluxe.xml.h:9 hacks/config/demon.xml.h:10
-#: hacks/config/discrete.xml.h:9 hacks/config/distort.xml.h:13
-#: hacks/config/drift.xml.h:13 hacks/config/endgame.xml.h:6
-#: hacks/config/engine.xml.h:16 hacks/config/epicycle.xml.h:11
-#: hacks/config/eruption.xml.h:20 hacks/config/euler2d.xml.h:15
-#: hacks/config/extrusion.xml.h:13 hacks/config/fadeplot.xml.h:10
-#: hacks/config/flag.xml.h:9 hacks/config/flame.xml.h:15
-#: hacks/config/flipflop.xml.h:7 hacks/config/flipscreen3d.xml.h:7
-#: hacks/config/flow.xml.h:16 hacks/config/fluidballs.xml.h:20
-#: hacks/config/forest.xml.h:6 hacks/config/galaxy.xml.h:11
+#: hacks/config/antinspect.xml.h:7 hacks/config/antspotlight.xml.h:6
+#: hacks/config/apollonian.xml.h:12 hacks/config/attraction.xml.h:28
+#: hacks/config/atunnel.xml.h:7 hacks/config/barcode.xml.h:7
+#: hacks/config/blaster.xml.h:9 hacks/config/blinkbox.xml.h:8
+#: hacks/config/blocktube.xml.h:11 hacks/config/bouboule.xml.h:9
+#: hacks/config/braid.xml.h:12 hacks/config/bubble3d.xml.h:6
+#: hacks/config/bubbles.xml.h:11 hacks/config/bumps.xml.h:5
+#: hacks/config/cage.xml.h:6 hacks/config/circuit.xml.h:11
+#: hacks/config/cloudlife.xml.h:13 hacks/config/compass.xml.h:5
+#: hacks/config/coral.xml.h:14 hacks/config/critical.xml.h:7
+#: hacks/config/crystal.xml.h:12 hacks/config/cubenetic.xml.h:24
+#: hacks/config/cynosure.xml.h:10 hacks/config/dangerball.xml.h:6
+#: hacks/config/decayscreen.xml.h:18 hacks/config/deluxe.xml.h:9
+#: hacks/config/demon.xml.h:10 hacks/config/discrete.xml.h:9
+#: hacks/config/distort.xml.h:13 hacks/config/drift.xml.h:13
+#: hacks/config/endgame.xml.h:6 hacks/config/engine.xml.h:16
+#: hacks/config/epicycle.xml.h:11 hacks/config/eruption.xml.h:20
+#: hacks/config/euler2d.xml.h:15 hacks/config/extrusion.xml.h:13
+#: hacks/config/fadeplot.xml.h:10 hacks/config/flag.xml.h:9
+#: hacks/config/flame.xml.h:15 hacks/config/flipflop.xml.h:7
+#: hacks/config/flipscreen3d.xml.h:7 hacks/config/flow.xml.h:16
+#: hacks/config/fluidballs.xml.h:20 hacks/config/forest.xml.h:6
+#: hacks/config/fuzzyflakes.xml.h:15 hacks/config/galaxy.xml.h:11
#: hacks/config/glblur.xml.h:17 hacks/config/glforestfire.xml.h:15
#: hacks/config/glplanet.xml.h:8 hacks/config/gltext.xml.h:15
#: hacks/config/goop.xml.h:11 hacks/config/grav.xml.h:9
#: hacks/config/petri.xml.h:25 hacks/config/phosphor.xml.h:8
#: hacks/config/piecewise.xml.h:11 hacks/config/pipes.xml.h:16
#: hacks/config/polyominoes.xml.h:11 hacks/config/pong.xml.h:5
-#: hacks/config/popsquares.xml.h:6 hacks/config/pulsar.xml.h:17
-#: hacks/config/qix.xml.h:22 hacks/config/queens.xml.h:6
-#: hacks/config/rotor.xml.h:12 hacks/config/rubik.xml.h:11
-#: hacks/config/sballs.xml.h:14 hacks/config/shadebobs.xml.h:10
-#: hacks/config/sierpinski.xml.h:9 hacks/config/sierpinski3d.xml.h:10
-#: hacks/config/slidescreen.xml.h:7 hacks/config/slip.xml.h:9
-#: hacks/config/speedmine.xml.h:15 hacks/config/sphere.xml.h:6
-#: hacks/config/spheremonics.xml.h:22 hacks/config/spiral.xml.h:10
-#: hacks/config/spotlight.xml.h:5 hacks/config/sproingies.xml.h:8
-#: hacks/config/squiral.xml.h:16 hacks/config/stairs.xml.h:5
-#: hacks/config/starfish.xml.h:9 hacks/config/strange.xml.h:5
-#: hacks/config/superquadrics.xml.h:10 hacks/config/swirl.xml.h:7
-#: hacks/config/t3d.xml.h:13 hacks/config/thornbird.xml.h:8
-#: hacks/config/triangle.xml.h:6 hacks/config/truchet.xml.h:3
-#: hacks/config/twang.xml.h:10 hacks/config/vines.xml.h:5
-#: hacks/config/webcollage.xml.h:8 hacks/config/whirlygig.xml.h:13
-#: hacks/config/worm.xml.h:8 hacks/config/xearth.xml.h:25
-#: hacks/config/xflame.xml.h:6 hacks/config/xjack.xml.h:3
-#: hacks/config/xmatrix.xml.h:18 hacks/config/xmountains.xml.h:5
+#: hacks/config/popsquares.xml.h:6 hacks/config/providence.xml.h:6
+#: hacks/config/pulsar.xml.h:17 hacks/config/qix.xml.h:22
+#: hacks/config/queens.xml.h:6 hacks/config/rotor.xml.h:12
+#: hacks/config/rubik.xml.h:11 hacks/config/sballs.xml.h:14
+#: hacks/config/shadebobs.xml.h:10 hacks/config/sierpinski.xml.h:9
+#: hacks/config/sierpinski3d.xml.h:10 hacks/config/slidescreen.xml.h:7
+#: hacks/config/slip.xml.h:9 hacks/config/speedmine.xml.h:15
+#: hacks/config/sphere.xml.h:6 hacks/config/spheremonics.xml.h:22
+#: hacks/config/spiral.xml.h:10 hacks/config/spotlight.xml.h:5
+#: hacks/config/sproingies.xml.h:8 hacks/config/squiral.xml.h:16
+#: hacks/config/stairs.xml.h:5 hacks/config/starfish.xml.h:9
+#: hacks/config/strange.xml.h:5 hacks/config/superquadrics.xml.h:10
+#: hacks/config/swirl.xml.h:7 hacks/config/t3d.xml.h:13
+#: hacks/config/thornbird.xml.h:8 hacks/config/triangle.xml.h:6
+#: hacks/config/truchet.xml.h:3 hacks/config/twang.xml.h:10
+#: hacks/config/vines.xml.h:5 hacks/config/webcollage.xml.h:8
+#: hacks/config/whirlygig.xml.h:13 hacks/config/worm.xml.h:8
+#: hacks/config/xearth.xml.h:25 hacks/config/xflame.xml.h:6
+#: hacks/config/xjack.xml.h:3 hacks/config/xmatrix.xml.h:18
#: hacks/config/xplanet.xml.h:60 hacks/config/xrayswarm.xml.h:4
#: hacks/config/zoom.xml.h:7
msgid "Speed"
msgstr "Tentacules"
#: hacks/config/anemone.xml.h:12 hacks/config/cubestorm.xml.h:11
-#: hacks/config/deluxe.xml.h:10 hacks/config/glknots.xml.h:19
-#: hacks/config/lmorph.xml.h:13 hacks/config/pong.xml.h:7
-#: hacks/config/starfish.xml.h:11 hacks/config/thornbird.xml.h:9
+#: hacks/config/deluxe.xml.h:10 hacks/config/fuzzyflakes.xml.h:16
+#: hacks/config/glknots.xml.h:19 hacks/config/lmorph.xml.h:13
+#: hacks/config/pong.xml.h:7 hacks/config/starfish.xml.h:11
+#: hacks/config/thornbird.xml.h:9
msgid "Thick"
msgstr "Épais(se)"
-#: hacks/config/anemone.xml.h:13 hacks/config/glknots.xml.h:20
-#: hacks/config/moire2.xml.h:8 hacks/config/thornbird.xml.h:10
+#: hacks/config/anemone.xml.h:13 hacks/config/fuzzyflakes.xml.h:17
+#: hacks/config/glknots.xml.h:20 hacks/config/moire2.xml.h:8
+#: hacks/config/thornbird.xml.h:10
msgid "Thickness"
msgstr "Épaisseur"
#: hacks/config/anemone.xml.h:14 hacks/config/cubestorm.xml.h:12
-#: hacks/config/deluxe.xml.h:11 hacks/config/glknots.xml.h:21
-#: hacks/config/lmorph.xml.h:14 hacks/config/pong.xml.h:8
-#: hacks/config/starfish.xml.h:12 hacks/config/thornbird.xml.h:11
+#: hacks/config/deluxe.xml.h:11 hacks/config/fuzzyflakes.xml.h:18
+#: hacks/config/glknots.xml.h:21 hacks/config/lmorph.xml.h:14
+#: hacks/config/pong.xml.h:8 hacks/config/starfish.xml.h:12
+#: hacks/config/thornbird.xml.h:11
msgid "Thin"
msgstr "Fin(e)"
"heads (``ants'') walk along the screen, they change pixel values in their "
"path. Then, as they pass over changed pixels, their behavior is influenced. "
"Written by David Bagley."
-msgstr ""
-"Un automate cellulaire qui est en fait une machine de Turing "
-"bidimensionnelle: à mesure que les têtes («fourmis») marchent le long de "
-"l'écran, elles changent la valeur des pixels sur leur chemin. Ensuite, leur "
-"comportement est influencé lorsqu'elles passent sur les pixels modifiés. "
-"Écrit par David Bagley."
+msgstr "Un automate cellulaire qui est en fait une machine de Turing bidimensionnelle: à mesure que les têtes («fourmis») marchent le long de l'écran, elles changent la valeur des pixels sur leur chemin. Ensuite, leur comportement est influencé lorsqu'elles passent sur les pixels modifiés. Écrit par David Bagley."
#: hacks/config/ant.xml.h:2
msgid "Ant"
#: hacks/config/demon.xml.h:5 hacks/config/discrete.xml.h:3
#: hacks/config/distort.xml.h:5 hacks/config/fadeplot.xml.h:5
#: hacks/config/flag.xml.h:4 hacks/config/flow.xml.h:7
-#: hacks/config/fluidballs.xml.h:12 hacks/config/gleidescope.xml.h:7
-#: hacks/config/halftone.xml.h:8 hacks/config/hopalong.xml.h:13
-#: hacks/config/interference.xml.h:11 hacks/config/julia.xml.h:5
-#: hacks/config/lissie.xml.h:4 hacks/config/loop.xml.h:2
-#: hacks/config/moire.xml.h:4 hacks/config/piecewise.xml.h:5
-#: hacks/config/rd-bomb.xml.h:11 hacks/config/rorschach.xml.h:5
-#: hacks/config/rubik.xml.h:4 hacks/config/sierpinski.xml.h:3
-#: hacks/config/slip.xml.h:3
+#: hacks/config/fluidballs.xml.h:12 hacks/config/fuzzyflakes.xml.h:9
+#: hacks/config/gleidescope.xml.h:7 hacks/config/halftone.xml.h:8
+#: hacks/config/hopalong.xml.h:13 hacks/config/interference.xml.h:11
+#: hacks/config/julia.xml.h:5 hacks/config/lissie.xml.h:4
+#: hacks/config/loop.xml.h:2 hacks/config/moire.xml.h:4
+#: hacks/config/piecewise.xml.h:5 hacks/config/rd-bomb.xml.h:11
+#: hacks/config/rorschach.xml.h:5 hacks/config/rubik.xml.h:4
+#: hacks/config/sierpinski.xml.h:3 hacks/config/slip.xml.h:3
msgid "Large"
msgstr "Important(e)"
#: hacks/config/demon.xml.h:9 hacks/config/discrete.xml.h:8
#: hacks/config/distort.xml.h:12 hacks/config/fadeplot.xml.h:9
#: hacks/config/flag.xml.h:8 hacks/config/flow.xml.h:15
-#: hacks/config/fluidballs.xml.h:19 hacks/config/gleidescope.xml.h:12
-#: hacks/config/halftone.xml.h:14 hacks/config/hopalong.xml.h:22
-#: hacks/config/interference.xml.h:18 hacks/config/julia.xml.h:9
-#: hacks/config/lissie.xml.h:10 hacks/config/loop.xml.h:8
-#: hacks/config/metaballs.xml.h:14 hacks/config/moire.xml.h:9
-#: hacks/config/piecewise.xml.h:10 hacks/config/rd-bomb.xml.h:18
-#: hacks/config/rorschach.xml.h:8 hacks/config/rubik.xml.h:10
-#: hacks/config/sierpinski.xml.h:8 hacks/config/slip.xml.h:8
+#: hacks/config/fluidballs.xml.h:19 hacks/config/fuzzyflakes.xml.h:14
+#: hacks/config/gleidescope.xml.h:12 hacks/config/halftone.xml.h:14
+#: hacks/config/hopalong.xml.h:22 hacks/config/interference.xml.h:18
+#: hacks/config/julia.xml.h:9 hacks/config/lissie.xml.h:10
+#: hacks/config/loop.xml.h:8 hacks/config/metaballs.xml.h:14
+#: hacks/config/moire.xml.h:9 hacks/config/piecewise.xml.h:10
+#: hacks/config/rd-bomb.xml.h:18 hacks/config/rorschach.xml.h:8
+#: hacks/config/rubik.xml.h:10 hacks/config/sierpinski.xml.h:8
+#: hacks/config/slip.xml.h:8
msgid "Small"
msgstr "Faible"
msgid "Twelve Sided Cells"
msgstr "Cellules à 12 côtés"
+#: hacks/config/antinspect.xml.h:1
+msgid "AntInspect"
+msgstr "Inspection des fourmis"
+
+#: hacks/config/antinspect.xml.h:2
+msgid "Draw Shadows"
+msgstr "Dessiner les ombres"
+
+#: hacks/config/antinspect.xml.h:3
+msgid ""
+"Draws a trio of ants moving their spheres around a circle. Written by Blair "
+"Tennessy."
+msgstr ""
+"Dessine un trio de fourmis déplacant une sphère en cercle. Écrit pas Blair Tennessy."
+
+#: hacks/config/antinspect.xml.h:5 hacks/config/antspotlight.xml.h:4
+#: hacks/config/atlantis.xml.h:11 hacks/config/atunnel.xml.h:5
+#: hacks/config/blocktube.xml.h:8 hacks/config/boxed.xml.h:5
+#: hacks/config/bubble3d.xml.h:4 hacks/config/cage.xml.h:3
+#: hacks/config/circuit.xml.h:9 hacks/config/cubenetic.xml.h:21
+#: hacks/config/cubestorm.xml.h:7 hacks/config/dangerball.xml.h:4
+#: hacks/config/endgame.xml.h:4 hacks/config/engine.xml.h:14
+#: hacks/config/extrusion.xml.h:10 hacks/config/flipflop.xml.h:4
+#: hacks/config/flipscreen3d.xml.h:5 hacks/config/fluidballs.xml.h:17
+#: hacks/config/flurry.xml.h:9 hacks/config/flyingtoasters.xml.h:10
+#: hacks/config/gears.xml.h:6 hacks/config/gflux.xml.h:11
+#: hacks/config/glblur.xml.h:13 hacks/config/gleidescope.xml.h:10
+#: hacks/config/glforestfire.xml.h:13 hacks/config/glknots.xml.h:16
+#: hacks/config/glmatrix.xml.h:17 hacks/config/glplanet.xml.h:5
+#: hacks/config/glslideshow.xml.h:18 hacks/config/glsnake.xml.h:10
+#: hacks/config/gltext.xml.h:12 hacks/config/hypertorus.xml.h:12
+#: hacks/config/jigglypuff.xml.h:15 hacks/config/klein.xml.h:6
+#: hacks/config/lament.xml.h:5 hacks/config/lavalite.xml.h:26
+#: hacks/config/menger.xml.h:15 hacks/config/mirrorblob.xml.h:18
+#: hacks/config/moebius.xml.h:6 hacks/config/molecule.xml.h:21
+#: hacks/config/morph3d.xml.h:5 hacks/config/noof.xml.h:4
+#: hacks/config/pipes.xml.h:14 hacks/config/polyhedra.xml.h:118
+#: hacks/config/polytopes.xml.h:18 hacks/config/providence.xml.h:4
+#: hacks/config/pulsar.xml.h:14 hacks/config/queens.xml.h:3
+#: hacks/config/rubik.xml.h:6 hacks/config/sballs.xml.h:12
+#: hacks/config/sierpinski3d.xml.h:6 hacks/config/spheremonics.xml.h:18
+#: hacks/config/sproingies.xml.h:4 hacks/config/stairs.xml.h:2
+#: hacks/config/starwars.xml.h:11 hacks/config/superquadrics.xml.h:7
+msgid "Show Frames-per-Second"
+msgstr "Afficher «trames par seconde» (FPS)"
+
#: hacks/config/antspotlight.xml.h:1
msgid "AntSpotlight"
msgstr "Faisceau lumineux"
"your desktop or other image. Written by Blair Tennessy."
msgstr ""
-#: hacks/config/antspotlight.xml.h:4 hacks/config/atlantis.xml.h:11
-#: hacks/config/atunnel.xml.h:5 hacks/config/blocktube.xml.h:8
-#: hacks/config/boxed.xml.h:5 hacks/config/bubble3d.xml.h:4
-#: hacks/config/cage.xml.h:3 hacks/config/circuit.xml.h:9
-#: hacks/config/cubenetic.xml.h:21 hacks/config/cubestorm.xml.h:7
-#: hacks/config/dangerball.xml.h:4 hacks/config/endgame.xml.h:4
-#: hacks/config/engine.xml.h:14 hacks/config/extrusion.xml.h:10
-#: hacks/config/flipflop.xml.h:4 hacks/config/flipscreen3d.xml.h:5
-#: hacks/config/fluidballs.xml.h:17 hacks/config/flurry.xml.h:9
-#: hacks/config/flyingtoasters.xml.h:10 hacks/config/gears.xml.h:6
-#: hacks/config/gflux.xml.h:11 hacks/config/glblur.xml.h:13
-#: hacks/config/gleidescope.xml.h:10 hacks/config/glforestfire.xml.h:13
-#: hacks/config/glknots.xml.h:16 hacks/config/glmatrix.xml.h:17
-#: hacks/config/glplanet.xml.h:5 hacks/config/glslideshow.xml.h:18
-#: hacks/config/glsnake.xml.h:10 hacks/config/gltext.xml.h:12
-#: hacks/config/hypertorus.xml.h:12 hacks/config/jigglypuff.xml.h:15
-#: hacks/config/klein.xml.h:6 hacks/config/lament.xml.h:5
-#: hacks/config/lavalite.xml.h:26 hacks/config/menger.xml.h:15
-#: hacks/config/mirrorblob.xml.h:18 hacks/config/moebius.xml.h:6
-#: hacks/config/molecule.xml.h:21 hacks/config/morph3d.xml.h:5
-#: hacks/config/noof.xml.h:4 hacks/config/pipes.xml.h:14
-#: hacks/config/polytopes.xml.h:18 hacks/config/pulsar.xml.h:14
-#: hacks/config/queens.xml.h:3 hacks/config/rubik.xml.h:6
-#: hacks/config/sballs.xml.h:12 hacks/config/sierpinski3d.xml.h:6
-#: hacks/config/spheremonics.xml.h:18 hacks/config/sproingies.xml.h:4
-#: hacks/config/stairs.xml.h:2 hacks/config/starwars.xml.h:11
-#: hacks/config/superquadrics.xml.h:7
-msgid "Show Frames-per-Second"
-msgstr "Afficher «trames par seconde» (FPS)"
-
#: hacks/config/apollonian.xml.h:1
msgid "Apollonian"
msgstr "Apollonien"
msgid ""
"Packs a large circle with smaller circles, demonstrating the Descartes "
"Circle Theorem. Written by Allan R. Wilks and David Bagley."
-msgstr ""
-"Remplit un grand cercle de cercles plus petits et démontre ainsi le théorème "
-"des cercles de Descartes. Écrit par Allan R. Wilks et David Bagley."
+msgstr "Remplit un grand cercle de cercles plus petits et démontre ainsi le théorème des cercles de Descartes. Écrit par Allan R. Wilks et David Bagley."
#: hacks/config/apollonian.xml.h:10
msgid "Shallow"
"limitations of the Apple ][ display hardware. (Six available colors in hi-"
"res mode!) In \"Basic Programming Mode\", a simulated user types in a BASIC "
"program and runs it. By Trevor Blackwell."
-msgstr ""
-"Simule une machine Apple ][ Plus dans toute sa gloire de 1979. Il reproduit "
-"également l'affichage d'une télévision couleur de l'époque. En mode \"Texte"
-"\", il affiche la sortie d'une commande (p.ex. \"fortune\"). En Mode "
-"\"diaporama\", il choisis des images depuis la source d'image configurée "
-"dans XScreenSaver et les affiche avec les limitations de l'écran de l'Apple ]"
-"[ (seulement 6 couleurs en mode haute résolution!). Dans le mode "
-"\"Programmation en BASIC\", un utilisateur simulé tape des commandes BASIC "
-"et lance le programme. Par Trevor Blackwell."
+msgstr "Simule une machine Apple ][ Plus dans toute sa gloire de 1979. Il reproduit également l'affichage d'une télévision couleur de l'époque. En mode \"Texte\", il affiche la sortie d'une commande (p.ex. \"fortune\"). En Mode \"diaporama\", il choisis des images depuis la source d'image configurée dans XScreenSaver et les affiche avec les limitations de l'écran de l'Apple ][ (seulement 6 couleurs en mode haute résolution!). Dans le mode \"Programmation en BASIC\", un utilisateur simulé tape des commandes BASIC et lance le programme. Par Trevor Blackwell."
#: hacks/config/apple2.xml.h:5
msgid "Slideshow Mode"
msgid "Shy"
msgstr "Timide"
-#: hacks/config/atlantis.xml.h:14 hacks/config/boxed.xml.h:7
-#: hacks/config/cage.xml.h:5 hacks/config/extrusion.xml.h:12
-#: hacks/config/gears.xml.h:8 hacks/config/glblur.xml.h:15
-#: hacks/config/glplanet.xml.h:7 hacks/config/glsnake.xml.h:13
-#: hacks/config/gltext.xml.h:14 hacks/config/menger.xml.h:17
-#: hacks/config/mismunch.xml.h:11 hacks/config/molecule.xml.h:23
-#: hacks/config/munch.xml.h:8 hacks/config/sierpinski3d.xml.h:9
-#: hacks/config/speedmine.xml.h:14 hacks/config/spheremonics.xml.h:21
-#: hacks/config/sproingies.xml.h:7 hacks/config/stairs.xml.h:4
-#: hacks/config/stonerview.xml.h:2 hacks/config/superquadrics.xml.h:9
+#: hacks/config/atlantis.xml.h:14 hacks/config/cage.xml.h:5
+#: hacks/config/extrusion.xml.h:12 hacks/config/gears.xml.h:8
+#: hacks/config/glblur.xml.h:15 hacks/config/glplanet.xml.h:7
+#: hacks/config/glsnake.xml.h:13 hacks/config/gltext.xml.h:14
+#: hacks/config/menger.xml.h:17 hacks/config/mismunch.xml.h:11
+#: hacks/config/molecule.xml.h:23 hacks/config/munch.xml.h:8
+#: hacks/config/sierpinski3d.xml.h:9 hacks/config/speedmine.xml.h:14
+#: hacks/config/spheremonics.xml.h:21 hacks/config/sproingies.xml.h:7
+#: hacks/config/stairs.xml.h:4 hacks/config/stonerview.xml.h:2
+#: hacks/config/superquadrics.xml.h:9
msgid "Solid"
msgstr "Plein"
"This is xfishtank writ large: a GL animation of a number of sharks, "
"dolphins, and whales. The swimming motions are great. Originally written by "
"Mark Kilgard."
-msgstr ""
-"Voici un aquarium grand format: une animation GL avec des requins, des "
-"dauphins et des baleines. Les mouvements de nage sont magnifiques. "
-"Initialement écrit par Mark Kilgard (porté par Eric Lassauge pour xlock)."
+msgstr "Voici un aquarium grand format: une animation GL avec des requins, des dauphins et des baleines. Les mouvements de nage sont magnifiques. Initialement écrit par Mark Kilgard (porté par Eric Lassauge pour xlock)."
#: hacks/config/atlantis.xml.h:16
msgid "Whale Speed"
#: hacks/config/atlantis.xml.h:17 hacks/config/atunnel.xml.h:10
#: hacks/config/blinkbox.xml.h:9 hacks/config/blocktube.xml.h:13
-#: hacks/config/boxed.xml.h:8 hacks/config/cage.xml.h:8
-#: hacks/config/cubestorm.xml.h:14 hacks/config/dangerball.xml.h:11
-#: hacks/config/extrusion.xml.h:19 hacks/config/flipflop.xml.h:8
-#: hacks/config/flyingtoasters.xml.h:14 hacks/config/gears.xml.h:11
-#: hacks/config/glblur.xml.h:20 hacks/config/glforestfire.xml.h:20
-#: hacks/config/glknots.xml.h:23 hacks/config/glplanet.xml.h:11
-#: hacks/config/glsnake.xml.h:15 hacks/config/gltext.xml.h:18
-#: hacks/config/jigglypuff.xml.h:25 hacks/config/lament.xml.h:9
-#: hacks/config/lavalite.xml.h:32 hacks/config/menger.xml.h:21
-#: hacks/config/mirrorblob.xml.h:24 hacks/config/moebius.xml.h:11
-#: hacks/config/molecule.xml.h:26 hacks/config/pulsar.xml.h:20
+#: hacks/config/cage.xml.h:8 hacks/config/cubestorm.xml.h:14
+#: hacks/config/dangerball.xml.h:11 hacks/config/extrusion.xml.h:19
+#: hacks/config/flipflop.xml.h:8 hacks/config/flyingtoasters.xml.h:14
+#: hacks/config/gears.xml.h:11 hacks/config/glblur.xml.h:20
+#: hacks/config/glforestfire.xml.h:20 hacks/config/glknots.xml.h:23
+#: hacks/config/glplanet.xml.h:11 hacks/config/glsnake.xml.h:15
+#: hacks/config/gltext.xml.h:18 hacks/config/jigglypuff.xml.h:25
+#: hacks/config/lament.xml.h:9 hacks/config/lavalite.xml.h:32
+#: hacks/config/menger.xml.h:21 hacks/config/mirrorblob.xml.h:24
+#: hacks/config/moebius.xml.h:11 hacks/config/molecule.xml.h:26
+#: hacks/config/polyhedra.xml.h:173 hacks/config/pulsar.xml.h:20
#: hacks/config/sballs.xml.h:18 hacks/config/sierpinski3d.xml.h:12
#: hacks/config/speedmine.xml.h:18 hacks/config/spheremonics.xml.h:26
#: hacks/config/sproingies.xml.h:10 hacks/config/stairs.xml.h:7
#: hacks/config/spiral.xml.h:4 hacks/config/squiral.xml.h:6
#: hacks/config/superquadrics.xml.h:5 hacks/config/t3d.xml.h:7
#: hacks/config/twang.xml.h:5 hacks/config/wander.xml.h:8
+#: hacks/config/xmountains.xml.h:17
msgid "High"
msgstr "Haut(e)"
"tight orbit around each other, to be interrupted later by a third, or by the "
"edge of the screen. It looks quite chaotic. Written by Jamie Zawinski, based "
"on Lisp code by John Pezaris."
-msgstr ""
-"Comme qix, il utilise un modèle de mouvement simple pour générer de nombreux "
-"modes d'affichage différents. Les points de contrôle s'attirent jusqu'à une "
-"certaine distance, puis commencent à se repousser. Le rapport d'attraction/"
-"répulsion est proportionnel à la distance entre deux particules, à l'instar "
-"des forces nucléaires fortes et faibles. Il est particulièrement intéressant "
-"de regarder ce hack simplement sous la forme de balles qui rebondissent, car "
-"leurs mouvements et leurs interactions sont très étranges. Il arrive parfois "
-"que deux balles entrent en orbite l'une avec l'autre, avant d'être "
-"interrompues par une troisième ou par le bord de l'écran. L'ensemble est "
-"assez chaotique. Écrit par Jamie Zawinski, sur la base d'un code Lisp de "
-"John Pezaris."
+msgstr "Comme qix, il utilise un modèle de mouvement simple pour générer de nombreux modes d'affichage différents. Les points de contrôle s'attirent jusqu'à une certaine distance, puis commencent à se repousser. Le rapport d'attraction/répulsion est proportionnel à la distance entre deux particules, à l'instar des forces nucléaires fortes et faibles. Il est particulièrement intéressant de regarder ce hack simplement sous la forme de balles qui rebondissent, car leurs mouvements et leurs interactions sont très étranges. Il arrive parfois que deux balles entrent en orbite l'une avec l'autre, avant d'être interrompues par une troisième ou par le bord de l'écran. L'ensemble est assez chaotique. Écrit par Jamie Zawinski, sur la base d'un code Lisp de John Pezaris."
#: hacks/config/attraction.xml.h:15 hacks/config/deluxe.xml.h:5
#: hacks/config/lmorph.xml.h:7 hacks/config/pedal.xml.h:5
msgid "Polygons"
msgstr "Polygones"
-#: hacks/config/attraction.xml.h:23 hacks/config/spotlight.xml.h:3
-#: hacks/config/xplanet.xml.h:55
+#: hacks/config/attraction.xml.h:23 hacks/config/fuzzyflakes.xml.h:12
+#: hacks/config/spotlight.xml.h:3 hacks/config/xplanet.xml.h:55
msgid "Radius"
msgstr "Rayon"
"Draws an animation of a textured tunnel in GL. Requires OpenGL, and a "
"machine with fast hardware support for texture maps. Written by Eric "
"Lassauge and Roman Podobedov."
-msgstr ""
-"Dessine une animation d'un tunnel texturé en 3D. Nécessite OpenGL et une "
-"machine avec un support matériel puissant pour les textures. Écrit par Eric "
-"Lassauge <lassauge@free.fr> et Roman Podobedov."
+msgstr "Dessine une animation d'un tunnel texturé en 3D. Nécessite OpenGL et une machine avec un support matériel puissant pour les textures. Écrit par Eric Lassauge <lassauge@users.sourceforge.net> et Roman Podobedov."
#: hacks/config/atunnel.xml.h:4 hacks/config/distort.xml.h:9
#: hacks/config/glforestfire.xml.h:10 hacks/config/lament.xml.h:4
"Draws a simulation of flying space-combat robots (cleverly disguised as "
"colored circles) doing battle in front of a moving star field. Written by "
"Jonathan Lin."
-msgstr ""
-"Dessine une simulation de robots de combat volants (ingénieusement déguisés "
-"en cercles colorés) en guerre sur un fond de champ stellaire animé. Écrit "
-"par Jonathan Lin."
+msgstr "Dessine une simulation de robots de combat volants (ingénieusement déguisés en cercles colorés) en guerre sur un fond de champ stellaire animé. Écrit par Jonathan Lin."
#: hacks/config/blaster.xml.h:5 hacks/config/penetrate.xml.h:4
msgid "Lasers"
"dissolve into static and then reconstitute itself, but rotated. You can "
"provide the image to use, as an XBM or XPM file, or tell it to grab a screen "
"image and rotate that."
-msgstr ""
-"Le mode Rotation Bitmap fait pivoter à plusieurs reprises un bitmap de 90° à "
-"l'aide d'opérations logiques: le bitmap est divisé en quadrants, qui "
-"pivotent dans le sens horaire. La même opération est répétée avec des "
-"quadrants progressivement plus petits, à ceci près que tous les sous-"
-"quadrants d'une certaine taille pivotent parallèlement. Écrit par Jamie "
-"Zawinski sur la base d'un super code SmallTalk trouvé dans Byte Magazine en "
-"1981. Lorsque vous la regardez, l'image semble se dissoudre en parasites "
-"puis se reconstituer avec une rotation. Vous pouvez fournir l'image à "
-"utiliser, au format XBM ou XPM, ou effectuer une capture d'écran et la faire "
-"pivoter."
+msgstr "Le mode Rotation Bitmap fait pivoter à plusieurs reprises un bitmap de 90° à l'aide d'opérations logiques: le bitmap est divisé en quadrants, qui pivotent dans le sens horaire. La même opération est répétée avec des quadrants progressivement plus petits, à ceci près que tous les sous-quadrants d'une certaine taille pivotent parallèlement. Écrit par Jamie Zawinski sur la base d'un super code SmallTalk trouvé dans Byte Magazine en 1981. Lorsque vous la regardez, l'image semble se dissoudre en parasites puis se reconstituer avec une rotation. Vous pouvez fournir l'image à utiliser, au format XBM ou XPM, ou effectuer une capture d'écran et la faire pivoter."
#: hacks/config/blocktube.xml.h:1
msgid "BlockTube"
msgid ""
"This draws what looks like a spinning, deforming balloon with varying-sized "
"spots painted on its invisible surface. Written by Jeremie Petit."
-msgstr ""
-"Dessine une sorte de ballon qui tournoie et se déforme. Des taches de taille "
-"variable sont peintes sur sa surface invisible. Écrit par Jeremie Petit."
+msgstr "Dessine une sorte de ballon qui tournoie et se déforme. Des taches de taille variable sont peintes sur sa surface invisible. Écrit par Jeremie Petit."
#: hacks/config/bouncingcow.xml.h:1
msgid "A Cow. A Trampoline. Together, they fight crime. By Jamie Zawinski."
-msgstr ""
-"Une vache. Un trampoline. Ensemble ils combattent le crime. Écrit par Jamie "
-"Zawinski."
+msgstr "Une vache. Un trampoline. Ensemble ils combattent le crime. Écrit par Jamie Zawinski."
#: hacks/config/bouncingcow.xml.h:2 hacks/config/boxed.xml.h:1
#: hacks/config/cubestorm.xml.h:1 hacks/config/flyingtoasters.xml.h:3
#: hacks/config/fontglide.xml.h:1 hacks/config/gears.xml.h:1
#: hacks/config/gflux.xml.h:1 hacks/config/glknots.xml.h:1
#: hacks/config/glmatrix.xml.h:1 hacks/config/jigglypuff.xml.h:1
-#: hacks/config/pyro.xml.h:1 hacks/config/rd-bomb.xml.h:6
-#: hacks/config/rocks.xml.h:1 hacks/config/starwars.xml.h:1
-#: hacks/config/wormhole.xml.h:1 hacks/config/xfishtank.xml.h:1
+#: hacks/config/polyhedra.xml.h:3 hacks/config/pyro.xml.h:1
+#: hacks/config/rd-bomb.xml.h:6 hacks/config/rocks.xml.h:1
+#: hacks/config/starwars.xml.h:1 hacks/config/wormhole.xml.h:1
+#: hacks/config/xfishtank.xml.h:1
msgid "Animation Speed"
msgstr "Vitesse d'animation"
msgid ""
"Draws a box full of 3D bouncing balls that explode. Written by Sander van "
"Grieken."
-msgstr ""
-"Dessine une boîte remplie de balles 3D qui explosent. Écrit par Sander van "
-"Grieken."
+msgstr "Dessine une boîte remplie de balles 3D qui explosent. Écrit par Sander van Grieken."
#: hacks/config/braid.xml.h:1
msgid "Braid"
msgid ""
"Draws random color-cycling inter-braided concentric circles. Written by John "
"Neil."
-msgstr ""
-"Dessine des cercles concentriques aléatoires entrelacés, avec des cycles de "
-"couleurs. Écrit par John Neil."
+msgstr "Dessine des cercles concentriques aléatoires entrelacés, avec des cycles de couleurs. Écrit par John Neil."
#: hacks/config/braid.xml.h:3 hacks/config/bsod.xml.h:9
#: hacks/config/ccurve.xml.h:7 hacks/config/coral.xml.h:6
#: hacks/config/mismunch.xml.h:1 hacks/config/moire.xml.h:3
#: hacks/config/molecule.xml.h:9 hacks/config/munch.xml.h:2
#: hacks/config/nerverot.xml.h:8 hacks/config/pedal.xml.h:3
-#: hacks/config/penrose.xml.h:5 hacks/config/polyominoes.xml.h:1
-#: hacks/config/rorschach.xml.h:3 hacks/config/rotzoomer.xml.h:5
-#: hacks/config/shadebobs.xml.h:2 hacks/config/sierpinski3d.xml.h:1
-#: hacks/config/spheremonics.xml.h:4 hacks/config/starfish.xml.h:2
-#: hacks/config/vidwhacker.xml.h:3 hacks/config/wander.xml.h:7
-#: hacks/config/xspirograph.xml.h:3
+#: hacks/config/penrose.xml.h:5 hacks/config/polyhedra.xml.h:17
+#: hacks/config/polyominoes.xml.h:1 hacks/config/rorschach.xml.h:3
+#: hacks/config/rotzoomer.xml.h:5 hacks/config/shadebobs.xml.h:2
+#: hacks/config/sierpinski3d.xml.h:1 hacks/config/spheremonics.xml.h:4
+#: hacks/config/starfish.xml.h:2 hacks/config/vidwhacker.xml.h:3
+#: hacks/config/wander.xml.h:7 hacks/config/xspirograph.xml.h:3
msgid "Duration"
msgstr "Durée"
"BSOD stands for ``Blue Screen of Death.'' The finest in personal computer "
"emulation, this hack simulates popular screen savers from a number of less "
"robust operating systems. Written by Jamie Zawinski."
-msgstr ""
-"BSOD signifie «Blue Screen of Death» (écran bleu de la mort). Fine fleur de "
-"l'émulation PC, ce hack simule des économiseurs d'écran de plusieurs "
-"systèmes d'exploitation moins puissants. Écrit par Jamie Zawinski."
+msgstr "BSOD signifie «Blue Screen of Death» (écran bleu de la mort). Fine fleur de l'émulation PC, ce hack simule des économiseurs d'écran de plusieurs systèmes d'exploitation moins puissants. Écrit par Jamie Zawinski."
#: hacks/config/bsod.xml.h:10
msgid "HPUX"
msgstr "Linux"
#: hacks/config/bsod.xml.h:13
+msgid "MS-DOS"
+msgstr "M$-DOS"
+
+#: hacks/config/bsod.xml.h:14
msgid "Mac Bomb"
msgstr "Bombe Mac"
-#: hacks/config/bsod.xml.h:14
+#: hacks/config/bsod.xml.h:15
msgid "MacOS X"
msgstr "MacOS X"
-#: hacks/config/bsod.xml.h:15
+#: hacks/config/bsod.xml.h:16
msgid "MacsBug"
msgstr "Bogue Mac"
-#: hacks/config/bsod.xml.h:16
+#: hacks/config/bsod.xml.h:17
msgid "NCD X Terminal"
msgstr "Terminal NCD X"
-#: hacks/config/bsod.xml.h:17
+#: hacks/config/bsod.xml.h:18
msgid "OS/390"
msgstr "OS/390"
-#: hacks/config/bsod.xml.h:18
+#: hacks/config/bsod.xml.h:19
msgid "SCO"
msgstr "SCO"
-#: hacks/config/bsod.xml.h:19
+#: hacks/config/bsod.xml.h:20
msgid "Sad Mac"
msgstr "Mac Triste"
-#: hacks/config/bsod.xml.h:20
+#: hacks/config/bsod.xml.h:21
msgid "Solaris"
msgstr "Solaris"
-#: hacks/config/bsod.xml.h:21
+#: hacks/config/bsod.xml.h:22
msgid "Sparc Linux"
msgstr "Sparc Linux"
-#: hacks/config/bsod.xml.h:22
+#: hacks/config/bsod.xml.h:23
msgid "VMS"
msgstr "VMS"
-#: hacks/config/bsod.xml.h:23
+#: hacks/config/bsod.xml.h:24
msgid "Windows 2000"
msgstr "Windows 2000"
-#: hacks/config/bsod.xml.h:24
+#: hacks/config/bsod.xml.h:25
msgid "Windows 3.1"
msgstr "Windows 3.1"
-#: hacks/config/bsod.xml.h:25
+#: hacks/config/bsod.xml.h:26
msgid "Windows NT"
msgstr "Windows NT"
msgid ""
"Draws a stream of rising, undulating 3D bubbles, rising toward the top of "
"the screen, with nice specular reflections. Written by Richard Jones."
-msgstr ""
-"Dessine un flux de bulles 3D ondulantes, qui montent vers le haut de "
-"l'écran, avec de belles réflexions spéculaires. Écrit par Richard Jones."
+msgstr "Dessine un flux de bulles 3D ondulantes, qui montent vers le haut de l'écran, avec de belles réflexions spéculaires. Écrit par Richard Jones."
#: hacks/config/bubbles.xml.h:1 hacks/config/xfishtank.xml.h:2
msgid "Bubbles"
"This simulates the kind of bubble formation that happens when water boils:"
"small bubbles appear, and as they get closer to each other, they combine to "
"form larger bubbles, which eventually pop. Written by James Macnicol."
-msgstr ""
-"Simule le type de formation de bulles qui se produit lorsque de l'eau entre "
-"en ébullition: de petites bulles apparaissent et, lorsqu'elles se "
-"rapprochent, elles se combinent pour former de plus grandes bulles, qui "
-"finissent par éclater. Écrit par James Macnicol."
+msgstr "Simule le type de formation de bulles qui se produit lorsque de l'eau entre en ébullition: de petites bulles apparaissent et, lorsqu'elles se rapprochent, elles se combinent pour former de plus grandes bulles, qui finissent par éclater. Écrit par James Macnicol."
#: hacks/config/bumps.xml.h:1
msgid ""
"A bit like `Spotlight', except that instead of merely exposing part of your "
"desktop, it creates a bump map from it. Basically, it 3D-izes a roaming "
"section of your desktop, based on color intensity. Written by Shane Smit."
-msgstr ""
-"Un peu comme «Faisceau lumineux», à ceci près qu'au lieu d'exposer "
-"simplement une partie du bureau, il en crée un placage de relief. En fait, "
-"il met en 3 dimensions une section variable du bureau, en fonction de "
-"l'intensité des couleurs. Écrit par Shane Smit."
+msgstr "Un peu comme «Faisceau lumineux», à ceci près qu'au lieu d'exposer simplement une partie du bureau, il en crée un placage de relief. En fait, il met en 3 dimensions une section variable du bureau, en fonction de l'intensité des couleurs. Écrit par Shane Smit."
#: hacks/config/bumps.xml.h:2
msgid "Bumps"
msgid ""
"This draws Escher's ``Impossible Cage,'' a 3d analog of a moebius strip, and "
"rotates it in three dimensions. Written by Marcelo Vianna."
-msgstr ""
-"Dessine la «Cage impossible» d'Escher, une analogie en 3D d'un ruban de "
-"Moebius, et la fait pivoter en 3 dimensions. Écrit par Marcelo Vianna."
+msgstr "Dessine la «Cage impossible» d'Escher, une analogie en 3D d'un ruban de Moebius, et la fait pivoter en 3 dimensions. Écrit par Marcelo Vianna."
#: hacks/config/ccurve.xml.h:1
msgid "0 seconds"
msgstr "1 minute"
#: hacks/config/ccurve.xml.h:3 hacks/config/epicycle.xml.h:2
+#: hacks/config/polyhedra.xml.h:1
msgid "1 second"
msgstr "1 seconde"
msgid "C Curve"
msgstr "Courbe C"
-#: hacks/config/ccurve.xml.h:5
+#: hacks/config/ccurve.xml.h:5 hacks/config/fuzzyflakes.xml.h:3
msgid "Delay"
msgstr "Délai"
msgid ""
"Generates self-similar linear fractals, including the classic ``C Curve.'' "
"Written by Rick Campbell."
-msgstr ""
-"Génère des fractales linéaires auto-similaires, notamment la fameuse «courbe "
-"C». Écrit par Rick Campbell."
+msgstr "Génère des fractales linéaires auto-similaires, notamment la fameuse «courbe C». Écrit par Rick Campbell."
#: hacks/config/circuit.xml.h:1
msgid "Animates a number of 3D electronic components. Written by Ben Buxton."
msgstr "Boussole"
#: hacks/config/compass.xml.h:2 hacks/config/deluxe.xml.h:3
-#: hacks/config/fontglide.xml.h:3 hacks/config/interference.xml.h:6
-#: hacks/config/kumppa.xml.h:2 hacks/config/nerverot.xml.h:6
-#: hacks/config/piecewise.xml.h:3 hacks/config/pipes.xml.h:4
+#: hacks/config/fontglide.xml.h:3 hacks/config/fuzzyflakes.xml.h:4
+#: hacks/config/interference.xml.h:6 hacks/config/kumppa.xml.h:2
+#: hacks/config/nerverot.xml.h:6 hacks/config/piecewise.xml.h:3
+#: hacks/config/pipes.xml.h:4
msgid "Double Buffer"
msgstr "Double tampon"
msgid ""
"This draws a compass, with all elements spinning about randomly, for that "
"``lost and nauseous'' feeling. Written by Jamie Zawinski."
-msgstr ""
-"Dessine une boussole, dont tous les éléments tournent de manière aléatoire, "
-"pour obtenir ce sentiment de «mal de mer». Écrit par Jamie Zawinski."
+msgstr "Dessine une boussole, dont tous les éléments tournent de manière aléatoire, pour obtenir ce sentiment de «mal de mer». Écrit par Jamie Zawinski."
#: hacks/config/coral.xml.h:1 hacks/config/deco.xml.h:1
#: hacks/config/helix.xml.h:1 hacks/config/imsmap.xml.h:1
msgid ""
"Draws a system of self-organizing lines. It starts out as random squiggles, "
"but after a few iterations, order begins to appear. Written by Martin Pool."
-msgstr ""
-"Dessine un système de lignes auto-organisées. Elles commencent sous la forme "
-"de gribouillis aléatoires, mais, après quelques itérations, l'ordre commence "
-"à apparaître. Écrit par Martin Pool."
+msgstr "Dessine un système de lignes auto-organisées. Elles commencent sous la forme de gribouillis aléatoires, mais, après quelques itérations, l'ordre commence à apparaître. Écrit par Martin Pool."
#: hacks/config/crystal.xml.h:1
msgid "Center on Screen"
msgid ""
"Moving polygons, similar to a kaleidescope (more like a kaleidescope than "
"the hack called `kaleid,' actually.) This one by Jouk Jansen."
-msgstr ""
-"Polygones animés, semblables à un kaléidoscope (plus semblables à un "
-"kaléïdoscope que le hack «kaleid», en fait.) Par Jouk Jansen."
+msgstr "Polygones animés, semblables à un kaléidoscope (plus semblables à un kaléïdoscope que le hack «kaleid», en fait.) Par Jouk Jansen."
#: hacks/config/crystal.xml.h:14
msgid "Vertical Symmetries"
#: hacks/config/cubenetic.xml.h:6 hacks/config/glblur.xml.h:3
#: hacks/config/glknots.xml.h:2 hacks/config/gltext.xml.h:2
#: hacks/config/lavalite.xml.h:7 hacks/config/menger.xml.h:1
-#: hacks/config/molecule.xml.h:4 hacks/config/spheremonics.xml.h:1
+#: hacks/config/molecule.xml.h:4 hacks/config/polyhedra.xml.h:16
+#: hacks/config/spheremonics.xml.h:1
msgid "Don't Rotate"
msgstr "Ne pas pivoter"
#: hacks/config/cubenetic.xml.h:14 hacks/config/glblur.xml.h:6
#: hacks/config/glknots.xml.h:8 hacks/config/gltext.xml.h:5
#: hacks/config/lavalite.xml.h:19 hacks/config/menger.xml.h:7
-#: hacks/config/molecule.xml.h:14 hacks/config/spheremonics.xml.h:10
+#: hacks/config/molecule.xml.h:14 hacks/config/polyhedra.xml.h:110
+#: hacks/config/spheremonics.xml.h:10
msgid "Rotate around X and Y axes"
msgstr "Rotation autour des axes X et Y"
#: hacks/config/cubenetic.xml.h:15 hacks/config/glblur.xml.h:7
#: hacks/config/glknots.xml.h:9 hacks/config/gltext.xml.h:6
#: hacks/config/lavalite.xml.h:20 hacks/config/menger.xml.h:8
-#: hacks/config/molecule.xml.h:15 hacks/config/spheremonics.xml.h:11
+#: hacks/config/molecule.xml.h:15 hacks/config/polyhedra.xml.h:111
+#: hacks/config/spheremonics.xml.h:11
msgid "Rotate around X and Z axes"
msgstr "Rotation autour des axes X et Z"
#: hacks/config/cubenetic.xml.h:16 hacks/config/glblur.xml.h:8
#: hacks/config/glknots.xml.h:10 hacks/config/gltext.xml.h:7
#: hacks/config/lavalite.xml.h:21 hacks/config/menger.xml.h:9
-#: hacks/config/molecule.xml.h:16 hacks/config/spheremonics.xml.h:12
+#: hacks/config/molecule.xml.h:16 hacks/config/polyhedra.xml.h:112
+#: hacks/config/spheremonics.xml.h:12
msgid "Rotate around X axis"
msgstr "Rotation autour de l'axe X"
#: hacks/config/cubenetic.xml.h:17 hacks/config/glblur.xml.h:9
#: hacks/config/glknots.xml.h:11 hacks/config/gltext.xml.h:8
#: hacks/config/lavalite.xml.h:22 hacks/config/menger.xml.h:10
-#: hacks/config/molecule.xml.h:17 hacks/config/spheremonics.xml.h:13
+#: hacks/config/molecule.xml.h:17 hacks/config/polyhedra.xml.h:113
+#: hacks/config/spheremonics.xml.h:13
msgid "Rotate around Y and Z axes"
msgstr "Rotation autour des axes Y et Z"
#: hacks/config/cubenetic.xml.h:18 hacks/config/glblur.xml.h:10
#: hacks/config/glknots.xml.h:12 hacks/config/gltext.xml.h:9
#: hacks/config/lavalite.xml.h:23 hacks/config/menger.xml.h:11
-#: hacks/config/molecule.xml.h:18 hacks/config/spheremonics.xml.h:14
+#: hacks/config/molecule.xml.h:18 hacks/config/polyhedra.xml.h:114
+#: hacks/config/spheremonics.xml.h:14
msgid "Rotate around Y axis"
msgstr "Rotation autour de l'axe Y"
#: hacks/config/cubenetic.xml.h:19 hacks/config/glblur.xml.h:11
#: hacks/config/glknots.xml.h:13 hacks/config/gltext.xml.h:10
#: hacks/config/lavalite.xml.h:24 hacks/config/menger.xml.h:12
-#: hacks/config/molecule.xml.h:19 hacks/config/spheremonics.xml.h:15
+#: hacks/config/molecule.xml.h:19 hacks/config/polyhedra.xml.h:115
+#: hacks/config/spheremonics.xml.h:15
msgid "Rotate around Z axis"
msgstr "Rotation autour de l'axe Z"
#: hacks/config/cubenetic.xml.h:20 hacks/config/glblur.xml.h:12
#: hacks/config/glknots.xml.h:14 hacks/config/gltext.xml.h:11
#: hacks/config/lavalite.xml.h:25 hacks/config/menger.xml.h:13
-#: hacks/config/molecule.xml.h:20 hacks/config/spheremonics.xml.h:16
+#: hacks/config/molecule.xml.h:20 hacks/config/polyhedra.xml.h:116
+#: hacks/config/spheremonics.xml.h:16
msgid "Rotate around all three axes"
msgstr "Rotation autour des trois axes"
#: hacks/config/glblur.xml.h:19 hacks/config/glforestfire.xml.h:19
#: hacks/config/glknots.xml.h:22 hacks/config/gltext.xml.h:17
#: hacks/config/lavalite.xml.h:31 hacks/config/menger.xml.h:20
-#: hacks/config/molecule.xml.h:25 hacks/config/spheremonics.xml.h:25
-#: hacks/config/wander.xml.h:15
+#: hacks/config/molecule.xml.h:25 hacks/config/polyhedra.xml.h:172
+#: hacks/config/spheremonics.xml.h:25 hacks/config/wander.xml.h:15
msgid "Wander"
msgstr "Déplacement"
msgstr ""
#: hacks/config/cubestorm.xml.h:5 hacks/config/fontglide.xml.h:9
-#: hacks/config/glknots.xml.h:6
+#: hacks/config/glknots.xml.h:6 hacks/config/polyhedra.xml.h:85
msgid "Motion Speed"
msgstr "Vitesse de déplacement"
"was by Stephen Linhart; then Ozymandias G. Desiderata wrote a Java applet "
"clone. That clone was discovered by Jamie Zawinski, and ported to C for "
"inclusion here."
-msgstr ""
-"Un hack similaire à «greynetic», en moins frénétique. La première mise en "
-"oeuvre était par Stephen Linhart; ensuite, Ozymandias G. Desiderata a écrit "
-"un clone de l'applet Java. Il a été découvert par Jamie Zawinski et porté "
-"sur C pour être inclus ici."
+msgstr "Un hack similaire à «greynetic», en moins frénétique. La première mise en oeuvre était par Stephen Linhart; ensuite, Ozymandias G. Desiderata a écrit un clone de l'applet Java. Il a été découvert par Jamie Zawinski et porté sur C pour être inclus ici."
#: hacks/config/cynosure.xml.h:2
msgid "Cynosure"
msgid ""
"Draws a ball that periodically extrudes many random spikes. Ouch! Written by "
"Jamie Zawinski."
-msgstr ""
-"Dessine une balle qui se hérisse régulièrement de nombreux picots "
-"aléatoires. Ouille ! Écrit par Jamie Zawinski."
+msgstr "Dessine une balle qui se hérisse régulièrement de nombreux picots aléatoires. Ouille ! Écrit par Jamie Zawinski."
#: hacks/config/dangerball.xml.h:7
msgid "Spike Count"
"best if there's something colorful visible. Warning, if the effect continues "
"after the screen saver is off, seek medical attention. Written by David "
"Wald, Vivek Khera, Jamie Zawinski, and Vince Levey."
-msgstr ""
-"Fait fondre une image. Vous avez certainement déjà vu cet effet, mais aucun "
-"programme d'économiseurs d'écran ne pourrait s'en passer. Il fonctionne "
-"particulièrement bien si l'image est colorée. Attention, si l'effet se "
-"poursuit après désactivation de l'économiseur, cherchez de l'aide. Écrit par "
-"David Wald et Vivek Khera."
+msgstr "Fait fondre une image. Vous avez certainement déjà vu cet effet, mais aucun programme d'économiseurs d'écran ne pourrait s'en passer. Il fonctionne particulièrement bien si l'image est colorée. Attention, si l'effet se poursuit après désactivation de l'économiseur, cherchez de l'aide. Écrit par David Wald et Vivek Khera."
#: hacks/config/deco.xml.h:3
msgid "Deco"
"Brady-Bunch-era rec-room wall paneling. (Raven says: ``this screensaver is "
"ugly enough to peel paint.'') Written by Jamie Zawinski, inspired by Java "
"code by Michael Bayne."
-msgstr ""
-"Subdivise et colore des rectangles de manière aléatoire. Ca ressemble à une "
-"sorte de papier peint seventies. (Raven a dit : «Cet économiseur d'écran est "
-"tellement moche qu'il fait craqueler la peinture.») Écrit par Jamie "
-"Zawinski, inspiré par un code Java de Michael Bayne."
+msgstr "Subdivise et colore des rectangles de manière aléatoire. Ca ressemble à une sorte de papier peint seventies. (Raven a dit : «Cet économiseur d'écran est tellement moche qu'il fait craqueler la peinture.») Écrit par Jamie Zawinski, inspiré par un code Java de Michael Bayne."
#: hacks/config/deco.xml.h:11 hacks/config/rd-bomb.xml.h:23
#: hacks/config/whirlygig.xml.h:20 hacks/config/xearth.xml.h:33
"better if it was faster, but as far as I can tell, there is no way to make "
"this be both: fast, and flicker-free. Yet another reason X sucks. Written by "
"Jamie Zawinski."
-msgstr ""
-"Dessine une séquence pulsatile d'étoiles, de cercles et de lignes. Il serait "
-"plus beau s'il était plus rapide, mais à ma connaissance, il est impossible "
-"de le rendre rapide sans scintillement. Encore un mauvais point pour X. "
-"Écrit par Jamie Zawinski."
+msgstr "Dessine une séquence pulsatile d'étoiles, de cercles et de lignes. Il serait plus beau s'il était plus rapide, mais à ma connaissance, il est impossible de le rendre rapide sans scintillement. Encore un mauvais point pour X. Écrit par Jamie Zawinski."
#: hacks/config/deluxe.xml.h:13
msgid "Transparency"
msgid ""
"A cellular automaton that starts with a random field, and organizes it into "
"stripes and spirals. Written by David Bagley."
-msgstr ""
-"Automate cellulaire qui commence par un champ aléatoire et s'organise en "
-"bandes et spirales. Écrit par David Bagley."
+msgstr "Automate cellulaire qui commence par un champ aléatoire et s'organise en bandes et spirales. Écrit par David Bagley."
#: hacks/config/demon.xml.h:3
msgid "Demon"
msgid ""
"More ``discrete map'' systems, including new variants of Hopalong and Julia, "
"and a few others. Written by Tim Auckland."
-msgstr ""
-"Autres systèmes de «cartes discrètes», comprenant de nouvelles variantes de "
-"Hopalong et Julia, ainsi que quelques autres. Écrit par Tim Auckland."
+msgstr "Autres systèmes de «cartes discrètes», comprenant de nouvelles variantes de Hopalong et Julia, ainsi que quelques autres. Écrit par Tim Auckland."
#: hacks/config/distort.xml.h:1
msgid "Black Hole"
"This hack grabs an image of the screen, and then lets a transparent lens "
"wander around the screen, magnifying whatever is underneath. Written by "
"Jonas Munsin."
-msgstr ""
-"Ce hack capture une image de l'écran et laisse une lentille transparente s'y "
-"promener en agrandissant ce qu'elle réfléchit. Écrit par Jonas Munsin."
+msgstr "Ce hack capture une image de l'écran et laisse une lentille transparente s'y promener en agrandissant ce qu'elle réfléchit. Écrit par Jonas Munsin."
#: hacks/config/distort.xml.h:16 hacks/config/moire.xml.h:12
#: hacks/config/rd-bomb.xml.h:21 hacks/config/ripples.xml.h:15
"How could one possibly describe this except as ``drifting recursive fractal "
"cosmic flames?'' Another fine hack from the Scott Draves collection of fine "
"hacks."
-msgstr ""
-"Comment décrire ceci sinon comme des «flammes cosmiques fractales récursives "
-"à la dérive ?» Un nouveau chouette hack de la collection de Scott Draves."
+msgstr "Comment décrire ceci sinon comme des «flammes cosmiques fractales récursives à la dérive ?» Un nouveau chouette hack de la collection de Scott Draves."
#: hacks/config/drift.xml.h:7
msgid "Lissojous Figures"
msgid ""
"Draws a simple model of an engine that floats around the screen. Written by "
"Ben Buxton and Ed Beroset."
-msgstr ""
-"Dessine un modèle simplifié de moteur qui flotte sur l'écran. Écrit par Ben "
-"Buxton et Ed Beroset."
+msgstr "Dessine un modèle simplifié de moteur qui flotte sur l'écran. Écrit par Ben Buxton et Ed Beroset."
#: hacks/config/engine.xml.h:7
msgid "Engine"
"That circle rotates around a point on the rim of another circle, and so on, "
"several times. These were the basis for the pre-heliocentric model of "
"planetary motion. Written by James Youngman."
-msgstr ""
-"Ce programme dessine le chemin tracé par un point sur le bord d'un cercle. "
-"Ce cercle pivote autour d'un point sur le pourtour d'un autre cercle, et "
-"ainsi de suite, plusieurs fois. Il s'agit de la base du modèle pré-"
-"héliocentrique de révolution planétaire. Écrit par James Youngman."
+msgstr "Ce programme dessine le chemin tracé par un point sur le bord d'un cercle. Ce cercle pivote autour d'un point sur le pourtour d'un autre cercle, et ainsi de suite, plusieurs fois. Il s'agit de la base du modèle pré-héliocentrique de révolution planétaire. Écrit par James Youngman."
#: hacks/config/eruption.xml.h:1
msgid "An exposive version of XFlame. By W.P. van Paassen."
msgid ""
"Simulates two dimensional Incompressible Inviscid Fluid Flow. Written by "
"Stephen Montgomery-Smith."
-msgstr ""
-"Simule un flux fluide non-visqueux incompressible bidimensionnel. Écrit par "
-"Stephen Montgomery-Smith."
+msgstr "Simule un flux fluide non-visqueux incompressible bidimensionnel. Écrit par Stephen Montgomery-Smith."
#: hacks/config/extrusion.xml.h:1
msgid ""
"Draws various rotating extruded shapes that twist around, lengthen, and turn "
"inside out. Created by David Konerding from the samples that come with the "
"GL Extrusion library by Linas Vepstas."
-msgstr ""
-"Dessine diverses formes extrudées en rotation qui se tournent, s'allongent "
-"et se retournent. Créé par David Konerding à partir des exemples fournis "
-"avec la bibliothèque GL Extrusion de Linas Vepstas."
+msgstr "Dessine diverses formes extrudées en rotation qui se tournent, s'allongent et se retournent. Créé par David Konerding à partir des exemples fournis avec la bibliothèque GL Extrusion de Linas Vepstas."
#: hacks/config/extrusion.xml.h:2
msgid "Extrusion"
msgid ""
"Draws what looks like a waving ribbon following a sinusoidal path. Written "
"by Bas van Gaalen and Charles Vidal."
-msgstr ""
-"Dessine une sorte de ruban ondulant suivant un chemin sinusoïdal. Écrit par "
-"Bas van Gaalen et Charles Vidal."
+msgstr "Dessine une sorte de ruban ondulant suivant un chemin sinusoïdal. Écrit par Bas van Gaalen et Charles Vidal."
#: hacks/config/fadeplot.xml.h:3
msgid "FadePlot"
"displays either the current system name and OS type, or a picture of "
"``Bob,'' but you can replace the text or the image with a command-line "
"option. Written by Charles Vidal and Jamie Zawinski."
-msgstr ""
-"Dessine un drapeau coloré qui ondule sur l'écran. Il peut contenir un texte "
-"et des images arbitraires. Par défaut, il affiche le nom système et le type "
-"de système d'exploitation en cours ou une photo de «Bob», mais vous pouvez "
-"remplacer le texte ou l'image à l'aide d'une option de ligne de commande. "
-"Écrit par Charles Vidal et Jamie Zawinski."
+msgstr "Dessine un drapeau coloré qui ondule sur l'écran. Il peut contenir un texte et des images arbitraires. Par défaut, il affiche le nom système et le type de système d'exploitation en cours ou une photo de «Bob», mais vous pouvez remplacer le texte ou l'image à l'aide d'une option de ligne de commande. Écrit par Charles Vidal et Jamie Zawinski."
#: hacks/config/flame.xml.h:1 hacks/config/jigsaw.xml.h:1
#: hacks/config/maze.xml.h:1 hacks/config/rotzoomer.xml.h:1
msgid ""
"Another series of strange attractors: a flowing series of points, making "
"strange rotational shapes. Written by Jeff Butterworth."
-msgstr ""
-"Une autre série d'attracteurs étranges : une série flottante de points, "
-"constituant d'étranges formes rotatives. Écrit par Jeff Butterworth."
+msgstr "Une autre série d'attracteurs étranges : une série flottante de points, constituant d'étranges formes rotatives. Écrit par Jeff Butterworth."
#: hacks/config/flow.xml.h:5
msgid "Flow"
msgid ""
"This draws fractal trees. Written by Peter Baumung. Everybody loves "
"fractals, right?"
+msgstr "Dessine des arbres fractals. Écrit par Peter Baumung. Tout le monde aime les fractales, n'est-ce pas ?"
+
+#: hacks/config/fuzzyflakes.xml.h:2
+msgid "Border Thickness"
+msgstr "Épaisseur de la bordure"
+
+#: hacks/config/fuzzyflakes.xml.h:5
+msgid ""
+"Falling pastel colored snowflake/flower shapes. Inspired by the credits of "
+"the anime \"Azumanga Daioh\". Written by Barry Dmytro."
+msgstr ""
+
+#: hacks/config/fuzzyflakes.xml.h:8
+msgid "FuzzyFlakes"
msgstr ""
-"Dessine des arbres fractals. Écrit par Peter Baumung. Tout le monde aime les "
-"fractales, n'est-ce pas ?"
+
+#: hacks/config/fuzzyflakes.xml.h:10 hacks/config/xspirograph.xml.h:4
+msgid "Layers"
+msgstr "Couches"
#: hacks/config/galaxy.xml.h:4
msgid "Galaxy"
"This draws spinning galaxies, which then collide and scatter their stars to "
"the, uh, four winds or something. Originally an Amiga program by Uli "
"Siegmund."
-msgstr ""
-"Dessine des galaxies tournoyantes, qui entrent en collision et dispersent "
-"leurs étoiles aux quatre vents (en quelque sorte). Initialement un programme "
-"Amiga d'Uli Siegmund."
+msgstr "Dessine des galaxies tournoyantes, qui entrent en collision et dispersent leurs étoiles aux quatre vents (en quelque sorte). Initialement un programme Amiga d'Uli Siegmund."
#: hacks/config/gears.xml.h:3
msgid "Gears"
"This draws sets of turning, interlocking gears, rotating in three "
"dimensions. Another GL hack, by Danny Sung, Brian Paul, Ed Mackey, and Jamie "
"Zawinski."
-msgstr ""
-"Dessine des engrenages qui s'emboîtent et pivotent en trois dimensions. Un "
-"autre hack GL de Danny Sung, Brian Paul, Ed Mackey et Jamie Zawinski."
+msgstr "Dessine des engrenages qui s'emboîtent et pivotent en trois dimensions. Un autre hack GL de Danny Sung, Brian Paul, Ed Mackey et Jamie Zawinski."
#: hacks/config/gears.xml.h:10
msgid "Three Gear System"
msgid ""
"Draws a rippling waves on a rotating wireframe grid, using GL. Written by "
"Josiah Pease."
-msgstr ""
-"Dessine des vagues ondulantes sur une grille en rotation en utilisant GL. "
-"Écrit par Josiah Pease."
+msgstr "Dessine des vagues ondulantes sur une grille en rotation en utilisant GL. Écrit par Josiah Pease."
#: hacks/config/gflux.xml.h:7
msgid "Flat Lighting"
msgid ""
"Draws an animation of sprinkling fire-like 3D triangles in a landscape "
"filled with trees. Requires OpenGL, and a machine with fast hardware support "
-"for texture maps. Written by Eric Lassauge <lassauge@free.fr>."
-msgstr ""
-"Dessine une animation d'un pseudo-feu avec des triangles 3D dans un paysage "
-"arboré. Nécessite OpenGL et une machine avec un support matériel puissant "
-"pour les textures. Écrit par Eric Lassauge <lassauge@free.fr>."
+"for texture maps. Written by Eric Lassauge <lassauge@users.sourceforge."
+"net>."
+msgstr "Dessine une animation d'un pseudo-feu avec des triangles 3D dans un paysage arboré. Nécessite OpenGL et une machine avec un support matériel puissant pour les textures. Écrit par Eric Lassauge <lassauge@users.sourceforge.net>."
#: hacks/config/glforestfire.xml.h:5 hacks/config/glmatrix.xml.h:9
msgid "Fog"
msgstr "Segmenté"
#: hacks/config/glknots.xml.h:18 hacks/config/lavalite.xml.h:28
+#: hacks/config/xmountains.xml.h:25
msgid "Smooth"
msgstr "Lisse"
"built-in image is a map of the earth (extracted from `xearth'), but you can "
"wrap any texture around the sphere, e.g., the planetary textures that come "
"with `ssystem'."
-msgstr ""
-"Dessine une planète qui rebondit dans l'espace. Écrit par David Konerding. "
-"L'image intégrée est un planisphère (extrait de «xearth»), mais vous pouvez "
-"entourer la sphère d'une texture quelconque, p. ex., les textures "
-"planétaires fournies avec «ssystem»."
+msgstr "Dessine une planète qui rebondit dans l'espace. Écrit par David Konerding. L'image intégrée est un planisphère (extrait de «xearth»), mais vous pouvez entourer la sphère d'une texture quelconque, p. ex., les textures planétaires fournies avec «ssystem»."
#: hacks/config/glplanet.xml.h:3
msgid "GLPlanet"
msgid ""
"Draws a simulation of the Rubik's Snake puzzle. Written by Jamie Wilkinson, "
"Andrew Bennetts, and Peter Aylett."
-msgstr ""
-"Dessine une simulation du serpent Rubik. Écrit par Jamie Wilkinson, Andrew "
-"Bennetts et Peter Aylett."
+msgstr "Dessine une simulation du serpent Rubik. Écrit par Jamie Wilkinson, Andrew Bennetts et Peter Aylett."
#: hacks/config/glsnake.xml.h:7
msgid "GlSnake"
msgid ""
"Displays a few lines of text spinning around in a solid 3D font. Written by "
"Jamie Zawinski."
-msgstr ""
-"Affiche quelques lignes de texte qui tournoient dans une police 3D unie. "
-"Écrit par Jamie Zawinski."
+msgstr "Affiche quelques lignes de texte qui tournoient dans une police 3D unie. Écrit par Jamie Zawinski."
#: hacks/config/gltext.xml.h:4
msgid "GLText"
"for this from a cool mouse pad I have, which achieves the same kind of "
"effect in real life by having several layers plastic with colored oil "
"between them. Written by Jamie Zawinski."
-msgstr ""
-"Dessine un ensemble de taches transparentes, animées, semblables à des "
-"amibes. Les taches changent de forme en se déplaçant sur l'écran et sont "
-"translucides, ce qui permet de voir les taches d'arrière-plan à travers "
-"celles d'avant-plan. Lorsqu'une tache passe au-dessus d'une autre, leurs "
-"couleurs fusionnent. Écrit par Jamie Zawinski. C'est un super tapis de "
-"souris qui m'en a donné l'idée. Il obtient le même type d'effet en étant "
-"composé de plusieurs couches de plastique séparées par de l'huile colorée. "
-"Écrit par Jamie Zawinski."
+msgstr "Dessine un ensemble de taches transparentes, animées, semblables à des amibes. Les taches changent de forme en se déplaçant sur l'écran et sont translucides, ce qui permet de voir les taches d'arrière-plan à travers celles d'avant-plan. Lorsqu'une tache passe au-dessus d'une autre, leurs couleurs fusionnent. Écrit par Jamie Zawinski. C'est un super tapis de souris qui m'en a donné l'idée. Il obtient le même type d'effet en étant composé de plusieurs couches de plastique séparées par de l'huile colorée. Écrit par Jamie Zawinski."
#: hacks/config/goop.xml.h:15
msgid "Transparent Blobs"
msgid ""
"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."
-msgstr ""
-"Ce programme crée une simple simulation orbitale. Si vous activez les "
-"traînées, il ressemble à une sorte de photographie de chambre à brouillard. "
-"Écrit par Greg Bowering."
+msgstr "Ce programme crée une simple simulation orbitale. Si vous activez les traînées, il ressemble à une sorte de photographie de chambre à brouillard. Écrit par Greg Bowering."
#: hacks/config/greynetic.xml.h:2
msgid "Greynetic"
#: hacks/config/greynetic.xml.h:5
msgid ""
"This draws random colored and stippled rectangles. Written by Jamie Zawinski."
-msgstr ""
-"Dessine des rectangles colorés et pointillés de manière aléatoire. Écrit par "
-"Jamie Zawinski."
+msgstr "Dessine des rectangles colorés et pointillés de manière aléatoire. Écrit par Jamie Zawinski."
#: hacks/config/halftone.xml.h:1
msgid "Delay (Large = low cpu load)"
"This draws trippy psychedelic circular patterns that hurt to look at. It can "
"also animate the control-points, but that takes a lot of CPU and bandwidth. "
"Written by Jamie Zawinski."
-msgstr ""
-"Dessine des motifs circulaires psychédéliques qui font mal aux yeux. Il peut "
-"aussi animer les points de contrôle, mais cette option utilise beaucoup de "
-"ressources processeur et de bande passante. Écrit par Jamie Zawinski."
+msgstr "Dessine des motifs circulaires psychédéliques qui font mal aux yeux. Il peut aussi animer les points de contrôle, mais cette option utilise beaucoup de ressources processeur et de bande passante. Écrit par Jamie Zawinski."
#: hacks/config/helix.xml.h:4
msgid "Helix"
msgid ""
"This draws lacy fractal patterns, based on iteration in the imaginary plane, "
"from a 1986 Scientific American article. Mostly written by Patrick Naughton."
-msgstr ""
-"Dessine des motifs fractals dentelés, basés sur une itération sur le plan "
-"imaginaire, d'un article scientifique américain de 1986. Principalement "
-"écrit par Patrick Naughton."
+msgstr "Dessine des motifs fractals dentelés, basés sur une itération sur le plan imaginaire, d'un article scientifique américain de 1986. Principalement écrit par Patrick Naughton."
#: hacks/config/hyperball.xml.h:1 hacks/config/hypercube.xml.h:1
msgid "Far"
"analog to the dodecahedron. Technically, it is a \"120 cell polytope.\" "
"Written by Joe Keane. See also the \"polytopes\" hack for a more general "
"version of this using OpenGL."
-msgstr ""
-"L'hyperballe est à l'hypercube ce que le dodécaèdre est au cube : il affiche "
-"une projection en 2D de la séquence d'objets 3D qui sont les projections de "
-"l'analogie 4D du dodécaèdre. Écrit par Joe Keane."
+msgstr "L'hyperballe est à l'hypercube ce que le dodécaèdre est au cube : il affiche une projection en 2D de la séquence d'objets 3D qui sont les projections de l'analogie 4D du dodécaèdre. Écrit par Joe Keane."
#: hacks/config/hyperball.xml.h:7 hacks/config/hypercube.xml.h:6
msgid "Near"
"brain will melt. Written by Joe Keane, Fritz Mueller, and Jamie Zawinski. "
"See also the \"polytopes\" hack for a more general version of this using "
"OpenGL."
-msgstr ""
-"Affiche des projections 2D de la séquence d'objets 3D qui sont les "
-"projections de l'analogie 4D du cube : un carré est composé de quatre "
-"lignes, chacune touchant les deux autres; un cube est composé de six "
-"carrés, chacun touchant les quatre autres et un hypercube est composé de "
-"huit cubes, chacun touchant les six autres. Pour visualiser la rotation "
-"plus facilement, il utilise une couleur différente pour les bords de chaque "
-"face. N'y réfléchissez pas trop longtemps, votre cerveau pourrait fondre. "
-"Écrit par Joe Keane, Fritz Mueller et Jamie Zawinski."
+msgstr "Affiche des projections 2D de la séquence d'objets 3D qui sont les projections de l'analogie 4D du cube : un carré est composé de quatre lignes, chacune touchant les deux autres; un cube est composé de six carrés, chacun touchant les quatre autres et un hypercube est composé de huit cubes, chacun touchant les six autres. Pour visualiser la rotation plus facilement, il utilise une couleur différente pour les bords de chaque face. N'y réfléchissez pas trop longtemps, votre cerveau pourrait fondre. Écrit par Joe Keane, Fritz Mueller et Jamie Zawinski."
#: hacks/config/hypertorus.xml.h:1 hacks/config/polytopes.xml.h:1
msgid "-4.0"
msgid ""
"This one draws spinning, colliding iterated-function-system images. Written "
"by Massimino Pascal."
-msgstr ""
-"Dessine des images de système de fonctions itérées, qui tournent et entrent "
-"en collision. Écrit par Massimino Pascal."
+msgstr "Dessine des images de système de fonctions itérées, qui tournent et entrent en collision. Écrit par Massimino Pascal."
#: hacks/config/imsmap.xml.h:3
msgid "Brightness Gradients"
"``brightness'' mode tends to yield cloudlike patterns, and the others tend "
"to generate images that look like heat-maps or CAT-scans. Written by Juergen "
"Nickelsen and Jamie Zawinski."
-msgstr ""
-"Génère des motifs nuageux aléatoires. Son apparence en mode monochrome et "
-"couleur est assez différente. L'idée de base consiste à prendre quatre "
-"points sur le bord de l'image et à leur attribuer une 'élévation' aléatoire. "
-"Ensuite, il trouve le point situé entre eux et lui attribue une valeur qui "
-"correspond à la moyenne des quatre autres, plus un petit décalage aléatoire. "
-"La coloration s'effectue alors en fonction de l'élévation. La sélection de "
-"couleur est basée sur l'association de l'élévation à la teinte, la "
-"saturation ou la luminosité, des valeurs aléatoires étant attribuées aux "
-"autres paramètres. Le mode ''luminosité'' tend à produire des motifs nuageux "
-"et les autres, à générer des images qui ressemblent à des cartes thermiques "
-"ou des tomodensitogrammes. Écrit par Juergen Nickelsen et Jamie Zawinski."
+msgstr "Génère des motifs nuageux aléatoires. Son apparence en mode monochrome et couleur est assez différente. L'idée de base consiste à prendre quatre points sur le bord de l'image et à leur attribuer une 'élévation' aléatoire. Ensuite, il trouve le point situé entre eux et lui attribue une valeur qui correspond à la moyenne des quatre autres, plus un petit décalage aléatoire. La coloration s'effectue alors en fonction de l'élévation. La sélection de couleur est basée sur l'association de l'élévation à la teinte, la saturation ou la luminosité, des valeurs aléatoires étant attribuées aux autres paramètres. Le mode ''luminosité'' tend à produire des motifs nuageux et les autres, à générer des images qui ressemblent à des cartes thermiques ou des tomodensitogrammes. Écrit par Juergen Nickelsen et Jamie Zawinski."
#: hacks/config/interference.xml.h:1
msgid "0"
"Another color-field hack, this one works by computing decaying sinusoidal "
"waves, and allowing them to interfere with each other as their origins move. "
"Written by Hannu Mallat."
-msgstr ""
-"Un autre hack basé sur des champs de couleur, qui fonctionne en calculant "
-"des vagues sinusoïdales qui se désintègrent et en leur permettant "
-"d'interagir à mesure du déplacement de leurs origines. Écrit par Hannu "
-"Mallat."
+msgstr "Un autre hack basé sur des champs de couleur, qui fonctionne en calculant des vagues sinusoïdales qui se désintègrent et en leur permettant d'interagir à mesure du déplacement de leurs origines. Écrit par Hannu Mallat."
#: hacks/config/interference.xml.h:9
msgid "Hue"
msgid "Spoooooky"
msgstr ""
-#: hacks/config/jigglypuff.xml.h:21 hacks/config/sballs.xml.h:16
+#: hacks/config/jigglypuff.xml.h:21 hacks/config/polyhedra.xml.h:155
+#: hacks/config/sballs.xml.h:16
msgid "Tetrahedron"
msgstr "Tétraèdre"
"I guess this is generally true...) When it is grabbing a video image, it is "
"sometimes pretty hard to guess what the image is going to look like once the "
"puzzle is solved. Written by Jamie Zawinski."
-msgstr ""
-"Capture l'écran, le découpe en pièces de puzzle, qu'il mélange, puis remet "
-"en ordre. Fonctionne particulièrement bien lorsque l'image capturée provient "
-"d'un signal vidéo externe et non de l'écran (en fait, je crois que c'est "
-"généralement le cas...). Lorsqu'il capture une image vidéo, il est parfois "
-"assez difficile de deviner l'apparence de l'image une fois le puzzle "
-"résolu. Écrit par Jamie Zawinski."
+msgstr "Capture l'écran, le découpe en pièces de puzzle, qu'il mélange, puis remet en ordre. Fonctionne particulièrement bien lorsque l'image capturée provient d'un signal vidéo externe et non de l'écran (en fait, je crois que c'est généralement le cas...). Lorsqu'il capture une image vidéo, il est parfois assez difficile de deviner l'apparence de l'image une fois le puzzle résolu. Écrit par Jamie Zawinski."
#: hacks/config/juggle.xml.h:1
msgid "Checkered Balls"
"interesting thing is that there is a small swinging dot passing in front of "
"the image, which indicates the control point from which the rest of the "
"image was generated. Written by Sean McCullough."
-msgstr ""
-"Dessine des explorations tournoyantes et animées (distinguez-vous déjà un "
-"motif ?) de la courbe de Julia. Vous avez probablement déjà vu des images "
-"statiques de cette forme fractale, mais c'est aussi très sympa en forme "
-"animée. L'élément intéressant est un petit point animé qui passe devant "
-"l'image et qui indique le point de contrôle à partir duquel le reste de "
-"l'image a été généré. Écrit par Sean McCullough."
+msgstr "Dessine des explorations tournoyantes et animées (distinguez-vous déjà un motif ?) de la courbe de Julia. Vous avez probablement déjà vu des images statiques de cette forme fractale, mais c'est aussi très sympa en forme animée. L'élément intéressant est un petit point animé qui passe devant l'image et qui indique le point de contrôle à partir duquel le reste de l'image a été généré. Écrit par Sean McCullough."
#: hacks/config/kaleidescope.xml.h:1
msgid ""
"motion of colored lines. This one is by Ron Tapia. The motion is nice, but I "
"think it needs more solids, or perhaps just brighter colors. More variations "
"in the rotational speed might help, too."
-msgstr ""
-"Un autre clone d'un ancien même, principalement constitué de mouvements "
-"rotatifs frénétiques de lignes colorées. Par Ron Tapia. Les mouvements sont "
-"bien, mais je pense qu'il devrait comporter plus de couleurs unies ou "
-"simplement des couleurs plus vives. Davantage de variations de la vitesse de "
-"rotation seraient aussi appréciables."
+msgstr "Un autre clone d'un ancien même, principalement constitué de mouvements rotatifs frénétiques de lignes colorées. Par Ron Tapia. Les mouvements sont bien, mais je pense qu'il devrait comporter plus de couleurs unies ou simplement des couleurs plus vives. Davantage de variations de la vitesse de rotation seraient aussi appréciables."
#: hacks/config/kaleidescope.xml.h:4
msgid "Kaleidescope"
msgid ""
"Spiraling, spinning, and very, very fast splashes of color rush toward the "
"screen. Written by Teemu Suutari."
-msgstr ""
-"Des taches de couleur très, très rapides foncent vers l'écran en tournoyant "
-"et en formant des spirales. Écrit par Teemu Suutari."
+msgstr "Des taches de couleur très, très rapides foncent vers l'écran en tournoyant et en formant des spirales. Écrit par Teemu Suutari."
#: hacks/config/lament.xml.h:1
msgid ""
"Animates a simulation of Lemarchand's Box, repeatedly solving itself. "
"Requires OpenGL, and a machine with fast hardware support for texture maps. "
"Warning: occasionally opens doors. Written by Jamie Zawinski."
-msgstr ""
-"Anime une simulation du cube de Lemarchand, qui se résout sans cesse. "
-"Nécessite OpenGL et une machine avec prise en charge matérielle rapide des "
-"mappes de texture. Attention : risque d'ouvrir des portes. Écrit par Jamie "
-"Zawinski."
+msgstr "Anime une simulation du cube de Lemarchand, qui se résout sans cesse. Nécessite OpenGL et une machine avec prise en charge matérielle rapide des mappes de texture. Attention : risque d'ouvrir des portes. Écrit par Jamie Zawinski."
#: hacks/config/lament.xml.h:3
msgid "Lament"
msgid ""
"Moving radiating lines, that look vaguely like scanning laser beams. Written "
"by Pascal Pensa. (Frankie say: relax.)"
-msgstr ""
-"Lignes de radiation animées, qui ressemblent vaguement à des faisceaux "
-"laser . Écrit par Pascal Pensa. (Frankie a dit : relax.)"
+msgstr "Lignes de radiation animées, qui ressemblent vaguement à des faisceaux laser . Écrit par Pascal Pensa. (Frankie a dit : relax.)"
-#: hacks/config/lavalite.xml.h:2
+#: hacks/config/lavalite.xml.h:2 hacks/config/xmountains.xml.h:2
msgid "10"
msgstr "10"
msgid ""
"This one draws crackling fractal lightning bolts. It's simple, direct, and "
"to the point. If only it had sound... Written by Keith Romberg."
-msgstr ""
-"Dessine des éclairs fractals. C'est simple, direct et sans fioritures. Si "
-"seulement il avait du son... Écrit par Keith Romberg."
+msgstr "Dessine des éclairs fractals. C'est simple, direct et sans fioritures. Si seulement il avait du son... Écrit par Keith Romberg."
#: hacks/config/lisa.xml.h:4
msgid "Lisa"
"This draws Lisajous loops, by Caleb Cullen. Remember that device they had "
"the Phantom Zone prisoners in during their trial in Superman? I think that "
"was one of these."
-msgstr ""
-"Trace des boucles de Lissajous, par Caleb Cullen. Vous vous souvenez de "
-"l'appareil des prisonniers de la zone fantôme pendant leur procès dans "
-"Superman ? Je crois que c'était quelque chose comme ça."
+msgstr "Trace des boucles de Lissajous, par Caleb Cullen. Vous vous souvenez de l'appareil des prisonniers de la zone fantôme pendant leur procès dans Superman ? Je crois que c'était quelque chose comme ça."
#: hacks/config/lissie.xml.h:1
msgid ""
"Another Lissajous figure. This one draws the progress of circular shapes "
"along a path. Written by Alexander Jolk."
-msgstr ""
-"Une autre figure de Lissajous. Elle trace la progression de formes "
-"circulaires le long d'un chemin. Écrit par Alexander Jolk."
+msgstr "Une autre figure de Lissajous. Elle trace la progression de formes circulaires le long d'un chemin. Écrit par Alexander Jolk."
#: hacks/config/lissie.xml.h:5
msgid "Lissie"
msgid ""
"This generates random spline-ish line drawings and morphs between them. "
"Written by Sverre H. Huseby and Glenn T. Lines."
-msgstr ""
-"Génère des dessins en trait aléatoires et crée des morphings. Écrit par "
-"Sverre H. Huseby et Glenn T. Lines."
+msgstr "Génère des dessins en trait aléatoires et crée des morphings. Écrit par Sverre H. Huseby et Glenn T. Lines."
#: hacks/config/loop.xml.h:3
msgid "Loop"
msgid ""
"This one produces loop-shaped colonies that spawn, age, and eventually die. "
"Written by David Bagley."
-msgstr ""
-"Produit des colonies en forme de boucles qui se reproduisent, vieillissent "
-"et meurent. Écrit par David Bagley."
+msgstr "Produit des colonies en forme de boucles qui se reproduisent, vieillissent et meurent. Écrit par David Bagley."
#: hacks/config/maze.xml.h:3
msgid "Backtracking Generator"
"This is the ancient X maze demo, modified to work with xscreensaver. It "
"generates a random maze, then solves it with visual feedback. Originally by "
"Jim Randell; modified by a cast of thousands."
-msgstr ""
-"Il s'agit de l'ancienne démo du labyrinthe X, modifiée pour fonctionner avec "
-"xscreensaver. Elle génère un labyrinthe aléatoire, puis le résout avec un "
-"feedback visuel. Initialement par Jim Randell; modifié par des milliers de "
-"gens."
+msgstr "Il s'agit de l'ancienne démo du labyrinthe X, modifiée pour fonctionner avec xscreensaver. Elle génère un labyrinthe aléatoire, puis le résout avec un feedback visuel. Initialement par Jim Randell; modifié par des milliers de gens."
#: hacks/config/menger.xml.h:6
msgid "Menger"
"This draws the three-dimensional variant of the recursive Menger Gasket, a "
"cube-based fractal object analagous to the Sierpinski Tetrahedron. Written "
"by Jamie Zawinski."
-msgstr ""
-"Dessine une variante tridimensionnelle du tamis récursif de Menger, un objet "
-"fractal cubique analogue au tétraèdre de Sierpinski. Écrit par Jamie "
-"Zawinski."
+msgstr "Dessine une variante tridimensionnelle du tamis récursif de Menger, un objet fractal cubique analogue au tétraèdre de Sierpinski. Écrit par Jamie Zawinski."
#: hacks/config/metaballs.xml.h:1
msgid "Big"
msgid ""
"Another M. C. Escher hack by Marcelo Vianna, this one draws ``Moebius Strip "
"II,'' a GL image of ants walking along the surface of a moebius strip."
-msgstr ""
-"Un autre hack de M. C. Escher par Marcelo Vianna. Trace le «ruban de Moebius "
-"II», une image GL de fourmis marchant sur la surface d'un ruban de Moebius."
+msgstr "Un autre hack de M. C. Escher par Marcelo Vianna. Trace le «ruban de Moebius II», une image GL de fourmis marchant sur la surface d'un ruban de Moebius."
#: hacks/config/moebius.xml.h:2
msgid "Draw Ants"
"this one is that the heart of the display algorithm can be expressed with "
"just a pair of loops and a handful of arithmetic, giving it a high ``display "
"hack metric''."
-msgstr ""
-"Trace de jolis motifs d'interférences circulaires. La plupart des cercles "
-"affichés ne sont pas rendus de manière explicite, mais s'affichent comme "
-"résultat d'interactions entre les autres pixels dessinés. Écrit par Jamie "
-"Zawinski, sur la base d'un code Java de Michael Bayne. Comme il l'a "
-"souligné, la beauté de ce hackréside dans le fait que le coeur de "
-"l'algorithme d'affichage peut être exprimé avec quelques boucles et "
-"opérations arithmétiques, ce qui lui assure une grande valeur esthétique."
+msgstr "Trace de jolis motifs d'interférences circulaires. La plupart des cercles affichés ne sont pas rendus de manière explicite, mais s'affichent comme résultat d'interactions entre les autres pixels dessinés. Écrit par Jamie Zawinski, sur la base d'un code Java de Michael Bayne. Comme il l'a souligné, la beauté de ce hackréside dans le fait que le coeur de l'algorithme d'affichage peut être exprimé avec quelques boucles et opérations arithmétiques, ce qui lui assure une grande valeur esthétique."
#: hacks/config/moire2.xml.h:1
msgid ""
"planes with various operations. The planes are moving independently of one "
"another, causing the interference lines to ``spray.'' Written by Jamie "
"Zawinski."
-msgstr ""
-"Un autre exemple de l'amusement qu'offrent les motifs d'interférences "
-"moirés; ce hack génère des champs de cercles ou ovales concentriques et "
-"associe les plans par différentes opérations. Les plans se déplacent "
-"indépendamment, ce qui entraîne un 'jaillissement' des lignes "
-"d'interférence. Écrit par Jamie Zawinski."
+msgstr "Un autre exemple de l'amusement qu'offrent les motifs d'interférences moirés; ce hack génère des champs de cercles ou ovales concentriques et associe les plans par différentes opérations. Les plans se déplacent indépendamment, ce qui entraîne un 'jaillissement' des lignes d'interférence. Écrit par Jamie Zawinski."
#: hacks/config/moire2.xml.h:4
msgid "Moire2"
"Draws several different representations of molecules. Some common molecules "
"are built in, and it can also read PDB (Protein Data Base) files as input. "
"Written by Jamie Zawinski."
-msgstr ""
-"Dessine différentes représentations de molécules. Certaines molécules "
-"courantes sont intégrées et le programme peut lire des fichiers PDB (banque "
-"protéique). Écrit par Jamie Zawinski."
+msgstr "Dessine différentes représentations de molécules. Certaines molécules courantes sont intégrées et le programme peut lire des fichiers PDB (banque protéique). Écrit par Jamie Zawinski."
#: hacks/config/molecule.xml.h:11
msgid "Label Atoms"
msgid ""
"Another 3d shape-changing GL hack, by Marcelo Vianna. It has the same shiny-"
"plastic feel as Superquadrics, as many computer-generated objects do..."
-msgstr ""
-"Un autre hack GL 3D à forme changeante, par Marcelo Vianna. Il a le même "
-"aspect plastique luisantque Superquadriques, comme beaucoup d'objets générés "
-"par ordinateur..."
+msgstr "Un autre hack GL 3D à forme changeante, par Marcelo Vianna. Il a le même aspect plastique luisantque Superquadriques, comme beaucoup d'objets générés par ordinateur..."
#: hacks/config/morph3d.xml.h:4
msgid "Morph3D"
msgid ""
"Generates random 3d plots that look vaguely mountainous. Written by Pascal "
"Pensa."
-msgstr ""
-"Génère des graphiques 3D aléatoires d'apparence vaguement montagneuse. Écrit "
-"par Pascal Pensa."
+msgstr "Génère des graphiques 3D aléatoires d'apparence vaguement montagneuse. Écrit par Pascal Pensa."
#: hacks/config/mountain.xml.h:5
msgid "Mountain"
"Jackson Wright wrote the above PDP-1 code. That code still lives on in this "
"screenhack, some 35 years later. The number of lines of enclosing code has "
"increased substantially, however. This version is by Tim Showalter."
-msgstr ""
-"DATAI 2 ADDB 1,2 ROTC 2,-22 XOR 1,2 JRST .-4 Comme signalé par HAKMEM, en "
-"1962, Jackson Wright a écrit le code PDP-1 ci-dessus. Ce code est toujours "
-"présent dans ce hack, quelque 35 ans plus tard. Le nombre de lignes de code "
-"a toutefois considérablement augmenté. Cette version est de Tim Showalter."
+msgstr "DATAI 2 ADDB 1,2 ROTC 2,-22 XOR 1,2 JRST .-4 Comme signalé par HAKMEM, en 1962, Jackson Wright a écrit le code PDP-1 ci-dessus. Ce code est toujours présent dans ce hack, quelque 35 ans plus tard. Le nombre de lignes de code a toutefois considérablement augmenté. Cette version est de Tim Showalter."
#: hacks/config/munch.xml.h:5
msgid "Munch"
msgid ""
"Draws different shapes composed of nervously vibrating squiggles, as if seen "
"through a camera operated by a monkey on crack. By Dan Bornstein."
-msgstr ""
-"Trace différentes formes composées de gribouillis vibrants et nerveux, comme "
-"s'ils étaient filmés par un singe sous amphétamines. Par Dan Bornstein."
+msgstr "Trace différentes formes composées de gribouillis vibrants et nerveux, comme s'ils étaient filmés par un singe sous amphétamines. Par Dan Bornstein."
#: hacks/config/nerverot.xml.h:10
msgid "Frequent"
"things which he says can come from a file, or from an external program like "
"`zippy' or `fortune'. This was extracted from `xnlock' by Dan Heller. "
"Colorized by Jamie Zawinski."
-msgstr ""
-"Un petit bonhomme avec un gros nez se promène sur l'écran en disant des "
-"choses. Ce qu'il dit peut provenir d'un fichier ou d'un programme externe "
-"comme 'zippy' ou 'fortune'. Extrait de 'xnlock' par Dan Heller. Colorisé par "
-"Jamie Zawinski."
+msgstr "Un petit bonhomme avec un gros nez se promène sur l'écran en disant des choses. Ce qu'il dit peut provenir d'un fichier ou d'un programme externe comme 'zippy' ou 'fortune'. Extrait de 'xnlock' par Dan Heller. Colorisé par Jamie Zawinski."
#: hacks/config/noseguy.xml.h:2
msgid "Get Text from File"
"complex polygon, and lets the X server do the bulk of the work by giving it "
"an even/odd winding rule. Written by Dale Moore, based on some ancient PDP-"
"11 code."
-msgstr ""
-"Sorte de combinaison de spirographe/art pauvre. Génère un grand polygone "
-"complexe et laisse le serveur X faire le plus gros du travail en lui donnant "
-"une règle WIND_EVEN_ODD. Écrit par Dale Moore, basé sur un ancien code PDP-"
-"11."
+msgstr "Sorte de combinaison de spirographe/art pauvre. Génère un grand polygone complexe et laisse le serveur X faire le plus gros du travail en lui donnant une règle WIND_EVEN_ODD. Écrit par Dale Moore, basé sur un ancien code PDP-11."
#: hacks/config/penetrate.xml.h:1
msgid "Always play well"
msgid ""
"This hack simulates the classic arcade game Missile Command. Written by Adam "
"Miller."
-msgstr ""
-"Ce hack simule le jeu d'arcade classique Missile Command. Écrit par Adam "
-"Miller."
+msgstr "Ce hack simule le jeu d'arcade classique Missile Command. Écrit par Adam Miller."
#: hacks/config/penrose.xml.h:3
msgid "Draw Ammann Lines"
"population of Great Britain being invited by a multinational to wipe their "
"bottoms on what appears to be the work of a Knight of the Realm, then a last "
"stand must be taken.'' As reported by News of the Weird #491, 4-jul-1997."
-msgstr ""
-"Dessine des carreaux quasi-périodiques; pensez aux implications pour la "
-"technologie moderne du formica. Écrit par Timo Korvola. En avril 1997, Sir "
-"Roger Penrose, un professeur de math britannique qui a travaillé avec "
-"Stephen Hawking sur des sujets tels que la relativité, les trous noirs et "
-"l'existence d'un début du temps, a intenté un procès en violation de "
-"copyright à l'encontre de Kimberly-Clark Corporation, qui, selon Penrose, a "
-"copié un motif qu'il avait créé (qui démontrait qu'un ''motif non répétitif "
-"pouvait exister dans la nature'') pour son papier toilette Kleenex à "
-"carreaux. Penrose a déclaré qu'il n'aimait pas les litiges, mais que ''Si la "
-"population de Grande-Bretagne est invitée par une multinationale à s'essuyer "
-"les fesses sur ce qui semble être l'oeuvre d'un Chevalier du Royaume, des "
-"mesures s'imposent.'' Rapporté par News of the Weird n°491, 4-jul-1997."
+msgstr "Dessine des carreaux quasi-périodiques; pensez aux implications pour la technologie moderne du formica. Écrit par Timo Korvola. En avril 1997, Sir Roger Penrose, un professeur de math britannique qui a travaillé avec Stephen Hawking sur des sujets tels que la relativité, les trous noirs et l'existence d'un début du temps, a intenté un procès en violation de copyright à l'encontre de Kimberly-Clark Corporation, qui, selon Penrose, a copié un motif qu'il avait créé (qui démontrait qu'un ''motif non répétitif pouvait exister dans la nature'') pour son papier toilette Kleenex à carreaux. Penrose a déclaré qu'il n'aimait pas les litiges, mais que ''Si la population de Grande-Bretagne est invitée par une multinationale à s'essuyer les fesses sur ce qui semble être l'oeuvre d'un Chevalier du Royaume, des mesures s'imposent.'' Rapporté par News of the Weird n°491, 4-jul-1997."
#: hacks/config/penrose.xml.h:9
msgid "Penrose"
"This simulates colonies of mold growing in a petri dish. Growing colored "
"circles overlap and leave spiral interference in their wake. Written by Dan "
"Bornstein."
-msgstr ""
-"Simule des colonies de moisissures qui poussent dans une boîte de Petri. Des "
-"cercles colorés grandissent, se chevauchent et laissent des interférences en "
-"spirale à leur suite. Écrit par Dan Bornstein."
+msgstr "Simule des colonies de moisissures qui poussent dans une boîte de Petri. Des cercles colorés grandissent, se chevauchent et laissent des interférences en spirale à leur suite. Écrit par Dan Bornstein."
#: hacks/config/phosphor.xml.h:1
msgid ""
"Draws a simulation of an old terminal, with large pixels and long-sustain "
"phosphor. It can run any program as a source of the text it displays. "
"Written by Jamie Zawinski."
-msgstr ""
-"Dessine une simulation d'un vieux terminal, avec de grands pixels et du "
-"phosphore de longue durée. Il peut exécuter n'importe quel programme comme "
-"source du texte qu'il affiche. Écrit par Jamie Zawinski."
+msgstr "Dessine une simulation d'un vieux terminal, avec de grands pixels et du phosphore de longue durée. Il peut exécuter n'importe quel programme comme source du texte qu'il affiche. Écrit par Jamie Zawinski."
#: hacks/config/phosphor.xml.h:2
msgid "Dump pipe"
-msgstr ""
+msgstr "Pipe simple"
#: hacks/config/phosphor.xml.h:5
msgid "Phosphor"
msgid ""
"If you've ever been in the same room with a Windows NT machine, you've "
"probably seen this GL hack. This version is by Marcelo Vianna."
-msgstr ""
-"Si vous avez déjà croisé la route d'une machine Windows NT, vous avez "
-"certainement déjà vu ce hack GL. Cette version est de Marcelo Vianna."
+msgstr "Si vous avez déjà croisé la route d'une machine Windows NT, vous avez certainement déjà vu ce hack GL. Cette version est de Marcelo Vianna."
#: hacks/config/pipes.xml.h:9 hacks/config/wormhole.xml.h:4
msgid "Lots"
msgid "System Length"
msgstr "Longueur du système"
-#: hacks/config/polyominoes.xml.h:3
-msgid "Identical Pieces"
-msgstr "Pièces identiques"
+#: hacks/config/polyhedra.xml.h:2
+msgid "30 seconds"
+msgstr "30 secondes"
-#: hacks/config/polyominoes.xml.h:7
-msgid "Polyominoes"
-msgstr "Polyominos"
+#: hacks/config/polyhedra.xml.h:4 hacks/config/sballs.xml.h:1
+msgid "Cube"
+msgstr "Cube"
-#: hacks/config/polyominoes.xml.h:8
-msgid ""
-"Repeatedly attempts to completely fill a rectangle with irregularly-shaped "
-"puzzle pieces. Written by Stephen Montgomery-Smith."
+#: hacks/config/polyhedra.xml.h:5
+msgid "Cubitruncated Cuboctahedron"
msgstr ""
-"Tente sans cesse de remplir entièrement un rectangle à l'aide de pièces de "
-"puzzle de formes irrégulières. Écrit par Stephen Montgomery-Smith."
-
-#: hacks/config/polytopes.xml.h:2
-msgid "120-Cell"
-msgstr "120 cellules"
-
-#: hacks/config/polytopes.xml.h:3
-msgid "16-Cell (Hyper-Octahedron)"
-msgstr "16 cellules (Hyper-Octahèdre)"
-#: hacks/config/polytopes.xml.h:4
-msgid "24-Cell"
-msgstr "24 cellules"
+#: hacks/config/polyhedra.xml.h:6
+msgid "Cuboctahedron"
+msgstr ""
-#: hacks/config/polytopes.xml.h:6
-msgid "5-Cell (Hyper-Tetrahedron)"
-msgstr "5 cellules (Hyper-Tétrahèdre)"
+#: hacks/config/polyhedra.xml.h:7
+msgid "Cubohemioctahedron"
+msgstr ""
-#: hacks/config/polytopes.xml.h:7
-msgid "600-Cell"
-msgstr "600 cellules"
+#: hacks/config/polyhedra.xml.h:8
+msgid "Deltoidal Hexecontahedron"
+msgstr ""
-#: hacks/config/polytopes.xml.h:8
-msgid "8-Cell (Hypercube / Tesseract)"
-msgstr "8 cellules (Hypercube / Tesseract)"
+#: hacks/config/polyhedra.xml.h:9
+msgid "Deltoidal Icositetrahedron"
+msgstr ""
-#: hacks/config/polytopes.xml.h:9
-msgid "Colors By 4D Depth"
-msgstr "Couleur en profondeur 4D"
+#: hacks/config/polyhedra.xml.h:10
+msgid "Disdyakisdodecahedron"
+msgstr ""
-#: hacks/config/polytopes.xml.h:17
-msgid "Regular 4D Polytopes"
-msgstr "Polytupes 4D réguliers"
+#: hacks/config/polyhedra.xml.h:11
+msgid "Disdyakistriacontahedron"
+msgstr ""
-#: hacks/config/polytopes.xml.h:19
-msgid "Single Color"
-msgstr "Couleur unique"
+#: hacks/config/polyhedra.xml.h:12
+msgid "Display Random Polyhedron"
+msgstr ""
-#: hacks/config/polytopes.xml.h:22
+#: hacks/config/polyhedra.xml.h:13
msgid ""
-"This program shows one of the six regular 4D polytopes rotating in 4D. "
-"Written by Carsten Steger, inspired by H.S.M Coxeter's book \"Regular "
-"Polytopes\", 3rd Edition, Dover Publications, Inc., 1973, and Thomas "
-"Banchoff's book \"Beyond the Third Dimension: Geometry, Computer Graphics, "
-"and Higher Dimensions\", Scientific American Library, 1990."
+"Displays different 3D solids and some information about each. A new solid is "
+"chosen every few seconds. There are 75 uniform polyhedra, plus 5 inifite "
+"sets of prisms and antiprisms; including their duals brings the total to "
+"160. Written by Dr. Zvi Har'El and Jamie Zawinski."
msgstr ""
-#: hacks/config/pong.xml.h:2
-msgid "Pong"
-msgstr "Pong"
+#: hacks/config/polyhedra.xml.h:14
+msgid "Ditrigonal Dodecadodecahedron"
+msgstr ""
-#: hacks/config/pong.xml.h:6
-msgid ""
-"The pong program simulates an ancient Pong home video game, as well as "
-"various artifacts from displaying it on a color TV set. Written by Jeremy "
-"English and Trevor Blackwell."
+#: hacks/config/polyhedra.xml.h:15 hacks/config/sballs.xml.h:2
+msgid "Dodecahedron"
+msgstr "Dodécaèdre"
+
+#: hacks/config/polyhedra.xml.h:19
+msgid "Great Cubicuboctahedron"
msgstr ""
-#: hacks/config/popsquares.xml.h:1
-msgid "Border"
-msgstr "Bordure"
+#: hacks/config/polyhedra.xml.h:20
+msgid "Great Deltoidal Hexecontahedron"
+msgstr ""
-#: hacks/config/popsquares.xml.h:2
-msgid "End color"
-msgstr "Couleur de fin"
+#: hacks/config/polyhedra.xml.h:21
+msgid "Great Deltoidal Icositetrahedron"
+msgstr ""
-#: hacks/config/popsquares.xml.h:7
-msgid "Start color"
-msgstr "Couleur de début"
+#: hacks/config/polyhedra.xml.h:22
+msgid "Great Dirhombicosidodecacron"
+msgstr ""
-#: hacks/config/popsquares.xml.h:8
-msgid "Subdivision"
-msgstr "Sub-division"
+#: hacks/config/polyhedra.xml.h:23
+msgid "Great Dirhombicosidodecahedron"
+msgstr ""
-#: hacks/config/popsquares.xml.h:9
-msgid ""
-"This draws a pop-art-ish looking grid of pulsing colors. By Levi Burton."
+#: hacks/config/polyhedra.xml.h:24
+msgid "Great Disdyakisdodecahedron"
msgstr ""
-#: hacks/config/popsquares.xml.h:10
-msgid "Twitch"
-msgstr "Mouvement compulsif"
+#: hacks/config/polyhedra.xml.h:25
+msgid "Great Disdyakistriacontahedron"
+msgstr ""
-#: hacks/config/popsquares.xml.h:11
-msgid "popsquares"
-msgstr "Carrés pop-art"
+#: hacks/config/polyhedra.xml.h:26
+msgid "Great Ditrigonal Dodecacronic Hexecontahedron"
+msgstr ""
-#: hacks/config/pulsar.xml.h:1
-msgid "Anti-alias Lines"
-msgstr "Lignes anti-aliasées"
+#: hacks/config/polyhedra.xml.h:27
+msgid "Great Ditrigonal Dodecicosidodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:28
+msgid "Great Ditrigonal Icosidodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:29
+msgid "Great Dodecacronic Hexecontahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:30
+msgid "Great Dodecadodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:31
+msgid "Great Dodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:32
+msgid "Great Dodecahemicosacron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:33
+msgid "Great Dodecahemicosahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:34
+msgid "Great Dodecahemidodecacron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:35
+msgid "Great Dodecahemidodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:36
+msgid "Great Dodecicosacron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:37
+msgid "Great Dodecicosahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:38
+msgid "Great Dodecicosidodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:39
+msgid "Great Hexacronic Icositetrahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:40
+msgid "Great Hexagonal Hexecontahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:41
+msgid "Great Icosacronic Hexecontahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:42
+msgid "Great Icosahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:43
+msgid "Great Icosicosidodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:44
+msgid "Great Icosidodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:45
+msgid "Great Icosihemidodecacron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:46
+msgid "Great Icosihemidodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:47
+msgid "Great Inverted Pentagonal Hexecontahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:48
+msgid "Great Inverted Snub Icosidodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:49
+msgid "Great Pentagonal Hexecontahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:50
+msgid "Great Pentagrammic Hexecontahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:51
+msgid "Great Pentakisdodekahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:52
+msgid "Great Retrosnub Icosidodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:53
+msgid "Great Rhombic Triacontahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:54
+msgid "Great Rhombicosidodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:55
+msgid "Great Rhombicuboctahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:56
+msgid "Great Rhombidodecacron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:57
+msgid "Great Rhombidodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:58
+msgid "Great Rhombihexacron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:59
+msgid "Great Rhombihexahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:60
+msgid "Great Snub Dodecicosidodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:61
+msgid "Great Snub Icosidodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:62
+msgid "Great Stellapentakisdodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:63
+msgid "Great Stellated Dodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:64
+msgid "Great Stellated Truncated Dodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:65
+msgid "Great Triakisicosahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:66
+msgid "Great Triakisoctahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:67
+msgid "Great Triambic Icosahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:68
+msgid "Great Truncated Cuboctahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:69
+msgid "Great Truncated Icosahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:70
+msgid "Great Truncated Icosidodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:71
+msgid "Hexahemioctacron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:72 hacks/config/sballs.xml.h:5
+msgid "Icosahedron"
+msgstr "Icosaèdre"
+
+#: hacks/config/polyhedra.xml.h:73
+msgid "Icosidodecadodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:74
+msgid "Icosidodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:75
+msgid "Icositruncated Dodecadodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:76
+msgid "Inverted Snub Dodecadodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:77
+msgid "Medial Deltoidal Hexecontahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:78
+msgid "Medial Disdyakistriacontahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:79
+msgid "Medial Hexagonal Hexecontahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:80
+msgid "Medial Icosacronic Hexecontahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:81
+msgid "Medial Inverted Pentagonal Hexecontahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:82
+msgid "Medial Pentagonal Hexecontahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:83
+msgid "Medial Rhombic Triacontahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:84
+msgid "Medial Triambic Icosahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:86 hacks/config/sballs.xml.h:7
+msgid "Octahedron"
+msgstr "Octaèdre"
+
+#: hacks/config/polyhedra.xml.h:87
+msgid "Octahemioctacron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:88
+msgid "Octahemioctahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:89
+msgid "Pentagonal Antiprism"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:90
+msgid "Pentagonal Deltohedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:91
+msgid "Pentagonal Dipyramid"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:92
+msgid "Pentagonal Hexecontahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:93
+msgid "Pentagonal Icositetrahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:94
+msgid "Pentagonal Prism"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:95
+msgid "Pentagrammic Antiprism"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:96
+msgid "Pentagrammic Concave Deltohedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:97
+msgid "Pentagrammic Crossed Antiprism"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:98
+msgid "Pentagrammic Deltohedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:99
+msgid "Pentagrammic Dipyramid"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:100
+msgid "Pentagrammic Prism"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:101
+msgid "Pentakisdodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:102
+msgid "Polyhedra"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:103
+msgid "Rhombic Dodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:104
+msgid "Rhombic Triacontahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:105
+msgid "Rhombicosacron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:106
+msgid "Rhombicosahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:107
+msgid "Rhombicosidodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:108
+msgid "Rhombicuboctahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:109
+msgid "Rhombidodecadodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:117
+msgid "Show Description"
+msgstr "Affiche la description"
+
+#: hacks/config/polyhedra.xml.h:120
+msgid "Small Cubicuboctahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:121
+msgid "Small Ditrigonal Dodecacronic Hexecontahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:122
+msgid "Small Ditrigonal Dodecicosidodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:123
+msgid "Small Ditrigonal Icosidodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:124
+msgid "Small Dodecacronic Hexecontahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:125
+msgid "Small Dodecahemicosacron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:126
+msgid "Small Dodecahemicosahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:127
+msgid "Small Dodecahemidodecacron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:128
+msgid "Small Dodecahemidodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:129
+msgid "Small Dodecicosacron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:130
+msgid "Small Dodecicosahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:131
+msgid "Small Dodecicosidodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:132
+msgid "Small Hexacronic Icositetrahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:133
+msgid "Small Hexagonal Hexecontahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:134
+msgid "Small Hexagrammic Hexecontahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:135
+msgid "Small Icosacronic Hexecontahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:136
+msgid "Small Icosicosidodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:137
+msgid "Small Icosihemidodecacron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:138
+msgid "Small Icosihemidodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:139
+msgid "Small Retrosnub Icosicosidodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:140
+msgid "Small Rhombidodecacron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:141
+msgid "Small Rhombidodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:142
+msgid "Small Rhombihexacron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:143
+msgid "Small Rhombihexahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:144
+msgid "Small Snub Icosicosidodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:145
+msgid "Small Stellapentakisdodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:146
+msgid "Small Stellated Dodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:147
+msgid "Small Stellated Truncated Dodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:148
+msgid "Small Triambic Icosahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:149
+msgid "Snub Cube"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:150
+msgid "Snub Dodecadodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:151
+msgid "Snub Dodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:152
+msgid "Snub Icosidodecadodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:153
+msgid "Stellated Truncated Hexahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:154
+msgid "Tetradyakishexahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:156
+msgid "Tetrahemihexacron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:157
+msgid "Tetrahemihexahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:158
+msgid "Tetrakishexahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:159
+msgid "Triakisicosahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:160
+msgid "Triakisoctahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:161
+msgid "Triakistetrahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:162
+msgid "Tridyakisicosahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:163
+msgid "Truncated Cube"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:164
+msgid "Truncated Cuboctahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:165
+msgid "Truncated Dodecadodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:166
+msgid "Truncated Dodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:167
+msgid "Truncated Great Dodecahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:168
+msgid "Truncated Icosahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:169
+msgid "Truncated Icosidodechedon"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:170
+msgid "Truncated Octahedron"
+msgstr ""
+
+#: hacks/config/polyhedra.xml.h:171
+msgid "Truncated Tetrahedron"
+msgstr ""
+
+#: hacks/config/polyominoes.xml.h:3
+msgid "Identical Pieces"
+msgstr "Pièces identiques"
+
+#: hacks/config/polyominoes.xml.h:7
+msgid "Polyominoes"
+msgstr "Polyominos"
+
+#: hacks/config/polyominoes.xml.h:8
+msgid ""
+"Repeatedly attempts to completely fill a rectangle with irregularly-shaped "
+"puzzle pieces. Written by Stephen Montgomery-Smith."
+msgstr "Tente sans cesse de remplir entièrement un rectangle à l'aide de pièces de puzzle de formes irrégulières. Écrit par Stephen Montgomery-Smith."
+
+#: hacks/config/polytopes.xml.h:2
+msgid "120-Cell"
+msgstr "120 cellules"
+
+#: hacks/config/polytopes.xml.h:3
+msgid "16-Cell (Hyper-Octahedron)"
+msgstr "16 cellules (Hyper-Octahèdre)"
+
+#: hacks/config/polytopes.xml.h:4
+msgid "24-Cell"
+msgstr "24 cellules"
+
+#: hacks/config/polytopes.xml.h:6
+msgid "5-Cell (Hyper-Tetrahedron)"
+msgstr "5 cellules (Hyper-Tétrahèdre)"
+
+#: hacks/config/polytopes.xml.h:7
+msgid "600-Cell"
+msgstr "600 cellules"
+
+#: hacks/config/polytopes.xml.h:8
+msgid "8-Cell (Hypercube / Tesseract)"
+msgstr "8 cellules (Hypercube / Tesseract)"
+
+#: hacks/config/polytopes.xml.h:9
+msgid "Colors By 4D Depth"
+msgstr "Couleur en profondeur 4D"
+
+#: hacks/config/polytopes.xml.h:17
+msgid "Regular 4D Polytopes"
+msgstr "Polytupes 4D réguliers"
+
+#: hacks/config/polytopes.xml.h:19
+msgid "Single Color"
+msgstr "Couleur unique"
+
+#: hacks/config/polytopes.xml.h:22
+msgid ""
+"This program shows one of the six regular 4D polytopes rotating in 4D. "
+"Written by Carsten Steger, inspired by H.S.M Coxeter's book \"Regular "
+"Polytopes\", 3rd Edition, Dover Publications, Inc., 1973, and Thomas "
+"Banchoff's book \"Beyond the Third Dimension: Geometry, Computer Graphics, "
+"and Higher Dimensions\", Scientific American Library, 1990."
+msgstr ""
+
+#: hacks/config/pong.xml.h:2
+msgid "Pong"
+msgstr "Pong"
+
+#: hacks/config/pong.xml.h:6
+msgid ""
+"The pong program simulates an ancient Pong home video game, as well as "
+"various artifacts from displaying it on a color TV set. Written by Jeremy "
+"English and Trevor Blackwell."
+msgstr ""
+
+#: hacks/config/popsquares.xml.h:1
+msgid "Border"
+msgstr "Bordure"
+
+#: hacks/config/popsquares.xml.h:2
+msgid "End color"
+msgstr "Couleur de fin"
+
+#: hacks/config/popsquares.xml.h:7
+msgid "Start color"
+msgstr "Couleur de début"
+
+#: hacks/config/popsquares.xml.h:8
+msgid "Subdivision"
+msgstr "Sub-division"
+
+#: hacks/config/popsquares.xml.h:9
+msgid ""
+"This draws a pop-art-ish looking grid of pulsing colors. By Levi Burton."
+msgstr ""
+
+#: hacks/config/popsquares.xml.h:10
+msgid "Twitch"
+msgstr "Mouvement compulsif"
+
+#: hacks/config/popsquares.xml.h:11
+msgid "popsquares"
+msgstr "Carrés pop-art"
+
+#: hacks/config/providence.xml.h:1
+msgid "Draw Eye"
+msgstr "Dessiner des yeux"
+
+#: hacks/config/providence.xml.h:3
+msgid "Providence"
+msgstr "Providence"
+
+#: hacks/config/providence.xml.h:7
+msgid ""
+"The providence code displays an eye, shrouded in glory, set upon the base of "
+"a pyramid. Written by Blair Tennessy."
+msgstr ""
+
+#: hacks/config/pulsar.xml.h:1
+msgid "Anti-alias Lines"
+msgstr "Lignes anti-aliasées"
#: hacks/config/pulsar.xml.h:3
msgid ""
"Draws some intersecting planes, making use of alpha blending, fog, textures, "
"and mipmaps, plus a ``frames per second'' meter so that you can tell how "
"fast your graphics card is... Requires OpenGL. Written by David Konerding."
-msgstr ""
-"Dessine des plans en intersection en utilisant le mélange de valeurs alpha, "
-"le brouillard, des textures, et des mipmaps, plus une mesure ''images par "
-"seconde'' pour que vous puissiez calculer la rapidité de votre carte "
-"graphique... Nécessite OpenGL. Écrit par David Konerding."
+msgstr "Dessine des plans en intersection en utilisant le mélange de valeurs alpha, le brouillard, des textures, et des mipmaps, plus une mesure ''images par seconde'' pour que vous puissiez calculer la rapidité de votre carte graphique... Nécessite OpenGL. Écrit par David Konerding."
#: hacks/config/pulsar.xml.h:4
msgid "Enable Blending"
#: hacks/config/pyro.xml.h:11
msgid ""
"Pyro draws exploding fireworks. Blah blah blah. Written by Jamie Zawinski."
-msgstr ""
-"Pyro dessine des feux d'artifices en explosion. Bla bla. Écrit par Jamie "
-"Zawinski."
+msgstr "Pyro dessine des feux d'artifices en explosion. Bla bla. Écrit par Jamie Zawinski."
#: hacks/config/qix.xml.h:1
msgid "Additive Colors"
"segments around the screen, and uses variations on this basic motion pattern "
"to produce all sorts of different presentations: line segments, filled "
"polygons, overlapping translucent areas... Written by Jamie Zawinski."
-msgstr ""
-"La tronçonneuse suisse des programmes qix. Fait rebondir une série de "
-"segments de lignes sur l'écran et utilise des variations de ce modèle de "
-"mouvement de base pour produire toutes sortes de présentations différentes : "
-"segments de ligne, polygones pleins, zones translucides superposées... Écrit "
-"par Jamie Zawinski."
+msgstr "La tronçonneuse suisse des programmes qix. Fait rebondir une série de segments de lignes sur l'écran et utilise des variations de ce modèle de mouvement de base pour produire toutes sortes de présentations différentes : segments de ligne, polygones pleins, zones translucides superposées... Écrit par Jamie Zawinski."
#: hacks/config/qix.xml.h:25
msgid "Transparent"
"Another variation of the `Bomb' program by Scott Draves. This draws a grid "
"of growing square-like shapes that, once they overtake each other, react in "
"unpredictable ways. ``RD'' stands for reaction-diffusion."
-msgstr ""
-"Une autre variation du programme «Bomb» de Scott Draves. Dessine une grille "
-"de formes carrées croissantes qui, une fois qu'elles se rejoignent, "
-"réagissent de façon imprévisible. 'RD' signifie réaction-diffusion."
+msgstr "Une autre variation du programme «Bomb» de Scott Draves. Dessine une grille de formes carrées croissantes qui, une fois qu'elles se rejoignent, réagissent de façon imprévisible. 'RD' signifie réaction-diffusion."
#: hacks/config/rd-bomb.xml.h:8
msgid "Epoch"
"This draws rippling interference patterns like splashing water. With the -"
"water option, it manipulates your desktop image to look like something is "
"dripping into it. Written by Tom Hammersley."
-msgstr ""
-"Dessine des motifs d'interférences ondulants qui ressemblent à des "
-"éclaboussures d'eau. Avec l'option '-water', manipule votre image bureau "
-"pour que quelque chose ait l'air de l'éclabousser. Écrit par Tom Hammersley."
+msgstr "Dessine des motifs d'interférences ondulants qui ressemblent à des éclaboussures d'eau. Avec l'option '-water', manipule votre image bureau pour que quelque chose ait l'air de l'éclabousser. Écrit par Tom Hammersley."
#: hacks/config/rocks.xml.h:7
msgid "Rocks"
"This draws an animation of flight through an asteroid field, with changes in "
"rotation and direction. It can also display 3D separations for red/blue "
"glasses! Mostly written by Jamie Zawinski."
-msgstr ""
-"Dessine une animation de vol dans un champ d'astéroïdes, dont la rotation "
-"et la direction changent. Peut également afficher des séparations 3D pour "
-"les verres rouges/bleus ! Principalement écrit par Jamie Zawinski."
+msgstr "Dessine une animation de vol dans un champ d'astéroïdes, dont la rotation et la direction changent. Peut également afficher des séparations 3D pour les verres rouges/bleus ! Principalement écrit par Jamie Zawinski."
#: hacks/config/rocks.xml.h:13
msgid "Velocity"
"then reflects the image horizontally, vertically, or both. Any deep-seated "
"neurotic tendencies which this program reveals are your own problem. Written "
"by Jamie Zawinski."
-msgstr ""
-"Génère des motifs de taches d'encre aléatoires. L'algorithme est "
-"incroyablement simple pour un si bon fonctionnement; il déplace simplement "
-"un point sur l'écran au hasard et reflète l'image horizontalement et/ou "
-"verticalement. Vous êtes responsable de toutes les tendances névrotiques "
-"enfouies que ce programme pourrait révéler. Écrit par Jamie Zawinski."
+msgstr "Génère des motifs de taches d'encre aléatoires. L'algorithme est incroyablement simple pour un si bon fonctionnement; il déplace simplement un point sur l'écran au hasard et reflète l'image horizontalement et/ou verticalement. Vous êtes responsable de toutes les tendances névrotiques enfouies que ce programme pourrait révéler. Écrit par Jamie Zawinski."
#: hacks/config/rorschach.xml.h:10
msgid "With X Symmetry"
msgid ""
"Creates a collage of rotated and scaled portions of the screen. Written by "
"Claudio Matsuoka."
-msgstr ""
-"Crée un collage de portions pivotées et mises à l'échelle de l'écran. Écrit "
-"par Claudio Matsuoka."
+msgstr "Crée un collage de portions pivotées et mises à l'échelle de l'écran. Écrit par Claudio Matsuoka."
#: hacks/config/rotzoomer.xml.h:6
msgid "Rectangle Count"
msgid ""
"Draws a Rubik's Cube that rotates in three dimensions and repeatedly "
"shuffles and solves itself. Another fine GL hack by Marcelo Vianna."
-msgstr ""
-"Dessine un Rubik's Cube qui pivote en trois dimensions et se mélange et se "
-"résout sans cesse. Un autre beau hack GL de Marcelo Vianna."
+msgstr "Dessine un Rubik's Cube qui pivote en trois dimensions et se mélange et se résout sans cesse. Un autre beau hack GL de Marcelo Vianna."
#: hacks/config/rubik.xml.h:5
msgid "Rubik"
msgid "Show Shuffling"
msgstr "Afficher le mélange"
-#: hacks/config/sballs.xml.h:1
-msgid "Cube"
-msgstr "Cube"
-
-#: hacks/config/sballs.xml.h:2
-msgid "Dodecahedron"
-msgstr "Dodécaèdre"
-
#: hacks/config/sballs.xml.h:3
msgid ""
"Draws an animation of textured balls spinning like crazy in GL. Requires "
"OpenGL, and a machine with fast hardware support for texture maps. Written "
-"by Eric Lassauge <lassauge@free.fr>."
-msgstr ""
-"Dessine une animation de balles texturées qui tournent comme des folles en "
-"GL. Nécessite OpenGL et une machine avec un support matériel puissant pour "
-"les textures. Écrit par Eric Lassauge <lassauge@free.fr>."
-
-#: hacks/config/sballs.xml.h:5
-msgid "Icosahedron"
-msgstr "Icosaèdre"
-
-#: hacks/config/sballs.xml.h:7
-msgid "Octahedron"
-msgstr "Octaèdre"
+"by Eric Lassauge <lassauge@users.sourceforge.net>."
+msgstr "Dessine une animation de balles texturées qui tournent comme des folles en GL. Nécessite OpenGL et une machine avec un support matériel puissant pour les textures. Écrit par Eric Lassauge <lassauge@users.sourceforge.net>."
#: hacks/config/sballs.xml.h:8
msgid "Plane"
msgid ""
"This draws smoothly-shaded oscillating oval patterns, that look something "
"like vapor trails or neon tubes. Written by Shane Smit."
-msgstr ""
-"Dessine des formes ovoïdes oscillantes et d'aspect lisse, qui ressemblent un "
-"peu à des traînées de vapeur ou des tubes au néon. Écrit par Shane Smit."
+msgstr "Dessine des formes ovoïdes oscillantes et d'aspect lisse, qui ressemblent un peu à des traînées de vapeur ou des tubes au néon. Écrit par Shane Smit."
#: hacks/config/sierpinski.xml.h:6
msgid "Sierpinski"
msgid ""
"This draws the two-dimensional variant of the recursive Sierpinski triangle "
"fractal. Written by Desmond Daignault."
-msgstr ""
-"Dessine la variante bidimensionnelle de la fractale triangulaire récursive "
-"de Sierpinski. Écrit par Desmond Daignault."
+msgstr "Dessine la variante bidimensionnelle de la fractale triangulaire récursive de Sierpinski. Écrit par Desmond Daignault."
#: hacks/config/sierpinski3d.xml.h:7
msgid "Sierpinski3D"
msgid ""
"This draws the three-dimensional variant of the recursive Sierpinski "
"triangle fractal, using GL. Written by Tim Robinson and Jamie Zawinski."
-msgstr ""
-"Dessine la variante tridimensionnelle de la fractale triangulaire récursive "
-"de Sierpinski, à l'aide de GL. Écrit par Tim Robinson et Jamie Zawinski."
+msgstr "Dessine la variante tridimensionnelle de la fractale triangulaire récursive de Sierpinski, à l'aide de GL. Écrit par Tim Robinson et Jamie Zawinski."
#: hacks/config/slidescreen.xml.h:1 hacks/config/twang.xml.h:1
#: hacks/config/zoom.xml.h:1
"there is a grid of squares, one of which is missing. I hate trying to solve "
"those puzzles, but watching one permute itself is more amusing. Written by "
"Jamie Zawinski."
-msgstr ""
-"Prend une image, la divise pour former une grille et mélange au hasard les "
-"carrés comme l'un de ces jeux ennuyeux comprenant une grille de carrés dont "
-"l'un est manquant. Je déteste essayer de résoudre ces puzzles, mais c'est "
-"plus amusant d'en voir un se résoudre lui-même. Écrit par Jamie Zawinski."
+msgstr "Prend une image, la divise pour former une grille et mélange au hasard les carrés comme l'un de ces jeux ennuyeux comprenant une grille de carrés dont l'un est manquant. Je déteste essayer de résoudre ces puzzles, mais c'est plus amusant d'en voir un se résoudre lui-même. Écrit par Jamie Zawinski."
#: hacks/config/slip.xml.h:6
msgid "Slip"
"image like taffy, or (this is my addition) grab an image of your current "
"desktop to chew on. Originally written by Scott Draves; whacked on by Jamie "
"Zawinski."
-msgstr ""
-"Ce programme affiche des éléments aléatoires à l'écran, puis les aspire dans "
-"un réacteur et les fait ressortir. Pour ne pas réduire complètement l'image "
-"en bouillie, il injectera de temps en temps des taches de couleur dans la "
-"scène, entamera un cycle d'essorage, étendra l'image comme un caramel ou (ma "
-"touche personnelle) capturera l'image de votre bureau actuel pour la "
-"retourner. Initialement écrit par Scott Draves ; bouleversé par Jamie "
-"Zawinski."
+msgstr "Ce programme affiche des éléments aléatoires à l'écran, puis les aspire dans un réacteur et les fait ressortir. Pour ne pas réduire complètement l'image en bouillie, il injectera de temps en temps des taches de couleur dans la scène, entamera un cycle d'essorage, étendra l'image comme un caramel ou (ma touche personnelle) capturera l'image de votre bureau actuel pour la retourner. Initialement écrit par Scott Draves ; bouleversé par Jamie Zawinski."
#: hacks/config/sonar.xml.h:1
-msgid "Ping Subnet"
-msgstr "Sous-réseau ping"
+msgid "Ping known hosts"
+msgstr "Ping des machines connues"
#: hacks/config/sonar.xml.h:2
+msgid "Ping mode..."
+msgstr "Mode de ping ..."
+
+#: hacks/config/sonar.xml.h:3
+msgid "Ping subnet/24 (254 hosts)"
+msgstr "Ping sous-réseau/24 (254 hôtes)"
+
+#: hacks/config/sonar.xml.h:4
+msgid "Ping subnet/25 (126 hosts)"
+msgstr "Ping sous-réseau/25 (126 hôtes)"
+
+#: hacks/config/sonar.xml.h:5
+msgid "Ping subnet/26 (62 hosts)"
+msgstr "Ping sous-réseau/26 (62 hôtes)"
+
+#: hacks/config/sonar.xml.h:6
+msgid "Ping subnet/27 (31 hosts)"
+msgstr "Ping sous-réseau/27 (31 hôtes)"
+
+#: hacks/config/sonar.xml.h:7
+msgid "Ping subnet/28 (14 hosts)"
+msgstr "Ping sous-réseau/28 (14 hôtes)"
+
+#: hacks/config/sonar.xml.h:8
+msgid "Ping subnet/29 (6 hosts)"
+msgstr "Ping sous-réseau/29 (6 hôtes)"
+
+#: hacks/config/sonar.xml.h:9
+msgid "Ping subnet/30 (2 hosts)"
+msgstr "Ping sous-réseau/30 (2 hôtes)"
+
+#: hacks/config/sonar.xml.h:10
msgid "Simulation Team Members"
msgstr "Membres de l'équipe simulation"
-#: hacks/config/sonar.xml.h:3
+#: hacks/config/sonar.xml.h:11
msgid "Sonar"
msgstr "Sonar"
-#: hacks/config/sonar.xml.h:4
+#: hacks/config/sonar.xml.h:12
msgid "Team A Name"
msgstr "Nom de l'équipe A"
-#: hacks/config/sonar.xml.h:5
+#: hacks/config/sonar.xml.h:13
msgid "Team B Name"
msgstr "Nom de l'équipe B"
-#: hacks/config/sonar.xml.h:6
+#: hacks/config/sonar.xml.h:14
msgid ""
-"This program draws a simulation of a sonar screen. Written by default, it "
-"displays a random assortment of ``bogies'' on the screen, but if compiled "
-"properly, it can ping (pun intended) your local network, and actually plot "
-"the proximity of the other hosts on your network to you. It would be easy to "
-"make it monitor other sources of data, too. (Processes? Active network "
-"connections? CPU usage per user?) Written by Stephen Martin."
-msgstr ""
-"Ce programme dessine une simulation d'un écran de sonar. Écrit par défaut, "
-"il affiche un assortiment aléatoire de 'trucs' à l'écran, mais, s'il est "
-"compilé correctement, il peut effectuer un ping sur votre réseau local et "
-"calculer la proximité des autres hôtes du réseau par rapport à vous. Il "
-"serait facile de lui faire aussi surveiller d'autres sources de données. "
-"(Processus ? Connexions au réseau actif ? Utilisation du processeur par "
-"utilisateur ?) Écrit par Stephen Martin."
+"This program draws a simulation of a sonar screen. By default, it displays a "
+"random assortment of ``bogies'' on the screen, but if installed as \"setuid "
+"root\", it can ping (pun intended) your local network, and actually plot the "
+"proximity of the other hosts on your network to you. Written by Stephen "
+"Martin and Jamie Zawinski."
+msgstr "Ce programme dessine une simulation d'un écran de sonar. Par défaut, il affiche un assortiment aléatoire de 'trucs' à l'écran, mais, s'il est installé \"setuid root\", il peut effectuer un ping sur votre réseau local et calculer la proximité des autres hôtes du réseau par rapport à vous.Écrit par Stephen Martin et Jamie Zawinski."
-#: hacks/config/sonar.xml.h:7
+#: hacks/config/sonar.xml.h:15
msgid "vs."
msgstr "contre"
msgid ""
"Simulates speeding down a rocky mineshaft, or a funky dancing worm. Written "
"by Conrad Parker."
-msgstr ""
-"Simule la descente dans un puits de mine rocheux ou affiche un ver funky "
-"dansant. Écrit par Conrad Parker."
+msgstr "Simule la descente dans un puits de mine rocheux ou affiche un ver funky dansant. Écrit par Conrad Parker."
#: hacks/config/speedmine.xml.h:16
msgid "SpeedMine"
"Another of the classic screenhacks of the distant past, this one draws "
"shaded spheres in multiple colors. This hack traces its lineage back to Tom "
"Duff in 1982."
-msgstr ""
-"Un autre hack classique d'une époque lointaine. Il dessine des sphères "
-"ombrées en plusieurs couleurs. Son arbre généalogique remonte à Tom Duff en "
-"1982."
+msgstr "Un autre hack classique d'une époque lointaine. Il dessine des sphères ombrées en plusieurs couleurs. Son arbre généalogique remonte à Tom Duff en 1982."
-#: hacks/config/sphereEversion.xml.h:1
+#: hacks/config/sphereeversion.xml.h:1
msgid "SphereEversion"
msgstr "SphereEversion"
-#: hacks/config/sphereEversion.xml.h:2
+#: hacks/config/sphereeversion.xml.h:2
msgid ""
"SphereEversion draws an animation of a sphere being turned inside out. A "
"sphere can be turned inside out, without any tears, sharp creases or "
#: hacks/config/spheremonics.xml.h:23
msgid "Spheremonics"
-msgstr ""
+msgstr "Sphèremonics"
#: hacks/config/spheremonics.xml.h:24
msgid ""
msgid ""
"Moving circular patterns, by Peter Schmitzberger. Moving circular patterns "
"means moire; interference patterns, of course."
-msgstr ""
-"Motifs circulaires mobiles, par Peter Schmitzberger. Les motifs circulaires "
-"mobiles sont synonymes de moiré ; des motifs d'interférences, évidemment."
+msgstr "Motifs circulaires mobiles, par Peter Schmitzberger. Les motifs circulaires mobiles sont synonymes de moiré ; des motifs d'interférences, évidemment."
#: hacks/config/spiral.xml.h:11
msgid "Spiral"
msgid ""
"Draws a spotlight scanning across a black screen, illuminating the "
"underlying desktop when it passes. Written by Rick Schultz."
-msgstr ""
-"Trace un faisceau lumineux qui parcourt un écran noir et illumine le bureau "
-"sous-jacent. Écrit par Rick Schultz."
+msgstr "Trace un faisceau lumineux qui parcourt un écran noir et illumine le bureau sous-jacent. Écrit par Rick Schultz."
#: hacks/config/spotlight.xml.h:6
msgid "Spotlight"
"Draws a set of interacting, square-spiral-producing automata. The spirals "
"grow outward until they hit something, then they go around it. Written by "
"Jeff Epler."
-msgstr ""
-"Dessine un ensemble d'automates qui interagissent et produisent des spirales "
-"carrées. Les spirales grandissent jusqu'à ce qu'elles heurtent un obstacle, "
-"qu'elles contournent. Écrit par Jeff Epler."
+msgstr "Dessine un ensemble d'automates qui interagissent et produisent des spirales carrées. Les spirales grandissent jusqu'à ce qu'elles heurtent un obstacle, qu'elles contournent. Écrit par Jeff Epler."
#: hacks/config/squiral.xml.h:5
msgid "Handedness"
msgid ""
"by Marcelo Vianna's third Escher GL hack, this one draws an ``infinite'' "
"staircase."
-msgstr ""
-"Le troisième hack GL de Marcelo Vianna d'après Escher, cette fois "
-"«l'escalier infini»."
+msgstr "Le troisième hack GL de Marcelo Vianna d'après Escher, cette fois «l'escalier infini»."
#: hacks/config/starfish.xml.h:1
msgid "Color Gradients"
"pulsate, rotate, and turn inside out. Another display mode uses these shapes "
"to lay down a field of colors, which are then cycled. The motion is very "
"organic. Written by Jamie Zawinski."
-msgstr ""
-"Génère une séquence de motifs ondulants en forme d'étoiles qui pulsent, "
-"pivotent et se retournent. Un autre mode d'affichage utilise ces formes pour "
-"créer un champ de couleurs, qui présente des cycles. Le mouvement est très "
-"organique. Écrit par Jamie Zawinski."
+msgstr "Génère une séquence de motifs ondulants en forme d'étoiles qui pulsent, pivotent et se retournent. Un autre mode d'affichage utilise ces formes pour créer un champ de couleurs, qui présente des cycles. Le mouvement est très organique. Écrit par Jamie Zawinski."
#: hacks/config/starwars.xml.h:2
msgid "Anti-aliased Lines"
"Draws a stream of text slowly scrolling into the distance at an angle, over "
"a star field, like at the beginning of the movie of the same name. Written "
"by Jamie Zawinski and Claudio Matauoka."
-msgstr ""
-"Fait défiler lentement un texte en diagonale sur un champ stellaire, comme "
-"au début du film du même nom. Écrit par Jamie Zawinski et Claudio Matauoka."
+msgstr "Fait défiler lentement un texte en diagonale sur un champ stellaire, comme au début du film du même nom. Écrit par Jamie Zawinski et Claudio Matauoka."
#: hacks/config/starwars.xml.h:5
msgid "Fade Out"
"Chains of colorful squares dance around each other in complex spiral "
"patterns. Written by Andrew Plotkin, based on SGI's `electropaint' "
"screensaver."
-msgstr ""
-"Des chaînes de carrés colorés dansent les unes autour des autres en formant "
-"des spirales complexes. Écrit par Andrew Plotkin, basé sur l'économiseur "
-"d'écran «electropaint» de SGI."
+msgstr "Des chaînes de carrés colorés dansent les unes autour des autres en formant des spirales complexes. Écrit par Andrew Plotkin, basé sur l'économiseur d'écran «electropaint» de SGI."
#: hacks/config/stonerview.xml.h:3
msgid "StonerView"
"This draws strange attractors: it's a colorful, unpredictably-animating "
"field of dots that swoops and twists around. The motion is very nice. "
"Written by Massimino Pascal."
-msgstr ""
-"Dessine d'étranges attracteurs : ils ressemblent à des champs de points "
-"colorés qui tournent et se tortillent de manière imprévisible. Le mouvement "
-"est très beau. Écrit par Massimino Pascal."
+msgstr "Dessine d'étranges attracteurs : ils ressemblent à des champs de points colorés qui tournent et se tortillent de manière imprévisible. Le mouvement est très beau. Écrit par Massimino Pascal."
#: hacks/config/superquadrics.xml.h:3
msgid ""
"Ed Mackey reports that he wrote the first version of this program in BASIC "
"on a Commodore 64 in 1987, as a 320x200 black and white wireframe. Now it is "
"GL and has specular reflections."
-msgstr ""
-"Ed Mackey déclare avoir écrit la première version de ce programme en langage "
-"BASIC sur un Commodore 64 en 1987, sous la forme d'un maillage graphique "
-"320x200 noir et blanc. Il est désormais en GL et présente des réflexions "
-"spéculaires."
+msgstr "Ed Mackey déclare avoir écrit la première version de ce programme en langage BASIC sur un Commodore 64 en 1987, sous la forme d'un maillage graphique 320x200 noir et blanc. Il est désormais en GL et présente des réflexions spéculaires."
#: hacks/config/superquadrics.xml.h:11
msgid "Superquadrics"
"More flowing, swirly patterns. This version is by M. Dobie and R. Taylor, "
"but you might have seen a Mac program similar to this called FlowFazer. "
"There is also a cool Java applet of a similar concept."
-msgstr ""
-"Autre motifs fluides et tourbillonnants. Cette version est de M. Dobie et R. "
-"Taylor, mais vous avez peut-être déjà vu un programme Mac similaire appelé "
-"FlowFazer. Il existe aussi une chouette applet Java avec un concept "
-"apparenté."
+msgstr "Autre motifs fluides et tourbillonnants. Cette version est de M. Dobie et R. Taylor, mais vous avez peut-être déjà vu un programme Mac similaire appelé FlowFazer. Il existe aussi une chouette applet Java avec un concept apparenté."
#: hacks/config/swirl.xml.h:8
msgid "Swirl"
msgid ""
"This draws a working analog clock composed of floating, throbbing bubbles. "
"Written by Bernd Paysan."
-msgstr ""
-"Dessine une horloge analogique composée de bulles flottantes et pulsatiles. "
-"Écrit par Bernd Paysan."
+msgstr "Dessine une horloge analogique composée de bulles flottantes et pulsatiles. Écrit par Bernd Paysan."
#: hacks/config/t3d.xml.h:16
msgid "Turn Side-to-Side"
msgid ""
"Displays a view of the ``Bird in a Thornbush'' fractal. Written by Tim "
"Auckland."
-msgstr ""
-"Affiche la fractale de l'«oiseau dans un buisson épineux». Écrit par Tim "
-"Auckland."
+msgstr "Affiche la fractale de l'«oiseau dans un buisson épineux». Écrit par Tim Auckland."
#: hacks/config/thornbird.xml.h:6
msgid "Points"
msgid ""
"Generates random mountain ranges using iterative subdivision of triangles. "
"Written by Tobias Gloth."
-msgstr ""
-"Génère des chaînes de montagne aléatoires en utilisant la subdivision "
-"itérative de triangles. Écrit par Tobias Gloth."
+msgstr "Génère des chaînes de montagne aléatoires en utilisant la subdivision itérative de triangles. Écrit par Tobias Gloth."
#: hacks/config/triangle.xml.h:7
msgid "Triangle"
msgid ""
"This draws line- and arc-based Truchet patterns that tile the screen. "
"Written by Adrian Likins."
-msgstr ""
-"Dessine des motifs de Truchet basés sur des lignes et des arcs, qui "
-"recouvrent l'écran. Écrit par Adrian Likins."
+msgstr "Dessine des motifs de Truchet basés sur des lignes et des arcs, qui recouvrent l'écran. Écrit par Adrian Likins."
#: hacks/config/truchet.xml.h:5
msgid "Truchet"
#: hacks/config/twang.xml.h:2
msgid ""
"Divides the screen into a grid, and plucks them. Written by Dan Bornstein."
-msgstr ""
-"Divise l'écran en petits rectangles, qui sont ensuite enlevés. Écrit par Dan "
-"Bornstein."
+msgstr "Divise l'écran en petits rectangles, qui sont ensuite enlevés. Écrit par Dan Bornstein."
#: hacks/config/twang.xml.h:6
msgid "Jumpy"
"subtracting the image from a rotated version of itself, etc.) Then it "
"displays that image for a few seconds, and does it again. This works really "
"well if you just feed broadcast television into it."
-msgstr ""
-"Il s'agit d'un simple script shell qui capture une image depuis l'entrée "
-"vidéo du système et utilise des filtres PBM (choisis au hasard) pour "
-"manipuler et reformer l'image vidéo de diverses manières (détection des "
-"contours, soustraction de l'image d'une version pivotée d'elle-même, etc.) "
-"Ensuite, il affiche cette image pendant quelques secondes et recommence. Ce "
-"programme fonctionne très bien si vous le reliez à un téléviseur."
+msgstr "Il s'agit d'un simple script shell qui capture une image depuis l'entrée vidéo du système et utilise des filtres PBM (choisis au hasard) pour manipuler et reformer l'image vidéo de diverses manières (détection des contours, soustraction de l'image d'une version pivotée d'elle-même, etc.) Ensuite, il affiche cette image pendant quelques secondes et recommence. Ce programme fonctionne très bien si vous le reliez à un téléviseur."
#: hacks/config/vidwhacker.xml.h:6
msgid "VidWhacker"
"This one generates a continuous sequence of small, curvy geometric patterns. "
"It scatters them around your screen until it fills up, then it clears the "
"screen and starts over. Written by Tracy Camp and David Hansen."
-msgstr ""
-"Génère une séquence continue de petits motifs géométriques et arrondis. Ils "
-"remplissent l'écran, puis s'effacent avant de recommencer l'opération. Écrit "
-"par Tracy Camp et David Hansen."
+msgstr "Génère une séquence continue de petits motifs géométriques et arrondis. Ils remplissent l'écran, puis s'effacent avant de recommencer l'opération. Écrit par Tracy Camp et David Hansen."
#: hacks/config/vines.xml.h:8
msgid "Vines"
#: hacks/config/wander.xml.h:6
msgid ""
"Draws a colorful random-walk, in various forms. Written by Rick Campbell."
-msgstr ""
-"Dessine une promenade aléatoire colorée, sous plusieurs formes. Écrit par "
-"Rick Campbell."
+msgstr "Dessine une promenade aléatoire colorée, sous plusieurs formes. Écrit par Rick Campbell."
#: hacks/config/wander.xml.h:14
msgid "Sustain"
"great. (Note that most of the images it finds are text, and not pictures. "
"This is because most of the web is pictures of text. Which is pretty sad.) "
"Written by Jamie Zawinski."
-msgstr ""
-"Ce programme effectue des collages à partir d'images extraites au hasard "
-"depuis le World Wide Web. Il les trouve en faisant des recherches aléatoires "
-"sur le Web et en extrayant les images des pages trouvées. Il peut également "
-"être configuré pour filtrer les images via le programme 'VidWhacker' ci-"
-"dessus, pour obtenir des résultats stupéfiants. (Notez que la plupart des "
-"images trouvées sont en fait du texte et non des images proprement dites. "
-"Cela est dû au fait que la plupart des images du Web contiennent du texte, "
-"ce qui est assez désolant.) Écrit par Jamie Zawinski."
+msgstr "Ce programme effectue des collages à partir d'images extraites au hasard depuis le World Wide Web. Il les trouve en faisant des recherches aléatoires sur le Web et en extrayant les images des pages trouvées. Il peut également être configuré pour filtrer les images via le programme 'VidWhacker' ci-dessus, pour obtenir des résultats stupéfiants. (Notez que la plupart des images trouvées sont en fait du texte et non des images proprement dites. Cela est dû au fait que la plupart des images du Web contiennent du texte, ce qui est assez désolant.) Écrit par Jamie Zawinski."
#: hacks/config/webcollage.xml.h:10
msgid "URL Timeout"
"Floating stars are acted upon by a mixture of simple 2D forcefields. The "
"strength of each forcefield changes continuously, and it is also switched on "
"and off at random. By Paul 'Joey' Clark."
-msgstr ""
-"Des étoiles flottantes sont influencées par un mélange de simples champs de "
-"forces 2D. La puissance de chaque champ de forces change continuellement. "
-"Les champs sont également activés et désactivés au hasard. Par Paul 'Joey' "
-"Clark."
+msgstr "Des étoiles flottantes sont influencées par un mélange de simples champs de forces 2D. La puissance de chaque champ de forces change continuellement. Les champs sont également activés et désactivés au hasard. Par Paul 'Joey' Clark."
#: hacks/config/whirlwindwarp.xml.h:7
msgid "Trail Size"
#: hacks/config/whirlygig.xml.h:3
msgid "Draws zooming chains of sinusoidal spots. Written by Ashton Trey Belew."
-msgstr ""
-"Dessine des chaînes de taches sinusoïdales. Écrit par Ashton Trey Belew."
+msgstr "Dessine des chaînes de taches sinusoïdales. Écrit par Ashton Trey Belew."
#: hacks/config/whirlygig.xml.h:4
msgid "Explain modes"
"An ancient xlock hack that draws multicolored worms that crawl around the "
"screen. Written by Brad Taylor, Dave Lemke, Boris Putanec, and Henrik "
"Theiling."
-msgstr ""
-"Ancien hack xlock qui dessine des vers multicolores rampant sur l'écran. "
-"Écrit par Brad Taylor, Dave Lemke, Boris Putanec et Henrik Theiling."
+msgstr "Ancien hack xlock qui dessine des vers multicolores rampant sur l'écran. Écrit par Brad Taylor, Dave Lemke, Boris Putanec et Henrik Theiling."
#: hacks/config/wormhole.xml.h:6
msgid "Star speed"
msgid ""
"Draws a simulation of pulsing fire. It can also take an arbitrary image and "
"set it on fire too. Written by Carsten Haitzler, hacked on by many others."
-msgstr ""
-"Dessine une simulation de feu rougeoyant. Il peut également choisir une "
-"image arbitraire et lui mettre le feu. Écrit par Carsten Haitzler, avec de "
-"nombreuses contributions."
+msgstr "Dessine une simulation de feu rougeoyant. Il peut également choisir une image arbitraire et lui mettre le feu. Écrit par Carsten Haitzler, avec de nombreuses contributions."
#: hacks/config/xflame.xml.h:3
msgid "Enable Blooming"
"Jamie Zawinski. If you haven't seen Stanley Kubrick's masterpiece, ``The "
"Shining,'' you won't get it. Those who have describe this hack as "
"``inspired.''"
-msgstr ""
-"Ce programme a un comportement schizophrène et effectue de nombreuses "
-"coquilles. Écrit par Jamie Zawinski. Si vous n'avez pas vu le chef-d'oeuvre "
-"de Stanley Kubrick, «Shining», vous n'y comprendrez rien. Ceux qui l'ont vu "
-"considèrent ce hack comme «inspiré»."
+msgstr "Ce programme a un comportement schizophrène et effectue de nombreuses coquilles. Écrit par Jamie Zawinski. Si vous n'avez pas vu le chef-d'oeuvre de Stanley Kubrick, «Shining», vous n'y comprendrez rien. Ceux qui l'ont vu considèrent ce hack comme «inspiré»."
#: hacks/config/xjack.xml.h:5
msgid "Xjack"
"This generates pretty fractal pictures by doing funky math involving the "
"``Lyapunov exponent.'' It has a cool interactive mode, too. Written by Ron "
"Record."
-msgstr ""
-"Génère de jolies fractales en effectuant de géniales opérations de math "
-"utilisant ''l'exposant de Lyapunov''. Il possède aussi un mode interactif. "
-"Écrit par Ron Record."
+msgstr "Génère de jolies fractales en effectuant de géniales opérations de math utilisant ''l'exposant de Lyapunov''. Il possède aussi un mode interactif. Écrit par Ron Record."
#: hacks/config/xlyap.xml.h:2
msgid "Xlyap"
msgid "Xmatrix"
msgstr "Xmatrix"
-#: hacks/config/xmountains.xml.h:2
+#: hacks/config/xmountains.xml.h:1
+msgid "1.0"
+msgstr "1.0"
+
+#: hacks/config/xmountains.xml.h:3
+msgid "14"
+msgstr "14"
+
+#: hacks/config/xmountains.xml.h:4
+msgid "7"
+msgstr "7"
+
+#: hacks/config/xmountains.xml.h:5
+msgid "Altitude Low"
+msgstr "Amplitude basse"
+
+#: hacks/config/xmountains.xml.h:6
+msgid "Ambient Low"
+msgstr ""
+
+#: hacks/config/xmountains.xml.h:7
+msgid "Angle of Light"
+msgstr "Angle lumière"
+
+#: hacks/config/xmountains.xml.h:8
+msgid "Contour Low"
+msgstr "Contour bas"
+
+#: hacks/config/xmountains.xml.h:9
+msgid "Contrast Low"
+msgstr "Contraste bas"
+
+#: hacks/config/xmountains.xml.h:10
+msgid "Craggy"
+msgstr ""
+
+#: hacks/config/xmountains.xml.h:11
+msgid "Cross Update"
+msgstr ""
+
+#: hacks/config/xmountains.xml.h:12
+msgid "Distance Low"
+msgstr ""
+
+#: hacks/config/xmountains.xml.h:14
+msgid "Foreground"
+msgstr "Avant-plan"
+
+#: hacks/config/xmountains.xml.h:15
+msgid "Fractal Options"
+msgstr "Options fractales"
+
+#: hacks/config/xmountains.xml.h:16
+msgid "Height Low"
+msgstr ""
+
+#: hacks/config/xmountains.xml.h:18
+msgid "Horizontal Low"
+msgstr ""
+
+#: hacks/config/xmountains.xml.h:19
+msgid "Iteration 0"
+msgstr "Itération 0"
+
+#: hacks/config/xmountains.xml.h:20
+msgid "Light Level"
+msgstr "Niveau de lumière"
+
+#: hacks/config/xmountains.xml.h:21
+msgid "Recursion 0"
+msgstr "Récursion 0"
+
+#: hacks/config/xmountains.xml.h:22
msgid "Reflections"
msgstr "Réflexions"
-#: hacks/config/xmountains.xml.h:3
+#: hacks/config/xmountains.xml.h:23
+msgid "Sea Level Low"
+msgstr ""
+
+#: hacks/config/xmountains.xml.h:24
msgid "Side View"
msgstr "Vue latérale"
-#: hacks/config/xmountains.xml.h:6
+#: hacks/config/xmountains.xml.h:26
+msgid "Smoothing 0"
+msgstr "Lissage 0"
+
+#: hacks/config/xmountains.xml.h:27
+msgid "Speed Slow"
+msgstr "Vitesse lente"
+
+#: hacks/config/xmountains.xml.h:28
+msgid "Terrain"
+msgstr "Terrain"
+
+#: hacks/config/xmountains.xml.h:29
msgid "Top View"
msgstr "Vue plongeante"
-#: hacks/config/xmountains.xml.h:7
+#: hacks/config/xmountains.xml.h:30
+msgid "V. Shift Low"
+msgstr ""
+
+#: hacks/config/xmountains.xml.h:31
+msgid "V. Stretch Low"
+msgstr ""
+
+#: hacks/config/xmountains.xml.h:32
+msgid "Variance Low"
+msgstr ""
+
+#: hacks/config/xmountains.xml.h:33
+msgid "Vertical Low"
+msgstr ""
+
+#: hacks/config/xmountains.xml.h:34
+msgid "Viewpoint"
+msgstr "Point de vue"
+
+#: hacks/config/xmountains.xml.h:35
msgid ""
"XMountains generates realistic-looking fractal terrains of snow-capped "
"mountains near water, with either a top view or a side view. Written by "
"Stephen Booth. This is not included with the XScreenSaver package, but if "
"you don't have it already, you can find it at <http://www.epcc.ed.ac.uk/"
-"~spb/xmountains/>. Be sure to compile it with -DVROOT or it won't work "
-"right when launched by the xscreensaver daemon."
+"~spb/xmountains/>. (Make sure you have version 2.7 or newer!)"
msgstr ""
-#: hacks/config/xmountains.xml.h:8
+#: hacks/config/xmountains.xml.h:36
+msgid "Xf 0.0"
+msgstr ""
+
+#: hacks/config/xmountains.xml.h:37
msgid "Xmountains"
msgstr "Xmountains"
+#: hacks/config/xmountains.xml.h:38
+msgid "Yf 0.0"
+msgstr ""
+
#: hacks/config/xplanet.xml.h:2
#, no-c-format
msgid "0%"
#: hacks/config/xplanet.xml.h:66
msgid "View Charon"
-msgstr ""
+msgstr "Voir Charon"
#: hacks/config/xplanet.xml.h:67
msgid "View Deimos"
-msgstr ""
+msgstr "Voir Deimos"
#: hacks/config/xplanet.xml.h:68
msgid "View Dione"
-msgstr ""
+msgstr "Voir Dione"
#: hacks/config/xplanet.xml.h:69
msgid "View Earth"
#: hacks/config/xplanet.xml.h:70
msgid "View Enceladus"
-msgstr ""
+msgstr "Voir Enceladus"
#: hacks/config/xplanet.xml.h:71
msgid "View Europa"
-msgstr ""
+msgstr "Voir Europe"
#: hacks/config/xplanet.xml.h:72
msgid "View Ganymede"
-msgstr ""
+msgstr "Voir Ganymède"
#: hacks/config/xplanet.xml.h:73
msgid "View Hyperion"
-msgstr ""
+msgstr "Voir Hyperion"
#: hacks/config/xplanet.xml.h:74
msgid "View Iapetus"
-msgstr ""
+msgstr "Voir Iapetus"
#: hacks/config/xplanet.xml.h:75
msgid "View Io"
-msgstr ""
+msgstr "Voir Io"
#: hacks/config/xplanet.xml.h:76
msgid "View Jupiter"
#: hacks/config/xplanet.xml.h:77
msgid "View Major"
-msgstr ""
+msgstr "Voir Major"
#: hacks/config/xplanet.xml.h:78
msgid "View Mars"
-msgstr ""
+msgstr "Voir Mars"
#: hacks/config/xplanet.xml.h:79
msgid "View Mercury"
-msgstr ""
+msgstr "Voir Mercure"
#: hacks/config/xplanet.xml.h:80
msgid "View Mimas"
-msgstr ""
+msgstr "Voir Minas"
#: hacks/config/xplanet.xml.h:81
msgid "View Miranda"
-msgstr ""
+msgstr "Voir Miranda"
#: hacks/config/xplanet.xml.h:82
msgid "View Moon"
#: hacks/config/xplanet.xml.h:83
msgid "View Neptune"
-msgstr ""
+msgstr "Voir Neptune"
#: hacks/config/xplanet.xml.h:84
msgid "View Nereid"
-msgstr ""
+msgstr "Voir Nereid"
#: hacks/config/xplanet.xml.h:85
msgid "View Oberon"
-msgstr ""
+msgstr "Voir Obéron"
#: hacks/config/xplanet.xml.h:86
msgid "View Phobos"
-msgstr ""
+msgstr "Voir Phobos"
#: hacks/config/xplanet.xml.h:87
msgid "View Phoebe"
-msgstr ""
+msgstr "Voir Phoebe"
#: hacks/config/xplanet.xml.h:88
msgid "View Pluto"
-msgstr ""
+msgstr "Voir Pluton"
#: hacks/config/xplanet.xml.h:89
msgid "View Random"
#: hacks/config/xplanet.xml.h:90
msgid "View Rhea"
-msgstr ""
+msgstr "Voir Rhéa"
#: hacks/config/xplanet.xml.h:91
msgid "View Saturn"
-msgstr ""
+msgstr "Voir Saturne"
#: hacks/config/xplanet.xml.h:92
msgid "View Sun"
#: hacks/config/xplanet.xml.h:93
msgid "View Tethys"
-msgstr ""
+msgstr "Voir Thethys"
#: hacks/config/xplanet.xml.h:94
msgid "View Titan"
-msgstr ""
+msgstr "Voir Titan"
#: hacks/config/xplanet.xml.h:95
msgid "View Titania"
-msgstr ""
+msgstr "Voir Titania"
#: hacks/config/xplanet.xml.h:96
msgid "View Triton"
-msgstr ""
+msgstr "Voir Triton"
#: hacks/config/xplanet.xml.h:97
msgid "View Umbriel"
-msgstr ""
+msgstr "Voir Umbriel"
#: hacks/config/xplanet.xml.h:98
msgid "View Uranus"
-msgstr ""
+msgstr "Voir Uranus"
#: hacks/config/xplanet.xml.h:99
msgid "View Venus"
-msgstr ""
+msgstr "Voir Vénus"
#: hacks/config/xplanet.xml.h:100
msgid "Xplanet"
msgid ""
"Draws a few swarms of critters flying around the screen, with nicely faded "
"color trails behind them. Written by Chris Leger."
-msgstr ""
-"Dessine quelques nuées de bestioles qui volent sur l'écran, avec de jolies "
-"traînées dans des fondus de couleur. Écrit par Chris Leger."
+msgstr "Dessine quelques nuées de bestioles qui volent sur l'écran, avec de jolies traînées dans des fondus de couleur. Écrit par Chris Leger."
#: hacks/config/xrayswarm.xml.h:5
msgid "XRaySwarm"
msgid "Xsnow"
msgstr "Xsnow"
-#: hacks/config/xspirograph.xml.h:4
-msgid "Layers"
-msgstr "Couches"
-
#: hacks/config/xspirograph.xml.h:5
msgid ""
"Simulates that pen-in-nested-plastic-gears toy from your childhood. By Rohit "
"Singh."
-msgstr ""
-"Simule le célèbre jouet de notre enfance, constitué d'un stylo logé dans un "
-"engrenage en plastique. Par Rohit Singh."
+msgstr "Simule le célèbre jouet de notre enfance, constitué d'un stylo logé dans un engrenage en plastique. Par Rohit Singh."
#: hacks/config/xspirograph.xml.h:6
msgid "XSpiroGraph"
msgid ""
"XTeeVee simulates various television problems, including static, loss of "
"vertical hold, and a test pattern. By Greg Knauss."
-msgstr ""
-"XTeeVee simule différents problèmes de télévision comme les parasites, la "
-"perte de stabilité verticale et la mire. Par Greg Knauss."
+msgstr "XTeeVee simule différents problèmes de télévision comme les parasites, la perte de stabilité verticale et la mire. Par Greg Knauss."
#: hacks/config/zoom.xml.h:3
msgid "Lens Offset"
"Zooms in on a part of the screen and then moves around. With the -lenses "
"option the result is like looking through many overlapping lenses rather "
"than just a simple zoom. Written by James Macnicol."
-msgstr ""
-"Zoome sur une partie de l'écran et se déplace. Avec l'option '-lenses', le "
-"résultat ressemble à la superposition de lentilles plutôt qu'à un simple "
-"zoom. Érit par James Macnicol."
+msgstr "Zoome sur une partie de l'écran et se déplace. Avec l'option '-lenses', le résultat ressemble à la superposition de lentilles plutôt qu'à un simple zoom. Écrit par James Macnicol."
$ mydisk = f$trnlmn("SYS$DISK")
$ mydir = mydisk+f$directory()
$ anemone :== $'mydir'anemone
+$ anemotaxis :== $'mydir'anemotaxis
$ ant :== $'mydir'ant
$ apollonian :== $'mydir'apollonian
$ apple2 :== $'mydir'apple2
$ lmorph :== $'mydir'lmorph
$ loop :== $'mydir'loop
$ maze :== $'mydir'maze
+$ memscroller :== $'mydir'memscroller
$ metaballs :== $'mydir'metaballs
$ mismunch :== $'mydir'mismunch
$ moire2 :== $'mydir'moire2
-/* xscreensaver, Copyright (c) 1992, 1993, 1994, 1997, 1998, 2001, 2003
+/* xscreensaver, Copyright (c) 1992, 1993, 1994, 1997, 1998, 2001, 2003, 2004
* Jamie Zawinski <jwz@jwz.org>
*
* Permission to use, copy, modify, distribute, and sell this software and its
#include "vroot.h"
#include <X11/Xatom.h>
+#include <X11/Intrinsic.h> /* for XtInputId, etc */
+
+
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
extern char *progname;
+extern XtAppContext app;
static Bool error_handler_hit_p = False;
Atom type;
int format;
unsigned long nitems, bytesafter;
- char *version;
+ unsigned char *version;
if (XGetWindowProperty (dpy, window,
XInternAtom (dpy, "_SCREENSAVER_VERSION", False),
0, 1, False, XA_STRING,
&type, &format, &nitems, &bytesafter,
- (unsigned char **) &version)
+ &version)
== Success
&& type != None)
return True;
}
}
+
+static char *
+get_name (Display *dpy, Window window)
+{
+ Atom type;
+ int format;
+ unsigned long nitems, bytesafter;
+ unsigned char *name = 0;
+ Atom atom = XInternAtom (dpy, XA_XSCREENSAVER_IMAGE_FILENAME, False);
+ if (XGetWindowProperty (dpy, window, atom,
+ 0, 1024, False, XA_STRING,
+ &type, &format, &nitems, &bytesafter,
+ &name)
+ == Success
+ && type != None)
+ return strdup((char *) name);
+ else
+ return 0;
+}
+
+
static void
hack_subproc_environment (Display *dpy)
{
}
+typedef struct {
+ void (*callback) (Screen *, Window, Drawable,
+ const char *name, void *closure);
+ Screen *screen;
+ Window window;
+ Drawable drawable;
+ void *closure;
+ FILE *read_pipe;
+ FILE *write_pipe;
+ XtInputId pipe_id;
+} grabclient_data;
+
+
+static void finalize_cb (XtPointer closure, int *fd, XtIntervalId *id);
+
+static void
+fork_exec_cb (const char *command,
+ Screen *screen, Window window, Drawable drawable,
+ void (*callback) (Screen *, Window, Drawable,
+ const char *name, void *closure),
+ void *closure)
+{
+ grabclient_data *data;
+ char buf [255];
+ pid_t forked;
+
+ int fds [2];
+
+ if (pipe (fds))
+ {
+ sprintf (buf, "%s: creating pipe", progname);
+ perror (buf);
+ exit (1);
+ }
+
+ data = (grabclient_data *) calloc (1, sizeof(*data));
+ data->callback = callback;
+ data->closure = closure;
+ data->screen = screen;
+ data->window = window;
+ data->drawable = drawable;
+ data->read_pipe = fdopen (fds[0], "r");
+ data->write_pipe = fdopen (fds[1], "w");
+
+ if (!data->read_pipe || !data->write_pipe)
+ {
+ sprintf (buf, "%s: fdopen", progname);
+ perror (buf);
+ exit (1);
+ }
+
+ data->pipe_id =
+ XtAppAddInput (app, fileno (data->read_pipe),
+ (XtPointer) (XtInputReadMask | XtInputExceptMask),
+ finalize_cb, (XtPointer) data);
+
+ switch ((int) (forked = fork ()))
+ {
+ case -1:
+ sprintf (buf, "%s: couldn't fork", progname);
+ perror (buf);
+ return;
+
+ case 0: /* child */
+
+ fclose (data->read_pipe);
+ data->read_pipe = 0;
+
+ /* clone the write pipe onto stdout so that it gets closed
+ when the fork exits. This will shut down the pipe and
+ signal the parent.
+ */
+ close (fileno (stdout));
+ dup2 (fds[1], fileno (stdout));
+ close (fds[1]);
+
+ close (fileno (stdin)); /* for kicks */
+
+ exec_simple_command (command);
+ exit (1); /* exits child fork */
+ break;
+
+ default: /* parent */
+ fclose (data->write_pipe);
+ data->write_pipe = 0;
+ break;
+ }
+}
+
+
+/* Called in the parent when the forked process dies.
+ Runs the caller's callback, and cleans up.
+ */
+static void
+finalize_cb (XtPointer closure, int *fd, XtIntervalId *id)
+{
+ grabclient_data *data = (grabclient_data *) closure;
+ char *name;
+
+ XtRemoveInput (*id);
+
+ name = get_name (DisplayOfScreen (data->screen), data->window);
+ data->callback (data->screen, data->window, data->drawable,
+ name, data->closure);
+ free (name);
+
+ fclose (data->read_pipe);
+ memset (data, 0, sizeof (*data));
+ free (data);
+}
+
+
/* Loads an image into the Drawable.
When grabbing desktop images, the Window will be unmapped first.
*/
-void
-load_random_image (Screen *screen, Window window, Drawable drawable,
- char **name_ret)
+static void
+load_random_image_1 (Screen *screen, Window window, Drawable drawable,
+ void (*callback) (Screen *, Window, Drawable,
+ const char *name, void *closure),
+ void *closure,
+ char **name_ret)
{
Display *dpy = DisplayOfScreen (screen);
char *grabber = get_string_resource ("desktopGrabber", "DesktopGrabber");
XSync (dpy, True);
hack_subproc_environment (dpy);
- fork_exec_wait (cmd);
+
+ if (callback)
+ {
+ /* Start the image loading in another fork and return immediately.
+ Invoke the callback function when done.
+ */
+ if (name_ret) abort();
+ fork_exec_cb (cmd, screen, window, drawable, callback, closure);
+ }
+ else
+ {
+ /* Wait for the image to load, and return it immediately.
+ */
+ fork_exec_wait (cmd);
+ if (name_ret)
+ *name_ret = get_name (dpy, window);
+ }
+
free (cmd);
XSync (dpy, True);
+}
- if (name_ret)
+
+/* Loads an image into the Drawable in the background;
+ when the image is fully loaded, runs the callback.
+ When grabbing desktop images, the Window will be unmapped first.
+ */
+void
+fork_load_random_image (Screen *screen, Window window, Drawable drawable,
+ void (*callback) (Screen *, Window, Drawable,
+ const char *name, void *closure),
+ void *closure)
+{
+ load_random_image_1 (screen, window, drawable, callback, closure, 0);
+}
+
+
+#ifndef DEBUG
+
+/* Loads an image into the Drawable, returning once the image is loaded.
+ When grabbing desktop images, the Window will be unmapped first.
+ */
+void
+load_random_image (Screen *screen, Window window, Drawable drawable,
+ char **name_ret)
+{
+ load_random_image_1 (screen, window, drawable, 0, 0, name_ret);
+}
+
+#else /* DEBUG */
+
+typedef struct {
+ char **name_ret;
+ Bool done;
+} debug_closure;
+
+static void
+debug_cb (Screen *screen, Window window, Drawable drawable,
+ const char *name, void *closure)
+{
+ debug_closure *data = (debug_closure *) closure;
+ fprintf (stderr, "%s: GRAB DEBUG: callback\n", progname);
+ if (data->name_ret)
+ *data->name_ret = (name ? strdup (name) : 0);
+ data->done = True;
+}
+
+void
+load_random_image (Screen *screen, Window window, Drawable drawable,
+ char **name_ret)
+{
+ debug_closure data;
+ data.name_ret = name_ret;
+ data.done = False;
+ fprintf (stderr, "%s: GRAB DEBUG: forking\n", progname);
+ fork_load_random_image (screen, window, drawable, debug_cb, &data);
+ while (! data.done)
{
- Atom type;
- int format;
- unsigned long nitems, bytesafter;
- char *name=NULL;
-
- *name_ret = NULL;
-
- if (XGetWindowProperty (dpy, window,
- XInternAtom (dpy, XA_XSCREENSAVER_IMAGE_FILENAME,
- False),
- 0, 1024, False, XA_STRING,
- &type, &format, &nitems, &bytesafter,
- (unsigned char **) &name)
- == Success
- && type != None)
- *name_ret = strdup(name);
+ fprintf (stderr, "%s: GRAB DEBUG: waiting\n", progname);
+ if (XtAppPending (app) & XtIMAlternateInput)
+ XtAppProcessEvent (app, XtIMAlternateInput);
+ usleep (50000);
}
+ fprintf (stderr, "%s: GRAB DEBUG: done\n", progname);
}
+
+#endif /* DEBUG */
-/* xscreensaver, Copyright (c) 1992, 1993, 1994, 1997, 1998, 2003
+/* xscreensaver, Copyright (c) 1992, 1993, 1994, 1997, 1998, 2003, 2004
* Jamie Zawinski <jwz@jwz.org>
*
* Permission to use, copy, modify, distribute, and sell this software and its
Atom type;
int format;
unsigned long nitems, bytesafter;
- char *version;
+ unsigned char *version;
if (XGetWindowProperty (dpy, window,
XInternAtom (dpy, "_SCREENSAVER_VERSION", False),
0, 1, False, XA_STRING,
&type, &format, &nitems, &bytesafter,
- (unsigned char **) &version)
+ &version)
== Success
&& type != None)
return True;
-/* xscreensaver, Copyright (c) 1992, 1993, 1994, 1997, 2001, 2003
+/* xscreensaver, Copyright (c) 1992, 1993, 1994, 1997, 2001, 2003, 2004
* Jamie Zawinski <jwz@jwz.org>
*
* Permission to use, copy, modify, distribute, and sell this software and its
Drawable target_window_or_pixmap,
char **filename_return);
+/* Like the above, but loads the image in the background and runs the
+ given callback once it has been loaded.
+ */
+extern void fork_load_random_image (Screen *screen, Window window,
+ Drawable drawable,
+ void (*callback) (Screen *, Window,
+ Drawable,
+ const char *name,
+ void *closure),
+ void *closure);
+
+
/* Whether one should use GCSubwindowMode when drawing on this window
(assuming a screen image has been grabbed onto it.) Yes, this is a
total kludge. */
-/* xscreensaver, Copyright (c) 1997, 2001 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1997, 2001, 2004 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
Atom actual_type;
int actual_format;
unsigned long nitems, bytes_after;
- struct overlay_data *data = 0;
+ unsigned char *data = 0;
Display *dpy = DisplayOfScreen(screen);
Window window = RootWindowOfScreen(screen);
Atom XA_SERVER_OVERLAY_VISUALS =
XA_SERVER_OVERLAY_VISUALS,
&actual_type, &actual_format,
&nitems, &bytes_after,
- (unsigned char **) &data);
+ &data);
if (result != Success ||
actual_type != XA_SERVER_OVERLAY_VISUALS ||
actual_format != 32 ||
}
else
{
- *data_ret = data;
- return nitems / (sizeof(*data) / sizeof(CARD32));
+ struct overlay_data *d = (struct overlay_data *) data;
+ *data_ret = d;
+ return nitems / (sizeof(*d) / sizeof(CARD32));
}
}
static const char screensaver_id[] =
- "@(#)xscreensaver 4.16 (12-May-2004), by Jamie Zawinski (jwz@jwz.org)";
+ "@(#)xscreensaver 4.18 (14-Aug-2004), by Jamie Zawinski (jwz@jwz.org)";
Atom actual_type;
int actual_format;
unsigned long nitems, bytesafter;
- Window *newRoot = (Window *)0;
+ unsigned char *newRoot = 0;
if (XGetWindowProperty(dpy, children[i],
__SWM_VROOT, 0, 1, False, XA_WINDOW,
&actual_type, &actual_format,
&nitems, &bytesafter,
- (unsigned char **) &newRoot) == Success
+ &newRoot) == Success
&& newRoot) {
- root = *newRoot;
+ root = (Window) *newRoot;
break;
}
}
#else /* HAVE_XMU */
-# ifdef __osf__
- /* Stupid alpha 3.2 compiler returns a FAILURE exit code if compiling
- an empty file. Fake it out with a file-private variable. */
- static const int digital_unix_compiler_sucks;
-# endif /* __osf__ */
+/* Shut up the stupid "gcc -pedantic" warning */
+int _I_dont_care_that_ISO_C_forbids_an_empty_source_file_ = 1;
#endif /* HAVE_XMU */
Begin3
Title: xscreensaver
-Version: 4.16
-Entered-date: 12MAY04
+Version: 4.18
+Entered-date: 14AUG04
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.
Author: jwz@jwz.org (Jamie Zawinski)
Maintained-by: jwz@jwz.org (Jamie Zawinski)
Primary-site: http://www.jwz.org/xscreensaver/
- 4209K xscreensaver-4.16.tar.gz
- 68K xscreensaver.README
+ 4251K xscreensaver-4.18.tar.gz
+ 69K xscreensaver.README
1K xscreensaver.lsm
Alternate-site: sunsite.unc.edu /pub/Linux/X11/screensavers/
- 4209K xscreensaver-4.16.tar.gz
- 68K xscreensaver.README
+ 4251K xscreensaver-4.18.tar.gz
+ 69K xscreensaver.README
1K xscreensaver.lsm
Alternate-site: ftp.x.org /contrib/applications/
- 4209K xscreensaver-4.16.tar.gz
- 68K xscreensaver.README
+ 4251K xscreensaver-4.18.tar.gz
+ 69K xscreensaver.README
1K xscreensaver.lsm
Platforms: Linux, Irix, SunOS, Solaris, HPUX, AIX, FreeBSD, NetBSD,
BSDI, SCO, OSF1, Ultrix, VMS.
%define name xscreensaver
-%define version 4.16
+%define version 4.18
%define release 1
%define epoch 1
%define x11_prefix /usr/X11R6