From: Zygo Blaxell Date: Thu, 11 Sep 2014 05:45:26 +0000 (-0400) Subject: From http://www.jwz.org/xscreensaver/xscreensaver-5.29.tar.gz X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=commitdiff_plain;h=dba664f31aa87285db4d76cf8c5e66335299703a From jwz.org/xscreensaver/xscreensaver-5.29.tar.gz -rw-r--r-- 1 zblaxell zblaxell 8774562 Jun 8 18:04 xscreensaver-5.29.tar.gz a27a10c6eed024c458e927ee0dc1e6cb306d3335 xscreensaver-5.29.tar.gz --- diff --git a/Makefile.in b/Makefile.in index 63792cb5..1d29b54b 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,4 +1,4 @@ -# Makefile.in --- xscreensaver, Copyright (c) 1999-2010 Jamie Zawinski. +# Makefile.in --- xscreensaver, Copyright (c) 1999-2014 Jamie Zawinski. # the `../configure' script generates `Makefile' from this file. @SET_MAKE@ @@ -95,6 +95,7 @@ tar:: # of autoconf other than the ones I've tried (2.12 and 2.13.) # configure:: + aclocal autoconf autoheader @TMP=configure.$$$$ ; \ @@ -372,8 +373,8 @@ www:: fi ; \ \ git commit -m "$$VERS" . ; \ - git tag -a "v$$VERS" -m "$$VERS" . ; \ - git push . ; \ + git tag -a "v$$VERS" -m "$$VERS" ; \ + git push ; \ count:: diff --git a/OSX/Makefile b/OSX/Makefile index 28588ee8..6d808354 100644 --- a/OSX/Makefile +++ b/OSX/Makefile @@ -1,21 +1,28 @@ -# XScreenSaver for MacOS X, Copyright (c) 2006-2013 by Jamie Zawinski. +# XScreenSaver for MacOS X, Copyright (c) 2006-2014 by Jamie Zawinski. -XCODEBUILD = /usr/bin/xcodebuild -TARGETS = -target "All Savers" +# We have to use Xcode 5.0.2 in order to build savers that will run on +# MacOS 10.6 and 10.7, because that's the latest version of Xcode that +# ships with a version of clang that implements "-fobjc-gc". +# +XCODE_APP = /Applications/Xcode-5.0.2.app + +TARGETS = All Savers ARCH = -arch i386 -arch x86_64 CERT = 'Jamie Zawinski' CERT = 'iPhone Developer: Jamie Zawinski (Y5M82TL69N)' -THUMBDIR = $(HOME)/www/xscreensaver/screenshots/ PKGID = org.jwz.xscreensaver -SETFILE = /Applications/Xcode.app/Contents/Developer/Tools/SetFile +THUMBDIR = $(HOME)/www/xscreensaver/screenshots/ +XCODEBUILD = $(XCODE_APP)/Contents/Developer/usr/bin/xcodebuild +SETFILE = $(XCODE_APP)/Contents/Developer/Tools/SetFile SETICON = /usr/local/bin/seticon +# seticon is from osxutils1.7.pkg default: release all: debug release clean: -rm -rf build -# cd ..; $(XCODEBUILD) $(TARGETS) clean +# cd ..; $(XCODEBUILD) -target "$(TARGETS)" clean distclean: -rm -f config.status config.cache config.log \ @@ -27,10 +34,10 @@ distdepend:: Sparkle.framework distdepend:: update_plist_version debug: distdepend - cd ..; $(XCODEBUILD) $(ARCH) $(TARGETS) -configuration Debug build + cd ..; $(XCODEBUILD) $(ARCH) -target "$(TARGETS)" -configuration Debug build release:: distdepend - cd ..; $(XCODEBUILD) $(ARCH) $(TARGETS) -configuration Release build + cd ..; $(XCODEBUILD) $(ARCH) -target "$(TARGETS)" -configuration Release build release:: check_versions release:: update_thumbs @@ -66,6 +73,25 @@ check_versions: if [ "$$RESULT" = 0 ]; then echo "Versions match ($$V2)" ; fi ; \ exit $$RESULT + +check_gc: + @\ + DIR="build/Release" ; \ + RESULT=0 ; \ + for S in "$$DIR/"*.saver ; do \ + SS=`echo "$$S" | sed -e 's@^.*/@@' -e 's/.saver$$//'` ; \ + D="$$S/Contents/MacOS/$$SS" ; \ + V=`otool -s __DATA __objc_imageinfo "$$D" \ + | grep ' 00 02 00 '` ; \ + if [ -z "$$V" ]; then \ + echo "$$S does not have GC enabled" ; \ + RESULT=1 ; \ + fi ; \ + done ; \ + if [ "$$RESULT" = 0 ]; then echo "GC enabled" ; fi ; \ + exit $$RESULT + + update_thumbs:: ./update-thumbnail.pl $(THUMBDIR) build/Release/*.saver @@ -167,7 +193,7 @@ build/Release/installer.pkg: installer.rtf installer.xml installer.sh installer. # -format UDBZ saves 4% (~1.2 MB) over UDZO. -dmg:: distdepend check_versions build/Release/installer.pkg +dmg:: distdepend check_versions check_gc build/Release/installer.pkg @ \ set -e ; \ SRC=../utils/version.h ; \ diff --git a/OSX/SaverRunner.plist b/OSX/SaverRunner.plist index c3fe9c3b..c7664a16 100644 --- a/OSX/SaverRunner.plist +++ b/OSX/SaverRunner.plist @@ -7,7 +7,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleGetInfoString - 5.27 + 5.29 CFBundleIconFile SaverRunner CFBundleIdentifier @@ -15,21 +15,21 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleLongVersionString - 5.27 + 5.29 CFBundleName ${PRODUCT_NAME} CFBundlePackageType APPL CFBundleShortVersionString - 5.27 + 5.29 CFBundleSignature ???? CFBundleVersion - 5.27 + 5.29 LSMinimumSystemVersion ${MACOSX_DEPLOYMENT_TARGET} NSHumanReadableCopyright - 5.27 + 5.29 NSMainNibFile SaverRunner NSPrincipalClass diff --git a/OSX/Updater.plist b/OSX/Updater.plist index f4ad229b..7ba47f26 100644 --- a/OSX/Updater.plist +++ b/OSX/Updater.plist @@ -7,7 +7,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleGetInfoString - 5.27 + 5.29 CFBundleIconFile SaverRunner CFBundleIdentifier @@ -15,7 +15,7 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleLongVersionString - 5.27 + 5.29 CFBundleName ${PRODUCT_NAME} CFBundleDisplayName @@ -23,17 +23,17 @@ CFBundlePackageType APPL CFBundleShortVersionString - 5.27 + 5.29 CFBundleSignature ???? CFBundleVersion - 5.27 + 5.29 LSMinimumSystemVersion ${MACOSX_DEPLOYMENT_TARGET} LSUIElement NSHumanReadableCopyright - 5.27 + 5.29 NSMainNibFile Updater NSPrincipalClass diff --git a/OSX/XScreenSaver.plist b/OSX/XScreenSaver.plist index b1f166e2..dd549bd6 100644 --- a/OSX/XScreenSaver.plist +++ b/OSX/XScreenSaver.plist @@ -15,11 +15,11 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 5.27 + 5.29 CFBundleSignature ???? CFBundleVersion - 5.27 + 5.29 LSMinimumSystemVersion 10.4 NSMainNibFile diff --git a/OSX/XScreenSaverView.m b/OSX/XScreenSaverView.m index 989edf29..1b3af09f 100644 --- a/OSX/XScreenSaverView.m +++ b/OSX/XScreenSaverView.m @@ -960,6 +960,8 @@ double current_device_rotation (void) (void *(*) (Display *, Window, void *)) xsft->init_cb; xdata = init_cb (xdpy, xwindow, xsft->setup_arg); + // NSAssert(xdata, @"no xdata from init"); + if (! xdata) abort(); if (get_boolean_resource (xdpy, "doFPS", "DoFPS")) { fpst = fps_init (xdpy, xwindow); @@ -1064,6 +1066,8 @@ double current_device_rotation (void) # ifndef USE_IPHONE NSDisableScreenUpdates(); # endif + // NSAssert(xdata, @"no xdata when drawing"); + if (! xdata) abort(); unsigned long delay = xsft->draw_cb (xdpy, xwindow, xdata); if (fpst) xsft->fps_cb (xdpy, xwindow, fpst, xdata); # ifndef USE_IPHONE diff --git a/OSX/bindist.rtf b/OSX/bindist.rtf index 1b7d6fd9..af58145b 100644 --- a/OSX/bindist.rtf +++ b/OSX/bindist.rtf @@ -16,8 +16,8 @@ \b0 by Jamie Zawinski\ and many others\ \ -version 5.27\ -27-May-2014\ +version 5.29\ +08-Jun-2014\ \ {\field{\*\fldinst{HYPERLINK "http://www.jwz.org/xscreensaver/"}}{\fldrslt \cf2 \ul \ulc2 http://www.jwz.org/xscreensaver/}}\ \pard\pardeftab720 diff --git a/OSX/enable_gc.c b/OSX/enable_gc.c index f8d2d9c2..c585bf66 100644 --- a/OSX/enable_gc.c +++ b/OSX/enable_gc.c @@ -11,16 +11,16 @@ * The problem: * * - OSX 10.5 and earlier require .saver bundles to not use GC. - * - OSX 10.6 require .saver bundles to use GC. - * - OSX 10.7 and later require .saver bundles to not use GC. + * - OSX 10.6 and 10.7 require .saver bundles to use GC. + * - OSX 10.8 and later require .saver bundles to not use GC. * * So the way to build a portable .saver is to build it with "GC optional", * via "-fobjc-gc" on the x86-64 architecture. * - * But XCode 5.x on OSX 10.9 no longer supports building executables - * that support GC, even optionally. So there's no way to make XCode - * 5.x create a .saver bundle that will work on OSX 10.6. Though it - * will work on 10.5! + * But XCode 5.0.2 was the last version of XCode to support building + * executables that support GC, even optionally. So there's no way to make + * the XCode that ships with OSX 10.9 create a .saver bundle that will work + * on OSX 10.6 and 10.7. Though it will work on 10.5! * * The fix: after compiling, hand-hack the generated binary to tag the * x86-64 arch with the OBJC_IMAGE_SUPPORTS_GC flag. @@ -45,6 +45,13 @@ * dependency of "libjwxyz" (so that it gets built first) and is * invoked by "update-info-plist.pl" (so that it gets run on every * saver). + * + * + * UPDATE, 2-Jun-2014: + * + * Actually, this seems not to be working. We're seeing intermittent + * crashes in malloc/calloc/free on 10.6 64 bit. When compiled with + * legit -fobjc-gc, those crashes don't occur. */ #include diff --git a/OSX/iSaverRunner.plist b/OSX/iSaverRunner.plist index 89418cba..736a5274 100644 --- a/OSX/iSaverRunner.plist +++ b/OSX/iSaverRunner.plist @@ -5,11 +5,11 @@ CFBundleName ${PRODUCT_NAME} NSHumanReadableCopyright - 5.27 + 5.29 CFBundleDevelopmentRegion English CFBundleVersion - 5.27 + 5.29 NSMainNibFile iSaverRunner CFBundlePackageType @@ -19,7 +19,7 @@ UIViewControllerBasedStatusBarAppearance CFBundleShortVersionString - 5.27 + 5.29 CFBundleInfoDictionaryVersion 6.0 UIRequiredDeviceCapabilities @@ -37,7 +37,7 @@ UIInterfaceOrientationLandscapeRight CFBundleLongVersionString - 5.27 + 5.29 CFBundleIdentifier ${BUNDLE_IDENTIFIER} CFBundleSignature @@ -65,6 +65,6 @@ CFBundleDisplayName ${PRODUCT_NAME} CFBundleGetInfoString - 5.27 + 5.29 diff --git a/OSX/installer.sh b/OSX/installer.sh index 06a1a135..120dd9d9 100755 --- a/OSX/installer.sh +++ b/OSX/installer.sh @@ -1,5 +1,5 @@ #!/bin/sh -# XScreenSaver, Copyright © 2013 Jamie Zawinski +# XScreenSaver, Copyright © 2013-2014 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 @@ -19,21 +19,38 @@ #exec >/tmp/xscreensaver.log 2>&1 #set -x +DEBUG=0 +REQUIRED_SPACE=160 # MB. Highly approximate. + export PATH="/bin:/sbin:/usr/bin:/usr/sbin:$PATH" -REQUIRED_SPACE=140 # MB. Highly approximate. +function error() { + echo "XScreenSaver Installer: Error: $@" >&2 + ( + # Using "System Events" says "No user interaction allowed" on 10.9. + # But using "Automator Runner" still seems to work. + osascript <<__EOF__ + tell app "Automator Runner" to \ + display dialog "$@" \ + buttons "Bummer" \ + default button 1 \ + with icon 0 \ + with title "Installation Error" +__EOF__ + ) /dev/null 2>&1 & + exit 1 +} -DEBUG=0 +#if[ x"$DSTVOLUME" = x ]; then error "DSTVOLUME unset"; fi +if [ x"$PACKAGE_PATH" = x ]; then error "PACKAGE_PATH unset"; fi +if [ x"$HOME" = x ]; then error "HOME unset"; fi -if [ x"$USER" = xjwz ]; then - DEBUG=1 -fi echo "Destination: $DSTVOLUME" >&2 -if [ "$DEBUG" != 0 ]; then - DSTVOLUME=/tmp -fi +if [ x"$USER" = xjwz ]; then DEBUG=1; fi + +if [ "$DEBUG" != 0 ]; then DSTVOLUME=/tmp; fi SRC=`dirname "$PACKAGE_PATH"`/"Screen Savers" DST1="$DSTVOLUME/Library/Screen Savers" @@ -41,16 +58,6 @@ DST2="$DSTVOLUME/Applications" PU="$DSTVOLUME/$HOME/Library/Screen Savers" UPDATER="XScreenSaverUpdater.app" -function error() { - echo "Error: $@" >&2 - ( - osascript <<__EOF__ - tell app "System Events" to display dialog "$@" buttons "Bummer" default button 1 with icon 0 with title "Installation Error" -__EOF__ - ) /dev/null 2>&1 & - exit 1 -} - cd "$SRC" || error "The 'Screen Savers' folder does not exist. You can't copy the installer out of the Disk Image!" diff --git a/OSX/jwxyz.h b/OSX/jwxyz.h index c8530da8..82a8b2ed 100644 --- a/OSX/jwxyz.h +++ b/OSX/jwxyz.h @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1991-2012 Jamie Zawinski +/* xscreensaver, Copyright (c) 1991-2014 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 @@ -269,6 +269,9 @@ typedef unsigned long XtInputMask; #define DisplayHeight XDisplayHeight #define XMaxRequestSize(dpy) (65535) +#define ScreenCount(dpy) jwxyz_ScreenCount(dpy) +extern int jwxyz_ScreenCount(Display *); + extern Display *jwxyz_make_display (void *nsview, void *cgc); extern void jwxyz_free_display (Display *); extern void *jwxyz_window_view (Window); diff --git a/OSX/jwxyz.m b/OSX/jwxyz.m index 2703bdca..ef3068c4 100644 --- a/OSX/jwxyz.m +++ b/OSX/jwxyz.m @@ -77,6 +77,7 @@ struct jwxyz_Drawable { struct jwxyz_Display { Window main_window; Screen *screen; + int screen_count; struct jwxyz_sources_data *timers_data; # ifndef USE_IPHONE @@ -93,6 +94,7 @@ struct jwxyz_Display { struct jwxyz_Screen { Display *dpy; Visual *visual; + int screen_number; }; struct jwxyz_GC { @@ -137,6 +139,26 @@ jwxyz_abort (const char *fmt, ...) } +/* We keep a list of all of the Displays that have been created and not + yet freed so that they can have sensible display numbers. If three + displays are created (0, 1, 2) and then #1 is closed, then the fourth + display will be given the now-unused display number 1. (Everything in + here assumes a 1:1 Display/Screen mapping.) + + The size of this array is the most number of live displays at one time. + So if it's 20, then we'll blow up if the system has 19 monitors and also + has System Preferences open (the small preview window). + + Note that xlockmore-style savers tend to allocate big structures, so + setting this to 1000 will waste a few megabytes. Also some of them assume + that the number of screens never changes, so dynamically expanding this + array won't work. + */ +# ifndef USE_IPHONE +static Display *jwxyz_live_displays[20] = { 0, }; +# endif + + Display * jwxyz_make_display (void *nsview_arg, void *cgc_arg) { @@ -149,6 +171,24 @@ jwxyz_make_display (void *nsview_arg, void *cgc_arg) d->screen = (Screen *) calloc (1, sizeof(Screen)); d->screen->dpy = d; + d->screen_count = 1; + d->screen->screen_number = 0; +# ifndef USE_IPHONE + { + // Find the first empty slot in live_displays and plug us in. + int size = sizeof(jwxyz_live_displays) / sizeof(*jwxyz_live_displays); + int i; + for (i = 0; i < size; i++) { + if (! jwxyz_live_displays[i]) + break; + } + if (i >= size) abort(); + jwxyz_live_displays[i] = d; + d->screen_count = size; + d->screen->screen_number = i; + } +# endif // !USE_IPHONE + Visual *v = (Visual *) calloc (1, sizeof(Visual)); v->class = TrueColor; v->red_mask = 0x00FF0000; @@ -187,6 +227,21 @@ jwxyz_free_display (Display *dpy) jwxyz_XtRemoveInput_all (dpy); // #### jwxyz_XtRemoveTimeOut_all (); +# ifndef USE_IPHONE + { + // Find us in live_displays and clear that slot. + int size = ScreenCount(dpy); + int i; + for (i = 0; i < size; i++) { + if (dpy == jwxyz_live_displays[i]) { + jwxyz_live_displays[i] = 0; + break; + } + } + if (i >= size) abort(); + } +# endif // !USE_IPHONE + free (dpy->screen->visual); free (dpy->screen); CFRelease (dpy->main_window->window.view); @@ -336,7 +391,13 @@ XDisplayNumberOfScreen (Screen *s) int XScreenNumberOfScreen (Screen *s) { - return 0; + return s->screen_number; +} + +int +jwxyz_ScreenCount (Display *dpy) +{ + return dpy->screen_count; } int diff --git a/OSX/update-info-plist.pl b/OSX/update-info-plist.pl index 8fe8b71d..5c6181ce 100755 --- a/OSX/update-info-plist.pl +++ b/OSX/update-info-plist.pl @@ -27,7 +27,7 @@ use IO::Compress::Gzip qw(gzip $GzipError); my ($exec_dir, $progname) = ($0 =~ m@^(.*?)/([^/]+)$@); -my ($version) = ('$Revision: 1.30 $' =~ m/\s(\d[.\d]+)\s/s); +my ($version) = ('$Revision: 1.33 $' =~ m/\s(\d[.\d]+)\s/s); $ENV{PATH} = "/usr/local/bin:$ENV{PATH}"; # for seticon @@ -391,7 +391,7 @@ sub update($) { set_icon ($app_dir); set_thumb ($app_dir); - enable_gc ($app_dir); +# enable_gc ($app_dir); } diff --git a/OSX/updates.xml b/OSX/updates.xml index 89c0eb77..6af53aee 100644 --- a/OSX/updates.xml +++ b/OSX/updates.xml @@ -7,6 +7,28 @@ http://www.jwz.org/xscreensaver/updates.xml Updates to xscreensaver. en + + Version 5.28 + http://www.jwz.org/xscreensaver/xscreensaver-5.28.dmg + • Turned off the OSX 10.6 enable_gc hack. It didn't work.]]> + Wed, 04 Jun 2014 13:51:27 -0700 + + + + Version 5.27 + http://www.jwz.org/xscreensaver/xscreensaver-5.27.dmg + • Added support for pthreads, because Dave Odell is a madman.
• Updated `webcollage' for recent changes.
• Minor iOS tweaks to the `analogtv' hacks.
• X11: Don't assume Suspend = 0 implies "No DPMS".
• Minor updates to `boxed' and `klein'.
• Fixed possible crash in `apple2', `noseguy', `xmatrix', `shadebobs'.
• Fixed possible crash in OSX preferences.
• OSX Performance improvements.
• Plugged some leaks.]]>
+ Tue, 27 May 2014 03:05:35 -0700 + +
Version 5.26 http://www.jwz.org/xscreensaver/xscreensaver-5.26.dmg @@ -18,28 +40,6 @@ length="50489976" type="application/octet-stream" /> - - Version 5.25 - http://www.jwz.org/xscreensaver/xscreensaver-5.25.dmg - • Some files were missing from the tarball.]]> - Mon, 09 Dec 2013 00:38:35 -0800 - - - - Version 5.24 - http://www.jwz.org/xscreensaver/xscreensaver-5.24.dmg - • Updated feed-loading for recent Flickr changes.
• Updated `webcollage' for recent Google changes.
• Added Instagram and Bing as `webcollage' image sources.
• Updated to latest autoconf.
• Bug fixes.]]>
- Sat, 07 Dec 2013 19:06:56 -0800 - -
Version 5.14 http://www.jwz.org/xscreensaver/xscreensaver-5.14.dmg diff --git a/README b/README index 70bbf35b..fac3e575 100644 --- a/README +++ b/README @@ -38,6 +38,13 @@ XScreenSaver has an extensive manual -- please read it! =============================================================================== +5.29 * Downgraded to Xcode 5.0.2 to make it possible to build savers + that will still run on 10.6 and 10.7. Sigh. + * Updated `webcollage' for recent changes. + +5.28 * Fixed some compilation problems and intermittent crashes. + * Turned off the OSX 10.6 enable_gc hack. It didn't work. + 5.27 * New hacks, `tessellimage' and `projectiveplane'. * Added support for pthreads, because Dave Odell is a madman. * Updated `webcollage' for recent changes. diff --git a/aclocal.m4 b/aclocal.m4 index ef93b539..f83c50bc 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,242 +1,283 @@ -dnl aclocal.m4 generated automatically by aclocal 1.4-p5 +# generated automatically by aclocal 1.14.1 -*- Autoconf -*- -dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl This program is distributed in the hope that it will be useful, -dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without -dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A -dnl PARTICULAR PURPOSE. - - -dnl AC_PROG_INTLTOOL([MINIMUM-VERSION]) -# serial 1 AC_PROG_INTLTOOL -AC_DEFUN(AC_PROG_INTLTOOL, -[ +# Copyright (C) 1996-2013 Free Software Foundation, Inc. -if test -n "$1"; then - AC_MSG_CHECKING(for intltool >= $1) - - INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ printf "%d", $[1] * 100 + $[2]; }'` - INTLTOOL_APPLIED_VERSION=`awk -F\" '/\\$VERSION / { printf $[2]; }' < intltool-update.in` - changequote({{,}}) - INTLTOOL_APPLIED_VERSION_AS_INT=`awk -F\" '/\\$VERSION / { split(${{2}}, VERSION, "."); printf "%d\n", VERSION[1] * 100 + VERSION[2];}' < intltool-update.in` - changequote([,]) - - if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT"; then - AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) - else - AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found. Your intltool is too old. You need intltool $1 or later.]) - exit 1 - fi -fi +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. - INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< [$]@ -d -u -c $(top_builddir)/po/.intltool-merge-cache' -INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< [$]@ -d -u -c $(top_builddir)/po/.intltool-merge-cache' - INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< [$]@ -k -u -c $(top_builddir)/po/.intltool-merge-cache' - INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< [$]@ -o -p' - INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< [$]@ -x -u -c $(top_builddir)/po/.intltool-merge-cache' - INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< [$]@ -o -u -c $(top_builddir)/po/.intltool-merge-cache' - INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< [$]@ -x -u -c $(top_builddir)/po/.intltool-merge-cache' -INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< [$]@ -d -u -c $(top_builddir)/po/.intltool-merge-cache' - INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< [$]@ -x -u -c $(top_builddir)/po/.intltool-merge-cache' - INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< [$]@ -x -u -c $(top_builddir)/po/.intltool-merge-cache' - INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< [$]@ -d -u -c $(top_builddir)/po/.intltool-merge-cache' - -AC_SUBST(INTLTOOL_DESKTOP_RULE) -AC_SUBST(INTLTOOL_DIRECTORY_RULE) -AC_SUBST(INTLTOOL_KEYS_RULE) -AC_SUBST(INTLTOOL_OAF_RULE) -AC_SUBST(INTLTOOL_PONG_RULE) -AC_SUBST(INTLTOOL_SERVER_RULE) -AC_SUBST(INTLTOOL_SHEET_RULE) -AC_SUBST(INTLTOOL_SOUNDLIST_RULE) -AC_SUBST(INTLTOOL_UI_RULE) -AC_SUBST(INTLTOOL_XML_RULE) -AC_SUBST(INTLTOOL_CAVES_RULE) - -# Use the tools built into the package, not the ones that are installed. - -INTLTOOL_EXTRACT='$(top_builddir)/intltool-extract' -INTLTOOL_MERGE='$(top_builddir)/intltool-merge' -INTLTOOL_UPDATE='$(top_builddir)/intltool-update' - -AC_SUBST(INTLTOOL_EXTRACT) -AC_SUBST(INTLTOOL_MERGE) -AC_SUBST(INTLTOOL_UPDATE) - -AC_PATH_PROG(INTLTOOL_PERL, perl) -if test -z "$INTLTOOL_PERL"; then - AC_MSG_ERROR([perl not found; required for intltool]) -fi -if test -z "`$INTLTOOL_PERL -v | fgrep '5.' 2> /dev/null`"; then - AC_MSG_ERROR([perl 5.x required for intltool]) -fi +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. -# Remove file type tags (using []) from po/POTFILES. - -ifdef([AC_DIVERSION_ICMDS],[ - AC_DIVERT_PUSH(AC_DIVERSION_ICMDS) - changequote(,) - mv -f po/POTFILES po/POTFILES.tmp - sed -e 's/\[.*\] *//' < po/POTFILES.tmp > po/POTFILES - rm -f po/POTFILES.tmp - changequote([,]) - AC_DIVERT_POP() -],[ - ifdef([AC_CONFIG_COMMANDS_PRE],[ - AC_CONFIG_COMMANDS_PRE([ - changequote(,) - mv -f po/POTFILES po/POTFILES.tmp - sed -e 's/\[.*\] *//' < po/POTFILES.tmp > po/POTFILES - rm -f po/POTFILES.tmp - changequote([,]) - ]) - ]) -]) - -# Manually sed perl in so people don't have to put the intltool scripts in AC_OUTPUT. - -AC_OUTPUT_COMMANDS([ - -sed -e "s:@INTLTOOL_PERL@:${INTLTOOL_PERL}:;" < ${srcdir}/intltool-extract.in > intltool-extract.out -if cmp -s intltool-extract intltool-extract.out 2>/dev/null; then - rm -f intltool-extract.out -else - mv -f intltool-extract.out intltool-extract -fi -chmod ugo+x intltool-extract -chmod u+w intltool-extract - -sed -e "s:@INTLTOOL_PERL@:${INTLTOOL_PERL}:;" < ${srcdir}/intltool-merge.in > intltool-merge.out -if cmp -s intltool-merge intltool-merge.out 2>/dev/null; then - rm -f intltool-merge.out -else - mv -f intltool-merge.out intltool-merge -fi -chmod ugo+x intltool-merge -chmod u+w intltool-merge - -sed -e "s:@INTLTOOL_PERL@:${INTLTOOL_PERL}:;" < ${srcdir}/intltool-update.in > intltool-update.out -if cmp -s intltool-update intltool-update.out 2>/dev/null; then - rm -f intltool-update.out -else - mv -f intltool-update.out intltool-update -fi -chmod ugo+x intltool-update -chmod u+w intltool-update - -], INTLTOOL_PERL=${INTLTOOL_PERL}) - -]) - -# Macro to add for using GNU gettext. -# Ulrich Drepper , 1995. -# -# Modified to never use included libintl. -# Owen Taylor , 12/15/1998 +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) +# Copyright (C) 1995-2002 Free Software Foundation, Inc. +# Copyright (C) 2001-2003,2004 Red Hat, Inc. # +# This file is free software, distributed under the terms of the GNU +# General Public License. As a special exception to the GNU General +# Public License, this file may be distributed as part of a program +# that contains a configuration script generated by Autoconf, under +# the same distribution terms as the rest of that program. # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU Public License # but which still want to provide support for the GNU gettext functionality. -# Please note that the actual code is *not* freely available. # +# Macro to add for using GNU gettext. +# Ulrich Drepper , 1995, 1996 +# +# Modified to never use included libintl. +# Owen Taylor , 12/15/1998 +# +# Major rework to remove unused code +# Owen Taylor , 12/11/2002 +# +# Added better handling of ALL_LINGUAS from GNU gettext version +# written by Bruno Haible, Owen Taylor 5/30/3002 # -# If you make changes to this file, you MUST update the copy in -# acinclude.m4. [ aclocal dies on duplicate macros, so if -# we run 'aclocal -I macros/' then we'll run into problems -# once we've installed glib-gettext.m4 :-( ] +# Modified to require ngettext +# Matthias Clasen 08/06/2004 # +# We need this here as well, since someone might use autoconf-2.5x +# to configure GLib then an older version to configure a package +# using AM_GLIB_GNU_GETTEXT +AC_PREREQ(2.53) + +dnl +dnl We go to great lengths to make sure that aclocal won't +dnl try to pull in the installed version of these macros +dnl when running aclocal in the glib directory. +dnl +m4_copy([AC_DEFUN],[glib_DEFUN]) +m4_copy([AC_REQUIRE],[glib_REQUIRE]) +dnl +dnl At the end, if we're not within glib, we'll define the public +dnl definitions in terms of our private definitions. +dnl + +# GLIB_LC_MESSAGES +#-------------------- +glib_DEFUN([GLIB_LC_MESSAGES], + [AC_CHECK_HEADERS([locale.h]) + if test $ac_cv_header_locale_h = yes; then + AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, + [AC_TRY_LINK([#include ], [return LC_MESSAGES], + am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) + if test $am_cv_val_LC_MESSAGES = yes; then + AC_DEFINE(HAVE_LC_MESSAGES, 1, + [Define if your file defines LC_MESSAGES.]) + fi + fi]) -# serial 5 +# GLIB_PATH_PROG_WITH_TEST +#---------------------------- +dnl GLIB_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, +dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) +glib_DEFUN([GLIB_PATH_PROG_WITH_TEST], +[# Extract the first word of "$2", so it can be a program name with args. +set dummy $2; ac_word=[$]2 +AC_MSG_CHECKING([for $ac_word]) +AC_CACHE_VAL(ac_cv_path_$1, +[case "[$]$1" in + /*) + ac_cv_path_$1="[$]$1" # Let the user override the test with a path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in ifelse([$5], , $PATH, [$5]); do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if [$3]; then + ac_cv_path_$1="$ac_dir/$ac_word" + break + fi + fi + done + IFS="$ac_save_ifs" +dnl If no 4th arg is given, leave the cache variable unset, +dnl so AC_PATH_PROGS will keep looking. +ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" +])dnl + ;; +esac])dnl +$1="$ac_cv_path_$1" +if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then + AC_MSG_RESULT([$]$1) +else + AC_MSG_RESULT(no) +fi +AC_SUBST($1)dnl +]) -AC_DEFUN(AM_GLIB_WITH_NLS, +# GLIB_WITH_NLS +#----------------- +glib_DEFUN([GLIB_WITH_NLS], dnl NLS is obligatory [USE_NLS=yes AC_SUBST(USE_NLS) - dnl Figure out what method - nls_cv_force_use_gnu_gettext="no" - - nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" - if test "$nls_cv_force_use_gnu_gettext" != "yes"; then - dnl User does not insist on using GNU NLS library. Figure out what - dnl to use. If gettext or catgets are available (in this order) we - dnl use this. Else we have to fall back to GNU NLS library. - dnl catgets is only used if permitted by option --with-catgets. - nls_cv_header_intl= - nls_cv_header_libgt= - CATOBJEXT=NONE - - AC_CHECK_HEADER(libintl.h, - [AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc, - [AC_TRY_LINK([#include ], [return (int) dgettext ("","")], - gt_cv_func_dgettext_libc=yes, gt_cv_func_dgettext_libc=no)]) - - if test "$gt_cv_func_dgettext_libc" != "yes"; then - AC_CHECK_LIB(intl, bindtextdomain, - [AC_CACHE_CHECK([for dgettext in libintl], - gt_cv_func_dgettext_libintl, - [AC_CHECK_LIB(intl, dgettext, - gt_cv_func_dgettext_libintl=yes, - gt_cv_func_dgettext_libintl=no)], - gt_cv_func_dgettext_libintl=no)]) - fi - - if test "$gt_cv_func_dgettext_libintl" = "yes"; then - LIBS="$LIBS -lintl"; + gt_cv_have_gettext=no + + CATOBJEXT=NONE + XGETTEXT=: + INTLLIBS= + + AC_CHECK_HEADER(libintl.h, + [gt_cv_func_dgettext_libintl="no" + libintl_extra_libs="" + + # + # First check in libc + # + AC_CACHE_CHECK([for ngettext in libc], gt_cv_func_ngettext_libc, + [AC_TRY_LINK([ +#include +], + [return !ngettext ("","", 1)], + gt_cv_func_ngettext_libc=yes, + gt_cv_func_ngettext_libc=no) + ]) + + if test "$gt_cv_func_ngettext_libc" = "yes" ; then + AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc, + [AC_TRY_LINK([ +#include +], + [return !dgettext ("","")], + gt_cv_func_dgettext_libc=yes, + gt_cv_func_dgettext_libc=no) + ]) + fi + + if test "$gt_cv_func_ngettext_libc" = "yes" ; then + AC_CHECK_FUNCS(bind_textdomain_codeset) + fi + + # + # If we don't have everything we want, check in libintl + # + if test "$gt_cv_func_dgettext_libc" != "yes" \ + || test "$gt_cv_func_ngettext_libc" != "yes" \ + || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then + + AC_CHECK_LIB(intl, bindtextdomain, + [AC_CHECK_LIB(intl, ngettext, + [AC_CHECK_LIB(intl, dgettext, + gt_cv_func_dgettext_libintl=yes)])]) + + if test "$gt_cv_func_dgettext_libintl" != "yes" ; then + AC_MSG_CHECKING([if -liconv is needed to use gettext]) + AC_MSG_RESULT([]) + AC_CHECK_LIB(intl, ngettext, + [AC_CHECK_LIB(intl, dcgettext, + [gt_cv_func_dgettext_libintl=yes + libintl_extra_libs=-liconv], + :,-liconv)], + :,-liconv) + fi + + # + # If we found libintl, then check in it for bind_textdomain_codeset(); + # we'll prefer libc if neither have bind_textdomain_codeset(), + # and both have dgettext and ngettext + # + if test "$gt_cv_func_dgettext_libintl" = "yes" ; then + glib_save_LIBS="$LIBS" + LIBS="$LIBS -lintl $libintl_extra_libs" + unset ac_cv_func_bind_textdomain_codeset + AC_CHECK_FUNCS(bind_textdomain_codeset) + LIBS="$glib_save_LIBS" + + if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then + gt_cv_func_dgettext_libc=no + else + if test "$gt_cv_func_dgettext_libc" = "yes" \ + && test "$gt_cv_func_ngettext_libc" = "yes"; then + gt_cv_func_dgettext_libintl=no + fi fi + fi + fi - if test "$gt_cv_func_dgettext_libc" = "yes" \ - || test "$gt_cv_func_dgettext_libintl" = "yes"; then - AC_DEFINE(HAVE_GETTEXT,1, - [Define if the GNU gettext() function is already present or preinstalled.]) - AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl - if test "$MSGFMT" != "no"; then - AC_CHECK_FUNCS(dcgettext) - AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) - AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) - AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; - return _nl_msg_cat_cntr], - [CATOBJEXT=.gmo - DATADIRNAME=share], - [CATOBJEXT=.mo - DATADIRNAME=lib]) - INSTOBJEXT=.mo - fi - fi - - # Added by Martin Baulig 12/15/98 for libc5 systems - if test "$gt_cv_func_dgettext_libc" != "yes" \ - && test "$gt_cv_func_dgettext_libintl" = "yes"; then - INTLLIBS=-lintl - LIBS=`echo $LIBS | sed -e 's/-lintl//'` - fi - ]) - - if test "$CATOBJEXT" = "NONE"; then - dnl Neither gettext nor catgets in included in the C library. - dnl Fall back on GNU gettext library. - nls_cv_use_gnu_gettext=yes + if test "$gt_cv_func_dgettext_libc" = "yes" \ + || test "$gt_cv_func_dgettext_libintl" = "yes"; then + gt_cv_have_gettext=yes fi - fi + + if test "$gt_cv_func_dgettext_libintl" = "yes"; then + INTLLIBS="-lintl $libintl_extra_libs" + fi + + if test "$gt_cv_have_gettext" = "yes"; then + AC_DEFINE(HAVE_GETTEXT,1, + [Define if the GNU gettext() function is already present or preinstalled.]) + GLIB_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl + if test "$MSGFMT" != "no"; then + glib_save_LIBS="$LIBS" + LIBS="$LIBS $INTLLIBS" + AC_CHECK_FUNCS(dcgettext) + MSGFMT_OPTS= + AC_MSG_CHECKING([if msgfmt accepts -c]) + GLIB_RUN_PROG([$MSGFMT -c -o /dev/null],[ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: test 1.0\n" +"PO-Revision-Date: 2007-02-15 12:01+0100\n" +"Last-Translator: test \n" +"Language-Team: C \n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +], [MSGFMT_OPTS=-c; AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])]) + AC_SUBST(MSGFMT_OPTS) + AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) + GLIB_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) + AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; + return _nl_msg_cat_cntr], + [CATOBJEXT=.gmo + DATADIRNAME=share], + [case $host in + *-*-solaris*) + dnl On Solaris, if bind_textdomain_codeset is in libc, + dnl GNU format message catalog is always supported, + dnl since both are added to the libc all together. + dnl Hence, we'd like to go with DATADIRNAME=share and + dnl and CATOBJEXT=.gmo in this case. + AC_CHECK_FUNC(bind_textdomain_codeset, + [CATOBJEXT=.gmo + DATADIRNAME=share], + [CATOBJEXT=.mo + DATADIRNAME=lib]) + ;; + *-*-openbsd*) + CATOBJEXT=.mo + DATADIRNAME=share + ;; + *) + CATOBJEXT=.mo + DATADIRNAME=lib + ;; + esac]) + LIBS="$glib_save_LIBS" + INSTOBJEXT=.mo + else + gt_cv_have_gettext=no + fi + fi + ]) - if test "$nls_cv_use_gnu_gettext" != "yes"; then + if test "$gt_cv_have_gettext" = "yes" ; then AC_DEFINE(ENABLE_NLS, 1, [always defined to indicate that i18n is enabled]) - else - dnl Unset this variable since we use the non-zero value as a flag. - CATOBJEXT= fi dnl Test whether we really found GNU xgettext. if test "$XGETTEXT" != ":"; then - dnl If it is no GNU xgettext we define it as : so that the + dnl If it is not GNU xgettext we define it as : so that the dnl Makefiles still can work. if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; @@ -252,15 +293,12 @@ AC_DEFUN(AM_GLIB_WITH_NLS, AC_OUTPUT_COMMANDS( [case "$CONFIG_FILES" in *po/Makefile.in*) - rm -f po/stamp-it po/stamp-it.tmp - > po/stamp-it.tmp sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile - mv po/stamp-it.tmp po/stamp-it esac]) dnl These rules are solely for the distribution goal. While doing this dnl we only have to keep exactly one list of the available catalogs - dnl in configure.in. + dnl in configure.ac. for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" @@ -272,43 +310,55 @@ AC_DEFUN(AM_GLIB_WITH_NLS, AC_SUBST(DATADIRNAME) AC_SUBST(GMOFILES) AC_SUBST(INSTOBJEXT) - AC_SUBST(INTLDEPS) AC_SUBST(INTLLIBS) - AC_SUBST(INTLOBJS) + AC_SUBST(PO_IN_DATADIR_TRUE) + AC_SUBST(PO_IN_DATADIR_FALSE) AC_SUBST(POFILES) AC_SUBST(POSUB) ]) -AC_DEFUN(AM_GLIB_GNU_GETTEXT, - [AC_REQUIRE([AC_PROG_MAKE_SET])dnl - AC_REQUIRE([AC_PROG_CC])dnl - AC_REQUIRE([AC_PROG_RANLIB])dnl - AC_REQUIRE([AC_HEADER_STDC])dnl - AC_REQUIRE([AC_C_CONST])dnl - AC_REQUIRE([AC_C_INLINE])dnl - AC_REQUIRE([AC_TYPE_OFF_T])dnl - AC_REQUIRE([AC_TYPE_SIZE_T])dnl - AC_REQUIRE([AC_FUNC_ALLOCA])dnl - AC_REQUIRE([AC_FUNC_MMAP])dnl - - AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \ -unistd.h sys/param.h]) - AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \ -strdup __argz_count __argz_stringify __argz_next]) - - AM_LC_MESSAGES - AM_GLIB_WITH_NLS - - if test "x$CATOBJEXT" != "x"; then +# AM_GLIB_GNU_GETTEXT +# ------------------- +# Do checks necessary for use of gettext. If a suitable implementation +# of gettext is found in either in libintl or in the C library, +# it will set INTLLIBS to the libraries needed for use of gettext +# and AC_DEFINE() HAVE_GETTEXT and ENABLE_NLS. (The shell variable +# gt_cv_have_gettext will be set to "yes".) It will also call AC_SUBST() +# on various variables needed by the Makefile.in.in installed by +# glib-gettextize. +dnl +glib_DEFUN([GLIB_GNU_GETTEXT], + [AC_REQUIRE([AC_PROG_CC])dnl + + GLIB_LC_MESSAGES + GLIB_WITH_NLS + + if test "$gt_cv_have_gettext" = "yes"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else AC_MSG_CHECKING(for catalogs to be installed) NEW_LINGUAS= - for lang in ${LINGUAS=$ALL_LINGUAS}; do - case "$ALL_LINGUAS" in - *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;; - esac + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + NEW_LINGUAS="$NEW_LINGUAS $presentlang" + fi done LINGUAS=$NEW_LINGUAS AC_MSG_RESULT($LINGUAS) @@ -320,38 +370,16 @@ strdup __argz_count __argz_stringify __argz_next]) fi fi - dnl Determine which catalog format we have (if any is needed) - dnl For now we know about two different formats: - dnl Linux libc-5 and the normal X/Open format - test -d po || mkdir po - if test "$CATOBJEXT" = ".cat"; then - AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen) - - dnl Transform the SED scripts while copying because some dumb SEDs - dnl cannot handle comments. - sed -e '/^#/d' $srcdir/po/$msgformat-msg.sed > po/po2msg.sed - fi - dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly dnl find the mkinstalldirs script in another subdir but ($top_srcdir). dnl Try to locate is. MKINSTALLDIRS= -# -# jwz: fuck this! it puts hardcoded pathnames into the generated Makefiles! -# -# if test -n "$ac_aux_dir"; then -# MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" -# fi + if test -n "$ac_aux_dir"; then + MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" + fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi - - # jwz: you know what, screw it. Let's just use the version that I - # already computed in configure.in, instead of this version that came - # with the i18n crud, ok? - MKINSTALLDIRS="$INSTALL_DIRS" - - AC_SUBST(MKINSTALLDIRS) dnl Generate list of files to be processed by xgettext which will @@ -371,73 +399,296 @@ strdup __argz_count __argz_stringify __argz_next]) < $srcdir/po/POTFILES.in > po/POTFILES ]) +# AM_GLIB_DEFINE_LOCALEDIR(VARIABLE) +# ------------------------------- +# Define VARIABLE to the location where catalog files will +# be installed by po/Makefile. +glib_DEFUN([GLIB_DEFINE_LOCALEDIR], +[glib_REQUIRE([GLIB_GNU_GETTEXT])dnl +glib_save_prefix="$prefix" +glib_save_exec_prefix="$exec_prefix" +glib_save_datarootdir="$datarootdir" +test "x$prefix" = xNONE && prefix=$ac_default_prefix +test "x$exec_prefix" = xNONE && exec_prefix=$prefix +datarootdir=`eval echo "${datarootdir}"` +if test "x$CATOBJEXT" = "x.mo" ; then + localedir=`eval echo "${libdir}/locale"` +else + localedir=`eval echo "${datadir}/locale"` +fi +prefix="$glib_save_prefix" +exec_prefix="$glib_save_exec_prefix" +datarootdir="$glib_save_datarootdir" +AC_DEFINE_UNQUOTED($1, "$localedir", + [Define the location where the catalogs will be installed]) +]) -# Search path for a program which passes the given test. -# Ulrich Drepper , 1996. -# -# This file can be copied and used freely without restrictions. It can -# be used in projects which are not available under the GNU Public License -# but which still want to provide support for the GNU gettext functionality. -# Please note that the actual code is *not* freely available. +dnl +dnl Now the definitions that aclocal will find +dnl +ifdef(glib_configure_ac,[],[ +AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)]) +AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)]) +])dnl -# serial 1 +# GLIB_RUN_PROG(PROGRAM, TEST-FILE, [ACTION-IF-PASS], [ACTION-IF-FAIL]) +# +# Create a temporary file with TEST-FILE as its contents and pass the +# file name to PROGRAM. Perform ACTION-IF-PASS if PROGRAM exits with +# 0 and perform ACTION-IF-FAIL for any other exit status. +AC_DEFUN([GLIB_RUN_PROG], +[cat >conftest.foo <<_ACEOF +$2 +_ACEOF +if AC_RUN_LOG([$1 conftest.foo]); then + m4_ifval([$3], [$3], [:]) +m4_ifvaln([$4], [else $4])dnl +echo "$as_me: failed input was:" >&AS_MESSAGE_LOG_FD +sed 's/^/| /' conftest.foo >&AS_MESSAGE_LOG_FD +fi]) + + + +dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) +# serial 42 IT_PROG_INTLTOOL +AC_DEFUN([IT_PROG_INTLTOOL], [ +AC_PREREQ([2.50])dnl +AC_REQUIRE([AM_NLS])dnl + +case "$am__api_version" in + 1.[01234]) + AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) + ;; + *) + ;; +esac + +INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` +INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` +INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` +if test -n "$1"; then + AC_MSG_CHECKING([for intltool >= $1]) + AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) + test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || + AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) +fi -dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, -dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) -AC_DEFUN([AM_PATH_PROG_WITH_TEST], -[# Extract the first word of "$2", so it can be a program name with args. -set dummy $2; ac_word=[$]2 -AC_MSG_CHECKING([for $ac_word]) -AC_CACHE_VAL(ac_cv_path_$1, -[case "[$]$1" in - /*) - ac_cv_path_$1="[$]$1" # Let the user override the test with a path. - ;; - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in ifelse([$5], , $PATH, [$5]); do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if [$3]; then - ac_cv_path_$1="$ac_dir/$ac_word" - break - fi - fi - done - IFS="$ac_save_ifs" -dnl If no 4th arg is given, leave the cache variable unset, -dnl so AC_PATH_PROGS will keep looking. -ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" -])dnl - ;; -esac])dnl -$1="$ac_cv_path_$1" -if test -n "[$]$1"; then - AC_MSG_RESULT([$]$1) +AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) +AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) +AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) +if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then + AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) +fi + +if test -z "$AM_DEFAULT_VERBOSITY"; then + AM_DEFAULT_VERBOSITY=1 +fi +AC_SUBST([AM_DEFAULT_VERBOSITY]) + +INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' +INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' +INTLTOOL__v_MERGE_0='@echo " ITMRG " [$]@;' +AC_SUBST(INTLTOOL_V_MERGE) +AC_SUBST(INTLTOOL__v_MERGE_) +AC_SUBST(INTLTOOL__v_MERGE_0) + +INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' +intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' +intltool__v_merge_options_0='-q' +AC_SUBST(INTLTOOL_V_MERGE_OPTIONS) +AC_SUBST(intltool__v_merge_options_) +AC_SUBST(intltool__v_merge_options_0) + + INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' +INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< [$]@' + INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' +INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' +if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< [$]@' else - AC_MSG_RESULT(no) + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.[$][$]RANDOM && mkdir [$][$]_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u [$][$]_it_tmp_dir $< [$]@ && rmdir [$][$]_it_tmp_dir' fi -AC_SUBST($1)dnl + INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + +_IT_SUBST(INTLTOOL_DESKTOP_RULE) +_IT_SUBST(INTLTOOL_DIRECTORY_RULE) +_IT_SUBST(INTLTOOL_KEYS_RULE) +_IT_SUBST(INTLTOOL_PROP_RULE) +_IT_SUBST(INTLTOOL_OAF_RULE) +_IT_SUBST(INTLTOOL_PONG_RULE) +_IT_SUBST(INTLTOOL_SERVER_RULE) +_IT_SUBST(INTLTOOL_SHEET_RULE) +_IT_SUBST(INTLTOOL_SOUNDLIST_RULE) +_IT_SUBST(INTLTOOL_UI_RULE) +_IT_SUBST(INTLTOOL_XAM_RULE) +_IT_SUBST(INTLTOOL_KBD_RULE) +_IT_SUBST(INTLTOOL_XML_RULE) +_IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) +_IT_SUBST(INTLTOOL_CAVES_RULE) +_IT_SUBST(INTLTOOL_SCHEMAS_RULE) +_IT_SUBST(INTLTOOL_THEME_RULE) +_IT_SUBST(INTLTOOL_SERVICE_RULE) +_IT_SUBST(INTLTOOL_POLICY_RULE) + +# Check the gettext tools to make sure they are GNU +AC_PATH_PROG(XGETTEXT, xgettext) +AC_PATH_PROG(MSGMERGE, msgmerge) +AC_PATH_PROG(MSGFMT, msgfmt) +AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) +if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then + AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) +fi +xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" +mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" +mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" +if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then + AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) +fi + +# Substitute ALL_LINGUAS so we can use it in po/Makefile +AC_SUBST(ALL_LINGUAS) + +# Set DATADIRNAME correctly if it is not set yet +# (copied from glib-gettext.m4) +if test -z "$DATADIRNAME"; then + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[]], + [[extern int _nl_msg_cat_cntr; + return _nl_msg_cat_cntr]])], + [DATADIRNAME=share], + [case $host in + *-*-solaris*) + dnl On Solaris, if bind_textdomain_codeset is in libc, + dnl GNU format message catalog is always supported, + dnl since both are added to the libc all together. + dnl Hence, we'd like to go with DATADIRNAME=share + dnl in this case. + AC_CHECK_FUNC(bind_textdomain_codeset, + [DATADIRNAME=share], [DATADIRNAME=lib]) + ;; + *) + [DATADIRNAME=lib] + ;; + esac]) +fi +AC_SUBST(DATADIRNAME) + +IT_PO_SUBDIR([po]) + ]) -# Check whether LC_MESSAGES is available in . -# Ulrich Drepper , 1995. + +# IT_PO_SUBDIR(DIRNAME) +# --------------------- +# All po subdirs have to be declared with this macro; the subdir "po" is +# declared by IT_PROG_INTLTOOL. # -# This file can be copied and used freely without restrictions. It can -# be used in projects which are not available under the GNU Public License -# but which still want to provide support for the GNU gettext functionality. -# Please note that the actual code is *not* freely available. +AC_DEFUN([IT_PO_SUBDIR], +[AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. +dnl +dnl The following CONFIG_COMMANDS should be executed at the very end +dnl of config.status. +AC_CONFIG_COMMANDS_PRE([ + AC_CONFIG_COMMANDS([$1/stamp-it], [ + if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then + AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) + fi + rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" + >"$1/stamp-it.tmp" + [sed '/^#/d + s/^[[].*] *// + /^[ ]*$/d + '"s|^| $ac_top_srcdir/|" \ + "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" + ] + [sed '/^POTFILES =/,/[^\\]$/ { + /^POTFILES =/!d + r $1/POTFILES + } + ' "$1/Makefile.in" >"$1/Makefile"] + rm -f "$1/Makefile.tmp" + mv "$1/stamp-it.tmp" "$1/stamp-it" + ]) +])dnl +]) -# serial 2 +# _IT_SUBST(VARIABLE) +# ------------------- +# Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST +# +AC_DEFUN([_IT_SUBST], +[ +AC_SUBST([$1]) +m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) +] +) -AC_DEFUN([AM_LC_MESSAGES], - [if test $ac_cv_header_locale_h = yes; then - AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, - [AC_TRY_LINK([#include ], [return LC_MESSAGES], - am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) - if test $am_cv_val_LC_MESSAGES = yes; then - AC_DEFINE(HAVE_LC_MESSAGES, 1, - [Define if your file defines LC_MESSAGES.]) - fi - fi]) +# deprecated macros +AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) +# A hint is needed for aclocal from Automake <= 1.9.4: +# AC_DEFUN([AC_PROG_INTLTOOL], ...) + + +# nls.m4 serial 5 (gettext-0.18) +dnl Copyright (C) 1995-2003, 2005-2006, 2008-2013 Free Software Foundation, +dnl Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2003. + +AC_PREREQ([2.50]) + +AC_DEFUN([AM_NLS], +[ + AC_MSG_CHECKING([whether NLS is requested]) + dnl Default is enabled NLS + AC_ARG_ENABLE([nls], + [ --disable-nls do not use Native Language Support], + USE_NLS=$enableval, USE_NLS=yes) + AC_MSG_RESULT([$USE_NLS]) + AC_SUBST([USE_NLS]) +]) + +# Copyright (C) 2006-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# AM_SUBST_NOTMAKE(VARIABLE) +# -------------------------- +# Public sister of _AM_SUBST_NOTMAKE. +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) diff --git a/config.h.in b/config.h.in index 21d1576c..feea63b5 100644 --- a/config.h.in +++ b/config.h.in @@ -1,7 +1,7 @@ /* config.h.in. Generated from configure.in by autoheader. */ -/* config.h.in --- xscreensaver, Copyright (c) 1998-2000 Jamie Zawinski. +/* config.h.in --- xscreensaver, Copyright (c) 1991-2014 Jamie Zawinski. * * The best way to set these parameters is by running the included `configure' * script. That examines your system, and generates `config.h' from @@ -15,14 +15,6 @@ /* Define this to allow the root password to unlock the screen. */ #undef ALLOW_ROOT_PASSWD -/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP - systems. This function is required for `alloca.c' support on those systems. - */ -#undef CRAY_STACKSEG_END - -/* Define to 1 if using `alloca.c'. */ -#undef C_ALLOCA - /* always defined to indicate that i18n is enabled */ #undef ENABLE_NLS @@ -42,15 +34,8 @@ getpwnam().) I haven't tested this one, let me know if it works. */ #undef HAVE_ADJUNCT_PASSWD -/* Define to 1 if you have `alloca', as a function or macro. */ -#undef HAVE_ALLOCA - -/* Define to 1 if you have and it should be used (not on Ultrix). - */ -#undef HAVE_ALLOCA_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_ARGZ_H +/* Define to 1 if you have the `bind_textdomain_codeset' function. */ +#undef HAVE_BIND_TEXTDOMAIN_CODESET /* Define this if you have Gnome and want to build support for the xscreensaver control panel in the Gnome Control Center (gnomecc). (This is @@ -106,9 +91,6 @@ /* Define this if you have the getifaddrs() function. */ #undef HAVE_GETIFADDRS -/* Define to 1 if you have the `getpagesize' function. */ -#undef HAVE_GETPAGESIZE - /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT @@ -181,15 +163,9 @@ /* Define if your file defines LC_MESSAGES. */ #undef HAVE_LC_MESSAGES -/* Define to 1 if you have the header file. */ -#undef HAVE_LIMITS_H - /* Define to 1 if you have the header file. */ #undef HAVE_LOCALE_H -/* Define to 1 if you have the header file. */ -#undef HAVE_MALLOC_H - /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H @@ -197,24 +173,15 @@ have different names.) (HAVE_GL should be defined too.) */ #undef HAVE_MESA_GL -/* Define to 1 if you have a working `mmap' system call. */ -#undef HAVE_MMAP - /* Define this if you have Motif. */ #undef HAVE_MOTIF -/* Define to 1 if you have the `munmap' function. */ -#undef HAVE_MUNMAP - /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_NDIR_H /* Define to 1 if you have the `nice' function. */ #undef HAVE_NICE -/* Define to 1 if you have the header file. */ -#undef HAVE_NL_TYPES_H - /* Define this if you have the XML library headers in their old, non-namespaced location (you lack the gnome-xml/libxml symlink) */ #undef HAVE_OLD_XML_HEADERS @@ -265,9 +232,6 @@ /* Define to 1 if you have the `select' function. */ #undef HAVE_SELECT -/* Define to 1 if you have the `setenv' function. */ -#undef HAVE_SETENV - /* Define to 1 if you have the `setlocale' function. */ #undef HAVE_SETLOCALE @@ -296,15 +260,6 @@ /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H -/* Define to 1 if you have the `strcasecmp' function. */ -#undef HAVE_STRCASECMP - -/* Define to 1 if you have the `strchr' function. */ -#undef HAVE_STRCHR - -/* Define to 1 if you have the `strdup' function. */ -#undef HAVE_STRDUP - /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H @@ -322,9 +277,6 @@ */ #undef HAVE_SYS_NDIR_H -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_PARAM_H - /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SELECT_H @@ -402,15 +354,6 @@ /* Define this if you have the X Shared Memory Extension. */ #undef HAVE_XSHM_EXTENSION -/* Define to 1 if you have the `__argz_count' function. */ -#undef HAVE___ARGZ_COUNT - -/* Define to 1 if you have the `__argz_next' function. */ -#undef HAVE___ARGZ_NEXT - -/* Define to 1 if you have the `__argz_stringify' function. */ -#undef HAVE___ARGZ_STRINGIFY - /* Define this to remove the option of locking the screen at all. */ #undef NO_LOCKING @@ -460,14 +403,6 @@ /* Define as the return type of signal handlers (`int' or `void'). */ #undef RETSIGTYPE -/* If using the C implementation of alloca, define if you know the - direction of stack growth for your system; otherwise it will be - automatically deduced at runtime. - STACK_DIRECTION > 0 => grows toward higher addresses - STACK_DIRECTION < 0 => grows toward lower addresses - STACK_DIRECTION = 0 => direction of growth unknown */ -#undef STACK_DIRECTION - /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS @@ -503,9 +438,6 @@ /* Define to `int' if does not define. */ #undef mode_t -/* Define to `long int' if does not define. */ -#undef off_t - /* Define to `int' if does not define. */ #undef pid_t diff --git a/configure b/configure index c12874b0..1139ff82 100755 --- a/configure +++ b/configure @@ -619,7 +619,6 @@ ac_includes_default="\ # include #endif" -ac_header_list= ac_subst_vars='LTLIBOBJS LIBOBJS DEPEND_DEFINES @@ -697,21 +696,51 @@ login_manager_tmp MKINSTALLDIRS POSUB POFILES -INTLOBJS +PO_IN_DATADIR_FALSE +PO_IN_DATADIR_TRUE INTLLIBS -INTLDEPS INSTOBJEXT GMOFILES -DATADIRNAME CATOBJEXT CATALOGS -XGETTEXT +MSGFMT_OPTS +GETTEXT_PACKAGE +DATADIRNAME +ALL_LINGUAS GMSGFMT MSGFMT +MSGMERGE +XGETTEXT +INTLTOOL_POLICY_RULE +INTLTOOL_SERVICE_RULE +INTLTOOL_THEME_RULE +INTLTOOL_SCHEMAS_RULE +INTLTOOL_CAVES_RULE +INTLTOOL_XML_NOMERGE_RULE +INTLTOOL_XML_RULE +INTLTOOL_KBD_RULE +INTLTOOL_XAM_RULE +INTLTOOL_UI_RULE +INTLTOOL_SOUNDLIST_RULE +INTLTOOL_SHEET_RULE +INTLTOOL_SERVER_RULE +INTLTOOL_PONG_RULE +INTLTOOL_OAF_RULE +INTLTOOL_PROP_RULE +INTLTOOL_KEYS_RULE +INTLTOOL_DIRECTORY_RULE +INTLTOOL_DESKTOP_RULE +intltool__v_merge_options_0 +intltool__v_merge_options_ +INTLTOOL_V_MERGE_OPTIONS +INTLTOOL__v_MERGE_0 +INTLTOOL__v_MERGE_ +INTLTOOL_V_MERGE +AM_DEFAULT_VERBOSITY +INTLTOOL_EXTRACT +INTLTOOL_MERGE +INTLTOOL_UPDATE USE_NLS -ALLOCA -RANLIB -GETTEXT_PACKAGE X_EXTRA_LIBS X_LIBS X_PRE_LIBS @@ -789,6 +818,7 @@ with_x_app_defaults with_pthread enable_largefile with_x +enable_nls with_hackdir enable_subdir with_configdir @@ -1448,6 +1478,7 @@ Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-largefile omit support for large files + --disable-nls do not use Native Language Support Screen locking options: --enable-locking Compile in support for locking the display. @@ -2298,9 +2329,6 @@ $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi -as_fn_append ac_header_list " stdlib.h" -as_fn_append ac_header_list " unistd.h" -as_fn_append ac_header_list " sys/param.h" # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false @@ -4228,10 +4256,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu $as_echo "#define HAVE_PTHREAD 1" >>confdefs.h CC=$PTHREAD_CC - - # AX_PTHREAD documentation specifically suggests this... - LIBS="$PTHREAD_LIBS $LIBS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" fi fi # Needs ac_original_cc. @@ -7016,40 +7040,62 @@ $as_echo "$ac_macosx" >&6; } # ############################################################################### -IT_PROG_INTLTOOL -GETTEXT_PACKAGE=xscreensaver -cat >>confdefs.h <<_ACEOF -#define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" -_ACEOF + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 +$as_echo_n "checking whether NLS is requested... " >&6; } + # Check whether --enable-nls was given. +if test "${enable_nls+set}" = set; then : + enableval=$enable_nls; USE_NLS=$enableval +else + USE_NLS=yes +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 +$as_echo "$USE_NLS" >&6; } -cat >>confdefs.h <<_ACEOF -#define PACKAGE "$GETTEXT_PACKAGE" -_ACEOF -ALL_LINGUAS="ca da de es et fi fr hu it ja ko nb nl pl pt pt_BR ru sk sv vi wa zh_CN zh_TW" -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +case "$am__api_version" in + 1.01234) + as_fn_error $? "Automake 1.5 or newer is required to use intltool" "$LINENO" 5 + ;; + *) + ;; +esac + +INTLTOOL_REQUIRED_VERSION_AS_INT=`echo | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` +INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` +INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` +if test -n ""; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= " >&5 +$as_echo_n "checking for intltool >= ... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5 +$as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; } + test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || + as_fn_error $? "Your intltool is too old. You need intltool or later." "$LINENO" 5 +fi + +# Extract the first word of "intltool-update", so it can be a program name with args. +set dummy intltool-update; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_RANLIB+:} false; then : +if ${ac_cv_path_INTLTOOL_UPDATE+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + case $INTLTOOL_UPDATE in + [\\/]* | ?:[\\/]*) + ac_cv_path_INTLTOOL_UPDATE="$INTLTOOL_UPDATE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + ac_cv_path_INTLTOOL_UPDATE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -7057,39 +7103,39 @@ done done IFS=$as_save_IFS + ;; +esac fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 -$as_echo "$RANLIB" >&6; } +INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE +if test -n "$INTLTOOL_UPDATE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_UPDATE" >&5 +$as_echo "$INTLTOOL_UPDATE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 +# Extract the first word of "intltool-merge", so it can be a program name with args. +set dummy intltool-merge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : +if ${ac_cv_path_INTLTOOL_MERGE+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + case $INTLTOOL_MERGE in + [\\/]* | ?:[\\/]*) + ac_cv_path_INTLTOOL_MERGE="$INTLTOOL_MERGE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_RANLIB="ranlib" + ac_cv_path_INTLTOOL_MERGE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -7097,460 +7143,446 @@ done done IFS=$as_save_IFS + ;; +esac fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 -$as_echo "$ac_ct_RANLIB" >&6; } +INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE +if test -n "$INTLTOOL_MERGE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_MERGE" >&5 +$as_echo "$INTLTOOL_MERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - if test "x$ac_ct_RANLIB" = x; then - RANLIB=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - RANLIB=$ac_ct_RANLIB - fi -else - RANLIB="$ac_cv_prog_RANLIB" -fi -ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" -if test "x$ac_cv_type_off_t" = xyes; then : +# Extract the first word of "intltool-extract", so it can be a program name with args. +set dummy intltool-extract; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_INTLTOOL_EXTRACT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $INTLTOOL_EXTRACT in + [\\/]* | ?:[\\/]*) + ac_cv_path_INTLTOOL_EXTRACT="$INTLTOOL_EXTRACT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_INTLTOOL_EXTRACT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + ;; +esac +fi +INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT +if test -n "$INTLTOOL_EXTRACT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_EXTRACT" >&5 +$as_echo "$INTLTOOL_EXTRACT" >&6; } else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi -cat >>confdefs.h <<_ACEOF -#define off_t long int -_ACEOF +if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then + as_fn_error $? "The intltool scripts were not found. Please install intltool." "$LINENO" 5 fi -# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works -# for constant arguments. Useless! -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 -$as_echo_n "checking for working alloca.h... " >&6; } -if ${ac_cv_working_alloca_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -char *p = (char *) alloca (2 * sizeof (int)); - if (p) return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_working_alloca_h=yes -else - ac_cv_working_alloca_h=no +if test -z "$AM_DEFAULT_VERBOSITY"; then + AM_DEFAULT_VERBOSITY=1 fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5 -$as_echo "$ac_cv_working_alloca_h" >&6; } -if test $ac_cv_working_alloca_h = yes; then -$as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h -fi +INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' +INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' +INTLTOOL__v_MERGE_0='@echo " ITMRG " $@;' -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 -$as_echo_n "checking for alloca... " >&6; } -if ${ac_cv_func_alloca_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __GNUC__ -# define alloca __builtin_alloca -#else -# ifdef _MSC_VER -# include -# define alloca _alloca -# else -# ifdef HAVE_ALLOCA_H -# include -# else -# ifdef _AIX - #pragma alloca -# else -# ifndef alloca /* predefined by HP cc +Olibcalls */ -void *alloca (size_t); -# endif -# endif -# endif -# endif -#endif -int -main () -{ -char *p = (char *) alloca (1); - if (p) return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_func_alloca_works=yes + + +INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' +intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' +intltool__v_merge_options_0='-q' + + + + + INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' +INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< $@' + INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' +INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' +if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< $@' else - ac_cv_func_alloca_works=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.$$RANDOM && mkdir $$_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u $$_it_tmp_dir $< $@ && rmdir $$_it_tmp_dir' fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5 -$as_echo "$ac_cv_func_alloca_works" >&6; } + INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + + + + + + + + + + + + -if test $ac_cv_func_alloca_works = yes; then -$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h -else - # The SVR3 libPW and SVR4 libucb both contain incompatible functions -# that cause trouble. Some versions do not even contain alloca or -# contain a buggy version. If you still want to use their alloca, -# use ar to extract alloca.o from them instead of compiling alloca.c. -ALLOCA=\${LIBOBJDIR}alloca.$ac_objext -$as_echo "#define C_ALLOCA 1" >>confdefs.h -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 -$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } -if ${ac_cv_os_cray+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if defined CRAY && ! defined CRAY2 -webecray -#else -wenotbecray -#endif -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "webecray" >/dev/null 2>&1; then : - ac_cv_os_cray=yes -else - ac_cv_os_cray=no -fi -rm -rf conftest* -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5 -$as_echo "$ac_cv_os_cray" >&6; } -if test $ac_cv_os_cray = yes; then - for ac_func in _getb67 GETB67 getb67; do - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : -cat >>confdefs.h <<_ACEOF -#define CRAY_STACKSEG_END $ac_func -_ACEOF - break -fi - done -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 -$as_echo_n "checking stack direction for C alloca... " >&6; } -if ${ac_cv_c_stack_direction+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_c_stack_direction=0 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -find_stack_direction (int *addr, int depth) -{ - int dir, dummy = 0; - if (! addr) - addr = &dummy; - *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; - dir = depth ? find_stack_direction (addr, depth - 1) : 0; - return dir + dummy; -} -int -main (int argc, char **argv) -{ - return find_stack_direction (0, argc + !argv + 20) < 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_c_stack_direction=1 -else - ac_cv_c_stack_direction=-1 -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 -$as_echo "$ac_cv_c_stack_direction" >&6; } -cat >>confdefs.h <<_ACEOF -#define STACK_DIRECTION $ac_cv_c_stack_direction -_ACEOF -fi - for ac_header in $ac_header_list -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# Check the gettext tools to make sure they are GNU +# Extract the first word of "xgettext", so it can be a program name with args. +set dummy xgettext; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_XGETTEXT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $XGETTEXT in + [\\/]* | ?:[\\/]*) + ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +XGETTEXT=$ac_cv_path_XGETTEXT +if test -n "$XGETTEXT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 +$as_echo "$XGETTEXT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi + +# Extract the first word of "msgmerge", so it can be a program name with args. +set dummy msgmerge; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_MSGMERGE+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MSGMERGE in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi done + done +IFS=$as_save_IFS + ;; +esac +fi +MSGMERGE=$ac_cv_path_MSGMERGE +if test -n "$MSGMERGE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 +$as_echo "$MSGMERGE" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +# Extract the first word of "msgfmt", so it can be a program name with args. +set dummy msgfmt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_MSGFMT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MSGFMT in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +MSGFMT=$ac_cv_path_MSGFMT +if test -n "$MSGFMT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 +$as_echo "$MSGFMT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +# Extract the first word of "gmsgfmt", so it can be a program name with args. +set dummy gmsgfmt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GMSGFMT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GMSGFMT in + [\\/]* | ?:[\\/]*) + ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" + ;; +esac +fi +GMSGFMT=$ac_cv_path_GMSGFMT +if test -n "$GMSGFMT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 +$as_echo "$GMSGFMT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then + as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 +fi +xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" +mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" +mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" +if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then + as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 +fi -for ac_func in getpagesize -do : - ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize" -if test "x$ac_cv_func_getpagesize" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_GETPAGESIZE 1 -_ACEOF +# Substitute ALL_LINGUAS so we can use it in po/Makefile -fi -done -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5 -$as_echo_n "checking for working mmap... " >&6; } -if ${ac_cv_func_mmap_fixed_mapped+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_func_mmap_fixed_mapped=no -else +# Set DATADIRNAME correctly if it is not set yet +# (copied from glib-gettext.m4) +if test -z "$DATADIRNAME"; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -$ac_includes_default -/* malloc might have been renamed as rpl_malloc. */ -#undef malloc - -/* Thanks to Mike Haertel and Jim Avera for this test. - Here is a matrix of mmap possibilities: - mmap private not fixed - mmap private fixed at somewhere currently unmapped - mmap private fixed at somewhere already mapped - mmap shared not fixed - mmap shared fixed at somewhere currently unmapped - mmap shared fixed at somewhere already mapped - For private mappings, we should verify that changes cannot be read() - back from the file, nor mmap's back from the file at a different - address. (There have been systems where private was not correctly - implemented like the infamous i386 svr4.0, and systems where the - VM page cache was not coherent with the file system buffer cache - like early versions of FreeBSD and possibly contemporary NetBSD.) - For shared mappings, we should conversely verify that changes get - propagated back to all the places they're supposed to be. - - Grep wants private fixed already mapped. - The main things grep needs to know about mmap are: - * does it exist and is it safe to write into the mmap'd area - * how to use it (BSD variants) */ - -#include -#include - -#if !defined STDC_HEADERS && !defined HAVE_STDLIB_H -char *malloc (); -#endif - -/* This mess was copied from the GNU getpagesize.h. */ -#ifndef HAVE_GETPAGESIZE -# ifdef _SC_PAGESIZE -# define getpagesize() sysconf(_SC_PAGESIZE) -# else /* no _SC_PAGESIZE */ -# ifdef HAVE_SYS_PARAM_H -# include -# ifdef EXEC_PAGESIZE -# define getpagesize() EXEC_PAGESIZE -# else /* no EXEC_PAGESIZE */ -# ifdef NBPG -# define getpagesize() NBPG * CLSIZE -# ifndef CLSIZE -# define CLSIZE 1 -# endif /* no CLSIZE */ -# else /* no NBPG */ -# ifdef NBPC -# define getpagesize() NBPC -# else /* no NBPC */ -# ifdef PAGESIZE -# define getpagesize() PAGESIZE -# endif /* PAGESIZE */ -# endif /* no NBPC */ -# endif /* no NBPG */ -# endif /* no EXEC_PAGESIZE */ -# else /* no HAVE_SYS_PARAM_H */ -# define getpagesize() 8192 /* punt totally */ -# endif /* no HAVE_SYS_PARAM_H */ -# endif /* no _SC_PAGESIZE */ - -#endif /* no HAVE_GETPAGESIZE */ int main () { - char *data, *data2, *data3; - const char *cdata2; - int i, pagesize; - int fd, fd2; - - pagesize = getpagesize (); - - /* First, make a file with some known garbage in it. */ - data = (char *) malloc (pagesize); - if (!data) - return 1; - for (i = 0; i < pagesize; ++i) - *(data + i) = rand (); - umask (0); - fd = creat ("conftest.mmap", 0600); - if (fd < 0) - return 2; - if (write (fd, data, pagesize) != pagesize) - return 3; - close (fd); - - /* Next, check that the tail of a page is zero-filled. File must have - non-zero length, otherwise we risk SIGBUS for entire page. */ - fd2 = open ("conftest.txt", O_RDWR | O_CREAT | O_TRUNC, 0600); - if (fd2 < 0) - return 4; - cdata2 = ""; - if (write (fd2, cdata2, 1) != 1) - return 5; - data2 = (char *) mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L); - if (data2 == MAP_FAILED) - return 6; - for (i = 0; i < pagesize; ++i) - if (*(data2 + i)) - return 7; - close (fd2); - if (munmap (data2, pagesize)) - return 8; - - /* Next, try to mmap the file at a fixed address which already has - something else allocated at it. If we can, also make sure that - we see the same garbage. */ - fd = open ("conftest.mmap", O_RDWR); - if (fd < 0) - return 9; - if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_FIXED, fd, 0L)) - return 10; - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data2 + i)) - return 11; - - /* Finally, make sure that changes to the mapped area do not - percolate back to the file as seen by read(). (This is a bug on - some variants of i386 svr4.0.) */ - for (i = 0; i < pagesize; ++i) - *(data2 + i) = *(data2 + i) + 1; - data3 = (char *) malloc (pagesize); - if (!data3) - return 12; - if (read (fd, data3, pagesize) != pagesize) - return 13; - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data3 + i)) - return 14; - close (fd); +extern int _nl_msg_cat_cntr; + return _nl_msg_cat_cntr + ; return 0; } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_func_mmap_fixed_mapped=yes +if ac_fn_c_try_link "$LINENO"; then : + DATADIRNAME=share else - ac_cv_func_mmap_fixed_mapped=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + case $host in + *-*-solaris*) + ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" +if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : + DATADIRNAME=share +else + DATADIRNAME=lib fi + ;; + *) + DATADIRNAME=lib + ;; + esac +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mmap_fixed_mapped" >&5 -$as_echo "$ac_cv_func_mmap_fixed_mapped" >&6; } -if test $ac_cv_func_mmap_fixed_mapped = yes; then -$as_echo "#define HAVE_MMAP 1" >>confdefs.h -fi -rm -rf conftest.mmap conftest.txt - for ac_header in argz.h limits.h locale.h nl_types.h malloc.h string.h \ -unistd.h sys/param.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + +GETTEXT_PACKAGE=xscreensaver + +cat >>confdefs.h <<_ACEOF +#define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE "$GETTEXT_PACKAGE" _ACEOF -fi -done - for ac_func in getcwd munmap putenv setenv setlocale strchr strcasecmp \ -strdup __argz_count __argz_stringify __argz_next +ALL_LINGUAS="ca da de es et fi fr hu it ja ko nb nl pl pt pt_BR ru sk sv vi wa zh_CN zh_TW" + + for ac_header in locale.h do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default" +if test "x$ac_cv_header_locale_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define HAVE_LOCALE_H 1 _ACEOF fi -done +done - if test $ac_cv_header_locale_h = yes; then + if test $ac_cv_header_locale_h = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 $as_echo_n "checking for LC_MESSAGES... " >&6; } if ${am_cv_val_LC_MESSAGES+:} false; then : @@ -7586,28 +7618,65 @@ $as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h USE_NLS=yes - nls_cv_force_use_gnu_gettext="no" + gt_cv_have_gettext=no - nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" - if test "$nls_cv_force_use_gnu_gettext" != "yes"; then - nls_cv_header_intl= - nls_cv_header_libgt= - CATOBJEXT=NONE + CATOBJEXT=NONE + XGETTEXT=: + INTLLIBS= - ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" + ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" if test "x$ac_cv_header_libintl_h" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in libc" >&5 + gt_cv_func_dgettext_libintl="no" + libintl_extra_libs="" + + # + # First check in libc + # + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in libc" >&5 +$as_echo_n "checking for ngettext in libc... " >&6; } +if ${gt_cv_func_ngettext_libc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include + +int +main () +{ +return !ngettext ("","", 1) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gt_cv_func_ngettext_libc=yes +else + gt_cv_func_ngettext_libc=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_ngettext_libc" >&5 +$as_echo "$gt_cv_func_ngettext_libc" >&6; } + + if test "$gt_cv_func_ngettext_libc" = "yes" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in libc" >&5 $as_echo_n "checking for dgettext in libc... " >&6; } if ${gt_cv_func_dgettext_libc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ + #include + int main () { -return (int) dgettext ("","") +return !dgettext ("","") ; return 0; } @@ -7619,12 +7688,34 @@ else fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext + fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_dgettext_libc" >&5 $as_echo "$gt_cv_func_dgettext_libc" >&6; } + fi + + if test "$gt_cv_func_ngettext_libc" = "yes" ; then + for ac_func in bind_textdomain_codeset +do : + ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" +if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_BIND_TEXTDOMAIN_CODESET 1 +_ACEOF + +fi +done - if test "$gt_cv_func_dgettext_libc" != "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5 + fi + + # + # If we don't have everything we want, check in libintl + # + if test "$gt_cv_func_dgettext_libc" != "yes" \ + || test "$gt_cv_func_ngettext_libc" != "yes" \ + || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5 $as_echo_n "checking for bindtextdomain in -lintl... " >&6; } if ${ac_cv_lib_intl_bindtextdomain+:} false; then : $as_echo_n "(cached) " >&6 @@ -7661,11 +7752,43 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_bindtextdomain" >&5 $as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; } if test "x$ac_cv_lib_intl_bindtextdomain" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in libintl" >&5 -$as_echo_n "checking for dgettext in libintl... " >&6; } -if ${gt_cv_func_dgettext_libintl+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 +$as_echo_n "checking for ngettext in -lintl... " >&6; } +if ${ac_cv_lib_intl_ngettext+:} false; then : $as_echo_n "(cached) " >&6 else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ngettext (); +int +main () +{ +return ngettext (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_intl_ngettext=yes +else + ac_cv_lib_intl_ngettext=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 +$as_echo "$ac_cv_lib_intl_ngettext" >&6; } +if test "x$ac_cv_lib_intl_ngettext" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in -lintl" >&5 $as_echo_n "checking for dgettext in -lintl... " >&6; } if ${ac_cv_lib_intl_dgettext+:} false; then : @@ -7704,27 +7827,151 @@ fi $as_echo "$ac_cv_lib_intl_dgettext" >&6; } if test "x$ac_cv_lib_intl_dgettext" = xyes; then : gt_cv_func_dgettext_libintl=yes +fi + +fi + +fi + + + if test "$gt_cv_func_dgettext_libintl" != "yes" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -liconv is needed to use gettext" >&5 +$as_echo_n "checking if -liconv is needed to use gettext... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 +$as_echo_n "checking for ngettext in -lintl... " >&6; } +if ${ac_cv_lib_intl_ngettext+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl -liconv $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ngettext (); +int +main () +{ +return ngettext (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_intl_ngettext=yes +else + ac_cv_lib_intl_ngettext=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 +$as_echo "$ac_cv_lib_intl_ngettext" >&6; } +if test "x$ac_cv_lib_intl_ngettext" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dcgettext in -lintl" >&5 +$as_echo_n "checking for dcgettext in -lintl... " >&6; } +if ${ac_cv_lib_intl_dcgettext+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl -liconv $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dcgettext (); +int +main () +{ +return dcgettext (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_intl_dcgettext=yes +else + ac_cv_lib_intl_dcgettext=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dcgettext" >&5 +$as_echo "$ac_cv_lib_intl_dcgettext" >&6; } +if test "x$ac_cv_lib_intl_dcgettext" = xyes; then : + gt_cv_func_dgettext_libintl=yes + libintl_extra_libs=-liconv else - gt_cv_func_dgettext_libintl=no + : fi +else + : fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_dgettext_libintl" >&5 -$as_echo "$gt_cv_func_dgettext_libintl" >&6; } + + fi + + # + # If we found libintl, then check in it for bind_textdomain_codeset(); + # we'll prefer libc if neither have bind_textdomain_codeset(), + # and both have dgettext and ngettext + # + if test "$gt_cv_func_dgettext_libintl" = "yes" ; then + glib_save_LIBS="$LIBS" + LIBS="$LIBS -lintl $libintl_extra_libs" + unset ac_cv_func_bind_textdomain_codeset + for ac_func in bind_textdomain_codeset +do : + ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" +if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_BIND_TEXTDOMAIN_CODESET 1 +_ACEOF + fi +done - fi + LIBS="$glib_save_LIBS" - if test "$gt_cv_func_dgettext_libintl" = "yes"; then - LIBS="$LIBS -lintl"; + if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then + gt_cv_func_dgettext_libc=no + else + if test "$gt_cv_func_dgettext_libc" = "yes" \ + && test "$gt_cv_func_ngettext_libc" = "yes"; then + gt_cv_func_dgettext_libintl=no + fi fi + fi + fi + + if test "$gt_cv_func_dgettext_libc" = "yes" \ + || test "$gt_cv_func_dgettext_libintl" = "yes"; then + gt_cv_have_gettext=yes + fi + + if test "$gt_cv_func_dgettext_libintl" = "yes"; then + INTLLIBS="-lintl $libintl_extra_libs" + fi - if test "$gt_cv_func_dgettext_libc" = "yes" \ - || test "$gt_cv_func_dgettext_libintl" = "yes"; then + if test "$gt_cv_have_gettext" = "yes"; then $as_echo "#define HAVE_GETTEXT 1" >>confdefs.h - # Extract the first word of "msgfmt", so it can be a program name with args. + # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } @@ -7752,15 +7999,17 @@ else esac fi MSGFMT="$ac_cv_path_MSGFMT" -if test -n "$MSGFMT"; then +if test "$MSGFMT" != "no"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - if test "$MSGFMT" != "no"; then - for ac_func in dcgettext + if test "$MSGFMT" != "no"; then + glib_save_LIBS="$LIBS" + LIBS="$LIBS $INTLLIBS" + for ac_func in dcgettext do : ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext" if test "x$ac_cv_func_dcgettext" = xyes; then : @@ -7771,7 +8020,36 @@ _ACEOF fi done - # Extract the first word of "gmsgfmt", so it can be a program name with args. + MSGFMT_OPTS= + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if msgfmt accepts -c" >&5 +$as_echo_n "checking if msgfmt accepts -c... " >&6; } + cat >conftest.foo <<_ACEOF + +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: test 1.0\n" +"PO-Revision-Date: 2007-02-15 12:01+0100\n" +"Last-Translator: test \n" +"Language-Team: C \n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" + +_ACEOF +if { { $as_echo "$as_me:${as_lineno-$LINENO}: \$MSGFMT -c -o /dev/null conftest.foo"; } >&5 + ($MSGFMT -c -o /dev/null conftest.foo) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + MSGFMT_OPTS=-c; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +echo "$as_me: failed input was:" >&5 +sed 's/^/| /' conftest.foo >&5 +fi + + # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } @@ -7812,7 +8090,7 @@ $as_echo "no" >&6; } fi - # Extract the first word of "xgettext", so it can be a program name with args. + # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } @@ -7840,7 +8118,7 @@ else esac fi XGETTEXT="$ac_cv_path_XGETTEXT" -if test -n "$XGETTEXT"; then +if test "$XGETTEXT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else @@ -7848,53 +8126,61 @@ else $as_echo "no" >&6; } fi - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { extern int _nl_msg_cat_cntr; - return _nl_msg_cat_cntr + return _nl_msg_cat_cntr ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : CATOBJEXT=.gmo - DATADIRNAME=share + DATADIRNAME=share +else + case $host in + *-*-solaris*) + ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" +if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : + CATOBJEXT=.gmo + DATADIRNAME=share else CATOBJEXT=.mo - DATADIRNAME=lib + DATADIRNAME=lib +fi + + ;; + *-*-openbsd*) + CATOBJEXT=.mo + DATADIRNAME=share + ;; + *) + CATOBJEXT=.mo + DATADIRNAME=lib + ;; + esac fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - INSTOBJEXT=.mo - fi - fi - - # Added by Martin Baulig 12/15/98 for libc5 systems - if test "$gt_cv_func_dgettext_libc" != "yes" \ - && test "$gt_cv_func_dgettext_libintl" = "yes"; then - INTLLIBS=-lintl - LIBS=`echo $LIBS | sed -e 's/-lintl//'` - fi + LIBS="$glib_save_LIBS" + INSTOBJEXT=.mo + else + gt_cv_have_gettext=no + fi + fi fi - if test "$CATOBJEXT" = "NONE"; then - nls_cv_use_gnu_gettext=yes - fi - fi - - if test "$nls_cv_use_gnu_gettext" != "yes"; then + if test "$gt_cv_have_gettext" = "yes" ; then $as_echo "#define ENABLE_NLS 1" >>confdefs.h - else - CATOBJEXT= fi if test "$XGETTEXT" != ":"; then @@ -7930,17 +8216,33 @@ $as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } - if test "x$CATOBJEXT" != "x"; then + if test "$gt_cv_have_gettext" = "yes"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5 $as_echo_n "checking for catalogs to be installed... " >&6; } NEW_LINGUAS= - for lang in ${LINGUAS=$ALL_LINGUAS}; do - case "$ALL_LINGUAS" in - *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;; - esac + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + NEW_LINGUAS="$NEW_LINGUAS $presentlang" + fi done LINGUAS=$NEW_LINGUAS { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5 @@ -7952,38 +8254,14 @@ $as_echo "$LINGUAS" >&6; } fi fi - test -d po || mkdir po - if test "$CATOBJEXT" = ".cat"; then - ac_fn_c_check_header_mongrel "$LINENO" "linux/version.h" "ac_cv_header_linux_version_h" "$ac_includes_default" -if test "x$ac_cv_header_linux_version_h" = xyes; then : - msgformat=linux -else - msgformat=xopen -fi - - - - sed -e '/^#/d' $srcdir/po/$msgformat-msg.sed > po/po2msg.sed - fi - MKINSTALLDIRS= -# -# jwz: fuck this! it puts hardcoded pathnames into the generated Makefiles! -# -# if test -n "$ac_aux_dir"; then -# MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" -# fi + if test -n "$ac_aux_dir"; then + MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" + fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi - # jwz: you know what, screw it. Let's just use the version that I - # already computed in configure.in, instead of this version that came - # with the i18n crud, ok? - MKINSTALLDIRS="$INSTALL_DIRS" - - - test -d po || mkdir po if test "x$srcdir" != "x."; then @@ -12831,7 +13109,7 @@ if ${ac_cv_mesagl_version_string+:} false; then : $as_echo_n "(cached) " >&6 else cat > conftest.$ac_ext < #ifndef MESA_MAJOR_VERSION @@ -15280,6 +15558,10 @@ LTLIBOBJS=$ac_ltlibobjs + ac_config_commands="$ac_config_commands po/stamp-it" + + + : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files @@ -15879,6 +16161,7 @@ do "hacks/glx/Makefile") CONFIG_FILES="$CONFIG_FILES hacks/glx/Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "driver/XScreenSaver.ad") CONFIG_FILES="$CONFIG_FILES driver/XScreenSaver.ad" ;; + "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac @@ -16435,11 +16718,28 @@ $as_echo "$as_me: executing $ac_file commands" >&6;} case $ac_file$ac_mode in "default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*) - rm -f po/stamp-it po/stamp-it.tmp - > po/stamp-it.tmp sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile - mv po/stamp-it.tmp po/stamp-it esac ;; + "po/stamp-it":C) + if ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" > /dev/null ; then + as_fn_error $? "po/Makefile.in.in was not created by intltoolize." "$LINENO" 5 + fi + rm -f "po/stamp-it" "po/stamp-it.tmp" "po/POTFILES" "po/Makefile.tmp" + >"po/stamp-it.tmp" + sed '/^#/d + s/^[[].*] *// + /^[ ]*$/d + '"s|^| $ac_top_srcdir/|" \ + "$srcdir/po/POTFILES.in" | sed '$!s/$/ \\/' >"po/POTFILES" + + sed '/^POTFILES =/,/[^\\]$/ { + /^POTFILES =/!d + r po/POTFILES + } + ' "po/Makefile.in" >"po/Makefile" + rm -f "po/Makefile.tmp" + mv "po/stamp-it.tmp" "po/stamp-it" + ;; esac done # for ac_tag @@ -16811,10 +17111,7 @@ if test "$have_gl" = no ; then echo '' warn2 'Those demos which use 3D will not be built or installed.' warn2 'You might want to consider installing OpenGL and' - warn2 "re-running configure. If your vendor doesn't ship" - warn2 'their own implementation of OpenGL, you can get a free' - warn2 'version at . For general OpenGL' - warn2 'info, see .' + warn2 're-running configure.' fi @@ -16834,7 +17131,7 @@ if test "$have_gl" = yes -a "$have_gle" = no ; then warn2 'library is not.' else noteL 'The OpenGL Library was found, but the GLE (GL Extrusion)' - warn2 'was not.' + warn2 'library was not.' fi if test "$gle_halfassed" = yes ; then @@ -16849,8 +17146,7 @@ if test "$have_gl" = yes -a "$have_gle" = no ; then warn2 'Some of the OpenGL (3D) demos (those that depend on GLE)' warn2 'will not be built or installed. You might want to consider' warn2 'installing GLE and re-running configure. You can find the' - warn2 'GLE library at . For general' - warn2 'OpenGL info, see .' + warn2 'GLE library at ' fi fi @@ -16985,7 +17281,7 @@ if test "$do_dir_warning" = yes; then echo ' "xscreensaver-demo", and "xscreensaver-command" executables' echo " will be installed in ${bindir}/." echo "" - echo " The various graphics demos (190+ different executables) will" + echo " The various graphics demos (200+ different executables) will" echo " be installed in ${HACKDIR}/." echo "" echo " If you would prefer the demos to be installed elsewhere," diff --git a/configure.in b/configure.in index 61656f37..7ed621c0 100644 --- a/configure.in +++ b/configure.in @@ -1,4 +1,4 @@ -# configure.in --- xscreensaver, Copyright (c) 1997-2005 Jamie Zawinski. +# configure.in --- xscreensaver, Copyright (c) 1997-2014 Jamie Zawinski. # AC_PREREQ(2.52) @@ -15,7 +15,7 @@ echo "command line was: $0 $@" ############################################################################### AH_TOP([ -/* config.h.in --- xscreensaver, Copyright (c) 1998-2000 Jamie Zawinski. +/* config.h.in --- xscreensaver, Copyright (c) 1991-2014 Jamie Zawinski. * * The best way to set these parameters is by running the included `configure' * script. That examines your system, and generates `config.h' from @@ -368,10 +368,6 @@ AC_DEFUN([AC_PROG_CC_PTHREAD], if test "$have_pthread" = yes; then AC_DEFINE([HAVE_PTHREAD]) CC=$PTHREAD_CC - - # AX_PTHREAD documentation specifically suggests this... - LIBS="$PTHREAD_LIBS $LIBS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" fi fi ]) @@ -4332,10 +4328,7 @@ if test "$have_gl" = no ; then echo '' warn2 'Those demos which use 3D will not be built or installed.' warn2 'You might want to consider installing OpenGL and' - warn2 "re-running configure. If your vendor doesn't ship" - warn2 'their own implementation of OpenGL, you can get a free' - warn2 'version at . For general OpenGL' - warn2 'info, see .' + warn2 're-running configure.' fi @@ -4355,7 +4348,7 @@ if test "$have_gl" = yes -a "$have_gle" = no ; then warn2 'library is not.' else noteL 'The OpenGL Library was found, but the GLE (GL Extrusion)' - warn2 'was not.' + warn2 'library was not.' fi if test "$gle_halfassed" = yes ; then @@ -4370,8 +4363,7 @@ if test "$have_gl" = yes -a "$have_gle" = no ; then warn2 'Some of the OpenGL (3D) demos (those that depend on GLE)' warn2 'will not be built or installed. You might want to consider' warn2 'installing GLE and re-running configure. You can find the' - warn2 'GLE library at . For general' - warn2 'OpenGL info, see .' + warn2 'GLE library at ' fi fi @@ -4506,7 +4498,7 @@ if test "$do_dir_warning" = yes; then echo ' "xscreensaver-demo", and "xscreensaver-command" executables' echo " will be installed in ${bindir}/." echo "" - echo " The various graphics demos (190+ different executables) will" + echo " The various graphics demos (200+ different executables) will" echo " be installed in ${HACKDIR}/." echo "" echo " If you would prefer the demos to be installed elsewhere," diff --git a/driver/Makefile.in b/driver/Makefile.in index e0f8ba5b..fca9c42a 100644 --- a/driver/Makefile.in +++ b/driver/Makefile.in @@ -93,9 +93,7 @@ INCLUDES = $(INCLUDES_1) @INCLUDES@ MOTIF_SRCS = demo-Xm.c demo-Xm-widgets.c MOTIF_OBJS = demo-Xm.o demo-Xm-widgets.o -GTK_SRCS = demo-Gtk.c demo-Gtk-conf.c \ - demo-Gtk-widgets.c demo-Gtk-support.c -GTK_EXTRA_OBJS = demo-Gtk-widgets.o demo-Gtk-support.o +GTK_SRCS = demo-Gtk.c demo-Gtk-conf.c GTK_OBJS = demo-Gtk.o demo-Gtk-conf.o @GTK_EXTRA_OBJS@ PWENT_SRCS = passwd-pwent.c @@ -227,7 +225,6 @@ SCRIPTS = $(SCRIPTS_1) @SCRIPTS_OSX@ HDRS = XScreenSaver_ad.h XScreenSaver_Xm_ad.h \ xscreensaver.h prefs.h remote.h exec.h \ - demo-Gtk-widgets.h demo-Gtk-stubs.h demo-Gtk-support.h \ demo-Gtk-conf.h auth.h mlstring.h types.h MEN_1 = xscreensaver.man xscreensaver-demo.man \ xscreensaver-command.man \ @@ -771,13 +768,12 @@ XScreenSaver_ad.h: XScreenSaver.ad XScreenSaver_Xm_ad.h: XScreenSaver-Xm.ad $(SHELL) $(UTILS_SRC)/ad2c XScreenSaver-Xm.ad > XScreenSaver_Xm_ad.h -# What was this for? Now it's undefined. -# @INTLTOOL_DESKTOP_RULE@ +@INTLTOOL_DESKTOP_RULE@ # The executables linked in this directory. # xscreensaver: $(SAVER_OBJS) - $(CC) $(LDFLAGS) -o $@ $(SAVER_OBJS) $(SAVER_LIBS) + $(CC) $(LDFLAGS) -o $@ $(SAVER_OBJS) $(SAVER_LIBS) $(INTL_LIBS) xscreensaver-command: $(CMD_OBJS) $(CC) $(LDFLAGS) -o $@ $(CMD_OBJS) $(CMD_LIBS) @@ -882,8 +878,6 @@ demo-Gtk-conf.o: $(UTILS_SRC)/xscreensaver-intl.h demo-Gtk.o: XScreenSaver_ad.h demo-Gtk.o: ../config.h demo-Gtk.o: $(srcdir)/demo-Gtk-conf.h -demo-Gtk.o: $(srcdir)/demo-Gtk-support.h -demo-Gtk.o: $(srcdir)/demo-Gtk-widgets.h demo-Gtk.o: $(srcdir)/prefs.h demo-Gtk.o: $(srcdir)/remote.h demo-Gtk.o: $(srcdir)/types.h @@ -892,12 +886,6 @@ demo-Gtk.o: $(UTILS_SRC)/usleep.h demo-Gtk.o: $(UTILS_SRC)/version.h demo-Gtk.o: $(UTILS_SRC)/visual.h demo-Gtk.o: $(UTILS_SRC)/xscreensaver-intl.h -demo-Gtk-support.o: ../config.h -demo-Gtk-support.o: $(srcdir)/demo-Gtk-support.h -demo-Gtk-widgets.o: ../config.h -demo-Gtk-widgets.o: $(srcdir)/demo-Gtk-stubs.h -demo-Gtk-widgets.o: $(srcdir)/demo-Gtk-support.h -demo-Gtk-widgets.o: $(srcdir)/demo-Gtk-widgets.h demo-Xm.o: ../config.h demo-Xm-widgets.o: ../config.h dpms.o: ../config.h diff --git a/driver/XScreenSaver.ad.in b/driver/XScreenSaver.ad.in index 4cfe82c4..4bbe5f24 100644 --- a/driver/XScreenSaver.ad.in +++ b/driver/XScreenSaver.ad.in @@ -4,8 +4,8 @@ ! a screen saver and locker for the X window system ! by Jamie Zawinski ! -! version 5.27 -! 27-May-2014 +! version 5.29 +! 08-Jun-2014 ! ! See "man xscreensaver" for more info. The latest version is always ! available at http://www.jwz.org/xscreensaver/ @@ -421,7 +421,7 @@ XScreenSaver.bourneShell: /bin/sh *passwd.uname: True *splash.heading.label: XScreenSaver %s -*splash.body.label: Copyright © 1991-2014 by +*splash.body.label: Copyright \xa9 1991-2014 by *splash.body2.label: Jamie Zawinski *splash.demo.label: Settings *splash.help.label: Help diff --git a/driver/XScreenSaver_ad.h b/driver/XScreenSaver_ad.h index e4e6fe91..10be94f6 100644 --- a/driver/XScreenSaver_ad.h +++ b/driver/XScreenSaver_ad.h @@ -295,7 +295,7 @@ "*passwd.asterisks: True", "*passwd.uname: True", "*splash.heading.label: XScreenSaver %s", -"*splash.body.label: Copyright © 1991-2014 by", +"*splash.body.label: Copyright \\xa9 1991-2014 by", "*splash.body2.label: Jamie Zawinski ", "*splash.demo.label: Settings", "*splash.help.label: Help", diff --git a/driver/demo-Gtk-stubs.h b/driver/demo-Gtk-stubs.h deleted file mode 100644 index c897d3ed..00000000 --- a/driver/demo-Gtk-stubs.h +++ /dev/null @@ -1,90 +0,0 @@ -#include - - -void -activate_menu_cb (GtkMenuItem *menuitem, - gpointer user_data); - -void -lock_menu_cb (GtkMenuItem *menuitem, - gpointer user_data); - -void -kill_menu_cb (GtkMenuItem *menuitem, - gpointer user_data); - -void -restart_menu_cb (GtkMenuItem *menuitem, - gpointer user_data); - -void -exit_menu_cb (GtkMenuItem *menuitem, - gpointer user_data); - -void -about_menu_cb (GtkMenuItem *menuitem, - gpointer user_data); - -void -doc_menu_cb (GtkMenuItem *menuitem, - gpointer user_data); - -void -switch_page_cb (GtkNotebook *notebook, - GtkNotebookPage *page, - gint page_num, - gpointer user_data); - -void -pref_changed_cb (GtkToggleButton *togglebutton, - gpointer user_data); - -void -run_this_cb (GtkButton *button, - gpointer user_data); - -void -settings_cb (GtkButton *button, - gpointer user_data); - -void -run_next_cb (GtkButton *button, - gpointer user_data); - -void -run_prev_cb (GtkButton *button, - gpointer user_data); - -void -browse_image_dir_cb (GtkButton *button, - gpointer user_data); - -void -settings_switch_page_cb (GtkNotebook *notebook, - GtkNotebookPage *page, - gint page_num, - gpointer user_data); - -void -manual_cb (GtkButton *button, - gpointer user_data); - -void -settings_adv_cb (GtkButton *button, - gpointer user_data); - -void -settings_std_cb (GtkButton *button, - gpointer user_data); - -void -settings_reset_cb (GtkButton *button, - gpointer user_data); - -void -settings_ok_cb (GtkButton *button, - gpointer user_data); - -void -settings_cancel_cb (GtkButton *button, - gpointer user_data); diff --git a/driver/demo-Gtk-support.c b/driver/demo-Gtk-support.c deleted file mode 100644 index 881129c4..00000000 --- a/driver/demo-Gtk-support.c +++ /dev/null @@ -1,219 +0,0 @@ -/* - * DO NOT EDIT THIS FILE - it is generated by Glade. - WARNING: I did edit this file! Be careful! -jwz - */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include -#include -#include -#include - -#include - -#include "demo-Gtk-support.h" - -/* jwz -- dumbass Glade1 doesn't emit code that can read PNGs. this does. */ -#ifdef HAVE_GDK_PIXBUF -# ifdef HAVE_GTK2 -# include -# else /* !HAVE_GTK2 */ -# include -# endif /* !HAVE_GTK2 */ -#endif /* HAVE_GDK_PIXBUF */ - - -/* This is an internally used function to check if a pixmap file exists. */ -static gchar* check_file_exists (const gchar *directory, - const gchar *filename); - -/* This is an internally used function to create pixmaps. */ -static GtkWidget* create_dummy_pixmap (GtkWidget *widget); - -GtkWidget* -lookup_widget (GtkWidget *widget, - const gchar *widget_name) -{ - GtkWidget *parent, *found_widget; - - for (;;) - { - if (GTK_IS_MENU (widget)) - parent = gtk_menu_get_attach_widget (GTK_MENU (widget)); - else - parent = widget->parent; - if (parent == NULL) - break; - widget = parent; - } - - found_widget = (GtkWidget*) gtk_object_get_data (GTK_OBJECT (widget), - widget_name); - if (!found_widget) - g_warning ("Widget not found: %s", widget_name); - return found_widget; -} - -/* This is a dummy pixmap we use when a pixmap can't be found. */ -static char *dummy_pixmap_xpm[] = { -/* columns rows colors chars-per-pixel */ -"1 1 1 1", -" c None", -/* pixels */ -" " -}; - -/* This is an internally used function to create pixmaps. */ -static GtkWidget* -create_dummy_pixmap (GtkWidget *widget) -{ - GdkColormap *colormap; - GdkPixmap *gdkpixmap; - GdkBitmap *mask; - GtkWidget *pixmap; - - colormap = gtk_widget_get_colormap (widget); - gdkpixmap = gdk_pixmap_colormap_create_from_xpm_d (NULL, colormap, &mask, - NULL, dummy_pixmap_xpm); - if (gdkpixmap == NULL) - g_error ("Couldn't create replacement pixmap."); - pixmap = gtk_pixmap_new (gdkpixmap, mask); - gdk_pixmap_unref (gdkpixmap); - gdk_bitmap_unref (mask); - return pixmap; -} - -static GList *pixmaps_directories = NULL; - -/* Use this function to set the directory containing installed pixmaps. */ -void -add_pixmap_directory (const gchar *directory) -{ - pixmaps_directories = g_list_prepend (pixmaps_directories, - g_strdup (directory)); -} - -/* This is an internally used function to create pixmaps. */ -/* #### Warning: this version of this function hacked by jwz to - support PNGs. Don't let Glade1 overwrite this! - */ -GtkWidget* -create_pixmap (GtkWidget *widget, - const gchar *filename) -{ - gchar *found_filename = NULL; - GdkColormap *colormap = 0; - GdkPixmap *gdkpixmap = 0; - GdkBitmap *mask = 0; - GtkWidget *pixmap = 0; - GList *elem = 0; - - if (!filename || !filename[0]) - return create_dummy_pixmap (widget); - - /* We first try any pixmaps directories set by the application. */ - elem = pixmaps_directories; - while (elem) - { - found_filename = check_file_exists ((gchar*)elem->data, filename); - if (found_filename) - break; - elem = elem->next; - } - - /* If we haven't found the pixmap, try the source directory. */ - if (!found_filename) - { - found_filename = check_file_exists ("../utils/images", filename); - } - - if (!found_filename) - { - g_warning (_("Couldn't find pixmap file: %s"), filename); - return create_dummy_pixmap (widget); - } - - colormap = gtk_widget_get_colormap (widget); - -# ifndef HAVE_GDK_PIXBUF - - gdkpixmap = gdk_pixmap_colormap_create_from_xpm (NULL, colormap, &mask, - NULL, found_filename); - if (gdkpixmap == NULL) - { - g_warning (_("Error loading pixmap file: %s"), found_filename); - g_free (found_filename); - return create_dummy_pixmap (widget); - } - -# else /* HAVE_GDK_PIXBUF */ - - /* jwz -- dumbass Glade1 doesn't emit code that can read PNGs. - This code does... */ - - /* #### Danger: we aren't using `colormap'... */ - - { - GdkPixbuf *pb; -# ifdef HAVE_GTK2 - GError *gerr = 0; -# endif /* HAVE_GTK2 */ - - pb = gdk_pixbuf_new_from_file (found_filename -# ifdef HAVE_GTK2 - , &gerr -# endif /* HAVE_GTK2 */ - ); - - if (pb) - { - gdkpixmap = 0; - mask = 0; - gdk_pixbuf_render_pixmap_and_mask (pb, &gdkpixmap, &mask, 128); - } - else - { - g_warning (_("Error loading pixmap file: %s"), found_filename); -# ifdef HAVE_GTK2 - if (gerr && gerr->message && *gerr->message) - g_warning (_("reason: %s\n"), gerr->message); -# endif /* HAVE_GTK2 */ - - return create_dummy_pixmap (widget); - } - } -# endif /* HAVE_GDK_PIXBUF */ - - g_free (found_filename); - pixmap = gtk_pixmap_new (gdkpixmap, mask); - gdk_pixmap_unref (gdkpixmap); - gdk_bitmap_unref (mask); - - return pixmap; -} - -/* This is an internally used function to check if a pixmap file exists. */ -static gchar* -check_file_exists (const gchar *directory, - const gchar *filename) -{ - gchar *full_filename; - struct stat s; - gint status; - - full_filename = (gchar*) g_malloc (strlen (directory) + 1 - + strlen (filename) + 1); - strcpy (full_filename, directory); - strcat (full_filename, G_DIR_SEPARATOR_S); - strcat (full_filename, filename); - - status = stat (full_filename, &s); - if (status == 0 && S_ISREG (s.st_mode)) - return full_filename; - g_free (full_filename); - return NULL; -} - diff --git a/driver/demo-Gtk-support.h b/driver/demo-Gtk-support.h deleted file mode 100644 index 931bc5ad..00000000 --- a/driver/demo-Gtk-support.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * DO NOT EDIT THIS FILE - it is generated by Glade. - */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include - -/* - * Standard gettext macros. - */ -#ifdef ENABLE_NLS -# include -# undef _ -# define _(String) dgettext (PACKAGE, String) -# ifdef gettext_noop -# define N_(String) gettext_noop (String) -# else -# define N_(String) (String) -# endif -#else -# define textdomain(String) (String) -# define gettext(String) (String) -# define dgettext(Domain,Message) (Message) -# define dcgettext(Domain,Message,Type) (Message) -# define bindtextdomain(Domain,Directory) (Domain) -# define _(String) (String) -# define N_(String) (String) -#endif - - -/* - * Public Functions. - */ - -/* - * This function returns a widget in a component created by Glade. - * Call it with the toplevel widget in the component (i.e. a window/dialog), - * or alternatively any widget in the component, and the name of the widget - * you want returned. - */ -GtkWidget* lookup_widget (GtkWidget *widget, - const gchar *widget_name); - -/* get_widget() is deprecated. Use lookup_widget instead. */ -#define get_widget lookup_widget - -/* Use this function to set the directory containing installed pixmaps. */ -void add_pixmap_directory (const gchar *directory); - - -/* - * Private Functions. - */ - -/* This is used to create the pixmaps in the interface. */ -GtkWidget* create_pixmap (GtkWidget *widget, - const gchar *filename); - diff --git a/driver/demo-Gtk-widgets.c b/driver/demo-Gtk-widgets.c deleted file mode 100644 index 4e853c99..00000000 --- a/driver/demo-Gtk-widgets.c +++ /dev/null @@ -1,1764 +0,0 @@ -/* - * DO NOT EDIT THIS FILE - it is generated by Glade. - */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include -#include -#include -#include - -#include -#include - -#include "demo-Gtk-stubs.h" -#include "demo-Gtk-widgets.h" -#include "demo-Gtk-support.h" - -# ifdef __GNUC__ -# define STFU __extension__ /* ignore gcc -pendantic warnings in next sexp */ -# else -# define STFU /* */ -# endif - -GtkWidget* -create_xscreensaver_demo (void) -{ - GtkWidget *xscreensaver_demo; - GtkWidget *outer_vbox; - GtkWidget *menubar; - guint tmp_key; - GtkWidget *file; - GtkWidget *file_menu; - GtkAccelGroup *file_menu_accels; - GtkWidget *activate_menu; - GtkWidget *lock_menu; - GtkWidget *kill_menu; - GtkWidget *restart; - GtkWidget *separator1; - GtkWidget *exit_menu; - GtkWidget *help; - GtkWidget *help_menu; - GtkAccelGroup *help_menu_accels; - GtkWidget *about_menu; - GtkWidget *doc_menu; - GtkWidget *notebook; - GtkWidget *demos_table; - GtkWidget *blanking_table; - GtkWidget *cycle_label; - GtkWidget *lock_button_eventbox; - GtkWidget *lock_button; - GtkWidget *timeout_label; - GtkObject *timeout_spinbutton_adj; - GtkWidget *timeout_spinbutton; - GtkWidget *timeout_mlabel; - GtkWidget *cycle_mlabel; - GtkWidget *lock_mlabel; - GtkObject *lock_spinbutton_adj; - GtkWidget *lock_spinbutton; - GtkObject *cycle_spinbutton_adj; - GtkWidget *cycle_spinbutton; - GtkWidget *demo_manual_hbbox; - GtkWidget *demo; - GtkWidget *settings; - GtkWidget *list_vbox; - GtkWidget *mode_hbox; - GtkWidget *mode_label; - GtkWidget *mode_menu; - GtkWidget *mode_menu_menu; - GtkWidget *glade_menuitem; - GtkWidget *col_head_hbox; - GtkWidget *use_col_frame; - GtkWidget *use_label; - GtkWidget *saver_col_frame; - GtkWidget *saver_label; - GtkWidget *scroller; - GtkWidget *viewport; - GtkWidget *list; - GtkWidget *centering_hbox; - GtkWidget *next_prev_hbox; - GtkWidget *next; - GtkWidget *prev; - GtkWidget *preview_frame; - GtkWidget *preview_aspectframe; - GtkWidget *preview; - GtkWidget *demo_tab; - GtkWidget *options_table; - GtkWidget *diag_frame; - GtkWidget *diag_hbox; - GtkWidget *diag_logo; - GtkWidget *diag_vbox; - GtkWidget *verbose_button_eventbox; - GtkWidget *verbose_button; - GtkWidget *capture_button_eventbox; - GtkWidget *capture_button; - GtkWidget *splash_button_eventbox; - GtkWidget *splash_button; - GtkWidget *cmap_frame; - GtkWidget *cmap_hbox; - GtkWidget *cmap_logo; - GtkWidget *cmap_vbox; - GtkWidget *install_button_eventbox; - GtkWidget *install_button; - GtkWidget *cmap_hr; - GtkWidget *fade_button_eventbox; - GtkWidget *fade_button; - GtkWidget *unfade_button_eventbox; - GtkWidget *unfade_button; - GtkWidget *fade_hbox; - GtkWidget *fade_dummy; - GtkWidget *fade_label; - GtkObject *fade_spinbutton_adj; - GtkWidget *fade_spinbutton; - GtkWidget *fade_sec_label; - GtkWidget *dpms_frame; - GtkWidget *dpms_hbox; - GtkWidget *dpms_logo; - GtkWidget *dpms_vbox; - GtkWidget *dpms_button_eventbox; - GtkWidget *dpms_button; - GtkWidget *dpms_table; - GtkObject *dpms_standby_spinbutton_adj; - GtkWidget *dpms_standby_spinbutton; - GtkWidget *dpms_standby_mlabel; - GtkWidget *dpms_suspend_mlabel; - GtkWidget *dpms_off_mlabel; - GtkWidget *dpms_off_label; - GtkWidget *dpms_suspend_label; - GtkWidget *dpms_standby_label; - GtkObject *dpms_suspend_spinbutton_adj; - GtkWidget *dpms_suspend_spinbutton; - GtkObject *dpms_off_spinbutton_adj; - GtkWidget *dpms_off_spinbutton; - GtkWidget *grab_frame; - GtkWidget *grab_hbox; - GtkWidget *img_logo; - GtkWidget *grab_vbox; - GtkWidget *grab_desk_eventbox; - GtkWidget *grab_desk_button; - GtkWidget *grab_video_eventbox; - GtkWidget *grab_video_button; - GtkWidget *grab_image_eventbox; - GtkWidget *grab_image_button; - GtkWidget *image_hbox; - GtkWidget *grab_dummy; - GtkWidget *image_text; - GtkWidget *image_browse_button; - GtkWidget *options_tab; - GtkAccelGroup *accel_group; - GtkTooltips *tooltips; - - tooltips = gtk_tooltips_new (); - - accel_group = gtk_accel_group_new (); - - xscreensaver_demo = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_widget_set_name (xscreensaver_demo, "xscreensaver_demo"); - gtk_object_set_data (GTK_OBJECT (xscreensaver_demo), "xscreensaver_demo", xscreensaver_demo); - gtk_window_set_title (GTK_WINDOW (xscreensaver_demo), _("XScreenSaver")); - gtk_window_set_wmclass (GTK_WINDOW (xscreensaver_demo), "xscreensaver", "XScreenSaver"); - - outer_vbox = gtk_vbox_new (FALSE, 5); - gtk_widget_set_name (outer_vbox, "outer_vbox"); - gtk_widget_ref (outer_vbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "outer_vbox", outer_vbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (outer_vbox); - gtk_container_add (GTK_CONTAINER (xscreensaver_demo), outer_vbox); - - menubar = gtk_menu_bar_new (); - gtk_widget_set_name (menubar, "menubar"); - gtk_widget_ref (menubar); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "menubar", menubar, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar); - gtk_box_pack_start (GTK_BOX (outer_vbox), menubar, FALSE, FALSE, 0); - - file = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (file)->child), - _("_File")); - gtk_widget_add_accelerator (file, "activate_item", accel_group, - tmp_key, GDK_MOD1_MASK, (GtkAccelFlags) 0); - gtk_widget_set_name (file, "file"); - gtk_widget_ref (file); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "file", file, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (file); - gtk_container_add (GTK_CONTAINER (menubar), file); - - file_menu = gtk_menu_new (); - gtk_widget_set_name (file_menu, "file_menu"); - gtk_widget_ref (file_menu); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "file_menu", file_menu, - (GtkDestroyNotify) gtk_widget_unref); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (file), file_menu); - file_menu_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (file_menu)); - - activate_menu = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (activate_menu)->child), - _("_Blank Screen Now")); - gtk_widget_add_accelerator (activate_menu, "activate_item", file_menu_accels, - tmp_key, 0, 0); - gtk_widget_set_name (activate_menu, "activate_menu"); - gtk_widget_ref (activate_menu); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "activate_menu", activate_menu, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (activate_menu); - gtk_container_add (GTK_CONTAINER (file_menu), activate_menu); - gtk_tooltips_set_tip (tooltips, activate_menu, _("Activate the XScreenSaver daemon now (locking the screen if so configured.)"), NULL); - - lock_menu = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (lock_menu)->child), - _("_Lock Screen Now")); - gtk_widget_add_accelerator (lock_menu, "activate_item", file_menu_accels, - tmp_key, 0, 0); - gtk_widget_set_name (lock_menu, "lock_menu"); - gtk_widget_ref (lock_menu); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "lock_menu", lock_menu, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (lock_menu); - gtk_container_add (GTK_CONTAINER (file_menu), lock_menu); - gtk_tooltips_set_tip (tooltips, lock_menu, _("Lock the screen now (even if \"Lock Screen\" is unchecked.)"), NULL); - - kill_menu = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (kill_menu)->child), - _("_Kill Daemon")); - gtk_widget_add_accelerator (kill_menu, "activate_item", file_menu_accels, - tmp_key, 0, 0); - gtk_widget_set_name (kill_menu, "kill_menu"); - gtk_widget_ref (kill_menu); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "kill_menu", kill_menu, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (kill_menu); - gtk_container_add (GTK_CONTAINER (file_menu), kill_menu); - gtk_tooltips_set_tip (tooltips, kill_menu, _("Tell the running XScreenSaver daemon to exit."), NULL); - - restart = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (restart)->child), - _("_Restart Daemon")); - gtk_widget_add_accelerator (restart, "activate_item", file_menu_accels, - tmp_key, 0, 0); - gtk_widget_set_name (restart, "restart"); - gtk_widget_ref (restart); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "restart", restart, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (restart); - gtk_container_add (GTK_CONTAINER (file_menu), restart); - gtk_tooltips_set_tip (tooltips, restart, _("Kill and re-launch the XScreenSaver daemon."), NULL); - - separator1 = gtk_menu_item_new (); - gtk_widget_set_name (separator1, "separator1"); - gtk_widget_ref (separator1); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "separator1", separator1, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (separator1); - gtk_container_add (GTK_CONTAINER (file_menu), separator1); - gtk_widget_set_sensitive (separator1, FALSE); - - exit_menu = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (exit_menu)->child), - _("_Exit")); - gtk_widget_add_accelerator (exit_menu, "activate_item", file_menu_accels, - tmp_key, 0, 0); - gtk_widget_set_name (exit_menu, "exit_menu"); - gtk_widget_ref (exit_menu); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "exit_menu", exit_menu, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (exit_menu); - gtk_container_add (GTK_CONTAINER (file_menu), exit_menu); - gtk_tooltips_set_tip (tooltips, exit_menu, _("Exit the xscreensaver-demo program (but leave the XScreenSaver daemon running in the background.)"), NULL); - - help = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (help)->child), - _("_Help")); - gtk_widget_add_accelerator (help, "activate_item", accel_group, - tmp_key, GDK_MOD1_MASK, (GtkAccelFlags) 0); - gtk_widget_set_name (help, "help"); - gtk_widget_ref (help); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "help", help, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (help); - gtk_container_add (GTK_CONTAINER (menubar), help); - - help_menu = gtk_menu_new (); - gtk_widget_set_name (help_menu, "help_menu"); - gtk_widget_ref (help_menu); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "help_menu", help_menu, - (GtkDestroyNotify) gtk_widget_unref); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (help), help_menu); - help_menu_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (help_menu)); - - about_menu = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (about_menu)->child), - _("_About...")); - gtk_widget_add_accelerator (about_menu, "activate_item", help_menu_accels, - tmp_key, 0, 0); - gtk_widget_set_name (about_menu, "about_menu"); - gtk_widget_ref (about_menu); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "about_menu", about_menu, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (about_menu); - gtk_container_add (GTK_CONTAINER (help_menu), about_menu); - gtk_tooltips_set_tip (tooltips, about_menu, _("Display version information."), NULL); - - doc_menu = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (doc_menu)->child), - _("_Documentation...")); - gtk_widget_add_accelerator (doc_menu, "activate_item", help_menu_accels, - tmp_key, 0, 0); - gtk_widget_set_name (doc_menu, "doc_menu"); - gtk_widget_ref (doc_menu); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "doc_menu", doc_menu, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (doc_menu); - gtk_container_add (GTK_CONTAINER (help_menu), doc_menu); - gtk_tooltips_set_tip (tooltips, doc_menu, _("Go to the documentation on the XScreenSaver web page."), NULL); - - notebook = gtk_notebook_new (); - gtk_widget_set_name (notebook, "notebook"); - gtk_widget_ref (notebook); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "notebook", notebook, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (notebook); - gtk_box_pack_start (GTK_BOX (outer_vbox), notebook, TRUE, TRUE, 0); - - demos_table = gtk_table_new (2, 2, FALSE); - gtk_widget_set_name (demos_table, "demos_table"); - gtk_widget_ref (demos_table); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "demos_table", demos_table, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (demos_table); - gtk_container_add (GTK_CONTAINER (notebook), demos_table); - gtk_container_set_border_width (GTK_CONTAINER (demos_table), 10); - - blanking_table = gtk_table_new (3, 4, FALSE); - gtk_widget_set_name (blanking_table, "blanking_table"); - gtk_widget_ref (blanking_table); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "blanking_table", blanking_table, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (blanking_table); - gtk_table_attach (GTK_TABLE (demos_table), blanking_table, 0, 1, 1, 2, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (GTK_FILL), 0, 0); - gtk_table_set_row_spacings (GTK_TABLE (blanking_table), 2); - - cycle_label = gtk_label_new (_("Cycle After")); - gtk_widget_set_name (cycle_label, "cycle_label"); - gtk_widget_ref (cycle_label); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "cycle_label", cycle_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (cycle_label); - gtk_table_attach (GTK_TABLE (blanking_table), cycle_label, 1, 2, 1, 2, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (cycle_label), GTK_JUSTIFY_RIGHT); - gtk_misc_set_alignment (GTK_MISC (cycle_label), 1, 0.5); - gtk_misc_set_padding (GTK_MISC (cycle_label), 8, 0); - - lock_button_eventbox = gtk_event_box_new (); - gtk_widget_set_name (lock_button_eventbox, "lock_button_eventbox"); - gtk_widget_ref (lock_button_eventbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "lock_button_eventbox", lock_button_eventbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (lock_button_eventbox); - gtk_table_attach (GTK_TABLE (blanking_table), lock_button_eventbox, 0, 2, 2, 3, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_tooltips_set_tip (tooltips, lock_button_eventbox, _("Whether a password should be required to un-blank the screen."), NULL); - - lock_button = gtk_check_button_new_with_label (_("Lock Screen After")); - gtk_widget_set_name (lock_button, "lock_button"); - gtk_widget_ref (lock_button); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "lock_button", lock_button, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (lock_button); - gtk_container_add (GTK_CONTAINER (lock_button_eventbox), lock_button); - - timeout_label = gtk_label_new (_("Blank After")); - gtk_widget_set_name (timeout_label, "timeout_label"); - gtk_widget_ref (timeout_label); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "timeout_label", timeout_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (timeout_label); - gtk_table_attach (GTK_TABLE (blanking_table), timeout_label, 1, 2, 0, 1, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (timeout_label), GTK_JUSTIFY_RIGHT); - gtk_misc_set_alignment (GTK_MISC (timeout_label), 1, 0.5); - gtk_misc_set_padding (GTK_MISC (timeout_label), 8, 0); - - timeout_spinbutton_adj = gtk_adjustment_new (0, 1, 720, 1, 30, 30); - timeout_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (timeout_spinbutton_adj), 15, 0); - gtk_widget_set_name (timeout_spinbutton, "timeout_spinbutton"); - gtk_widget_ref (timeout_spinbutton); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "timeout_spinbutton", timeout_spinbutton, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (timeout_spinbutton); - gtk_table_attach (GTK_TABLE (blanking_table), timeout_spinbutton, 2, 3, 0, 1, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_tooltips_set_tip (tooltips, timeout_spinbutton, _("How long before the monitor goes completely black."), NULL); - gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (timeout_spinbutton), TRUE); - gtk_spin_button_set_snap_to_ticks (GTK_SPIN_BUTTON (timeout_spinbutton), TRUE); - - timeout_mlabel = gtk_label_new (_("minutes")); - gtk_widget_set_name (timeout_mlabel, "timeout_mlabel"); - gtk_widget_ref (timeout_mlabel); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "timeout_mlabel", timeout_mlabel, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (timeout_mlabel); - gtk_table_attach (GTK_TABLE (blanking_table), timeout_mlabel, 3, 4, 0, 1, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (timeout_mlabel), GTK_JUSTIFY_LEFT); - gtk_misc_set_alignment (GTK_MISC (timeout_mlabel), 0, 0.5); - - cycle_mlabel = gtk_label_new (_("minutes")); - gtk_widget_set_name (cycle_mlabel, "cycle_mlabel"); - gtk_widget_ref (cycle_mlabel); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "cycle_mlabel", cycle_mlabel, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (cycle_mlabel); - gtk_table_attach (GTK_TABLE (blanking_table), cycle_mlabel, 3, 4, 1, 2, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (cycle_mlabel), GTK_JUSTIFY_LEFT); - gtk_misc_set_alignment (GTK_MISC (cycle_mlabel), 0, 0.5); - - lock_mlabel = gtk_label_new (_("minutes")); - gtk_widget_set_name (lock_mlabel, "lock_mlabel"); - gtk_widget_ref (lock_mlabel); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "lock_mlabel", lock_mlabel, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (lock_mlabel); - gtk_table_attach (GTK_TABLE (blanking_table), lock_mlabel, 3, 4, 2, 3, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (lock_mlabel), GTK_JUSTIFY_LEFT); - gtk_misc_set_alignment (GTK_MISC (lock_mlabel), 0, 0.5); - - lock_spinbutton_adj = gtk_adjustment_new (0, 0, 720, 1, 30, 30); - lock_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (lock_spinbutton_adj), 15, 0); - gtk_widget_set_name (lock_spinbutton, "lock_spinbutton"); - gtk_widget_ref (lock_spinbutton); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "lock_spinbutton", lock_spinbutton, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (lock_spinbutton); - gtk_table_attach (GTK_TABLE (blanking_table), lock_spinbutton, 2, 3, 2, 3, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 10); - gtk_tooltips_set_tip (tooltips, lock_spinbutton, _("How long before the monitor goes completely black."), NULL); - gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (lock_spinbutton), TRUE); - gtk_spin_button_set_snap_to_ticks (GTK_SPIN_BUTTON (lock_spinbutton), TRUE); - - cycle_spinbutton_adj = gtk_adjustment_new (0, 1, 720, 1, 30, 30); - cycle_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (cycle_spinbutton_adj), 15, 0); - gtk_widget_set_name (cycle_spinbutton, "cycle_spinbutton"); - gtk_widget_ref (cycle_spinbutton); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "cycle_spinbutton", cycle_spinbutton, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (cycle_spinbutton); - gtk_table_attach (GTK_TABLE (blanking_table), cycle_spinbutton, 2, 3, 1, 2, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_tooltips_set_tip (tooltips, cycle_spinbutton, _("How long before the monitor goes completely black."), NULL); - gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (cycle_spinbutton), TRUE); - gtk_spin_button_set_snap_to_ticks (GTK_SPIN_BUTTON (cycle_spinbutton), TRUE); - - demo_manual_hbbox = gtk_hbutton_box_new (); - gtk_widget_set_name (demo_manual_hbbox, "demo_manual_hbbox"); - gtk_widget_ref (demo_manual_hbbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "demo_manual_hbbox", demo_manual_hbbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (demo_manual_hbbox); - gtk_table_attach (GTK_TABLE (demos_table), demo_manual_hbbox, 1, 2, 1, 2, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (GTK_FILL), 0, 0); - gtk_button_box_set_layout (GTK_BUTTON_BOX (demo_manual_hbbox), GTK_BUTTONBOX_SPREAD); - - demo = gtk_button_new_with_label (_("Preview")); - gtk_widget_set_name (demo, "demo"); - gtk_widget_ref (demo); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "demo", demo, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (demo); - gtk_container_add (GTK_CONTAINER (demo_manual_hbbox), demo); - STFU GTK_WIDGET_SET_FLAGS (demo, GTK_CAN_DEFAULT); - gtk_tooltips_set_tip (tooltips, demo, _("Demo the selected screen saver in full-screen mode (click the mouse to return.)"), NULL); - - settings = gtk_button_new_with_label (_("Settings...")); - gtk_widget_set_name (settings, "settings"); - gtk_widget_ref (settings); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "settings", settings, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (settings); - gtk_container_add (GTK_CONTAINER (demo_manual_hbbox), settings); - STFU GTK_WIDGET_SET_FLAGS (settings, GTK_CAN_DEFAULT); - gtk_tooltips_set_tip (tooltips, settings, _("Customization and explanation of the selected screen saver."), NULL); - - list_vbox = gtk_vbox_new (FALSE, 0); - gtk_widget_set_name (list_vbox, "list_vbox"); - gtk_widget_ref (list_vbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "list_vbox", list_vbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (list_vbox); - gtk_table_attach (GTK_TABLE (demos_table), list_vbox, 0, 1, 0, 1, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); - gtk_container_set_border_width (GTK_CONTAINER (list_vbox), 10); - - mode_hbox = gtk_hbox_new (FALSE, 0); - gtk_widget_set_name (mode_hbox, "mode_hbox"); - gtk_widget_ref (mode_hbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "mode_hbox", mode_hbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (mode_hbox); - gtk_box_pack_start (GTK_BOX (list_vbox), mode_hbox, FALSE, TRUE, 10); - - mode_label = gtk_label_new (_("Mode:")); - gtk_widget_set_name (mode_label, "mode_label"); - gtk_widget_ref (mode_label); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "mode_label", mode_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (mode_label); - gtk_box_pack_start (GTK_BOX (mode_hbox), mode_label, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (mode_label), GTK_JUSTIFY_LEFT); - gtk_misc_set_alignment (GTK_MISC (mode_label), 0, 0.5); - - mode_menu = gtk_option_menu_new (); - gtk_widget_set_name (mode_menu, "mode_menu"); - gtk_widget_ref (mode_menu); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "mode_menu", mode_menu, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (mode_menu); - gtk_box_pack_start (GTK_BOX (mode_hbox), mode_menu, FALSE, FALSE, 4); - mode_menu_menu = gtk_menu_new (); - glade_menuitem = gtk_menu_item_new_with_label (_("Disable Screen Saver")); - gtk_widget_show (glade_menuitem); - gtk_menu_append (GTK_MENU (mode_menu_menu), glade_menuitem); - glade_menuitem = gtk_menu_item_new_with_label (_("Blank Screen Only")); - gtk_widget_show (glade_menuitem); - gtk_menu_append (GTK_MENU (mode_menu_menu), glade_menuitem); - glade_menuitem = gtk_menu_item_new_with_label (_("Only One Screen Saver")); - gtk_widget_show (glade_menuitem); - gtk_menu_append (GTK_MENU (mode_menu_menu), glade_menuitem); - glade_menuitem = gtk_menu_item_new_with_label (_("Random Screen Saver")); - gtk_widget_show (glade_menuitem); - gtk_menu_append (GTK_MENU (mode_menu_menu), glade_menuitem); - gtk_option_menu_set_menu (GTK_OPTION_MENU (mode_menu), mode_menu_menu); - gtk_option_menu_set_history (GTK_OPTION_MENU (mode_menu), 3); - - col_head_hbox = gtk_hbox_new (FALSE, 0); - gtk_widget_set_name (col_head_hbox, "col_head_hbox"); - gtk_widget_ref (col_head_hbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "col_head_hbox", col_head_hbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (col_head_hbox); - gtk_box_pack_start (GTK_BOX (list_vbox), col_head_hbox, FALSE, TRUE, 0); - - use_col_frame = gtk_frame_new (NULL); - gtk_widget_set_name (use_col_frame, "use_col_frame"); - gtk_widget_ref (use_col_frame); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "use_col_frame", use_col_frame, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (use_col_frame); - gtk_box_pack_start (GTK_BOX (col_head_hbox), use_col_frame, FALSE, FALSE, 0); - gtk_frame_set_shadow_type (GTK_FRAME (use_col_frame), GTK_SHADOW_OUT); - - use_label = gtk_label_new (_("Use")); - gtk_widget_set_name (use_label, "use_label"); - gtk_widget_ref (use_label); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "use_label", use_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (use_label); - gtk_container_add (GTK_CONTAINER (use_col_frame), use_label); - gtk_label_set_justify (GTK_LABEL (use_label), GTK_JUSTIFY_LEFT); - gtk_misc_set_alignment (GTK_MISC (use_label), 0, 0.5); - gtk_misc_set_padding (GTK_MISC (use_label), 3, 0); - - saver_col_frame = gtk_frame_new (NULL); - gtk_widget_set_name (saver_col_frame, "saver_col_frame"); - gtk_widget_ref (saver_col_frame); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "saver_col_frame", saver_col_frame, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (saver_col_frame); - gtk_box_pack_start (GTK_BOX (col_head_hbox), saver_col_frame, TRUE, TRUE, 0); - gtk_frame_set_shadow_type (GTK_FRAME (saver_col_frame), GTK_SHADOW_OUT); - - saver_label = gtk_label_new (_("Screen Saver")); - gtk_widget_set_name (saver_label, "saver_label"); - gtk_widget_ref (saver_label); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "saver_label", saver_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (saver_label); - gtk_container_add (GTK_CONTAINER (saver_col_frame), saver_label); - gtk_label_set_justify (GTK_LABEL (saver_label), GTK_JUSTIFY_LEFT); - gtk_misc_set_alignment (GTK_MISC (saver_label), 0, 0.5); - gtk_misc_set_padding (GTK_MISC (saver_label), 6, 0); - - scroller = gtk_scrolled_window_new (NULL, NULL); - gtk_widget_set_name (scroller, "scroller"); - gtk_widget_ref (scroller); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "scroller", scroller, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (scroller); - gtk_box_pack_start (GTK_BOX (list_vbox), scroller, TRUE, TRUE, 0); - gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroller), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); - - viewport = gtk_viewport_new (NULL, NULL); - gtk_widget_set_name (viewport, "viewport"); - gtk_widget_ref (viewport); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "viewport", viewport, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (viewport); - gtk_container_add (GTK_CONTAINER (scroller), viewport); - gtk_container_set_border_width (GTK_CONTAINER (viewport), 1); - - list = gtk_list_new (); - gtk_widget_set_name (list, "list"); - gtk_widget_ref (list); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "list", list, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (list); - gtk_container_add (GTK_CONTAINER (viewport), list); - - centering_hbox = gtk_hbox_new (TRUE, 0); - gtk_widget_set_name (centering_hbox, "centering_hbox"); - gtk_widget_ref (centering_hbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "centering_hbox", centering_hbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (centering_hbox); - gtk_box_pack_end (GTK_BOX (list_vbox), centering_hbox, FALSE, TRUE, 0); - - next_prev_hbox = gtk_hbox_new (FALSE, 0); - gtk_widget_set_name (next_prev_hbox, "next_prev_hbox"); - gtk_widget_ref (next_prev_hbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "next_prev_hbox", next_prev_hbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (next_prev_hbox); - gtk_box_pack_start (GTK_BOX (centering_hbox), next_prev_hbox, FALSE, FALSE, 0); - - next = gtk_button_new_with_label (_("\\/")); - gtk_widget_set_name (next, "next"); - gtk_widget_ref (next); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "next", next, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (next); - gtk_box_pack_start (GTK_BOX (next_prev_hbox), next, FALSE, FALSE, 0); - STFU GTK_WIDGET_SET_FLAGS (next, GTK_CAN_DEFAULT); - gtk_tooltips_set_tip (tooltips, next, _("Run the next screen saver in the list in full-screen mode (click the mouse to return.)"), NULL); - - prev = gtk_button_new_with_label (_("/\\")); - gtk_widget_set_name (prev, "prev"); - gtk_widget_ref (prev); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "prev", prev, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (prev); - gtk_box_pack_start (GTK_BOX (next_prev_hbox), prev, FALSE, FALSE, 0); - STFU GTK_WIDGET_SET_FLAGS (prev, GTK_CAN_DEFAULT); - gtk_tooltips_set_tip (tooltips, prev, _("Run the previous screen saver in the list in full-screen mode (click the mouse to return.)"), NULL); - - preview_frame = gtk_frame_new (_("Description")); - gtk_widget_set_name (preview_frame, "preview_frame"); - gtk_widget_ref (preview_frame); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "preview_frame", preview_frame, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (preview_frame); - gtk_table_attach (GTK_TABLE (demos_table), preview_frame, 1, 2, 0, 1, - (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL), - (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL), 0, 6); - - preview_aspectframe = gtk_aspect_frame_new (NULL, 0.5, 0.5, 1.33, FALSE); - gtk_widget_set_name (preview_aspectframe, "preview_aspectframe"); - gtk_widget_ref (preview_aspectframe); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "preview_aspectframe", preview_aspectframe, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (preview_aspectframe); - gtk_container_add (GTK_CONTAINER (preview_frame), preview_aspectframe); - gtk_container_set_border_width (GTK_CONTAINER (preview_aspectframe), 8); - - preview = gtk_drawing_area_new (); - gtk_widget_set_name (preview, "preview"); - gtk_widget_ref (preview); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "preview", preview, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (preview); - gtk_container_add (GTK_CONTAINER (preview_aspectframe), preview); - - demo_tab = gtk_label_new (_("Display Modes")); - gtk_widget_set_name (demo_tab, "demo_tab"); - gtk_widget_ref (demo_tab); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "demo_tab", demo_tab, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (demo_tab); - gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook), 0), demo_tab); - - options_table = gtk_table_new (2, 2, TRUE); - gtk_widget_set_name (options_table, "options_table"); - gtk_widget_ref (options_table); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "options_table", options_table, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (options_table); - gtk_container_add (GTK_CONTAINER (notebook), options_table); - - diag_frame = gtk_frame_new (_("Diagnostics")); - gtk_widget_set_name (diag_frame, "diag_frame"); - gtk_widget_ref (diag_frame); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "diag_frame", diag_frame, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (diag_frame); - gtk_table_attach (GTK_TABLE (options_table), diag_frame, 0, 1, 1, 2, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); - gtk_container_set_border_width (GTK_CONTAINER (diag_frame), 10); - - diag_hbox = gtk_hbox_new (FALSE, 8); - gtk_widget_set_name (diag_hbox, "diag_hbox"); - gtk_widget_ref (diag_hbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "diag_hbox", diag_hbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (diag_hbox); - gtk_container_add (GTK_CONTAINER (diag_frame), diag_hbox); - gtk_container_set_border_width (GTK_CONTAINER (diag_hbox), 8); - - diag_logo = create_pixmap (xscreensaver_demo, "screensaver-diagnostic.png"); - gtk_widget_set_name (diag_logo, "diag_logo"); - gtk_widget_ref (diag_logo); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "diag_logo", diag_logo, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (diag_logo); - gtk_box_pack_start (GTK_BOX (diag_hbox), diag_logo, FALSE, FALSE, 0); - gtk_misc_set_alignment (GTK_MISC (diag_logo), 0.5, 0); - - diag_vbox = gtk_vbox_new (FALSE, 0); - gtk_widget_set_name (diag_vbox, "diag_vbox"); - gtk_widget_ref (diag_vbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "diag_vbox", diag_vbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (diag_vbox); - gtk_box_pack_start (GTK_BOX (diag_hbox), diag_vbox, TRUE, TRUE, 0); - - verbose_button_eventbox = gtk_event_box_new (); - gtk_widget_set_name (verbose_button_eventbox, "verbose_button_eventbox"); - gtk_widget_ref (verbose_button_eventbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "verbose_button_eventbox", verbose_button_eventbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (verbose_button_eventbox); - gtk_box_pack_start (GTK_BOX (diag_vbox), verbose_button_eventbox, FALSE, FALSE, 0); - gtk_tooltips_set_tip (tooltips, verbose_button_eventbox, _("Whether the daemon should print lots of debugging information."), NULL); - - verbose_button = gtk_check_button_new_with_label (_("Verbose Diagnostics")); - gtk_widget_set_name (verbose_button, "verbose_button"); - gtk_widget_ref (verbose_button); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "verbose_button", verbose_button, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (verbose_button); - gtk_container_add (GTK_CONTAINER (verbose_button_eventbox), verbose_button); - - capture_button_eventbox = gtk_event_box_new (); - gtk_widget_set_name (capture_button_eventbox, "capture_button_eventbox"); - gtk_widget_ref (capture_button_eventbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "capture_button_eventbox", capture_button_eventbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (capture_button_eventbox); - gtk_box_pack_start (GTK_BOX (diag_vbox), capture_button_eventbox, FALSE, FALSE, 0); - gtk_tooltips_set_tip (tooltips, capture_button_eventbox, _("Whether any error output of the display modes should be redirected to the screen."), NULL); - - capture_button = gtk_check_button_new_with_label (_("Display Subprocess Errors")); - gtk_widget_set_name (capture_button, "capture_button"); - gtk_widget_ref (capture_button); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "capture_button", capture_button, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (capture_button); - gtk_container_add (GTK_CONTAINER (capture_button_eventbox), capture_button); - - splash_button_eventbox = gtk_event_box_new (); - gtk_widget_set_name (splash_button_eventbox, "splash_button_eventbox"); - gtk_widget_ref (splash_button_eventbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "splash_button_eventbox", splash_button_eventbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (splash_button_eventbox); - gtk_box_pack_start (GTK_BOX (diag_vbox), splash_button_eventbox, FALSE, FALSE, 0); - gtk_tooltips_set_tip (tooltips, splash_button_eventbox, _("Whether the splash screen (with the version number and `Help' button) should be momentarily displayed when the daemon first starts up."), NULL); - - splash_button = gtk_check_button_new_with_label (_("Display Splash Screen at Startup")); - gtk_widget_set_name (splash_button, "splash_button"); - gtk_widget_ref (splash_button); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "splash_button", splash_button, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (splash_button); - gtk_container_add (GTK_CONTAINER (splash_button_eventbox), splash_button); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (splash_button), TRUE); - - cmap_frame = gtk_frame_new (_("Colormaps")); - gtk_widget_set_name (cmap_frame, "cmap_frame"); - gtk_widget_ref (cmap_frame); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "cmap_frame", cmap_frame, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (cmap_frame); - gtk_table_attach (GTK_TABLE (options_table), cmap_frame, 1, 2, 1, 2, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (GTK_FILL), 0, 0); - gtk_container_set_border_width (GTK_CONTAINER (cmap_frame), 10); - - cmap_hbox = gtk_hbox_new (FALSE, 8); - gtk_widget_set_name (cmap_hbox, "cmap_hbox"); - gtk_widget_ref (cmap_hbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "cmap_hbox", cmap_hbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (cmap_hbox); - gtk_container_add (GTK_CONTAINER (cmap_frame), cmap_hbox); - gtk_container_set_border_width (GTK_CONTAINER (cmap_hbox), 8); - - cmap_logo = create_pixmap (xscreensaver_demo, "screensaver-colorselector.png"); - gtk_widget_set_name (cmap_logo, "cmap_logo"); - gtk_widget_ref (cmap_logo); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "cmap_logo", cmap_logo, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (cmap_logo); - gtk_box_pack_start (GTK_BOX (cmap_hbox), cmap_logo, FALSE, FALSE, 0); - gtk_misc_set_alignment (GTK_MISC (cmap_logo), 0.5, 0); - - cmap_vbox = gtk_vbox_new (FALSE, 0); - gtk_widget_set_name (cmap_vbox, "cmap_vbox"); - gtk_widget_ref (cmap_vbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "cmap_vbox", cmap_vbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (cmap_vbox); - gtk_box_pack_start (GTK_BOX (cmap_hbox), cmap_vbox, TRUE, TRUE, 0); - - install_button_eventbox = gtk_event_box_new (); - gtk_widget_set_name (install_button_eventbox, "install_button_eventbox"); - gtk_widget_ref (install_button_eventbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "install_button_eventbox", install_button_eventbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (install_button_eventbox); - gtk_box_pack_start (GTK_BOX (cmap_vbox), install_button_eventbox, FALSE, FALSE, 0); - gtk_tooltips_set_tip (tooltips, install_button_eventbox, _("Whether to install a private colormap when running in 8-bit mode on the default Visual."), NULL); - - install_button = gtk_check_button_new_with_label (_("Install Colormap")); - gtk_widget_set_name (install_button, "install_button"); - gtk_widget_ref (install_button); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "install_button", install_button, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (install_button); - gtk_container_add (GTK_CONTAINER (install_button_eventbox), install_button); - - cmap_hr = gtk_hseparator_new (); - gtk_widget_set_name (cmap_hr, "cmap_hr"); - gtk_widget_ref (cmap_hr); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "cmap_hr", cmap_hr, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (cmap_hr); - gtk_box_pack_start (GTK_BOX (cmap_vbox), cmap_hr, FALSE, FALSE, 4); - - fade_button_eventbox = gtk_event_box_new (); - gtk_widget_set_name (fade_button_eventbox, "fade_button_eventbox"); - gtk_widget_ref (fade_button_eventbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "fade_button_eventbox", fade_button_eventbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (fade_button_eventbox); - gtk_box_pack_start (GTK_BOX (cmap_vbox), fade_button_eventbox, FALSE, FALSE, 0); - gtk_tooltips_set_tip (tooltips, fade_button_eventbox, _("Whether the screen should slowly fade to black when the screen saver activates."), NULL); - - fade_button = gtk_check_button_new_with_label (_("Fade To Black When Blanking")); - gtk_widget_set_name (fade_button, "fade_button"); - gtk_widget_ref (fade_button); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "fade_button", fade_button, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (fade_button); - gtk_container_add (GTK_CONTAINER (fade_button_eventbox), fade_button); - - unfade_button_eventbox = gtk_event_box_new (); - gtk_widget_set_name (unfade_button_eventbox, "unfade_button_eventbox"); - gtk_widget_ref (unfade_button_eventbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "unfade_button_eventbox", unfade_button_eventbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (unfade_button_eventbox); - gtk_box_pack_start (GTK_BOX (cmap_vbox), unfade_button_eventbox, FALSE, FALSE, 0); - gtk_tooltips_set_tip (tooltips, unfade_button_eventbox, _("Whether the screen should slowly fade in from black when the screen saver deactivates."), NULL); - - unfade_button = gtk_check_button_new_with_label (_("Fade From Black When Unblanking")); - gtk_widget_set_name (unfade_button, "unfade_button"); - gtk_widget_ref (unfade_button); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "unfade_button", unfade_button, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (unfade_button); - gtk_container_add (GTK_CONTAINER (unfade_button_eventbox), unfade_button); - - fade_hbox = gtk_hbox_new (FALSE, 0); - gtk_widget_set_name (fade_hbox, "fade_hbox"); - gtk_widget_ref (fade_hbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "fade_hbox", fade_hbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (fade_hbox); - gtk_box_pack_start (GTK_BOX (cmap_vbox), fade_hbox, FALSE, FALSE, 0); - - fade_dummy = gtk_label_new (""); - gtk_widget_set_name (fade_dummy, "fade_dummy"); - gtk_widget_ref (fade_dummy); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "fade_dummy", fade_dummy, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (fade_dummy); - gtk_box_pack_start (GTK_BOX (fade_hbox), fade_dummy, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (fade_dummy), GTK_JUSTIFY_LEFT); - gtk_misc_set_padding (GTK_MISC (fade_dummy), 3, 0); - - fade_label = gtk_label_new (_("Fade Duration")); - gtk_widget_set_name (fade_label, "fade_label"); - gtk_widget_ref (fade_label); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "fade_label", fade_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (fade_label); - gtk_box_pack_start (GTK_BOX (fade_hbox), fade_label, FALSE, FALSE, 10); - gtk_label_set_justify (GTK_LABEL (fade_label), GTK_JUSTIFY_LEFT); - gtk_misc_set_alignment (GTK_MISC (fade_label), 0, 0.5); - - fade_spinbutton_adj = gtk_adjustment_new (0, 0, 10, 1, 1, 1); - fade_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (fade_spinbutton_adj), 1, 0); - gtk_widget_set_name (fade_spinbutton, "fade_spinbutton"); - gtk_widget_ref (fade_spinbutton); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "fade_spinbutton", fade_spinbutton, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (fade_spinbutton); - gtk_box_pack_start (GTK_BOX (fade_hbox), fade_spinbutton, FALSE, FALSE, 0); - gtk_tooltips_set_tip (tooltips, fade_spinbutton, _("How long it should take for the screen to fade in and out."), NULL); - gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (fade_spinbutton), TRUE); - gtk_spin_button_set_snap_to_ticks (GTK_SPIN_BUTTON (fade_spinbutton), TRUE); - - fade_sec_label = gtk_label_new (_("seconds")); - gtk_widget_set_name (fade_sec_label, "fade_sec_label"); - gtk_widget_ref (fade_sec_label); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "fade_sec_label", fade_sec_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (fade_sec_label); - gtk_box_pack_start (GTK_BOX (fade_hbox), fade_sec_label, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (fade_sec_label), GTK_JUSTIFY_LEFT); - gtk_misc_set_alignment (GTK_MISC (fade_sec_label), 0, 0.5); - - dpms_frame = gtk_frame_new (_("Display Power Management")); - gtk_widget_set_name (dpms_frame, "dpms_frame"); - gtk_widget_ref (dpms_frame); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_frame", dpms_frame, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (dpms_frame); - gtk_table_attach (GTK_TABLE (options_table), dpms_frame, 1, 2, 0, 1, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (GTK_FILL), 0, 0); - gtk_container_set_border_width (GTK_CONTAINER (dpms_frame), 10); - - dpms_hbox = gtk_hbox_new (FALSE, 8); - gtk_widget_set_name (dpms_hbox, "dpms_hbox"); - gtk_widget_ref (dpms_hbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_hbox", dpms_hbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (dpms_hbox); - gtk_container_add (GTK_CONTAINER (dpms_frame), dpms_hbox); - gtk_container_set_border_width (GTK_CONTAINER (dpms_hbox), 8); - - dpms_logo = create_pixmap (xscreensaver_demo, "screensaver-power.png"); - gtk_widget_set_name (dpms_logo, "dpms_logo"); - gtk_widget_ref (dpms_logo); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_logo", dpms_logo, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (dpms_logo); - gtk_box_pack_start (GTK_BOX (dpms_hbox), dpms_logo, FALSE, FALSE, 0); - gtk_misc_set_alignment (GTK_MISC (dpms_logo), 0.5, 0); - - dpms_vbox = gtk_vbox_new (FALSE, 0); - gtk_widget_set_name (dpms_vbox, "dpms_vbox"); - gtk_widget_ref (dpms_vbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_vbox", dpms_vbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (dpms_vbox); - gtk_box_pack_start (GTK_BOX (dpms_hbox), dpms_vbox, FALSE, FALSE, 0); - - dpms_button_eventbox = gtk_event_box_new (); - gtk_widget_set_name (dpms_button_eventbox, "dpms_button_eventbox"); - gtk_widget_ref (dpms_button_eventbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_button_eventbox", dpms_button_eventbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (dpms_button_eventbox); - gtk_box_pack_start (GTK_BOX (dpms_vbox), dpms_button_eventbox, FALSE, FALSE, 0); - gtk_tooltips_set_tip (tooltips, dpms_button_eventbox, _("Whether the monitor should be powered down after a while."), NULL); - - dpms_button = gtk_check_button_new_with_label (_("Power Management Enabled")); - gtk_widget_set_name (dpms_button, "dpms_button"); - gtk_widget_ref (dpms_button); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_button", dpms_button, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (dpms_button); - gtk_container_add (GTK_CONTAINER (dpms_button_eventbox), dpms_button); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dpms_button), TRUE); - - dpms_table = gtk_table_new (3, 3, FALSE); - gtk_widget_set_name (dpms_table, "dpms_table"); - gtk_widget_ref (dpms_table); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_table", dpms_table, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (dpms_table); - gtk_box_pack_start (GTK_BOX (dpms_vbox), dpms_table, FALSE, FALSE, 0); - gtk_table_set_row_spacings (GTK_TABLE (dpms_table), 2); - - dpms_standby_spinbutton_adj = gtk_adjustment_new (0, 0, 1440, 1, 30, 30); - dpms_standby_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (dpms_standby_spinbutton_adj), 15, 0); - gtk_widget_set_name (dpms_standby_spinbutton, "dpms_standby_spinbutton"); - gtk_widget_ref (dpms_standby_spinbutton); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_standby_spinbutton", dpms_standby_spinbutton, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (dpms_standby_spinbutton); - gtk_table_attach (GTK_TABLE (dpms_table), dpms_standby_spinbutton, 1, 2, 0, 1, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_tooltips_set_tip (tooltips, dpms_standby_spinbutton, _("How long before the monitor goes completely black."), NULL); - gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (dpms_standby_spinbutton), TRUE); - gtk_spin_button_set_snap_to_ticks (GTK_SPIN_BUTTON (dpms_standby_spinbutton), TRUE); - - dpms_standby_mlabel = gtk_label_new (_("minutes")); - gtk_widget_set_name (dpms_standby_mlabel, "dpms_standby_mlabel"); - gtk_widget_ref (dpms_standby_mlabel); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_standby_mlabel", dpms_standby_mlabel, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (dpms_standby_mlabel); - gtk_table_attach (GTK_TABLE (dpms_table), dpms_standby_mlabel, 2, 3, 0, 1, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (dpms_standby_mlabel), GTK_JUSTIFY_LEFT); - gtk_misc_set_alignment (GTK_MISC (dpms_standby_mlabel), 0, 0.5); - - dpms_suspend_mlabel = gtk_label_new (_("minutes")); - gtk_widget_set_name (dpms_suspend_mlabel, "dpms_suspend_mlabel"); - gtk_widget_ref (dpms_suspend_mlabel); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_suspend_mlabel", dpms_suspend_mlabel, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (dpms_suspend_mlabel); - gtk_table_attach (GTK_TABLE (dpms_table), dpms_suspend_mlabel, 2, 3, 1, 2, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (dpms_suspend_mlabel), GTK_JUSTIFY_LEFT); - gtk_misc_set_alignment (GTK_MISC (dpms_suspend_mlabel), 0, 0.5); - - dpms_off_mlabel = gtk_label_new (_("minutes")); - gtk_widget_set_name (dpms_off_mlabel, "dpms_off_mlabel"); - gtk_widget_ref (dpms_off_mlabel); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_off_mlabel", dpms_off_mlabel, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (dpms_off_mlabel); - gtk_table_attach (GTK_TABLE (dpms_table), dpms_off_mlabel, 2, 3, 2, 3, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (dpms_off_mlabel), GTK_JUSTIFY_LEFT); - gtk_misc_set_alignment (GTK_MISC (dpms_off_mlabel), 0, 0.5); - - dpms_off_label = gtk_label_new (_("Off After")); - gtk_widget_set_name (dpms_off_label, "dpms_off_label"); - gtk_widget_ref (dpms_off_label); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_off_label", dpms_off_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (dpms_off_label); - gtk_table_attach (GTK_TABLE (dpms_table), dpms_off_label, 0, 1, 2, 3, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (dpms_off_label), GTK_JUSTIFY_RIGHT); - gtk_misc_set_alignment (GTK_MISC (dpms_off_label), 1, 0.5); - gtk_misc_set_padding (GTK_MISC (dpms_off_label), 10, 0); - - dpms_suspend_label = gtk_label_new (_("Suspend After")); - gtk_widget_set_name (dpms_suspend_label, "dpms_suspend_label"); - gtk_widget_ref (dpms_suspend_label); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_suspend_label", dpms_suspend_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (dpms_suspend_label); - gtk_table_attach (GTK_TABLE (dpms_table), dpms_suspend_label, 0, 1, 1, 2, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (dpms_suspend_label), GTK_JUSTIFY_RIGHT); - gtk_misc_set_alignment (GTK_MISC (dpms_suspend_label), 1, 0.5); - gtk_misc_set_padding (GTK_MISC (dpms_suspend_label), 10, 0); - - dpms_standby_label = gtk_label_new (_("Standby After")); - gtk_widget_set_name (dpms_standby_label, "dpms_standby_label"); - gtk_widget_ref (dpms_standby_label); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_standby_label", dpms_standby_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (dpms_standby_label); - gtk_table_attach (GTK_TABLE (dpms_table), dpms_standby_label, 0, 1, 0, 1, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (dpms_standby_label), GTK_JUSTIFY_RIGHT); - gtk_misc_set_alignment (GTK_MISC (dpms_standby_label), 1, 0.5); - gtk_misc_set_padding (GTK_MISC (dpms_standby_label), 10, 0); - - dpms_suspend_spinbutton_adj = gtk_adjustment_new (0, 0, 1440, 1, 30, 30); - dpms_suspend_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (dpms_suspend_spinbutton_adj), 15, 0); - gtk_widget_set_name (dpms_suspend_spinbutton, "dpms_suspend_spinbutton"); - gtk_widget_ref (dpms_suspend_spinbutton); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_suspend_spinbutton", dpms_suspend_spinbutton, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (dpms_suspend_spinbutton); - gtk_table_attach (GTK_TABLE (dpms_table), dpms_suspend_spinbutton, 1, 2, 1, 2, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_tooltips_set_tip (tooltips, dpms_suspend_spinbutton, _("How long until the monitor goes into power-saving mode."), NULL); - gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (dpms_suspend_spinbutton), TRUE); - gtk_spin_button_set_snap_to_ticks (GTK_SPIN_BUTTON (dpms_suspend_spinbutton), TRUE); - - dpms_off_spinbutton_adj = gtk_adjustment_new (0, 0, 1440, 1, 30, 30); - dpms_off_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (dpms_off_spinbutton_adj), 15, 0); - gtk_widget_set_name (dpms_off_spinbutton, "dpms_off_spinbutton"); - gtk_widget_ref (dpms_off_spinbutton); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_off_spinbutton", dpms_off_spinbutton, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (dpms_off_spinbutton); - gtk_table_attach (GTK_TABLE (dpms_table), dpms_off_spinbutton, 1, 2, 2, 3, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_tooltips_set_tip (tooltips, dpms_off_spinbutton, _("How long until the monitor powers down."), NULL); - gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (dpms_off_spinbutton), TRUE); - gtk_spin_button_set_snap_to_ticks (GTK_SPIN_BUTTON (dpms_off_spinbutton), TRUE); - - grab_frame = gtk_frame_new (_("Image Manipulation")); - gtk_widget_set_name (grab_frame, "grab_frame"); - gtk_widget_ref (grab_frame); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "grab_frame", grab_frame, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (grab_frame); - gtk_table_attach (GTK_TABLE (options_table), grab_frame, 0, 1, 0, 1, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (GTK_FILL), 0, 0); - gtk_container_set_border_width (GTK_CONTAINER (grab_frame), 10); - - grab_hbox = gtk_hbox_new (FALSE, 8); - gtk_widget_set_name (grab_hbox, "grab_hbox"); - gtk_widget_ref (grab_hbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "grab_hbox", grab_hbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (grab_hbox); - gtk_container_add (GTK_CONTAINER (grab_frame), grab_hbox); - gtk_container_set_border_width (GTK_CONTAINER (grab_hbox), 8); - - img_logo = create_pixmap (xscreensaver_demo, "screensaver-snap.png"); - gtk_widget_set_name (img_logo, "img_logo"); - gtk_widget_ref (img_logo); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "img_logo", img_logo, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (img_logo); - gtk_box_pack_start (GTK_BOX (grab_hbox), img_logo, FALSE, FALSE, 0); - gtk_misc_set_alignment (GTK_MISC (img_logo), 0.5, 0); - - grab_vbox = gtk_vbox_new (FALSE, 0); - gtk_widget_set_name (grab_vbox, "grab_vbox"); - gtk_widget_ref (grab_vbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "grab_vbox", grab_vbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (grab_vbox); - gtk_box_pack_start (GTK_BOX (grab_hbox), grab_vbox, TRUE, TRUE, 0); - - grab_desk_eventbox = gtk_event_box_new (); - gtk_widget_set_name (grab_desk_eventbox, "grab_desk_eventbox"); - gtk_widget_ref (grab_desk_eventbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "grab_desk_eventbox", grab_desk_eventbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (grab_desk_eventbox); - gtk_box_pack_start (GTK_BOX (grab_vbox), grab_desk_eventbox, FALSE, FALSE, 0); - gtk_tooltips_set_tip (tooltips, grab_desk_eventbox, _("Whether the image-manipulating modes should be allowed to operate on an image of your desktop."), NULL); - - grab_desk_button = gtk_check_button_new_with_label (_("Grab Desktop Images")); - gtk_widget_set_name (grab_desk_button, "grab_desk_button"); - gtk_widget_ref (grab_desk_button); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "grab_desk_button", grab_desk_button, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (grab_desk_button); - gtk_container_add (GTK_CONTAINER (grab_desk_eventbox), grab_desk_button); - - grab_video_eventbox = gtk_event_box_new (); - gtk_widget_set_name (grab_video_eventbox, "grab_video_eventbox"); - gtk_widget_ref (grab_video_eventbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "grab_video_eventbox", grab_video_eventbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (grab_video_eventbox); - gtk_box_pack_start (GTK_BOX (grab_vbox), grab_video_eventbox, FALSE, FALSE, 0); - gtk_tooltips_set_tip (tooltips, grab_video_eventbox, _("Whether the image-manipulating modes should operate on images captured from the system's video input (if there is one)."), NULL); - - grab_video_button = gtk_check_button_new_with_label (_("Grab Video Frames")); - gtk_widget_set_name (grab_video_button, "grab_video_button"); - gtk_widget_ref (grab_video_button); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "grab_video_button", grab_video_button, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (grab_video_button); - gtk_container_add (GTK_CONTAINER (grab_video_eventbox), grab_video_button); - - grab_image_eventbox = gtk_event_box_new (); - gtk_widget_set_name (grab_image_eventbox, "grab_image_eventbox"); - gtk_widget_ref (grab_image_eventbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "grab_image_eventbox", grab_image_eventbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (grab_image_eventbox); - gtk_box_pack_start (GTK_BOX (grab_vbox), grab_image_eventbox, FALSE, FALSE, 0); - gtk_tooltips_set_tip (tooltips, grab_image_eventbox, _("Whether the image-manipulating modes should load image files."), NULL); - - grab_image_button = gtk_check_button_new_with_label (_("Choose Random Image:")); - gtk_widget_set_name (grab_image_button, "grab_image_button"); - gtk_widget_ref (grab_image_button); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "grab_image_button", grab_image_button, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (grab_image_button); - gtk_container_add (GTK_CONTAINER (grab_image_eventbox), grab_image_button); - - image_hbox = gtk_hbox_new (FALSE, 0); - gtk_widget_set_name (image_hbox, "image_hbox"); - gtk_widget_ref (image_hbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "image_hbox", image_hbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (image_hbox); - gtk_box_pack_start (GTK_BOX (grab_vbox), image_hbox, FALSE, FALSE, 0); - - grab_dummy = gtk_label_new (""); - gtk_widget_set_name (grab_dummy, "grab_dummy"); - gtk_widget_ref (grab_dummy); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "grab_dummy", grab_dummy, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (grab_dummy); - gtk_box_pack_start (GTK_BOX (image_hbox), grab_dummy, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (grab_dummy), GTK_JUSTIFY_LEFT); - gtk_misc_set_padding (GTK_MISC (grab_dummy), 8, 0); - - image_text = gtk_entry_new (); - gtk_widget_set_name (image_text, "image_text"); - gtk_widget_ref (image_text); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "image_text", image_text, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (image_text); - gtk_box_pack_start (GTK_BOX (image_hbox), image_text, TRUE, TRUE, 0); - gtk_tooltips_set_tip (tooltips, image_text, _("The local directory, RSS feed or Atom feed from which images will be randomly chosen."), NULL); - - image_browse_button = gtk_button_new_with_label (_("Browse")); - gtk_widget_set_name (image_browse_button, "image_browse_button"); - gtk_widget_ref (image_browse_button); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "image_browse_button", image_browse_button, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (image_browse_button); - gtk_box_pack_start (GTK_BOX (image_hbox), image_browse_button, FALSE, FALSE, 4); - - options_tab = gtk_label_new (_("Advanced")); - gtk_widget_set_name (options_tab, "options_tab"); - gtk_widget_ref (options_tab); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "options_tab", options_tab, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (options_tab); - gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook), 1), options_tab); - - gtk_signal_connect (GTK_OBJECT (activate_menu), "activate", - GTK_SIGNAL_FUNC (activate_menu_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (lock_menu), "activate", - GTK_SIGNAL_FUNC (lock_menu_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (kill_menu), "activate", - GTK_SIGNAL_FUNC (kill_menu_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (restart), "activate", - GTK_SIGNAL_FUNC (restart_menu_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (exit_menu), "activate", - GTK_SIGNAL_FUNC (exit_menu_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (about_menu), "activate", - GTK_SIGNAL_FUNC (about_menu_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (doc_menu), "activate", - GTK_SIGNAL_FUNC (doc_menu_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (notebook), "switch_page", - GTK_SIGNAL_FUNC (switch_page_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (lock_button), "toggled", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (timeout_spinbutton), "activate", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (timeout_spinbutton), "focus_out_event", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (timeout_spinbutton), "changed", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (lock_spinbutton), "activate", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (lock_spinbutton), "focus_out_event", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (lock_spinbutton), "changed", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (cycle_spinbutton), "activate", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (cycle_spinbutton), "focus_out_event", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (cycle_spinbutton), "changed", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (demo), "clicked", - GTK_SIGNAL_FUNC (run_this_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (settings), "clicked", - GTK_SIGNAL_FUNC (settings_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (next), "clicked", - GTK_SIGNAL_FUNC (run_next_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (prev), "clicked", - GTK_SIGNAL_FUNC (run_prev_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (verbose_button), "toggled", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (capture_button), "toggled", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (splash_button), "toggled", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (install_button), "toggled", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (fade_button), "toggled", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (unfade_button), "toggled", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (fade_spinbutton), "activate", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (fade_spinbutton), "focus_out_event", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (fade_spinbutton), "changed", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (dpms_button), "toggled", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (dpms_standby_spinbutton), "activate", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (dpms_standby_spinbutton), "focus_out_event", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (dpms_standby_spinbutton), "changed", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (dpms_suspend_spinbutton), "activate", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (dpms_suspend_spinbutton), "focus_out_event", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (dpms_suspend_spinbutton), "changed", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (dpms_off_spinbutton), "activate", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (dpms_off_spinbutton), "focus_out_event", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (dpms_off_spinbutton), "changed", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (grab_desk_button), "toggled", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (grab_video_button), "toggled", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (grab_image_button), "toggled", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (image_text), "activate", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (image_text), "focus_out_event", - GTK_SIGNAL_FUNC (pref_changed_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (image_browse_button), "clicked", - GTK_SIGNAL_FUNC (browse_image_dir_cb), - NULL); - - gtk_widget_grab_default (next); - gtk_object_set_data (GTK_OBJECT (xscreensaver_demo), "tooltips", tooltips); - - gtk_window_add_accel_group (GTK_WINDOW (xscreensaver_demo), accel_group); - - return xscreensaver_demo; -} - -GtkWidget* -create_xscreensaver_settings_dialog (void) -{ - GtkWidget *xscreensaver_settings_dialog; - GtkWidget *dialog_vbox; - GtkWidget *dialog_top_table; - GtkWidget *opt_frame; - GtkWidget *opt_notebook; - GtkWidget *settings_vbox; - GtkWidget *std_label; - GtkWidget *opt_table; - GtkWidget *cmd_logo; - GtkWidget *visual_hbox; - GtkWidget *visual; - GtkWidget *visual_combo; - GList *visual_combo_items = NULL; - GtkWidget *combo_entry1; - GtkWidget *cmd_label; - GtkWidget *cmd_text; - GtkWidget *adv_label; - GtkWidget *doc_frame; - GtkWidget *doc_vbox; - GtkWidget *doc; - GtkWidget *doc_hbuttonbox; - GtkWidget *manual; - GtkWidget *dialog_action_area; - GtkWidget *actionarea_hbox; - GtkWidget *dialog_hbuttonbox; - GtkWidget *adv_button; - GtkWidget *std_button; - GtkWidget *reset_button; - GtkWidget *ok_cancel_hbuttonbox; - GtkWidget *ok_button; - GtkWidget *cancel_button; - GtkTooltips *tooltips; - - tooltips = gtk_tooltips_new (); - - xscreensaver_settings_dialog = gtk_dialog_new (); - gtk_widget_set_name (xscreensaver_settings_dialog, "xscreensaver_settings_dialog"); - gtk_object_set_data (GTK_OBJECT (xscreensaver_settings_dialog), "xscreensaver_settings_dialog", xscreensaver_settings_dialog); - gtk_window_set_title (GTK_WINDOW (xscreensaver_settings_dialog), _("XScreenSaver: Mode-Specific Settings")); - GTK_WINDOW (xscreensaver_settings_dialog)->type = GTK_WINDOW_DIALOG; - gtk_window_set_modal (GTK_WINDOW (xscreensaver_settings_dialog), TRUE); - gtk_window_set_policy (GTK_WINDOW (xscreensaver_settings_dialog), TRUE, TRUE, FALSE); - gtk_window_set_wmclass (GTK_WINDOW (xscreensaver_settings_dialog), "settings", "XScreenSaver"); - - dialog_vbox = GTK_DIALOG (xscreensaver_settings_dialog)->vbox; - gtk_widget_set_name (dialog_vbox, "dialog_vbox"); - gtk_object_set_data (GTK_OBJECT (xscreensaver_settings_dialog), "dialog_vbox", dialog_vbox); - gtk_widget_show (dialog_vbox); - - dialog_top_table = gtk_table_new (1, 2, FALSE); - gtk_widget_set_name (dialog_top_table, "dialog_top_table"); - gtk_widget_ref (dialog_top_table); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "dialog_top_table", dialog_top_table, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (dialog_top_table); - gtk_box_pack_start (GTK_BOX (dialog_vbox), dialog_top_table, TRUE, TRUE, 0); - gtk_container_set_border_width (GTK_CONTAINER (dialog_top_table), 8); - gtk_table_set_row_spacings (GTK_TABLE (dialog_top_table), 8); - gtk_table_set_col_spacings (GTK_TABLE (dialog_top_table), 8); - - opt_frame = gtk_frame_new (_("Settings")); - gtk_widget_set_name (opt_frame, "opt_frame"); - gtk_widget_ref (opt_frame); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "opt_frame", opt_frame, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (opt_frame); - gtk_table_attach (GTK_TABLE (dialog_top_table), opt_frame, 0, 1, 0, 1, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 4, 8); - - opt_notebook = gtk_notebook_new (); - gtk_widget_set_name (opt_notebook, "opt_notebook"); - gtk_widget_ref (opt_notebook); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "opt_notebook", opt_notebook, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (opt_notebook); - gtk_container_add (GTK_CONTAINER (opt_frame), opt_notebook); - gtk_container_set_border_width (GTK_CONTAINER (opt_notebook), 12); - gtk_notebook_set_show_border (GTK_NOTEBOOK (opt_notebook), FALSE); - gtk_notebook_set_tab_pos (GTK_NOTEBOOK (opt_notebook), GTK_POS_BOTTOM); - - settings_vbox = gtk_vbox_new (FALSE, 0); - gtk_widget_set_name (settings_vbox, "settings_vbox"); - gtk_widget_ref (settings_vbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "settings_vbox", settings_vbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (settings_vbox); - gtk_container_add (GTK_CONTAINER (opt_notebook), settings_vbox); - - std_label = gtk_label_new (_("Standard")); - gtk_widget_set_name (std_label, "std_label"); - gtk_widget_ref (std_label); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "std_label", std_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (std_label); - gtk_notebook_set_tab_label (GTK_NOTEBOOK (opt_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (opt_notebook), 0), std_label); - - opt_table = gtk_table_new (4, 2, FALSE); - gtk_widget_set_name (opt_table, "opt_table"); - gtk_widget_ref (opt_table); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "opt_table", opt_table, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (opt_table); - gtk_container_add (GTK_CONTAINER (opt_notebook), opt_table); - - cmd_logo = create_pixmap (xscreensaver_settings_dialog, "screensaver-cmndln.png"); - gtk_widget_set_name (cmd_logo, "cmd_logo"); - gtk_widget_ref (cmd_logo); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "cmd_logo", cmd_logo, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (cmd_logo); - gtk_table_attach (GTK_TABLE (opt_table), cmd_logo, 0, 1, 0, 1, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (GTK_FILL), 0, 0); - gtk_misc_set_padding (GTK_MISC (cmd_logo), 4, 8); - - visual_hbox = gtk_hbox_new (FALSE, 0); - gtk_widget_set_name (visual_hbox, "visual_hbox"); - gtk_widget_ref (visual_hbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "visual_hbox", visual_hbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (visual_hbox); - gtk_table_attach (GTK_TABLE (opt_table), visual_hbox, 1, 2, 3, 4, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (GTK_FILL), 0, 0); - - visual = gtk_label_new (_("Visual:")); - gtk_widget_set_name (visual, "visual"); - gtk_widget_ref (visual); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "visual", visual, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (visual); - gtk_box_pack_start (GTK_BOX (visual_hbox), visual, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (visual), GTK_JUSTIFY_RIGHT); - gtk_misc_set_alignment (GTK_MISC (visual), 1, 0.5); - gtk_misc_set_padding (GTK_MISC (visual), 4, 0); - - visual_combo = gtk_combo_new (); - gtk_widget_set_name (visual_combo, "visual_combo"); - gtk_widget_ref (visual_combo); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "visual_combo", visual_combo, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (visual_combo); - gtk_box_pack_start (GTK_BOX (visual_hbox), visual_combo, FALSE, FALSE, 0); - visual_combo_items = g_list_append (visual_combo_items, (gpointer) _("Any")); - visual_combo_items = g_list_append (visual_combo_items, (gpointer) _("Best")); - visual_combo_items = g_list_append (visual_combo_items, (gpointer) _("Default")); - visual_combo_items = g_list_append (visual_combo_items, (gpointer) _("Default-N")); - visual_combo_items = g_list_append (visual_combo_items, (gpointer) _("GL")); - visual_combo_items = g_list_append (visual_combo_items, (gpointer) _("TrueColor")); - visual_combo_items = g_list_append (visual_combo_items, (gpointer) _("PseudoColor")); - visual_combo_items = g_list_append (visual_combo_items, (gpointer) _("StaticGray")); - visual_combo_items = g_list_append (visual_combo_items, (gpointer) _("GrayScale")); - visual_combo_items = g_list_append (visual_combo_items, (gpointer) _("DirectColor")); - visual_combo_items = g_list_append (visual_combo_items, (gpointer) _("Color")); - visual_combo_items = g_list_append (visual_combo_items, (gpointer) _("Gray")); - visual_combo_items = g_list_append (visual_combo_items, (gpointer) _("Mono")); - gtk_combo_set_popdown_strings (GTK_COMBO (visual_combo), visual_combo_items); - g_list_free (visual_combo_items); - - combo_entry1 = GTK_COMBO (visual_combo)->entry; - gtk_widget_set_name (combo_entry1, "combo_entry1"); - gtk_widget_ref (combo_entry1); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "combo_entry1", combo_entry1, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (combo_entry1); - gtk_tooltips_set_tip (tooltips, combo_entry1, _("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."), NULL); - gtk_entry_set_text (GTK_ENTRY (combo_entry1), _("Any")); - - cmd_label = gtk_label_new (_("Command Line:")); - gtk_widget_set_name (cmd_label, "cmd_label"); - gtk_widget_ref (cmd_label); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "cmd_label", cmd_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (cmd_label); - gtk_table_attach (GTK_TABLE (opt_table), cmd_label, 1, 2, 1, 2, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (cmd_label), GTK_JUSTIFY_LEFT); - gtk_misc_set_alignment (GTK_MISC (cmd_label), 0, 1); - gtk_misc_set_padding (GTK_MISC (cmd_label), 0, 2); - - cmd_text = gtk_entry_new (); - gtk_widget_set_name (cmd_text, "cmd_text"); - gtk_widget_ref (cmd_text); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "cmd_text", cmd_text, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (cmd_text); - gtk_table_attach (GTK_TABLE (opt_table), cmd_text, 1, 2, 2, 3, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_widget_set_usize (cmd_text, 80, -2); - - adv_label = gtk_label_new (_("Advanced")); - gtk_widget_set_name (adv_label, "adv_label"); - gtk_widget_ref (adv_label); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "adv_label", adv_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (adv_label); - gtk_notebook_set_tab_label (GTK_NOTEBOOK (opt_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (opt_notebook), 1), adv_label); - - doc_frame = gtk_frame_new (_("Description")); - gtk_widget_set_name (doc_frame, "doc_frame"); - gtk_widget_ref (doc_frame); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "doc_frame", doc_frame, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (doc_frame); - gtk_table_attach (GTK_TABLE (dialog_top_table), doc_frame, 1, 2, 0, 1, - (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL), - (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL), 4, 8); - - doc_vbox = gtk_vbox_new (FALSE, 0); - gtk_widget_set_name (doc_vbox, "doc_vbox"); - gtk_widget_ref (doc_vbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "doc_vbox", doc_vbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (doc_vbox); - gtk_container_add (GTK_CONTAINER (doc_frame), doc_vbox); - - doc = gtk_label_new (""); - gtk_widget_set_name (doc, "doc"); - gtk_widget_ref (doc); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "doc", doc, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (doc); - gtk_box_pack_start (GTK_BOX (doc_vbox), doc, TRUE, TRUE, 0); - gtk_label_set_justify (GTK_LABEL (doc), GTK_JUSTIFY_LEFT); - gtk_label_set_line_wrap (GTK_LABEL (doc), TRUE); - gtk_misc_set_alignment (GTK_MISC (doc), 0, 0); - gtk_misc_set_padding (GTK_MISC (doc), 10, 10); - - doc_hbuttonbox = gtk_hbutton_box_new (); - gtk_widget_set_name (doc_hbuttonbox, "doc_hbuttonbox"); - gtk_widget_ref (doc_hbuttonbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "doc_hbuttonbox", doc_hbuttonbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (doc_hbuttonbox); - gtk_box_pack_end (GTK_BOX (doc_vbox), doc_hbuttonbox, FALSE, FALSE, 0); - gtk_container_set_border_width (GTK_CONTAINER (doc_hbuttonbox), 4); - gtk_button_box_set_layout (GTK_BUTTON_BOX (doc_hbuttonbox), GTK_BUTTONBOX_END); - - manual = gtk_button_new_with_label (_("Documentation...")); - gtk_widget_set_name (manual, "manual"); - gtk_widget_ref (manual); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "manual", manual, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (manual); - gtk_container_add (GTK_CONTAINER (doc_hbuttonbox), manual); - STFU GTK_WIDGET_SET_FLAGS (manual, GTK_CAN_DEFAULT); - gtk_tooltips_set_tip (tooltips, manual, _("Click here to read the manual for this display mode, if it has one."), NULL); - - dialog_action_area = GTK_DIALOG (xscreensaver_settings_dialog)->action_area; - gtk_widget_set_name (dialog_action_area, "dialog_action_area"); - gtk_object_set_data (GTK_OBJECT (xscreensaver_settings_dialog), "dialog_action_area", dialog_action_area); - gtk_widget_show (dialog_action_area); - gtk_container_set_border_width (GTK_CONTAINER (dialog_action_area), 10); - - actionarea_hbox = gtk_hbox_new (FALSE, 0); - gtk_widget_set_name (actionarea_hbox, "actionarea_hbox"); - gtk_widget_ref (actionarea_hbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "actionarea_hbox", actionarea_hbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (actionarea_hbox); - gtk_box_pack_start (GTK_BOX (dialog_action_area), actionarea_hbox, TRUE, TRUE, 0); - - dialog_hbuttonbox = gtk_hbutton_box_new (); - gtk_widget_set_name (dialog_hbuttonbox, "dialog_hbuttonbox"); - gtk_widget_ref (dialog_hbuttonbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "dialog_hbuttonbox", dialog_hbuttonbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (dialog_hbuttonbox); - gtk_box_pack_start (GTK_BOX (actionarea_hbox), dialog_hbuttonbox, TRUE, TRUE, 0); - gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_hbuttonbox), GTK_BUTTONBOX_SPREAD); - - adv_button = gtk_button_new_with_label (_("Advanced >>")); - gtk_widget_set_name (adv_button, "adv_button"); - gtk_widget_ref (adv_button); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "adv_button", adv_button, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (adv_button); - gtk_container_add (GTK_CONTAINER (dialog_hbuttonbox), adv_button); - STFU GTK_WIDGET_SET_FLAGS (adv_button, GTK_CAN_DEFAULT); - gtk_tooltips_set_tip (tooltips, adv_button, _("Edit the command line directly."), NULL); - - std_button = gtk_button_new_with_label (_("Standard <<")); - gtk_widget_set_name (std_button, "std_button"); - gtk_widget_ref (std_button); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "std_button", std_button, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (std_button); - gtk_container_add (GTK_CONTAINER (dialog_hbuttonbox), std_button); - STFU GTK_WIDGET_SET_FLAGS (std_button, GTK_CAN_DEFAULT); - gtk_tooltips_set_tip (tooltips, std_button, _("Back to the graphical configuration options."), NULL); - - reset_button = gtk_button_new_with_label (_("Reset to Defaults")); - gtk_widget_set_name (reset_button, "reset_button"); - gtk_widget_ref (reset_button); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "reset_button", reset_button, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (reset_button); - gtk_container_add (GTK_CONTAINER (dialog_hbuttonbox), reset_button); - STFU GTK_WIDGET_SET_FLAGS (reset_button, GTK_CAN_DEFAULT); - gtk_tooltips_set_tip (tooltips, reset_button, _("Reset this screen saver to the default settings."), NULL); - - ok_cancel_hbuttonbox = gtk_hbutton_box_new (); - gtk_widget_set_name (ok_cancel_hbuttonbox, "ok_cancel_hbuttonbox"); - gtk_widget_ref (ok_cancel_hbuttonbox); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "ok_cancel_hbuttonbox", ok_cancel_hbuttonbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (ok_cancel_hbuttonbox); - gtk_box_pack_start (GTK_BOX (actionarea_hbox), ok_cancel_hbuttonbox, TRUE, TRUE, 0); - gtk_button_box_set_layout (GTK_BUTTON_BOX (ok_cancel_hbuttonbox), GTK_BUTTONBOX_END); - - ok_button = gtk_button_new_with_label (_("OK")); - gtk_widget_set_name (ok_button, "ok_button"); - gtk_widget_ref (ok_button); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "ok_button", ok_button, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (ok_button); - gtk_container_add (GTK_CONTAINER (ok_cancel_hbuttonbox), ok_button); - STFU GTK_WIDGET_SET_FLAGS (ok_button, GTK_CAN_DEFAULT); - - cancel_button = gtk_button_new_with_label (_("Cancel")); - gtk_widget_set_name (cancel_button, "cancel_button"); - gtk_widget_ref (cancel_button); - gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "cancel_button", cancel_button, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (cancel_button); - gtk_container_add (GTK_CONTAINER (ok_cancel_hbuttonbox), cancel_button); - STFU GTK_WIDGET_SET_FLAGS (cancel_button, GTK_CAN_DEFAULT); - - gtk_signal_connect (GTK_OBJECT (opt_notebook), "switch_page", - GTK_SIGNAL_FUNC (settings_switch_page_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (manual), "clicked", - GTK_SIGNAL_FUNC (manual_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (adv_button), "clicked", - GTK_SIGNAL_FUNC (settings_adv_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (std_button), "clicked", - GTK_SIGNAL_FUNC (settings_std_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (reset_button), "clicked", - GTK_SIGNAL_FUNC (settings_reset_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (ok_button), "clicked", - GTK_SIGNAL_FUNC (settings_ok_cb), - NULL); - gtk_signal_connect (GTK_OBJECT (cancel_button), "clicked", - GTK_SIGNAL_FUNC (settings_cancel_cb), - NULL); - - gtk_object_set_data (GTK_OBJECT (xscreensaver_settings_dialog), "tooltips", tooltips); - - return xscreensaver_settings_dialog; -} - diff --git a/driver/demo-Gtk-widgets.h b/driver/demo-Gtk-widgets.h deleted file mode 100644 index 298c5171..00000000 --- a/driver/demo-Gtk-widgets.h +++ /dev/null @@ -1,6 +0,0 @@ -/* - * DO NOT EDIT THIS FILE - it is generated by Glade. - */ - -GtkWidget* create_xscreensaver_demo (void); -GtkWidget* create_xscreensaver_settings_dialog (void); diff --git a/driver/demo-Gtk.c b/driver/demo-Gtk.c index c8a19cd3..d276ecc5 100644 --- a/driver/demo-Gtk.c +++ b/driver/demo-Gtk.c @@ -123,11 +123,6 @@ #include "logo-50.xpm" #include "logo-180.xpm" -#undef dgettext /* else these are defined twice... */ -#undef dcgettext - -#include "demo-Gtk-widgets.h" -#include "demo-Gtk-support.h" #include "demo-Gtk-conf.h" #include @@ -4721,7 +4716,7 @@ delayed_scroll_kludge (gpointer data) #ifdef HAVE_GTK2 -GtkWidget * +static GtkWidget * create_xscreensaver_demo (void) { GtkWidget *nb; @@ -4732,7 +4727,7 @@ create_xscreensaver_demo (void) return name_to_widget (global_state_kludge, "xscreensaver_demo"); } -GtkWidget * +static GtkWidget * create_xscreensaver_settings_dialog (void) { GtkWidget *w, *box; diff --git a/driver/splash.c b/driver/splash.c index 6f38bfdf..55d386a3 100644 --- a/driver/splash.c +++ b/driver/splash.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1991-2013 Jamie Zawinski +/* xscreensaver, Copyright (c) 1991-2014 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 @@ -778,9 +778,10 @@ void handle_splash_event (saver_info *si, XEvent *event) { splash_dialog_data *sp = si->sp_data; - if (!sp) return; - saver_screen_info *ssi = sp->prompt_screen; + saver_screen_info *ssi; int which = 0; + if (!sp) return; + ssi = sp->prompt_screen; switch (event->xany.type) { diff --git a/driver/subprocs.c b/driver/subprocs.c index 65b0079a..19697241 100644 --- a/driver/subprocs.c +++ b/driver/subprocs.c @@ -1101,8 +1101,9 @@ hack_environment (saver_info *si) if (def_path && *def_path) { const char *opath = getenv("PATH"); + char *npath; if (! opath) opath = "/bin:/usr/bin"; /* WTF */ - char *npath = (char *) malloc(strlen(def_path) + strlen(opath) + 20); + npath = (char *) malloc(strlen(def_path) + strlen(opath) + 20); strcpy (npath, "PATH="); strcat (npath, def_path); strcat (npath, ":"); diff --git a/driver/test-passwd.c b/driver/test-passwd.c index 66cd3d4e..b9b6c328 100644 --- a/driver/test-passwd.c +++ b/driver/test-passwd.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1998-2013 Jamie Zawinski +/* xscreensaver, Copyright (c) 1998-2014 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 @@ -48,6 +48,7 @@ void initialize_screensaver_window (saver_info *si) {} void raise_window (saver_info *si, Bool i, Bool b, Bool d) {} Bool blank_screen (saver_info *si) {return False;} void unblank_screen (saver_info *si) {} +void reset_watchdog_timer(saver_info *si, Bool on_p) {} Bool select_visual (saver_screen_info *ssi, const char *v) { return False; } Bool window_exists_p (Display *dpy, Window window) {return True;} void start_notice_events_timer (saver_info *si, Window w, Bool b) {} @@ -80,7 +81,6 @@ idle_timer (XtPointer closure, XtIntervalId *id) XPutBackEvent (si->dpy, &fake_event); } - static int text_auth_conv ( int num_msg, diff --git a/driver/xscreensaver-getimage.c b/driver/xscreensaver-getimage.c index 598a9135..f22504e9 100644 --- a/driver/xscreensaver-getimage.c +++ b/driver/xscreensaver-getimage.c @@ -381,7 +381,9 @@ read_file_gdk (Screen *screen, Window window, Drawable drawable, gdk_pixbuf_xlib_init_with_depth (dpy, screen_number (screen), win_depth); # ifdef HAVE_GTK2 +# if !GLIB_CHECK_VERSION(2, 36 ,0) g_type_init(); +# endif # else /* !HAVE_GTK2 */ xlib_rgb_init (dpy, screen); # endif /* !HAVE_GTK2 */ diff --git a/hacks/Makefile.in b/hacks/Makefile.in index 5956de1f..f0c272f5 100644 --- a/hacks/Makefile.in +++ b/hacks/Makefile.in @@ -1,4 +1,4 @@ -# hacks/Makefile.in --- xscreensaver, Copyright (c) 1997-2011 Jamie Zawinski. +# hacks/Makefile.in --- xscreensaver, Copyright (c) 1997-2014 Jamie Zawinski. # the `../configure' script generates `hacks/Makefile' from this file. @SET_MAKE@ @@ -31,6 +31,9 @@ DEFS = -DSTANDALONE @DEFS@ LIBS = @LIBS@ PERL = @PERL@ +THREAD_LIBS = @PTHREAD_LIBS@ +THREAD_CFLAGS = @PTHREAD_CFLAGS@ + DEPEND = @DEPEND@ DEPEND_FLAGS = @DEPEND_FLAGS@ DEPEND_DEFINES = @DEPEND_DEFINES@ @@ -546,8 +549,9 @@ COL = $(COLOR_OBJS) SHM = $(XSHM_OBJS) DBE = $(XDBE_OBJS) BARS = $(UTILS_BIN)/colorbars.o $(LOGO) -THRD = $(THREAD_OBJS) -ATV = analogtv.o $(SHM) $(THRD) +THRO = $(THREAD_OBJS) +THRL = $(THREAD_CFLAGS) $(THREAD_LIBS) +ATV = analogtv.o $(SHM) $(THRO) APPLE2 = apple2.o $(ATV) TEXT = $(UTILS_BIN)/textclient.o @@ -660,8 +664,8 @@ cynosure: cynosure.o $(HACK_OBJS) $(COL) epicycle: epicycle.o $(HACK_OBJS) $(COL) $(ERASE) $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(COL) $(ERASE) $(HACK_LIBS) -interference: interference.o $(HACK_OBJS) $(COL) $(SHM) $(DBE) $(THRD) - $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(COL) $(SHM) $(DBE) $(THRD) $(HACK_LIBS) +interference: interference.o $(HACK_OBJS) $(COL) $(SHM) $(DBE) $(THRO) + $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(COL) $(SHM) $(DBE) $(THRO) $(HACK_LIBS) $(THRL) truchet: truchet.o $(HACK_OBJS) $(COL) $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(COL) $(HACK_LIBS) @@ -670,10 +674,10 @@ bsod: bsod.o $(HACK_OBJS) $(GRAB) $(APPLE2) $(XPM) $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(GRAB) $(APPLE2) $(XPM) $(XPM_LIBS) apple2: apple2.o apple2-main.o $(HACK_OBJS) $(ATV) $(GRAB) $(TEXT) - $(CC_HACK) -o $@ $@.o apple2-main.o $(HACK_OBJS) $(ATV) $(GRAB) $(TEXT) $(XPM_LIBS) $(TEXT_LIBS) + $(CC_HACK) -o $@ $@.o apple2-main.o $(HACK_OBJS) $(ATV) $(GRAB) $(TEXT) $(XPM_LIBS) $(TEXT_LIBS) $(THRL) xanalogtv: xanalogtv.o $(HACK_OBJS) $(ATV) $(GRAB) $(XPM) - $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(ATV) $(GRAB) $(XPM) $(XPM_LIBS) $(HACK_LIBS) + $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(ATV) $(GRAB) $(XPM) $(XPM_LIBS) $(HACK_LIBS) $(THRL) distort: distort.o $(HACK_OBJS) $(GRAB) $(SHM) $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(GRAB) $(SHM) $(HACK_LIBS) @@ -796,7 +800,7 @@ fontglide: fontglide.o $(HACK_OBJS) $(DBE) $(TEXT) $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(DBE) $(TEXT) $(HACK_LIBS) $(TEXT_LIBS) pong: pong.o $(HACK_OBJS) $(ATV) $(GRAB) $(XPM) - $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(ATV) $(GRAB) $(XPM) $(XPM_LIBS) $(HACK_LIBS) + $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(ATV) $(GRAB) $(XPM) $(XPM_LIBS) $(HACK_LIBS) $(THRL) wormhole: wormhole.o $(HACK_OBJS) $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(HACK_LIBS) @@ -841,7 +845,7 @@ m6502.h: m6502.o: m6502.h m6502: m6502.o asm6502.o $(HACK_OBJS) $(ATV) - $(CC_HACK) -o $@ $@.o asm6502.o $(HACK_OBJS) $(ATV) $(HACK_LIBS) + $(CC_HACK) -o $@ $@.o asm6502.o $(HACK_OBJS) $(ATV) $(HACK_LIBS) $(THRL) abstractile: abstractile.o $(HACK_OBJS) $(COL) $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(COL) $(HACK_LIBS) @@ -1021,7 +1025,6 @@ anemone.o: $(UTILS_SRC)/hsv.h anemone.o: $(UTILS_SRC)/resources.h anemone.o: $(UTILS_SRC)/usleep.h anemone.o: $(UTILS_SRC)/visual.h -anemone.o: $(UTILS_SRC)/xdbe.h anemone.o: $(UTILS_SRC)/yarandom.h anemotaxis.o: ../config.h anemotaxis.o: $(srcdir)/fps.h @@ -1033,7 +1036,6 @@ anemotaxis.o: $(UTILS_SRC)/hsv.h anemotaxis.o: $(UTILS_SRC)/resources.h anemotaxis.o: $(UTILS_SRC)/usleep.h anemotaxis.o: $(UTILS_SRC)/visual.h -anemotaxis.o: $(UTILS_SRC)/xdbe.h anemotaxis.o: $(UTILS_SRC)/yarandom.h ant.o: $(srcdir)/automata.h ant.o: ../config.h @@ -1327,7 +1329,6 @@ compass.o: $(UTILS_SRC)/hsv.h compass.o: $(UTILS_SRC)/resources.h compass.o: $(UTILS_SRC)/usleep.h compass.o: $(UTILS_SRC)/visual.h -compass.o: $(UTILS_SRC)/xdbe.h compass.o: $(UTILS_SRC)/yarandom.h coral.o: ../config.h coral.o: $(srcdir)/fps.h @@ -1424,7 +1425,6 @@ deluxe.o: $(UTILS_SRC)/hsv.h deluxe.o: $(UTILS_SRC)/resources.h deluxe.o: $(UTILS_SRC)/usleep.h deluxe.o: $(UTILS_SRC)/visual.h -deluxe.o: $(UTILS_SRC)/xdbe.h deluxe.o: $(UTILS_SRC)/yarandom.h demon.o: $(srcdir)/automata.h demon.o: ../config.h @@ -1601,7 +1601,6 @@ fluidballs.o: $(UTILS_SRC)/hsv.h fluidballs.o: $(UTILS_SRC)/resources.h fluidballs.o: $(UTILS_SRC)/usleep.h fluidballs.o: $(UTILS_SRC)/visual.h -fluidballs.o: $(UTILS_SRC)/xdbe.h fluidballs.o: $(UTILS_SRC)/yarandom.h fontglide.o: ../config.h fontglide.o: $(srcdir)/fps.h @@ -1614,7 +1613,6 @@ fontglide.o: $(UTILS_SRC)/resources.h fontglide.o: $(UTILS_SRC)/textclient.h fontglide.o: $(UTILS_SRC)/usleep.h fontglide.o: $(UTILS_SRC)/visual.h -fontglide.o: $(UTILS_SRC)/xdbe.h fontglide.o: $(UTILS_SRC)/yarandom.h forest.o: ../config.h forest.o: $(srcdir)/fps.h @@ -1827,7 +1825,6 @@ interference.o: $(UTILS_SRC)/resources.h interference.o: $(UTILS_SRC)/thread_util.h interference.o: $(UTILS_SRC)/usleep.h interference.o: $(UTILS_SRC)/visual.h -interference.o: $(UTILS_SRC)/xdbe.h interference.o: $(UTILS_SRC)/xshm.h interference.o: $(UTILS_SRC)/yarandom.h intermomentary.o: ../config.h @@ -1889,7 +1886,6 @@ kumppa.o: $(UTILS_SRC)/hsv.h kumppa.o: $(UTILS_SRC)/resources.h kumppa.o: $(UTILS_SRC)/usleep.h kumppa.o: $(UTILS_SRC)/visual.h -kumppa.o: $(UTILS_SRC)/xdbe.h kumppa.o: $(UTILS_SRC)/yarandom.h laser.o: ../config.h laser.o: $(srcdir)/fps.h @@ -2040,7 +2036,6 @@ moire2.o: $(UTILS_SRC)/hsv.h moire2.o: $(UTILS_SRC)/resources.h moire2.o: $(UTILS_SRC)/usleep.h moire2.o: $(UTILS_SRC)/visual.h -moire2.o: $(UTILS_SRC)/xdbe.h moire2.o: $(UTILS_SRC)/yarandom.h moire.o: ../config.h moire.o: $(srcdir)/fps.h @@ -2262,7 +2257,6 @@ piecewise.o: $(UTILS_SRC)/hsv.h piecewise.o: $(UTILS_SRC)/resources.h piecewise.o: $(UTILS_SRC)/usleep.h piecewise.o: $(UTILS_SRC)/visual.h -piecewise.o: $(UTILS_SRC)/xdbe.h piecewise.o: $(UTILS_SRC)/yarandom.h polyominoes.o: ../config.h polyominoes.o: $(srcdir)/fps.h @@ -2303,7 +2297,6 @@ popsquares.o: $(UTILS_SRC)/hsv.h popsquares.o: $(UTILS_SRC)/resources.h popsquares.o: $(UTILS_SRC)/usleep.h popsquares.o: $(UTILS_SRC)/visual.h -popsquares.o: $(UTILS_SRC)/xdbe.h popsquares.o: $(UTILS_SRC)/yarandom.h pyro.o: ../config.h pyro.o: $(srcdir)/fps.h @@ -2710,7 +2703,6 @@ whirlygig.o: $(UTILS_SRC)/hsv.h whirlygig.o: $(UTILS_SRC)/resources.h whirlygig.o: $(UTILS_SRC)/usleep.h whirlygig.o: $(UTILS_SRC)/visual.h -whirlygig.o: $(UTILS_SRC)/xdbe.h whirlygig.o: $(UTILS_SRC)/yarandom.h wormhole.o: ../config.h wormhole.o: $(srcdir)/fps.h diff --git a/hacks/config/README b/hacks/config/README index 3db2dc64..d0abe4d7 100644 --- a/hacks/config/README +++ b/hacks/config/README @@ -4,8 +4,8 @@ a screen saver and locker for the X window system by Jamie Zawinski - version 5.27 - 27-May-2014 + version 5.29 + 08-Jun-2014 http://www.jwz.org/xscreensaver/ diff --git a/hacks/config/boxed.xml b/hacks/config/boxed.xml index 594afc4b..b2bc8618 100644 --- a/hacks/config/boxed.xml +++ b/hacks/config/boxed.xml @@ -9,7 +9,7 @@ + low="3" high="40" default="20"/> + low="1.0" high="5.0" default="3.0"/> diff --git a/hacks/config/projectiveplane.xml b/hacks/config/projectiveplane.xml index 44f83a4b..70b9ff1b 100644 --- a/hacks/config/projectiveplane.xml +++ b/hacks/config/projectiveplane.xml @@ -91,7 +91,7 @@ + low="-180.0" high="180.0" default="83.0"/> + * xscreensaver, Copyright (c) 1992-2014 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 @@ -152,24 +152,24 @@ distort_init (Display *dpy, Window window) if (st->effect == NULL && st->radius == 0 && st->speed == 0 && st->number == 0 && !st->blackhole && !st->vortex && !st->magnify && !st->reflect) { /* if no cmdline options are given, randomly choose one of: - * -radius 50 -number 4 -speed 1 -bounce - * -radius 50 -number 4 -speed 1 -blackhole - * -radius 50 -number 4 -speed 1 -vortex - * -radius 50 -number 4 -speed 1 -vortex -magnify - * -radius 50 -number 4 -speed 1 -vortex -magnify -blackhole - * -radius 100 -number 1 -speed 2 -bounce - * -radius 100 -number 1 -speed 2 -blackhole - * -radius 100 -number 1 -speed 2 -vortex - * -radius 100 -number 1 -speed 2 -vortex -magnify - * -radius 100 -number 1 -speed 2 -vortex -magnify -blackhole + * -radius 125 -number 4 -speed 1 -bounce + * -radius 125 -number 4 -speed 1 -blackhole + * -radius 125 -number 4 -speed 1 -vortex + * -radius 125 -number 4 -speed 1 -vortex -magnify + * -radius 125 -number 4 -speed 1 -vortex -magnify -blackhole + * -radius 250 -number 1 -speed 2 -bounce + * -radius 250 -number 1 -speed 2 -blackhole + * -radius 250 -number 1 -speed 2 -vortex + * -radius 250 -number 1 -speed 2 -vortex -magnify + * -radius 250 -number 1 -speed 2 -vortex -magnify -blackhole * -radius 80 -number 1 -speed 2 -reflect - * -radius 50 -number 3 -speed 2 -reflect + * -radius 125 -number 3 -speed 2 -reflect * jwz: not these - * -radius 50 -number 4 -speed 2 -swamp - * -radius 50 -number 4 -speed 2 -swamp -blackhole - * -radius 50 -number 4 -speed 2 -swamp -vortex - * -radius 50 -number 4 -speed 2 -swamp -vortex -magnify - * -radius 50 -number 4 -speed 2 -swamp -vortex -magnify -blackhole + * -radius 125 -number 4 -speed 2 -swamp + * -radius 125 -number 4 -speed 2 -swamp -blackhole + * -radius 125 -number 4 -speed 2 -swamp -vortex + * -radius 125 -number 4 -speed 2 -swamp -vortex -magnify + * -radius 125 -number 4 -speed 2 -swamp -vortex -magnify -blackhole */ i = (random() % 12 /* 17 */); @@ -178,74 +178,70 @@ distort_init (Display *dpy, Window window) switch (i) { case 0: - st->radius=50;st->number=4;st->speed=1; + st->radius=125;st->number=4;st->speed=1; st->effect=&move_lense;break; case 1: - st->radius=50;st->number=4;st->speed=1;st->blackhole=1; + st->radius=125;st->number=4;st->speed=1;st->blackhole=1; st->effect=&move_lense;break; case 2: - st->radius=50;st->number=4;st->speed=1;st->vortex=1; + st->radius=125;st->number=4;st->speed=1;st->vortex=1; st->effect=&move_lense;break; case 3: - st->radius=50;st->number=4;st->speed=1;st->vortex=1;st->magnify=1; + st->radius=125;st->number=4;st->speed=1;st->vortex=1;st->magnify=1; st->effect=&move_lense;break; case 4: - st->radius=50;st->number=4;st->speed=1;st->vortex=1;st->magnify=1;st->blackhole=1; + st->radius=125;st->number=4;st->speed=1;st->vortex=1;st->magnify=1;st->blackhole=1; st->effect=&move_lense;break; case 5: - st->radius=100;st->number=1;st->speed=2; + st->radius=250;st->number=1;st->speed=2; st->effect=&move_lense;break; case 6: - st->radius=100;st->number=1;st->speed=2;st->blackhole=1; + st->radius=250;st->number=1;st->speed=2;st->blackhole=1; st->effect=&move_lense;break; case 7: - st->radius=100;st->number=1;st->speed=2;st->vortex=1; + st->radius=250;st->number=1;st->speed=2;st->vortex=1; st->effect=&move_lense;break; case 8: - st->radius=100;st->number=1;st->speed=2;st->vortex=1;st->magnify=1; + st->radius=250;st->number=1;st->speed=2;st->vortex=1;st->magnify=1; st->effect=&move_lense;break; case 9: - st->radius=100;st->number=1;st->speed=2;st->vortex=1;st->magnify=1;st->blackhole=1; + st->radius=250;st->number=1;st->speed=2;st->vortex=1;st->magnify=1;st->blackhole=1; st->effect=&move_lense;break; case 10: st->radius=80;st->number=1;st->speed=2;st->reflect=1; st->draw = &reflect_draw;st->effect = &move_lense;break; case 11: - st->radius=50;st->number=4;st->speed=2;st->reflect=1; + st->radius=125;st->number=4;st->speed=2;st->reflect=1; st->draw = &reflect_draw;st->effect = &move_lense;break; #if 0 /* jwz: not these */ case 12: - st->radius=50;st->number=4;st->speed=2; + st->radius=125;st->number=4;st->speed=2; effect=&swamp_thing;break; case 13: - st->radius=50;st->number=4;st->speed=2;st->blackhole=1; + st->radius=125;st->number=4;st->speed=2;st->blackhole=1; effect=&swamp_thing;break; case 14: - st->radius=50;st->number=4;st->speed=2;st->vortex=1; + st->radius=125;st->number=4;st->speed=2;st->vortex=1; effect=&swamp_thing;break; case 15: - st->radius=50;st->number=4;st->speed=2;st->vortex=1;st->magnify=1; + st->radius=125;st->number=4;st->speed=2;st->vortex=1;st->magnify=1; effect=&swamp_thing;break; case 16: - st->radius=50;st->number=4;st->speed=2;st->vortex=1;st->magnify=1;st->blackhole=1; + st->radius=125;st->number=4;st->speed=2;st->vortex=1;st->magnify=1;st->blackhole=1; effect=&swamp_thing;break; #endif default: abort(); break; } - - /* but if the window is small, reduce default radius */ - if (st->xgwa.width < st->radius * 8) - st->radius = st->xgwa.width/8; } /* never allow the radius to be too close to the min window dimension */ - if (st->radius >= st->xgwa.width * 0.45) st->radius = st->xgwa.width * 0.45; - if (st->radius >= st->xgwa.height * 0.45) st->radius = st->xgwa.height * 0.45; + if (st->radius > st->xgwa.width * 0.3) st->radius = st->xgwa.width * 0.3; + if (st->radius > st->xgwa.height * 0.3) st->radius = st->xgwa.height * 0.3; /* -swamp mode consumes vast amounts of memory, proportional to radius -- @@ -664,6 +660,7 @@ static void reflect_draw(struct state *st, int k) static void new_rnd_coo(struct state *st, int k) { int i; + int loop = 0; st->xy_coo[k].x = (random() % (st->xgwa.width-2*st->radius)); st->xy_coo[k].y = (random() % (st->xgwa.height-2*st->radius)); @@ -677,6 +674,7 @@ static void new_rnd_coo(struct state *st, int k) i=-1; /* ugly */ } } + if (loop++ > 1000) return; /* let's not get stuck */ } } diff --git a/hacks/glx/kaleidocycle.c b/hacks/glx/kaleidocycle.c index 025e45b4..e28aa0ca 100644 --- a/hacks/glx/kaleidocycle.c +++ b/hacks/glx/kaleidocycle.c @@ -31,6 +31,7 @@ #include "rotator.h" #include "gltrackball.h" #include +#include #ifdef USE_GL /* whole file */ diff --git a/hacks/glx/lament.c b/hacks/glx/lament.c index 97202c1d..77cf156b 100644 --- a/hacks/glx/lament.c +++ b/hacks/glx/lament.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1998-2012 Jamie Zawinski +/* xscreensaver, Copyright (c) 1998-2014 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 @@ -90,6 +90,12 @@ ENTRYPOINT ModeSpecOpt lament_opts = {countof(opts), opts, countof(vars), vars, #include "xpm-ximage.h" #include "rotator.h" #include "gltrackball.h" + +#ifdef __GNUC__ + __extension__ /* don't warn about "string length is greater than the length + ISO C89 compilers are required to support" when including + the following XPM file... */ +#endif #if 0 # include "../images/lament128.xpm" #else diff --git a/hacks/glx/quasicrystal.c b/hacks/glx/quasicrystal.c index 75b35d80..be2e0c16 100644 --- a/hacks/glx/quasicrystal.c +++ b/hacks/glx/quasicrystal.c @@ -273,7 +273,7 @@ draw_quasicrystal (ModeInfo *mi) Display *dpy = MI_DISPLAY(mi); Window window = MI_WINDOW(mi); int wire = MI_IS_WIREFRAME(mi); - double r, ps; + double r=0, ps=0; int i; if (!bp->glx_context) diff --git a/hacks/glx/starwars.c b/hacks/glx/starwars.c index 3845f2e2..ada87e94 100644 --- a/hacks/glx/starwars.c +++ b/hacks/glx/starwars.c @@ -36,7 +36,6 @@ # include #endif - #include "starwars.h" #define DEFAULTS "*delay: 40000 \n" \ "*showFPS: False \n" \ @@ -1046,6 +1045,12 @@ release_sws (ModeInfo *mi) } +#ifdef __GNUC__ + __extension__ /* don't warn about "string length is greater than the length + ISO C89 compilers are required to support" when including + "starwars.txt" in the defaults... */ +#endif + XSCREENSAVER_MODULE_2 ("StarWars", starwars, sws) #endif /* USE_GL */ diff --git a/hacks/glx/xpm-ximage.c b/hacks/glx/xpm-ximage.c index 4091c704..ea75d4f3 100644 --- a/hacks/glx/xpm-ximage.c +++ b/hacks/glx/xpm-ximage.c @@ -78,7 +78,9 @@ xpm_to_ximage_1 (Display *dpy, Visual *visual, Colormap cmap, if (!initted) { #ifdef HAVE_GTK2 +#if !GLIB_CHECK_VERSION(2, 36 ,0) g_type_init (); +#endif #endif gdk_pixbuf_xlib_init (dpy, DefaultScreen (dpy)); xlib_rgb_init (dpy, DefaultScreenOfDisplay (dpy)); diff --git a/hacks/memscroller.c b/hacks/memscroller.c index 444298e6..70c13816 100644 --- a/hacks/memscroller.c +++ b/hacks/memscroller.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 2002-2012 Jamie Zawinski +/* xscreensaver, Copyright (c) 2002-2014 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 @@ -349,6 +349,9 @@ more_bits (state *st, scroller *sc) from earlier days before the advent of virtual memory management." -- sbrk(2) man page on MacOS */ +# if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)) /* gcc >= 4.2 */ +# pragma GCC diagnostic ignored "-Wdeprecated-declarations" +# endif himem = ((unsigned char *) sbrk(0)) - (2 * sizeof(void *)); # endif diff --git a/hacks/rd-bomb.c b/hacks/rd-bomb.c index 3e9acbc5..dfcc2897 100644 --- a/hacks/rd-bomb.c +++ b/hacks/rd-bomb.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1992-2013 Jamie Zawinski +/* xscreensaver, Copyright (c) 1992-2014 Jamie Zawinski * * reaction/diffusion textures * Copyright (c) 1997 Scott Draves spot@transmeta.com @@ -100,6 +100,9 @@ pixack_init(struct state *st, int *size_h, int *size_v) if (st->width <= 0) st->width = 48 + BELLRAND(256); if (st->height <= 0) st->height = 48 + BELLRAND(256); + if (st->width > st->xgwa.width) st->width = st->xgwa.width; + if (st->height > st->xgwa.height) st->height = st->xgwa.height; + /* jwz: when (and only when) XSHM is in use on an SGI 8-bit visual, we get shear unless st->width is a multiple of 4. I don't understand why. This is undoubtedly the wrong fix... */ diff --git a/hacks/rotzoomer.c b/hacks/rotzoomer.c index 6298b34e..b0c81fab 100644 --- a/hacks/rotzoomer.c +++ b/hacks/rotzoomer.c @@ -10,6 +10,8 @@ * implied warranty. */ +/* (circle-mode by jwz, 4-Jun-2014; not finished yet.) */ + /* * Options: * @@ -18,6 +20,7 @@ * -n number of zoomboxes * -move enable mobile zoomboxes * -sweep enable sweep mode + * -circle enable circle mode * -anim enable snapshot mode * -no-anim enable snapshot mode * -delay delay in milliseconds @@ -57,6 +60,7 @@ struct state { int num_zoom; int move; int sweep; + int circle; int delay; int anim; int duration; @@ -77,16 +81,39 @@ rotzoom (struct state *st, struct zoom_area *za) int x, y, c, s, zoom, z; int x2 = za->x + za->w - 1, y2 = za->y + za->h - 1; int ox = 0, oy = 0; + int w2 = (za->w/2) * (za->w/2); z = 8100 * sin (M_PI * za->a2 / 8192); zoom = 8192 + z; - c = zoom * cos (M_PI * za->a1 / 8192); - s = zoom * sin (M_PI * za->a1 / 8192); for (y = za->y; y <= y2; y++) { for (x = za->x; x <= x2; x++) { - ox = (x * c + y * s) >> 13; - oy = (-x * s + y * c) >> 13; + c = zoom * cos (M_PI * za->a1 / 8192); + s = zoom * sin (M_PI * za->a1 / 8192); + if (st->circle) { + int cx = za->x + za->w / 2; + int cy = za->y + za->h / 2; + int dx = x - cx; + int dy = y - cy; + int d2 = (dx*dx) + (dy*dy); + + ox = x; + oy = y; + + if (d2 > w2) { + ox = x; + oy = y; + } else { + double r = sqrt ((double) d2); + double th = atan ((double)dy / (double) (dx == 0 ? 1 : dx)); + th += M_PI * (za->a1 / 300.0); + ox = 10 + cx + (int) (r * cos(th)); + oy = 10 + cy + (int) (r * sin(th)); + } + } else { + ox = (x * c + y * s) >> 13; + oy = (-x * s + y * c) >> 13; + } while (ox < 0) ox += st->width; @@ -102,7 +129,7 @@ rotzoom (struct state *st, struct zoom_area *za) } za->a1 += za->inc1; /* Rotation angle */ - za->a1 &= 0x3fff;; + za->a1 &= 0x3fff; za->a2 += za->inc2; /* Zoom */ za->a2 &= 0x3fff; @@ -166,6 +193,38 @@ reset_zoom (struct state *st, struct zoom_area *za) za->a2 = 0; za->inc1 = ((2 * (random() & 1)) - 1) * (1 + random () % 7); za->inc2 = ((2 * (random() & 1)) - 1) * (1 + random () % 7); + } else if (st->circle) { + + za->w = 50 + random() % 300; + if (za->w > st->width / 3) + za->w = st->width / 3; + if (za->w > st->height / 3) + za->w = st->height / 3; + za->h = za->w; + + za->ww = st->width - za->w; + za->hh = st->height - za->h; + + za->x = (za->ww ? random() % za->ww : 0); + za->y = (za->hh ? random() % za->hh : 0); + + za->dx = 0; + za->dy = 0; + za->inc1 = ((2 * (random() & 1)) - 1) * (random () % 30); + + if (st->anim) { + za->n = 50 + random() % 1000; + za->a1 = 0; + za->a2 = 0; + } else { + za->n = 5 + random() % 10; + za->a1 = random (); + za->a2 = random (); + } + + za->inc1 = ((2 * (random() & 1)) - 1) * (random () % 30); + za->inc2 = ((2 * (random() & 1)) - 1) * (random () % 30); + } else { za->w = 50 + random() % 300; za->h = 50 + random() % 300; @@ -403,6 +462,8 @@ rotzoomer_init (Display *dpy, Window window) st->move = True; else if (!strcasecmp (s, "sweep")) st->sweep = True; + else if (!strcasecmp (s, "circle")) + st->circle = True; else fprintf (stderr, "%s: bogus mode: \"%s\"\n", progname, s); @@ -420,6 +481,11 @@ rotzoomer_init (Display *dpy, Window window) if (!st->anim) st->sweep = 0; + if (st->circle) { + st->move = 0; + st->sweep = 0; + } + st->start_time = time ((time_t) 0); setup_X (st); @@ -474,6 +540,7 @@ static XrmOptionDescRec rotzoomer_options[] = { { "-mode", ".mode", XrmoptionSepArg, 0 }, { "-move", ".mode", XrmoptionNoArg, "move" }, { "-sweep", ".mode", XrmoptionNoArg, "sweep" }, + { "-circle", ".mode", XrmoptionNoArg, "circle"}, { "-anim", ".anim", XrmoptionNoArg, "True" }, { "-no-anim", ".anim", XrmoptionNoArg, "False" }, { "-delay", ".delay", XrmoptionSepArg, 0 }, diff --git a/hacks/tessellimage.c b/hacks/tessellimage.c index c506400c..5fd681e1 100644 --- a/hacks/tessellimage.c +++ b/hacks/tessellimage.c @@ -573,11 +573,12 @@ tessellate (struct state *st) if (ticked_p && st->cache[st->thresh]) { - XCopyArea (st->dpy, - st->cache[st->thresh], - st->output, st->pgc, - 0, 0, st->delta->width, st->delta->height, - 0, 0); + if (st->output) + XCopyArea (st->dpy, + st->cache[st->thresh], + st->output, st->pgc, + 0, 0, st->delta->width, st->delta->height, + 0, 0); } else if (ticked_p) { @@ -753,12 +754,13 @@ tessellate (struct state *st) fprintf (stderr, "%s: out of memory\n", progname); abort(); } - XCopyArea (st->dpy, - st->output, - st->cache[st->thresh], - st->pgc, - 0, 0, st->delta->width, st->delta->height, - 0, 0); + if (st->output) + XCopyArea (st->dpy, + st->output, + st->cache[st->thresh], + st->pgc, + 0, 0, st->delta->width, st->delta->height, + 0, 0); } } @@ -916,8 +918,8 @@ tessellimage_free (Display *dpy, Window window, void *closure) { struct state *st = (struct state *) closure; flush_cache (st); - XFreeGC (dpy, st->wgc); - XFreeGC (dpy, st->pgc); + if (st->wgc) XFreeGC (dpy, st->wgc); + if (st->pgc) XFreeGC (dpy, st->pgc); if (st->image) XFreePixmap (dpy, st->image); if (st->output) XFreePixmap (dpy, st->output); if (st->delta) XDestroyImage (st->delta); diff --git a/hacks/webcollage b/hacks/webcollage index 5f91ff07..6aea5f25 100755 --- a/hacks/webcollage +++ b/hacks/webcollage @@ -57,7 +57,7 @@ use bytes; my $progname = $0; $progname =~ s@.*/@@g; -my ($version) = ('$Revision: 1.164 $' =~ m/\s(\d[.\d]+)\s/s); +my ($version) = ('$Revision: 1.165 $' =~ m/\s(\d[.\d]+)\s/s); my $copyright = "WebCollage $version, Copyright (c) 1999-2014" . " Jamie Zawinski \n" . " http://www.jwz.org/webcollage/\n"; @@ -1494,10 +1494,7 @@ sub pick_from_google_image_photos($) { # ############################################################################ -my $bing_images_url = "http://www.bing.com/images/async" . - "?CW=0" . - "&CH=0" . - "&q="; +my $bing_images_url = "http://www.bing.com/images/async?q="; # bingimgs diff --git a/hacks/webcollage-helper.c b/hacks/webcollage-helper.c index e6e2da7a..673e8b42 100644 --- a/hacks/webcollage-helper.c +++ b/hacks/webcollage-helper.c @@ -85,7 +85,7 @@ bevel_image (GdkPixbuf **pbP, int bevel_pct, if (! gdk_pixbuf_get_has_alpha (pb)) { GdkPixbuf *pb2 = gdk_pixbuf_add_alpha (pb, FALSE, 0, 0, 0); - gdk_pixbuf_unref (pb); + g_object_unref (pb); pb = pb2; } @@ -205,7 +205,7 @@ paste (const char *paste_file, int new_h = paste_h * from_scale; GdkPixbuf *new_pb = gdk_pixbuf_scale_simple (paste_pb, new_w, new_h, GDK_INTERP_HYPER); - gdk_pixbuf_unref (paste_pb); + g_object_unref (paste_pb); paste_pb = new_pb; paste_w = gdk_pixbuf_get_width (paste_pb); paste_h = gdk_pixbuf_get_height (paste_pb); @@ -323,9 +323,9 @@ paste (const char *paste_file, fprintf (stderr, "%s: pasted %dx%d from %d,%d to %d,%d\n", progname, paste_w, paste_h, from_x, from_y, to_x, to_y); - gdk_pixbuf_unref (paste_pb); + g_object_unref (paste_pb); write_pixbuf (base_pb, base_file); - gdk_pixbuf_unref (base_pb); + g_object_unref (base_pb); } @@ -491,7 +491,9 @@ main (int argc, char **argv) if (h < 0) usage(); #ifdef HAVE_GTK2 +#if !GLIB_CHECK_VERSION(2, 36 ,0) g_type_init (); +#endif #endif /* HAVE_GTK2 */ paste (paste_file, base_file, diff --git a/hacks/xlockmore.c b/hacks/xlockmore.c index 23c12b6d..c90be11f 100644 --- a/hacks/xlockmore.c +++ b/hacks/xlockmore.c @@ -1,5 +1,5 @@ /* xlockmore.c --- xscreensaver compatibility layer for xlockmore modules. - * xscreensaver, Copyright (c) 1997-2013 Jamie Zawinski + * xscreensaver, Copyright (c) 1997-2014 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 @@ -295,25 +295,13 @@ xlockmore_init (Display *dpy, Window window, #ifdef HAVE_COCOA /* In Cocoa-based xscreensaver, all hacks run in the same address space, - so each one needs to get its own screen number. We just use a global - counter for that, instead of actually trying to figure out which - monitor each window is on. Also, the embedded "preview" view counts - as a screen as well. - - Note that the screen number will increase each time the saver is - restarted (e.g., each time preferences are changed!) So we just - keep pushing the num_screens number up as needed, and assume that - no more than 10 simultanious copies will be running at once... + so each one needs to get its own screen number. Believe what jwxyz + says about screen counts and numbers. */ - { - static int screen_tick = 0; - mi->num_screens = 10; - mi->screen_number = screen_tick++; - if (screen_tick >= mi->num_screens) - mi->num_screens += 10; - } - + mi->num_screens = ScreenCount (dpy); + mi->screen_number = XScreenNumberOfScreen (mi->xgwa.screen); root_p = True; + #else /* !HAVE_COCOA -- real Xlib */ /* In Xlib-based xscreensaver, each hack runs in its own address space, diff --git a/hacks/xpm-pixmap.c b/hacks/xpm-pixmap.c index 9493e093..5e13a18e 100644 --- a/hacks/xpm-pixmap.c +++ b/hacks/xpm-pixmap.c @@ -61,7 +61,9 @@ xpm_to_pixmap_1 (Display *dpy, Window window, if (!initted) { #ifdef HAVE_GTK2 +#if !GLIB_CHECK_VERSION(2, 36 ,0) g_type_init (); +#endif #endif /* HAVE_GTK2 */ gdk_pixbuf_xlib_init (dpy, screen_number (xgwa.screen)); xlib_rgb_init (dpy, xgwa.screen); diff --git a/po/Makefile.in.in b/po/Makefile.in.in index 8fc246cb..28d93134 100644 --- a/po/Makefile.in.in +++ b/po/Makefile.in.in @@ -151,6 +151,7 @@ DISTFILES = $(DISTFILES_1) $(GETTEXT_PACKAGE).pot \ TARFILES = $(DISTFILES_1) $(POFILES) $(SOURCES) POTFILES = \ +# This comment gets stripped out CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ diff --git a/po/POTFILES.in b/po/POTFILES.in index e10c35e5..a5688d09 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -1,7 +1,5 @@ -# Auto-generated: Mon Dec 9 03:01:47 PST 2013 +# Auto-generated: Sun Jun 8 14:43:58 PDT 2014 driver/demo-Gtk-conf.c -driver/demo-Gtk-support.c -driver/demo-Gtk-widgets.c driver/demo-Gtk.c driver/screensaver-properties.desktop.in driver/xscreensaver-demo.glade2 @@ -166,6 +164,7 @@ hacks/config/polyominoes.xml hacks/config/polytopes.xml hacks/config/pong.xml hacks/config/popsquares.xml +hacks/config/projectiveplane.xml hacks/config/providence.xml hacks/config/pulsar.xml hacks/config/pyro.xml @@ -207,6 +206,7 @@ hacks/config/surfaces.xml hacks/config/swirl.xml hacks/config/t3d.xml hacks/config/tangram.xml +hacks/config/tessellimage.xml hacks/config/thornbird.xml hacks/config/timetunnel.xml hacks/config/topblock.xml diff --git a/utils/version.h b/utils/version.h index d045455f..d445bcff 100644 --- a/utils/version.h +++ b/utils/version.h @@ -1,2 +1,2 @@ static const char screensaver_id[] = - "@(#)xscreensaver 5.27 (27-May-2014), by Jamie Zawinski (jwz@jwz.org)"; + "@(#)xscreensaver 5.29 (08-Jun-2014), by Jamie Zawinski (jwz@jwz.org)"; diff --git a/xscreensaver.spec b/xscreensaver.spec index 911abba3..b47f08cb 100644 --- a/xscreensaver.spec +++ b/xscreensaver.spec @@ -1,5 +1,5 @@ %define name xscreensaver -%define version 5.27 +%define version 5.29 Summary: X screen saver and locker Name: %{name} diff --git a/xscreensaver.xcodeproj/project.pbxproj b/xscreensaver.xcodeproj/project.pbxproj index 25df834b..b8b74294 100644 --- a/xscreensaver.xcodeproj/project.pbxproj +++ b/xscreensaver.xcodeproj/project.pbxproj @@ -29007,7 +29007,7 @@ /Users/jwz/src/xscreensaver/OSX, ); INFOPLIST_FILE = "$(SRCROOT)/OSX/Updater.plist"; - "OTHER_CFLAGS[sdk=macosx*]" = ""; + "OTHER_CFLAGS[sdk=macosx*]" = "-fno-objc-gc"; PRODUCT_NAME = "$(TARGET_NAME)"; WRAPPER_EXTENSION = app; }; @@ -29022,7 +29022,7 @@ /Users/jwz/src/xscreensaver/OSX, ); INFOPLIST_FILE = "$(SRCROOT)/OSX/Updater.plist"; - "OTHER_CFLAGS[sdk=macosx*]" = ""; + "OTHER_CFLAGS[sdk=macosx*]" = "-fno-objc-gc"; PRODUCT_NAME = "$(TARGET_NAME)"; WRAPPER_EXTENSION = app; }; @@ -35066,7 +35066,7 @@ LIBRARY_SEARCH_PATHS = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)"; MACOSX_DEPLOYMENT_TARGET = 10.4; OTHER_CFLAGS = ""; - "OTHER_CFLAGS[sdk=macosx*]" = ""; + "OTHER_CFLAGS[sdk=macosx*]" = "-fobjc-gc"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; "SDKROOT[arch=arm*]" = iphoneos; @@ -35135,7 +35135,7 @@ "LLVM_LTO[sdk=macosx*]" = YES; MACOSX_DEPLOYMENT_TARGET = 10.4; OTHER_CFLAGS = ""; - "OTHER_CFLAGS[sdk=macosx*]" = ""; + "OTHER_CFLAGS[sdk=macosx*]" = "-fobjc-gc"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; "SDKROOT[arch=arm*]" = iphoneos;